diff --git a/pom.xml b/pom.xml
index 1b4bc17..af6a606 100644
--- a/pom.xml
+++ b/pom.xml
@@ -18,6 +18,11 @@
21
+
+
+ org.springframework.boot
+ spring-boot-starter-thymeleaf
+
@@ -44,7 +49,16 @@
org.springframework.boot
spring-boot-starter-data-redis
-
+
+ org.springframework.boot
+ spring-boot-starter-cache
+
+
+ org.apache.commons
+ commons-pool2
+
+
+
@@ -91,6 +105,11 @@
3.0.4
test
+
+ com.fasterxml.jackson.datatype
+ jackson-datatype-jsr310
+ 2.17.3
+
diff --git a/src/main/java/com/example/demo/DemoApplication.java b/src/main/java/com/example/demo/DemoApplication.java
index 8d3e628..03172a5 100644
--- a/src/main/java/com/example/demo/DemoApplication.java
+++ b/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) {
diff --git a/src/main/java/com/example/demo/Util/JWTUtil.java b/src/main/java/com/example/demo/Util/JWTUtil.java
index 1dfea3e..7fb5671 100644
--- a/src/main/java/com/example/demo/Util/JWTUtil.java
+++ b/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";
diff --git a/src/main/java/com/example/demo/Util/TokenPayload.java b/src/main/java/com/example/demo/Util/TokenPayload.java
index 3febe81..cb1559d 100644
--- a/src/main/java/com/example/demo/Util/TokenPayload.java
+++ b/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;
diff --git a/src/main/java/com/example/demo/config/RedisConfig.java b/src/main/java/com/example/demo/config/RedisConfig.java
new file mode 100644
index 0000000..1359656
--- /dev/null
+++ b/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;
+
+ }
+
+
+
+}
diff --git a/src/main/java/com/example/demo/controller/UploadController.java b/src/main/java/com/example/demo/controller/UploadController.java
index 423990e..d77e8e2 100644
--- a/src/main/java/com/example/demo/controller/UploadController.java
+++ b/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";
}
}
+}
diff --git a/src/main/java/com/example/demo/domain/entity/Activity.java b/src/main/java/com/example/demo/domain/entity/Activity.java
index e4e026c..b0416d3 100644
--- a/src/main/java/com/example/demo/domain/entity/Activity.java
+++ b/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;
- }
}
diff --git a/src/main/java/com/example/demo/domain/entity/Detail.java b/src/main/java/com/example/demo/domain/entity/Detail.java
index 90c532e..f8661b2 100644
--- a/src/main/java/com/example/demo/domain/entity/Detail.java
+++ b/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;
diff --git a/src/main/java/com/example/demo/domain/vo/DetailVo.java b/src/main/java/com/example/demo/domain/vo/DetailVo.java
index 767b1ea..225b484 100644
--- a/src/main/java/com/example/demo/domain/vo/DetailVo.java
+++ b/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;
diff --git a/src/main/java/com/example/demo/mapper/StatisticsMapper.java b/src/main/java/com/example/demo/mapper/StatisticsMapper.java
index 9fdfa8a..80baea1 100644
--- a/src/main/java/com/example/demo/mapper/StatisticsMapper.java
+++ b/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();
diff --git a/src/main/java/com/example/demo/security/SecurityConfig.java b/src/main/java/com/example/demo/security/SecurityConfig.java
index aff3e1d..1562d39 100644
--- a/src/main/java/com/example/demo/security/SecurityConfig.java
+++ b/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() // 其它路径,必须要登录后才能访问
);
diff --git a/src/main/java/com/example/demo/serviceImpl/ActivityServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/ActivityServiceImpl.java
index 423fbed..d242ad1 100644
--- a/src/main/java/com/example/demo/serviceImpl/ActivityServiceImpl.java
+++ b/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 search(Activity activity) {
return activityMapper.select(activity);
}
+ @Cacheable(key="#root.method.name + ':'+ #pageNum + '-' + #pageSize + '-' + #activity.hashCode() ")
+ @Override
-
-
- public PageInfo searchForPage(Integer pageNum, Integer pageSize, Activity activity) {
+// public PageInfo searchForPage(Integer pageNum, Integer pageSize, Activity activity) {
+//// PageHelper.startPage(pageNum, pageSize);
+//// List list = activityMapper.select(activity);
+//// return new PageInfo<>(list);
+//
// PageHelper.startPage(pageNum, pageSize);
// List 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 searchForPage(Integer pageNum, Integer pageSize, Activity activity) {
PageHelper.startPage(pageNum, pageSize);
List 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);
}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java
index 7e5ca60..41023fa 100644
--- a/src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java
+++ b/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 search(Admin admin) {
return adminMapper.select(admin);
}
-
+ @Cacheable(key="#root.method.name + ':'+ #pageNum + '-' + #pageSize + '-' + #admin.hashCode() ")
@Override
public PageInfo 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("第一步");
diff --git a/src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java
index f3abbe3..3b5f3d9 100644
--- a/src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java
+++ b/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 search(Audit audit) {
return auditMapper.select(audit);
}
-
+ @Cacheable(key="#root.method.name + ':'+ #pageNum + '-' + #pageSize + '-' + #audit.hashCode() ")
@Override
public PageInfo searchForPage(Integer pageNum, Integer pageSize, Audit audit) {
PageHelper.startPage(pageNum,pageSize);
List list= auditMapper.select(audit);
return new PageInfo<>(list);
}
-
+ @Cacheable(key="#root.method.name")
@Override
public List searchForDetail(ConsumeDetail consumeDetail) {
return auditMapper.selectCon(consumeDetail);
}
-
+ @Cacheable(key="#root.method.name + ':'+ #pageNum + '-' + #pageSize + '-' + #consumeDetail.hashCode() ")
@Override
public PageInfo searchForConsumeDetail(Integer pageNum, Integer pageSize, ConsumeDetail consumeDetail) {
PageHelper.startPage(pageNum,pageSize);
diff --git a/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java
index 5398000..a4b3f6d 100644
--- a/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java
+++ b/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 search(DetailVo detailVo) {
return consumeMapper.select(detailVo);
}
-
+ @Cacheable(key="#root.method.name + ':'+ #pageNum + '-' + #pageSize + '-' + #detailVo.hashCode() ")
@Override
public PageInfo searchForPage(Integer pageNum, Integer pageSize, DetailVo detailVo) {
PageHelper.startPage(pageNum, pageSize);
diff --git a/src/main/java/com/example/demo/serviceImpl/DetailServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/DetailServiceImpl.java
index 39d5e6d..f2821aa 100644
--- a/src/main/java/com/example/demo/serviceImpl/DetailServiceImpl.java
+++ b/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 getAllDetail(Detail detail) {
return detailMapper.select(detail);
}
-
+ @Cacheable(key="#root.method.name + ':'+ #pageNum + '-' + #pageSize + '-' + #detail.hashCode() ")
@Override
public PageInfo getDetailByPage(int pageNum, int pageSize, Detail detail) {
PageHelper.startPage(pageNum, pageSize);
diff --git a/src/main/java/com/example/demo/serviceImpl/ProductServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/ProductServiceImpl.java
index c92ade0..2ca842e 100644
--- a/src/main/java/com/example/demo/serviceImpl/ProductServiceImpl.java
+++ b/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
diff --git a/src/main/java/com/example/demo/serviceImpl/RateServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/RateServiceImpl.java
index 0056cd2..5bbce72 100644
--- a/src/main/java/com/example/demo/serviceImpl/RateServiceImpl.java
+++ b/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 search(Rate rate) {
return rateMapper.select(rate);
}
-
+ @Cacheable(key="#root.method.name + ':'+ #pageNum + '-' + #pageSize + '-' + #rate.hashCode() ")
@Override
public PageInfo searchForPage(Integer pageNum, Integer pageSize, Rate rate) {
PageHelper.startPage(pageNum, pageSize);
diff --git a/src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java
index 053f8c6..76331c8 100644
--- a/src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java
+++ b/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 search(RechargeVo rechargeVo) {
return rechargeMapper.select(rechargeVo);
}
-
+ @Cacheable(key="#root.method.name + ':'+ #pageNum + '-' + #pageSize + '-' + #rechargeVo.hashCode() ")
@Override
public PageInfo searchForPage(Integer pageNum, Integer pageSize, RechargeVo rechargeVo) {
PageHelper.startPage(pageNum, pageSize);
List list= rechargeMapper.select(rechargeVo);
return new PageInfo<>(list);
}
+ @Cacheable(key="#root.method.name")
@Override
public int getAllByjwAndup(String jwcode) {
diff --git a/src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java
index ebb3626..53b1c4c 100644
--- a/src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java
+++ b/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 search(Detail detail) {
return refundMapper.select(detail);
}
-
+ @Cacheable(key="#root.method.name + ':'+ #pageNum + '-' + #pageSize + '-' + #detail.hashCode() ")
@Override
public PageInfo searchForPage(Integer pageNum, Integer pageSize, Detail detail) {
PageHelper.startPage(pageNum, pageSize);
diff --git a/src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java
index b52bc8f..bab255f 100644
--- a/src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java
+++ b/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 getMediuPayCoin() {
return statisticsMapper.getMediuPayCoin();
}
-
+ @Cacheable(key="#root.method.name")
@Override
public List 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 getMediumAreaPay() {
return statisticsMapper.getMediumAreaPay();
}
-
+ @Cacheable(key="#root.method.name")
@Override
public List getMediumAreaConsume() {
return statisticsMapper.getMediumAreaConsume();
diff --git a/src/main/java/com/example/demo/serviceImpl/UserDetailServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/UserDetailServiceImpl.java
index f59dad2..6120c85 100644
--- a/src/main/java/com/example/demo/serviceImpl/UserDetailServiceImpl.java
+++ b/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);
diff --git a/src/main/java/com/example/demo/serviceImpl/UserServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/UserServiceImpl.java
index 569c339..aa78d43 100644
--- a/src/main/java/com/example/demo/serviceImpl/UserServiceImpl.java
+++ b/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 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 searchForPage(Integer pageNum, Integer pageSize, User user) {
PageHelper.startPage(pageNum,pageSize);
diff --git a/src/main/java/com/example/demo/sevice/ActivityService.java b/src/main/java/com/example/demo/sevice/ActivityService.java
index a5b51a8..e86833b 100644
--- a/src/main/java/com/example/demo/sevice/ActivityService.java
+++ b/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 search(Activity activity);
+ @Cacheable(key="#root.method.name")
+ PageInfo searchForPage(Integer pageNum, Integer pageSize, Activity activity);
}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 990d911..0529e4e 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -16,10 +16,28 @@ 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
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
upload:
- path: D:/gold1/
\ No newline at end of file
+ path: D:/gold1/
+