From 3939b5b650072545a4aedd21ec5902f39042ec9b Mon Sep 17 00:00:00 2001 From: huangqizhen Date: Sun, 15 Dec 2024 09:44:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8E=E7=AB=AF=E6=95=B4=E5=90=88=E6=A8=A1?= =?UTF-8?q?=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/example/demo/controller/AuditController.java | 16 +++------------- .../com/example/demo/controller/RefundController.java | 12 +++++------- src/main/java/com/example/demo/domain/entity/Admin.java | 2 +- .../java/com/example/demo/domain/vo/ConsumeDetail.java | 3 ++- src/main/java/com/example/demo/mapper/AuditMapper.java | 2 +- src/main/java/com/example/demo/mapper/RefundMapper.java | 2 +- src/main/java/com/example/demo/mapper/UserMapper.java | 2 +- .../java/com/example/demo/security/TokenFilter.java | 8 -------- .../com/example/demo/serviceImpl/AuditServiceImpl.java | 8 +++++++- .../example/demo/serviceImpl/ConsumeServiceImpl.java | 3 ++- .../com/example/demo/serviceImpl/RefundServiceImpl.java | 17 ++++++++++------- src/main/resources/application.yml | 4 ++++ 12 files changed, 37 insertions(+), 42 deletions(-) diff --git a/src/main/java/com/example/demo/controller/AuditController.java b/src/main/java/com/example/demo/controller/AuditController.java index 3998e25..03358d4 100644 --- a/src/main/java/com/example/demo/controller/AuditController.java +++ b/src/main/java/com/example/demo/controller/AuditController.java @@ -11,6 +11,7 @@ import com.example.demo.mapper.UserMapper; import com.example.demo.sevice.AuditService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.*; @@ -25,7 +26,9 @@ import java.util.Arrays; @Transactional @CrossOrigin public class AuditController { + @Autowired private UserMapper userMapper; + @Autowired private DetailMapper detailMapper; private final AuditService auditService; @PostMapping("/add") @@ -41,11 +44,6 @@ public class AuditController { @PostMapping("/edit") public Result edit(@RequestBody Audit audit){ - //先执行auditService.edit(audit); - //然后创建一个类,去接收这个audit,如果status=1 - //根据退款ID找到detail表中的记录获取到他的三种金币 - //把金币加到user表中对应的金币中 - auditService.edit(audit); if(audit.getStatus() == 1 && audit.getRefundId()!=null){ Detail detail = detailMapper.selectByRefundId(audit.getRefundId()); @@ -60,14 +58,6 @@ public class AuditController { userMapper.update(user); } return Result.success(); - // -// try { -// auditService.edit(audit); -// return Result.success(); -// }catch (Exception e){ -// log.warn(Arrays.toString(e.getStackTrace())); -// return Result.error(e.getMessage()); -// } } @PostMapping public Result search(@RequestBody Page page){ diff --git a/src/main/java/com/example/demo/controller/RefundController.java b/src/main/java/com/example/demo/controller/RefundController.java index 0ca5baf..d58475c 100644 --- a/src/main/java/com/example/demo/controller/RefundController.java +++ b/src/main/java/com/example/demo/controller/RefundController.java @@ -7,6 +7,7 @@ import com.example.demo.domain.vo.Result; import com.example.demo.sevice.RefundService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.*; @@ -15,6 +16,7 @@ import java.util.Arrays; @RestController @RequestMapping("/refund") @RequiredArgsConstructor +@Transactional @Slf4j @CrossOrigin public class RefundController { @@ -89,14 +91,10 @@ public class RefundController { @PostMapping("/search") public Result search(@RequestBody Page page) { - Integer pageNum = page.getPageNum(); - Integer pageSize = page.getPageSize(); - Detail detail = page.getDetail(); - - if (ObjectUtils.isEmpty(detail)) { - return Result.success(refundService.search(detail)); + if (ObjectUtils.isEmpty(page.getPageNum())) { + return Result.success(refundService.search(page.getDetail())); }else{ - return Result.success(refundService.searchForPage(pageNum, pageSize,detail)); + return Result.success(refundService.searchForPage(page.getPageNum(), page.getPageSize(),page.getDetail())); } } } diff --git a/src/main/java/com/example/demo/domain/entity/Admin.java b/src/main/java/com/example/demo/domain/entity/Admin.java index c065c3b..b5f0cf1 100644 --- a/src/main/java/com/example/demo/domain/entity/Admin.java +++ b/src/main/java/com/example/demo/domain/entity/Admin.java @@ -22,7 +22,7 @@ public class Admin implements UserDetails, Serializable { private Integer permission; private String area; private String adminFlag; - + private String token; @DateTimeFormat(pattern = "yyyy-MM-dd") private Date createTime; private String jwcode; diff --git a/src/main/java/com/example/demo/domain/vo/ConsumeDetail.java b/src/main/java/com/example/demo/domain/vo/ConsumeDetail.java index d4757aa..98c966c 100644 --- a/src/main/java/com/example/demo/domain/vo/ConsumeDetail.java +++ b/src/main/java/com/example/demo/domain/vo/ConsumeDetail.java @@ -9,7 +9,7 @@ import java.math.BigDecimal; import java.util.Date; @Data @NoArgsConstructor -public class ConsumeDetail { +public class ConsumeDetail { @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @DateTimeFormat(pattern = "yyyy-MM-dd") private Integer detailId; @@ -40,5 +40,6 @@ public class ConsumeDetail { private Date endDate; private Integer auditId; private String token; + private Integer refundId; } diff --git a/src/main/java/com/example/demo/mapper/AuditMapper.java b/src/main/java/com/example/demo/mapper/AuditMapper.java index 3200df2..2518a8b 100644 --- a/src/main/java/com/example/demo/mapper/AuditMapper.java +++ b/src/main/java/com/example/demo/mapper/AuditMapper.java @@ -51,7 +51,7 @@ public interface AuditMapper { List select(Audit Audit); @Select({ "" diff --git a/src/main/java/com/example/demo/mapper/UserMapper.java b/src/main/java/com/example/demo/mapper/UserMapper.java index f58c3ac..6a11ff2 100644 --- a/src/main/java/com/example/demo/mapper/UserMapper.java +++ b/src/main/java/com/example/demo/mapper/UserMapper.java @@ -83,7 +83,7 @@ public interface UserMapper { int update(User user); @Select({ - "select * from user where jwcode=#{jwode}" + "select * from user where jwcode=#{jwcode}" }) User selectByJwcode(String jwcode);// //去掉免费金币,先去6个月,再去12月 // @Update({ diff --git a/src/main/java/com/example/demo/security/TokenFilter.java b/src/main/java/com/example/demo/security/TokenFilter.java index 99b9d7d..a84f61c 100644 --- a/src/main/java/com/example/demo/security/TokenFilter.java +++ b/src/main/java/com/example/demo/security/TokenFilter.java @@ -84,14 +84,6 @@ public class TokenFilter extends OncePerRequestFilter { throws ServletException, IOException { // 使用RequestWrapper包装原始的HttpServletRequest,使其输入流可以被重复读取 RequestWrapper requestWrapper = new RequestWrapper(request); - boolean isUploadOrRechargeRequest = requestWrapper.getRequestURI().contains("upload") ; - System.out.println(isUploadOrRechargeRequest); - // 如果是上传请求或添加新的充值请求,则跳过令牌检查 - if (isUploadOrRechargeRequest) { - filterChain.doFilter(requestWrapper, response); - System.out.println(response+"000000000000"); - return; - } // 确保请求体只被读取一次 boolean hasRequestBody = "POST".equals(requestWrapper.getMethod()); System.out.println(hasRequestBody); diff --git a/src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java index 9ccc4fc..c5f9181 100644 --- a/src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java @@ -12,7 +12,6 @@ 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; @@ -25,10 +24,12 @@ import java.util.List; public class AuditServiceImpl implements AuditService { private final AuditMapper auditMapper; + @CacheEvict(value = {"audit", "recharge"}, allEntries = true) @Override public int add(Audit audit) { return auditMapper.insert(audit); } + @CacheEvict(value = {"audit", "recharge"}, allEntries = true) @Override public int edit(Audit audit) { @@ -51,6 +52,11 @@ public class AuditServiceImpl implements AuditService { public List searchForDetail(ConsumeDetail consumeDetail) { return auditMapper.selectCon(consumeDetail); } + + //问题:每次更新完数据后,redis依然是老数据,无法实时更新 + + //解决方案:除了查询操作之外,所有的操纵都要执行删除缓存 + @Cacheable(key="#root.method.name + ':'+ #pageNum + '-' + #pageSize + '-' + #consumeDetail.hashCode() ") @Override public PageInfo searchForConsumeDetail(Integer pageNum, Integer pageSize, ConsumeDetail consumeDetail) { diff --git a/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java index 1537fa7..8ab2666 100644 --- a/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java @@ -15,6 +15,7 @@ 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; @@ -35,7 +36,7 @@ public class ConsumeServiceImpl implements ConsumeService { ConsumeMapper consumeMapper; private final UserMapper userMapper; - + @CacheEvict(value = "consume", allEntries = true) @Override //新增消费记录 public int insert(Detail detail) throws Exception { diff --git a/src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java index c4fcd7b..eb95106 100644 --- a/src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java @@ -25,7 +25,7 @@ import java.util.UUID; public class RefundServiceImpl implements RefundService { private final RefundMapper refundMapper; - + @CacheEvict(value = {"refund", "recharge"}, allEntries = true) @Override public int add(Detail detail) { // 生成UUID作为订单编号 @@ -34,14 +34,13 @@ public class RefundServiceImpl implements RefundService { return refundMapper.insert(detail); } - - @Override + @CacheEvict(value = {"refund", "recharge"}, allEntries = true) @Override public int addAudit(Detail detail) { return refundMapper.insertAudit(detail); } //自动软删除数据加更新数据 - @Override + @CacheEvict(value = {"refund", "recharge"}, allEntries = true) @Override public void edit(Detail newDetail) { // 获取旧的明细记录 Detail oldDetail = refundMapper.selectByDetailId(newDetail.getDetailId()); @@ -70,31 +69,35 @@ public class RefundServiceImpl implements RefundService { } @Override - public int update(Integer contactId) { + @CacheEvict(value = {"refund", "recharge"}, allEntries = true) public int update(Integer contactId) { return refundMapper.updateOrderCode(contactId); } + @Cacheable(key="#root.method.name") @Override public boolean existsByContactId(Integer contactId) { return refundMapper.existsByContactId(contactId); } - @CacheEvict(value = "refund",allEntries = true) + @CacheEvict(value = {"refund", "recharge"}, allEntries = true) @Override public int softDelete(Integer detailId) { return refundMapper.update(detailId); } + @Cacheable(key="#root.method.name") @Override public Detail selectByOrderCode(String orderCode) { return refundMapper.selectByOrderCode(orderCode); } + @Cacheable(key="#root.method.name") @Override public Detail selectByJWCODE(String jwcode) { return refundMapper.selectByJWCODE(jwcode); } + @Cacheable(key="#root.method.name") @Override public Detail selectByDetailId(Integer detailId) { return refundMapper.selectByDetailId(detailId); @@ -107,7 +110,7 @@ public class RefundServiceImpl implements RefundService { } - @Cacheable(key="#root.method.name + ':'+ #pageNum + '-' + #pageSize + '-' + #detail.hashCode() ") + @Cacheable(key="#root.method.name + ':'+ #pageNum + '-' + #pageSize + '-' + #detail.auditStatus ") @Override public PageInfo searchForPage(Integer pageNum, Integer pageSize, Detail detail) { PageHelper.startPage(pageNum, pageSize); diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 0529e4e..c93c340 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -2,6 +2,10 @@ server: port: 10010 spring: + servlet: + multipart: + max-file-size: 10MB + max-request-size: 100MB datasource: hikari: # HikariCP连接池配置 maximum-pool-size: 10 # 最大连接数