Browse Source

后端整合模块

detached
huangqizhen 5 months ago
parent
commit
018e14429c
  1. 21
      pom.xml
  2. 3
      src/main/java/com/example/demo/DemoApplication.java
  3. 2
      src/main/java/com/example/demo/Util/JWTUtil.java
  4. 1
      src/main/java/com/example/demo/Util/TokenPayload.java
  5. 45
      src/main/java/com/example/demo/config/RedisConfig.java
  6. 35
      src/main/java/com/example/demo/controller/UploadController.java
  7. 115
      src/main/java/com/example/demo/domain/entity/Activity.java
  8. 3
      src/main/java/com/example/demo/domain/entity/Detail.java
  9. 7
      src/main/java/com/example/demo/domain/vo/DetailVo.java
  10. 25
      src/main/java/com/example/demo/mapper/StatisticsMapper.java
  11. 3
      src/main/java/com/example/demo/security/SecurityConfig.java
  12. 79
      src/main/java/com/example/demo/serviceImpl/ActivityServiceImpl.java
  13. 18
      src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java
  14. 18
      src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java
  15. 11
      src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java
  16. 12
      src/main/java/com/example/demo/serviceImpl/DetailServiceImpl.java
  17. 6
      src/main/java/com/example/demo/serviceImpl/ProductServiceImpl.java
  18. 16
      src/main/java/com/example/demo/serviceImpl/RateServiceImpl.java
  19. 17
      src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java
  20. 14
      src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java
  21. 21
      src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java
  22. 7
      src/main/java/com/example/demo/serviceImpl/UserDetailServiceImpl.java
  23. 8
      src/main/java/com/example/demo/serviceImpl/UserServiceImpl.java
  24. 4
      src/main/java/com/example/demo/sevice/ActivityService.java
  25. 18
      src/main/resources/application.yml

21
pom.xml

@ -18,6 +18,11 @@
<java.version>21</java.version>
</properties>
<dependencies>
<!-- Maven -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.101tec</groupId>-->
@ -44,7 +49,16 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- <dependency>-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
<!-- <dependency>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-starter-data-elasticsearch</artifactId>-->
<!-- </dependency>-->
@ -91,6 +105,11 @@
<version>3.0.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>2.17.3</version> <!-- 确保版本与您的jackson-databind版本兼容 -->
</dependency>
</dependencies>
<build>

3
src/main/java/com/example/demo/DemoApplication.java

@ -2,9 +2,10 @@ package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
@SpringBootApplication
@EnableCaching
public class DemoApplication {
public static void main(String[] args) {

2
src/main/java/com/example/demo/Util/JWTUtil.java

@ -23,7 +23,7 @@ import java.util.UUID;
public class JWTUtil {
//有效期为
public static final Long JWT_TTL = 60 * 60 *1000L;// 60 * 60 *1000 一个小时
public static final Long JWT_TTL = 1000*60 * 60 *1000L;// 60 * 60 *1000 一个小时
//设置 密钥
public static final String JWT_KEY = "bobzyh";

1
src/main/java/com/example/demo/Util/TokenPayload.java

@ -11,6 +11,7 @@ import lombok.Setter;
@Data
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class TokenPayload {
@JsonProperty("token")
private String token;

45
src/main/java/com/example/demo/config/RedisConfig.java

@ -0,0 +1,45 @@
package com.example.demo.config;
import org.springframework.boot.autoconfigure.cache.CacheProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.cache.RedisCacheConfiguration;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializationContext;
import org.springframework.data.redis.serializer.StringRedisSerializer;
@Configuration
@EnableCaching
@EnableConfigurationProperties(CacheProperties.class)
public class RedisConfig {
// @Autowired
// CacheProperties cacheProperties;
@Bean
public RedisCacheConfiguration redisCacheConfiguration(CacheProperties cacheProperties) {
RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig();
config = config.serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer()));
config = config.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new GenericJackson2JsonRedisSerializer()));
CacheProperties.Redis redis = cacheProperties.getRedis();
if (redis.getTimeToLive() != null) {
config = config.entryTtl(redis.getTimeToLive());
}
if (!redis.isCacheNullValues()) {
config = config.disableCachingNullValues();
}
if (!redis.isUseKeyPrefix()) {
config = config.disableKeyPrefix();
}
return config;
}
}

35
src/main/java/com/example/demo/controller/UploadController.java

@ -5,12 +5,13 @@ package com.example.demo.controller;
import com.example.demo.Util.UploadUtil;
import com.example.demo.domain.vo.Result;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
@RestController
@RequestMapping("/upload")
@CrossOrigin
@ -18,9 +19,27 @@ public class UploadController {
@Value("${upload.path}")
private String path;
@PostMapping
public Result upload(MultipartFile file) {
String fileName = UploadUtil.save(file,path);
return Result.success(fileName);
// @PostMapping
// public Result upload(MultipartFile file) {
// String fileName = UploadUtil.save(file,path);
// return Result.success(fileName);
// }
@PostMapping("/upload")
public String handleFileUpload(@RequestParam("imageData") MultipartFile file) {
if (!file.isEmpty()) {
try {
// 清理文件名
String fileName = StringUtils.cleanPath(file.getOriginalFilename());
// 将文件保存到服务器的某个位置
String destinationPath = path + File.separator + fileName;
file.transferTo(new File(destinationPath));
return "File uploaded successfully: " + fileName;
} catch (IOException e) {
e.printStackTrace();
return "File upload failed: " + e.getMessage();
}
} else {
return "Please select a file to upload";
}
}
}

115
src/main/java/com/example/demo/domain/entity/Activity.java

@ -6,21 +6,22 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;
@Data
public class Activity {
private Integer activityId ;
public class Activity implements Serializable {
private Integer activityId;
private Integer adminId;
private String dept;
private LocalDate startTime;
private LocalDate endTime;
private Date startTime;
private Date endTime;
private String activityName;
private BigDecimal rechargeRatio;
private LocalDateTime createTime;
private Date createTime;
private Integer activityFlag;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@ -28,108 +29,4 @@ public class Activity {
private Integer status;
private Date startDate;
private Date endDate;
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
public Date getStartDate() {
return startDate;
}
public void setStartDate(Date startDate) {
this.startDate = startDate;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getActivityFlag() {
return activityFlag;
}
public void setActivityFlag(Integer activityFlag) {
this.activityFlag = activityFlag;
}
public LocalDateTime getCreateTime() {
return createTime;
}
public void setCreateTime(LocalDateTime createTime) {
this.createTime = createTime;
}
public BigDecimal getRechargeRatio() {
return rechargeRatio;
}
public void setRechargeRatio(BigDecimal rechargeRatio) {
this.rechargeRatio = rechargeRatio;
}
public String getActivityName() {
return activityName;
}
public void setActivityName(String activityName) {
this.activityName = activityName;
}
public LocalDate getEndTime() {
return endTime;
}
public void setEndTime(LocalDate endTime) {
this.endTime = endTime;
}
public LocalDate getStartTime() {
return startTime;
}
public void setStartTime(LocalDate startTime) {
this.startTime = startTime;
}
public String getDept() {
return dept;
}
public void setDept(String dept) {
this.dept = dept;
}
public Integer getAdminId() {
return adminId;
}
public void setAdminId(Integer adminId) {
this.adminId = adminId;
}
public Integer getActivityId() {
return activityId;
}
public void setActivityId(Integer activityId) {
this.activityId = activityId;
}
}

3
src/main/java/com/example/demo/domain/entity/Detail.java

@ -5,13 +5,14 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
@Data
@NoArgsConstructor
public class Detail {
public class Detail implements Serializable {
private Integer detailId;
private String name;
private String jwcode;

7
src/main/java/com/example/demo/domain/vo/DetailVo.java

@ -5,6 +5,7 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
import java.util.Date;
@Data
@NoArgsConstructor
@ -32,13 +33,13 @@ public class DetailVo {
// @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
// @DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
private Date createTime;
//搜索消费时间
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime searchStartTime;
private Date searchStartTime;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime searchEndTime;
private Date searchEndTime;
//提交人姓名
private String adminName;

25
src/main/java/com/example/demo/mapper/StatisticsMapper.java

@ -151,20 +151,23 @@ public interface StatisticsMapper {
" SUM(CASE WHEN update_type IN ('消费', '退款') THEN recharge_coin ELSE 0 END) AS yearSumRechargeCoin,",
" SUM(CASE WHEN update_type IN ('消费', '退款') THEN free_coin ELSE 0 END) AS yearSumFreeCoin,",
" SUM(CASE WHEN update_type IN ('消费', '退款') THEN task_coin ELSE 0 END) AS yearSumTaskCoin",
"FROM `detail`WHERE YEAR(create_time) = YEAR(CURRENT_DATE)" ,
"FROM detail WHERE YEAR(create_time) = YEAR(CURRENT_DATE)" ,
" AND create_time <= NOW()"})
SumCoin getYearConsumeCoin();
@Select({"SELECT SUM(CASE WHEN update_type = '消费' THEN recharge_coin ELSE 0 END) AS todayRecharge," ,
"SUM(CASE WHEN update_type = '消费' THEN free_coin ELSE 0 END) AS todayFree," +
" SUM(CASE WHEN update_type = '消费' THEN task_coin ELSE 0 END) AS todayTask," +
" SUM(CASE WHEN update_type = '消费' THEN recharge_coin + free_coin + task_coin ELSE 0 END) AS dayConsumeCoin,",
" SUM(CASE WHEN update_type = '退款' THEN recharge_coin ELSE 0 END) AS total_recharge_refund," ,
" SUM(CASE WHEN update_type = '退款' THEN free_coin ELSE 0 END) AS total_free_refund," ,
" SUM(CASE WHEN update_type = '退款' THEN task_coin ELSE 0 END) AS total_task_refund," ,
" SUM(CASE WHEN update_type = '退款' THEN recharge_coin + free_coin + task_coin ELSE 0 END) AS dayRefundCoin," ,
" SUM(CASE WHEN update_type = '消费' THEN recharge_coin + free_coin + task_coin ELSE 0 END)+SUM(CASE WHEN update_type = '退款' THEN recharge_coin + free_coin + task_coin ELSE 0 END) AS daysumCoin",
"FROM `detail` WHERE DATE(create_time) = CURDATE() - INTERVAL 1 DAY"})
@Select({
"SELECT IFNULL(SUM(CASE WHEN update_type = '消费' THEN recharge_coin ELSE 0 END), 0) AS todayRecharge,",
" IFNULL(SUM(CASE WHEN update_type = '消费' THEN free_coin ELSE 0 END), 0) AS todayFree,",
" IFNULL(SUM(CASE WHEN update_type = '消费' THEN task_coin ELSE 0 END), 0) AS todayTask,",
" IFNULL(SUM(CASE WHEN update_type = '消费' THEN recharge_coin + free_coin + task_coin ELSE 0 END), 0) AS dayConsumeCoin,",
" IFNULL(SUM(CASE WHEN update_type = '退款' THEN recharge_coin ELSE 0 END), 0) AS total_recharge_refund,",
" IFNULL(SUM(CASE WHEN update_type = '退款' THEN free_coin ELSE 0 END), 0) AS total_free_refund,",
" IFNULL(SUM(CASE WHEN update_type = '退款' THEN task_coin ELSE 0 END), 0) AS total_task_refund,",
" IFNULL(SUM(CASE WHEN update_type = '退款' THEN recharge_coin + free_coin + task_coin ELSE 0 END), 0) AS dayRefundCoin,",
" IFNULL(SUM(CASE WHEN update_type = '消费' THEN recharge_coin + free_coin + task_coin ELSE 0 END), 0) +",
" IFNULL(SUM(CASE WHEN update_type = '退款' THEN recharge_coin + free_coin + task_coin ELSE 0 END), 0) AS daysumCoin",
"FROM `detail` WHERE DATE(create_time) = CURDATE() - INTERVAL 1 DAY"
})
SumCoin getDayConsumeCoin();

3
src/main/java/com/example/demo/security/SecurityConfig.java

@ -59,10 +59,9 @@ public class SecurityConfig {
request
.requestMatchers( HttpMethod.POST,
// 用户不登录就可以访问的路径
"/user/login", "/user",
"/admin/login","/upload/**").permitAll()
.requestMatchers(
"/error","alipay/**"
"/error","alipay/**","/upload/**"
).permitAll()
.anyRequest().authenticated() // 其它路径必须要登录后才能访问
);

79
src/main/java/com/example/demo/serviceImpl/ActivityServiceImpl.java

@ -8,63 +8,98 @@ import com.example.demo.sevice.ActivityService;
import com.github.pagehelper.PageHelper;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.CachePut;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import com.github.pagehelper.PageInfo;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDate;
import java.util.Date;
import java.util.List;
@Service
@Transactional
@RequiredArgsConstructor
@CacheConfig(cacheNames = "activity")
public class ActivityServiceImpl implements ActivityService {
@Autowired
ActivityMapper activityMapper;
@Override
public int add(Activity activity) {
return activityMapper.add(activity);
}
@CacheEvict(value = "activity",allEntries = true)
@Override
public int edit(Activity activity) {
activity.setActivityFlag(0);
return activityMapper.edit(activity);
}
@Override
public List<Activity> search(Activity activity) {
return activityMapper.select(activity);
}
@Cacheable(key="#root.method.name + ':'+ #pageNum + '-' + #pageSize + '-' + #activity.hashCode() ")
@Override
public PageInfo<Activity> searchForPage(Integer pageNum, Integer pageSize, Activity activity) {
// public PageInfo<Activity> searchForPage(Integer pageNum, Integer pageSize, Activity activity) {
//// PageHelper.startPage(pageNum, pageSize);
//// List<Activity> list = activityMapper.select(activity);
//// return new PageInfo<>(list);
//
// PageHelper.startPage(pageNum, pageSize);
// List<Activity> list = activityMapper.select(activity);
// return new PageInfo<>(list);
// Date nowDate = new Date();
// list.forEach(activity1 -> {
// // 假设 getStartTime() getEndTime() 返回的是 java.util.Date 类型
// Date startTime = activity1.getStartTime();
// Date endTime = activity1.getEndTime();
//
// // 使用 Date 类的 before after 方法进行比较
// if (nowDate.before(startTime)) {
// activity1.setStatus(0); // 设置状态为 0
// } else if (nowDate.after(endTime)) {
// activity1.setStatus(2); // 设置状态为 2
// } else {
// activity1.setStatus(1); // 设置状态为 1
// }
//
// // 保存修改后的对象
// activityMapper.edit(activity1);
// });
// }
//}
public PageInfo<Activity> searchForPage(Integer pageNum, Integer pageSize, Activity activity) {
PageHelper.startPage(pageNum, pageSize);
List<Activity> list = activityMapper.select(activity);
LocalDate nowDate = LocalDate.now(); // 获取当前的 LocalDate
list.stream()
.forEach(activity1 -> {
if (nowDate.isBefore(activity1.getStartTime())) {
// 假设 Activity 类有一个 setStatus 方法来设置状态
activity1.setStatus(0); // 设置新的状态
activityMapper.edit(activity1); // 保存修改后的对象
}
else if(nowDate.isAfter(activity1.getEndTime())) {
// 假设 Activity 类有一个 setStatus 方法来设置状态
activity1.setStatus(2); // 设置新的状态
activityMapper.edit(activity1); // 保存修改后的对象
}
else {activity1.setStatus(1);
activityMapper.edit(activity1);
}
});
Date nowDate = new Date();
for (Activity activity1 : list) {
Date startTime = activity1.getStartTime();
Date endTime = activity1.getEndTime();
if (nowDate.before(startTime)) {
activity1.setStatus(0); // 设置状态为 0
} else if (nowDate.after(endTime)) {
activity1.setStatus(2); // 设置状态为 2
} else {
activity1.setStatus(1); // 设置状态为 1
}
// 保存修改后的对象
activityMapper.edit(activity1);
}
// 返回分页信息
return new PageInfo<>(list);
}
}

18
src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java

@ -11,18 +11,24 @@ import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.CachePut;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.authentication.BadCredentialsException;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.Authentication;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Transactional
@Service
@RequiredArgsConstructor
@CacheConfig(cacheNames = "admin")
public class AdminServiceImpl implements AdminService {
@Autowired
private SecurityConfig securityConfig;
@ -36,27 +42,28 @@ public class AdminServiceImpl implements AdminService {
public int add(Admin admin) {
return adminMapper.insert(admin);
}
@CacheEvict(value = "admin",allEntries = true)
@Override
public int edit(Admin admin) {
return adminMapper.update(admin);
}
@Cacheable(key="#root.method.name")
@Override
public Admin findById(Integer adminId) {
return adminMapper.selectById(adminId);
}
@Cacheable(key="#root.method.name")
@Override
public Admin findByUsername(String username) {
return adminMapper.selectByName(username);
}
@Cacheable(key="#root.method.name")
@Override
public List<Admin> search(Admin admin) {
return adminMapper.select(admin);
}
@Cacheable(key="#root.method.name + ':'+ #pageNum + '-' + #pageSize + '-' + #admin.hashCode() ")
@Override
public PageInfo<Admin> searchForPage(Integer pageNum, Integer pageSize, Admin admin) {
PageHelper.startPage(pageNum, pageSize);
@ -64,7 +71,6 @@ public class AdminServiceImpl implements AdminService {
return new PageInfo<>(list);
}
@Override
public Admin login(Admin admin) throws Exception {
System.out.println("第一步");

18
src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java

@ -10,12 +10,18 @@ import com.example.demo.sevice.AuditService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.RequiredArgsConstructor;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.CachePut;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Transactional
@Service
@RequiredArgsConstructor
@CacheConfig(cacheNames = "audit")
public class AuditServiceImpl implements AuditService {
private final AuditMapper auditMapper;
@ -23,29 +29,29 @@ public class AuditServiceImpl implements AuditService {
public int add(Audit audit) {
return auditMapper.insert(audit);
}
@CacheEvict(value = "audit",allEntries = true)
@Override
public int edit(Audit audit) {
return auditMapper.update(audit);
}
@Cacheable(key="#root.method.name")
@Override
public List<Audit> search(Audit audit) {
return auditMapper.select(audit);
}
@Cacheable(key="#root.method.name + ':'+ #pageNum + '-' + #pageSize + '-' + #audit.hashCode() ")
@Override
public PageInfo<Audit> searchForPage(Integer pageNum, Integer pageSize, Audit audit) {
PageHelper.startPage(pageNum,pageSize);
List<Audit> list= auditMapper.select(audit);
return new PageInfo<>(list);
}
@Cacheable(key="#root.method.name")
@Override
public List<ConsumeDetail> searchForDetail(ConsumeDetail consumeDetail) {
return auditMapper.selectCon(consumeDetail);
}
@Cacheable(key="#root.method.name + ':'+ #pageNum + '-' + #pageSize + '-' + #consumeDetail.hashCode() ")
@Override
public PageInfo<ConsumeDetail> searchForConsumeDetail(Integer pageNum, Integer pageSize, ConsumeDetail consumeDetail) {
PageHelper.startPage(pageNum,pageSize);

11
src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java

@ -14,6 +14,9 @@ import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.CachePut;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -23,11 +26,13 @@ import java.util.List;
@Service
@Transactional
@RequiredArgsConstructor
@CacheConfig(cacheNames = "consume")
public class ConsumeServiceImpl implements ConsumeService {
@Autowired
ConsumeMapper consumeMapper;
private final UserMapper userMapper;
@Override
//新增消费记录
public int insert(Detail detail) throws Exception {
@ -51,22 +56,24 @@ public class ConsumeServiceImpl implements ConsumeService {
result =consumeMapper.insert(detail);
return result;
}
@Cacheable(key="#root.method.name")
@Override
public User getByUserId(Integer userId) {
return consumeMapper.getByUserId(userId);
}
@Cacheable(key="#root.method.name")
@Override
public Admin getByadminId(Integer adminId) {
return consumeMapper.getByadminId(adminId);
}
@Cacheable(key="#root.method.name")
@Override
public List<DetailVo> search(DetailVo detailVo) {
return consumeMapper.select(detailVo);
}
@Cacheable(key="#root.method.name + ':'+ #pageNum + '-' + #pageSize + '-' + #detailVo.hashCode() ")
@Override
public PageInfo<DetailVo> searchForPage(Integer pageNum, Integer pageSize, DetailVo detailVo) {
PageHelper.startPage(pageNum, pageSize);

12
src/main/java/com/example/demo/serviceImpl/DetailServiceImpl.java

@ -8,6 +8,9 @@ import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.CachePut;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -16,10 +19,14 @@ import java.util.List;
@Service
@Transactional
@RequiredArgsConstructor
@CacheConfig(cacheNames = "detail")
public class DetailServiceImpl implements DetailService {
@Autowired
private DetailMapper detailMapper;
@Override
public int add(Detail detail) {
return detailMapper.add(detail);
@ -29,18 +36,19 @@ public class DetailServiceImpl implements DetailService {
public int edit(Detail detail) {
return 0;
}
@Cacheable(key="#root.method.name")
@Override
public Detail getDetail(int id) {
return null;
}
@Cacheable(key="#root.method.name")
@Override
public List<Detail> getAllDetail(Detail detail) {
return detailMapper.select(detail);
}
@Cacheable(key="#root.method.name + ':'+ #pageNum + '-' + #pageSize + '-' + #detail.hashCode() ")
@Override
public PageInfo<Detail> getDetailByPage(int pageNum, int pageSize, Detail detail) {
PageHelper.startPage(pageNum, pageSize);

6
src/main/java/com/example/demo/serviceImpl/ProductServiceImpl.java

@ -5,12 +5,16 @@ import com.example.demo.domain.entity.Product;
import com.example.demo.mapper.ProductMapper;
import com.example.demo.sevice.ProductService;
import lombok.RequiredArgsConstructor;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Transactional
@Service
@RequiredArgsConstructor
@CacheConfig(cacheNames = "product")
public class ProductServiceImpl implements ProductService {
private final ProductMapper productMapper;
@Override

16
src/main/java/com/example/demo/serviceImpl/RateServiceImpl.java

@ -8,16 +8,19 @@ import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.RequiredArgsConstructor;
import org.springframework.cache.annotation.*;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Transactional
@Service
@RequiredArgsConstructor
@CacheConfig(cacheNames = "rate")
public class RateServiceImpl implements RateService {
private final RateMapper rateMapper;
@Override
public int add(Rate rate) {
return rateMapper.insert(rate);
@ -25,10 +28,13 @@ public class RateServiceImpl implements RateService {
@Transactional
@Override
@CacheEvict(value = "rate",allEntries = true)
public int edit(Rate rate) {
return rateMapper.update(rate);
}
// @CachePut(key="#root.method.name + ':'+ #pageNum + '-' + #pageSize + '-' + #rate.hashCode() ")
@CacheEvict(value = "rate",allEntries = true)
@Override
public void delete(Integer rateId) throws Exception {
int result = rateMapper.deleteById(rateId);
@ -41,12 +47,12 @@ public class RateServiceImpl implements RateService {
public Rate getById(Integer rateId) {
return rateMapper.selectById(rateId);
}
@Cacheable(key="#root.method.name")
@Override
public List<Rate> search(Rate rate) {
return rateMapper.select(rate);
}
@Cacheable(key="#root.method.name + ':'+ #pageNum + '-' + #pageSize + '-' + #rate.hashCode() ")
@Override
public PageInfo<Rate> searchForPage(Integer pageNum, Integer pageSize, Rate rate) {
PageHelper.startPage(pageNum, pageSize);

17
src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java

@ -14,14 +14,19 @@ import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.CachePut;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.List;
@Transactional
@Service
@RequiredArgsConstructor
@CacheConfig(cacheNames = "recharge")
public class RechargeServiceImpl implements RechargeService {
@Autowired
private RechargeMapper rechargeMapper;
@ -33,6 +38,8 @@ public class RechargeServiceImpl implements RechargeService {
private UserMapper userMapper;
@Override
@Transactional
public int add(Recharge recharge) throws Exception {
// return rechargeMapper.insert(recharge);
@ -125,29 +132,29 @@ public class RechargeServiceImpl implements RechargeService {
return result;
}
@CacheEvict(value = "recharge",allEntries = true)
@Override
public int edit(Recharge recharge) throws Exception {
recharge.setFlag(0);
return rechargeMapper.update(recharge);
}
@Override
public Recharge findById(int id) throws Exception {
return null;
}
@Cacheable(key="#root.method.name")
@Override
public List<RechargeVo> search(RechargeVo rechargeVo) {
return rechargeMapper.select(rechargeVo);
}
@Cacheable(key="#root.method.name + ':'+ #pageNum + '-' + #pageSize + '-' + #rechargeVo.hashCode() ")
@Override
public PageInfo<RechargeVo> searchForPage(Integer pageNum, Integer pageSize, RechargeVo rechargeVo) {
PageHelper.startPage(pageNum, pageSize);
List<RechargeVo> list= rechargeMapper.select(rechargeVo);
return new PageInfo<>(list);
}
@Cacheable(key="#root.method.name")
@Override
public int getAllByjwAndup(String jwcode) {

14
src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java

@ -8,6 +8,9 @@ import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.RequiredArgsConstructor;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -17,18 +20,21 @@ import java.util.List;
@RequiredArgsConstructor
@Transactional
@Service
@CacheConfig(cacheNames = "refund")
public class RefundServiceImpl implements RefundService {
private final RefundMapper refundMapper;
@Override
public int add(Detail detail) {
return refundMapper.insert(detail);
}
@Override
public int addAudit(Detail detail) {
return refundMapper.insertAudit(detail);
}
//自动软删除数据加更新数据
@Override
public void edit(Detail newDetail) {
@ -62,7 +68,7 @@ public class RefundServiceImpl implements RefundService {
public boolean existsByContactId(Integer contactId) {
return refundMapper.existsByContactId(contactId);
}
@CacheEvict(value = "refund",allEntries = true)
@Override
public int softDelete(Integer detailId) {
return refundMapper.update(detailId);
@ -72,12 +78,12 @@ public class RefundServiceImpl implements RefundService {
public Detail selectByDetailId(Integer detailId) {
return refundMapper.selectByDetailId(detailId);
}
@Cacheable(key="#root.method.name")
@Override
public List<Detail> search(Detail detail) {
return refundMapper.select(detail);
}
@Cacheable(key="#root.method.name + ':'+ #pageNum + '-' + #pageSize + '-' + #detail.hashCode() ")
@Override
public PageInfo<Detail> searchForPage(Integer pageNum, Integer pageSize, Detail detail) {
PageHelper.startPage(pageNum, pageSize);

21
src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java

@ -8,6 +8,8 @@ import com.example.demo.domain.vo.SumCoin;
import com.example.demo.mapper.StatisticsMapper;
import com.example.demo.sevice.StatisticsService;
import lombok.RequiredArgsConstructor;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -17,9 +19,10 @@ import java.util.List;
@RequiredArgsConstructor
@Transactional
@Service
@CacheConfig(cacheNames = "statistics")
public class StatisticsServiceImpl implements StatisticsService {
private final StatisticsMapper statisticsMapper;
@Cacheable(key="#root.method.name")
@Override
public Statistics getStatistics() {
Statistics statistics = new Statistics();
@ -72,7 +75,7 @@ public class StatisticsServiceImpl implements StatisticsService {
return statistics;
}
@Cacheable(key="#root.method.name")
@Override
public Statisticss stats() {
Statisticss a = new Statisticss();
@ -84,26 +87,26 @@ public class StatisticsServiceImpl implements StatisticsService {
}
//----------------------------------------------------------------------------------------------------//
@Cacheable(key="#root.method.name")
public SumCoin getSumCoin(){
return statisticsMapper.getSumCoin();
}
@Cacheable(key="#root.method.name")
@Override
public SumCoin getYearConsumeCoin() {
return statisticsMapper.getYearConsumeCoin();
}
@Cacheable(key="#root.method.name")
@Override
public SumCoin getDayConsumeCoin() {
return statisticsMapper.getDayConsumeCoin();
}
@Cacheable(key="#root.method.name")
@Override
public List<SumCoin> getMediuPayCoin() {
return statisticsMapper.getMediuPayCoin();
}
@Cacheable(key="#root.method.name")
@Override
public List<SumCoin> getMediuConsumeCoin() {
return statisticsMapper.getMediuConsumeCoin();
@ -111,12 +114,12 @@ public class StatisticsServiceImpl implements StatisticsService {
public SumCoin getMess(Integer jwcode){
return statisticsMapper.getMess(jwcode);
}
@Cacheable(key="#root.method.name")
@Override
public List<SumCoin> getMediumAreaPay() {
return statisticsMapper.getMediumAreaPay();
}
@Cacheable(key="#root.method.name")
@Override
public List<SumCoin> getMediumAreaConsume() {
return statisticsMapper.getMediumAreaConsume();

7
src/main/java/com/example/demo/serviceImpl/UserDetailServiceImpl.java

@ -5,17 +5,22 @@ import com.example.demo.domain.entity.Admin;
import com.example.demo.mapper.AdminMapper;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
@Transactional
@Service
@RequiredArgsConstructor
@CacheConfig(cacheNames = "userDetail")
public class UserDetailServiceImpl implements UserDetailsService {
@Autowired
private AdminMapper adminMapper;
@Cacheable(key="#root.method.name")
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
Admin admin=adminMapper.selectByName(username);

8
src/main/java/com/example/demo/serviceImpl/UserServiceImpl.java

@ -8,17 +8,20 @@ import com.example.demo.sevice.UserSevice;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.RequiredArgsConstructor;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import java.util.List;
@Transactional
@Service
@RequiredArgsConstructor
@CacheConfig(cacheNames = "user")
public class UserServiceImpl implements UserSevice {
private final UserMapper userMapper;
@Override
public List<UserVo> search(UserVo userVo) throws Exception{
User sUser = userMapper.select(userVo.getJwcode());
@ -27,7 +30,6 @@ public class UserServiceImpl implements UserSevice {
}
return userMapper.selectA(userVo);
}
@Override
public PageInfo<User> searchForPage(Integer pageNum, Integer pageSize, User user) {
PageHelper.startPage(pageNum,pageSize);

4
src/main/java/com/example/demo/sevice/ActivityService.java

@ -4,6 +4,8 @@ package com.example.demo.sevice;
import com.example.demo.domain.entity.Activity;
import com.github.pagehelper.PageInfo;
import org.springframework.cache.annotation.Cacheable;
import java.util.List;
@ -15,4 +17,6 @@ public interface ActivityService {
List<Activity> search(Activity activity);
@Cacheable(key="#root.method.name")
PageInfo<Activity> searchForPage(Integer pageNum, Integer pageSize, Activity activity);
}

18
src/main/resources/application.yml

@ -16,6 +16,23 @@ spring:
password: 'AGX4Z3YMxiCG3GR2'
application:
name: demo
cache:
type: redis
redis:
time-to-live: 3600000
use-key-prefix: true
cache-null-values: true
data:
redis:
host: 127.0.0.1
port: 6379
timeout: 1000
lettuce:
pool:
max-active: 20 # 连接池最大连接数(使用负值表示没有限制)
max-wait: -1 # 最大阻塞等待时间(负数表示没有限制)
max-idle: 5 # 连接池中最大空闲连接
min-idle: 0 # 连接池中最小空闲连接
mybatis:
configuration:
map-underscore-to-camel-case: true
@ -23,3 +40,4 @@ mybatis:
upload:
path: D:/gold1/
Loading…
Cancel
Save