diff --git a/src/main/java/com/example/demo/controller/AuditController.java b/src/main/java/com/example/demo/controller/AuditController.java index 7ac10ea..d5db15b 100644 --- a/src/main/java/com/example/demo/controller/AuditController.java +++ b/src/main/java/com/example/demo/controller/AuditController.java @@ -17,7 +17,7 @@ import java.util.Arrays; @RequiredArgsConstructor @Slf4j @CrossOrigin -public class AuditController { +public class AuditController { private final AuditService auditService; @PostMapping("/add") 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 b0416d3..f487928 100644 --- a/src/main/java/com/example/demo/domain/entity/Activity.java +++ b/src/main/java/com/example/demo/domain/entity/Activity.java @@ -23,7 +23,6 @@ public class Activity implements Serializable { private BigDecimal rechargeRatio; private Date createTime; private Integer activityFlag; - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @DateTimeFormat(pattern = "yyyy-MM-dd") private String name; private Integer status; 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 b372bb1..c065c3b 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; - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd") private Date createTime; private String jwcode; diff --git a/src/main/java/com/example/demo/domain/entity/Audit.java b/src/main/java/com/example/demo/domain/entity/Audit.java index 53b287b..df59c7b 100644 --- a/src/main/java/com/example/demo/domain/entity/Audit.java +++ b/src/main/java/com/example/demo/domain/entity/Audit.java @@ -17,7 +17,7 @@ public class Audit { private Integer adminId; private String status; private Integer AuditFlag; - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd") private Date createTime; private Date startDate; 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 64a9328..6c13239 100644 --- a/src/main/java/com/example/demo/domain/entity/Detail.java +++ b/src/main/java/com/example/demo/domain/entity/Detail.java @@ -34,7 +34,7 @@ public class Detail implements Serializable { private Integer status; private String updateType; private Integer detailFlag; - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd") private Date createTime; diff --git a/src/main/java/com/example/demo/domain/entity/Rate.java b/src/main/java/com/example/demo/domain/entity/Rate.java index 18c1368..d6a1bd5 100644 --- a/src/main/java/com/example/demo/domain/entity/Rate.java +++ b/src/main/java/com/example/demo/domain/entity/Rate.java @@ -15,8 +15,7 @@ public class Rate { private Date endTime; private String currency; private String exchangeRate; - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") - @DateTimeFormat(pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; private Date updateTime; private Integer adminId; diff --git a/src/main/java/com/example/demo/domain/entity/Recharge.java b/src/main/java/com/example/demo/domain/entity/Recharge.java index 104e9b3..5b0a49d 100644 --- a/src/main/java/com/example/demo/domain/entity/Recharge.java +++ b/src/main/java/com/example/demo/domain/entity/Recharge.java @@ -26,7 +26,7 @@ public class Recharge { private String remark; private Integer flag; - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd") private Date createTime; private Date startDate; diff --git a/src/main/java/com/example/demo/domain/entity/User.java b/src/main/java/com/example/demo/domain/entity/User.java index 1462ba9..af2d4e1 100644 --- a/src/main/java/com/example/demo/domain/entity/User.java +++ b/src/main/java/com/example/demo/domain/entity/User.java @@ -26,4 +26,9 @@ public class User { private Date createTime; private String signature; private BigDecimal sumgold; + private BigDecimal buyJb; + private BigDecimal coreJb; + private BigDecimal free6; + private BigDecimal free12; + private Date lastTime; } 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 7222421..527dde8 100644 --- a/src/main/java/com/example/demo/domain/vo/DetailVo.java +++ b/src/main/java/com/example/demo/domain/vo/DetailVo.java @@ -51,4 +51,6 @@ public class DetailVo { // private String productName; private String userName; + private Date startDate; + private Date endDate; } diff --git a/src/main/java/com/example/demo/domain/vo/UserVo.java b/src/main/java/com/example/demo/domain/vo/UserVo.java index 956751b..c4b2301 100644 --- a/src/main/java/com/example/demo/domain/vo/UserVo.java +++ b/src/main/java/com/example/demo/domain/vo/UserVo.java @@ -1,7 +1,9 @@ package com.example.demo.domain.vo; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; import java.math.BigDecimal; import java.util.Date; @@ -9,6 +11,8 @@ import java.util.Date; @Data @NoArgsConstructor public class UserVo { + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd") private String jwcode; private String name; private Date firstRechargeDate; @@ -18,7 +22,10 @@ public class UserVo { private Integer spendTimes; private Integer pendingRechargeTimes; private Integer pendingSpendTimes; - private Integer sumgold; + private BigDecimal free6; + private BigDecimal free12; + private BigDecimal coreJb; + private BigDecimal buyJb ; } diff --git a/src/main/java/com/example/demo/mapper/ActivityMapper.java b/src/main/java/com/example/demo/mapper/ActivityMapper.java index 6d8421e..0db5165 100644 --- a/src/main/java/com/example/demo/mapper/ActivityMapper.java +++ b/src/main/java/com/example/demo/mapper/ActivityMapper.java @@ -49,15 +49,21 @@ public interface ActivityMapper { //模糊查询--根据活动id查询活动信息 @Select({ "" - }) List select(Activity activity); // diff --git a/src/main/java/com/example/demo/mapper/ConsumeMapper.java b/src/main/java/com/example/demo/mapper/ConsumeMapper.java index 2c7a4ce..6d36fca 100644 --- a/src/main/java/com/example/demo/mapper/ConsumeMapper.java +++ b/src/main/java/com/example/demo/mapper/ConsumeMapper.java @@ -51,9 +51,7 @@ public interface ConsumeMapper { "and product.name like concat('%',#{productName},'%')", "and detail.consume_platform like concat('%',#{consumePlatform},'%')", "and detail.consume_type like concat('%',#{consumeType},'%')", - "", - "and detail.create_time between #{searchStartTime} and #{searchEndTime}", - "", + "AND detail.create_time BETWEEN #{startDate} AND #{endDate}", "", "ORDER BY detail.create_time DESC", "" diff --git a/src/main/java/com/example/demo/mapper/RefundMapper.java b/src/main/java/com/example/demo/mapper/RefundMapper.java index dade36a..3ffc33e 100644 --- a/src/main/java/com/example/demo/mapper/RefundMapper.java +++ b/src/main/java/com/example/demo/mapper/RefundMapper.java @@ -75,6 +75,7 @@ public interface RefundMapper { "AND d.free_coin = #{freeCoin}", "AND d.task_coin = #{taskCoin}", "AND d.remark LIKE CONCAT('%', #{remark}, '%')", + "AND d.create_time BETWEEN #{startDate} AND #{endDate}", "AND d.admin_id = #{adminId}", "AND a.area LIKE CONCAT('%', #{adminArea}, '%')", // admin表字段过滤 "AND a.name LIKE CONCAT('%', #{adminName}, '%')", // admin表字段过滤 diff --git a/src/main/java/com/example/demo/mapper/UserMapper.java b/src/main/java/com/example/demo/mapper/UserMapper.java index 8c314b9..7684b7d 100644 --- a/src/main/java/com/example/demo/mapper/UserMapper.java +++ b/src/main/java/com/example/demo/mapper/UserMapper.java @@ -32,24 +32,22 @@ public interface UserMapper { @Select({ "SELECT\n" + - " u.jwcode,\n" + - " u.name,\n" + - " MIN(d.create_time) AS first_recharge_date, -- 首充日期\n" + - " SUM(CASE WHEN d.update_type = '充值' THEN d.recharge_coin ELSE 0 END) AS total_recharge_gold, -- 历史金币总数(充值)\n" + - " SUM(CASE WHEN d.update_type = '消费' THEN d.recharge_coin ELSE 0 END) AS total_spend_gold, -- 历史金币总数(消费)\n" + - " COUNT(CASE WHEN d.update_type = '充值' THEN 1 END) AS recharge_times, -- 充值次数\n" + - " COUNT(CASE WHEN d.update_type = '消费' THEN 1 END) AS spend_times, -- 消费次数\n" + - " COUNT(CASE WHEN a.status = 0 AND d.update_type = '充值' THEN 1 END) AS pending_recharge_times, -- 待审核的充值次数\n" + - " COUNT(CASE WHEN a.status = 0 AND d.update_type = '消费' THEN 1 END) AS pending_spend_times, -- 待审核的消费次数\n" + - " u.sumgold\n" + + " u.*,\n" + + " MIN(d.create_time) AS first_recharge_date, \n" + + " SUM(CASE WHEN d.update_type = '充值' THEN d.recharge_coin ELSE 0 END) AS total_recharge_gold, \n" + + " SUM(CASE WHEN d.update_type = '消费' THEN d.recharge_coin ELSE 0 END) AS total_spend_gold, \n" + + " COUNT(CASE WHEN d.update_type = '充值' THEN 1 END) AS recharge_times, \n" + + " COUNT(CASE WHEN d.update_type = '消费' THEN 1 END) AS spend_times, \n" + + " COUNT(CASE WHEN a.status = 0 AND d.update_type = '充值' THEN 1 END) AS pending_recharge_times, \n" + + " COUNT(CASE WHEN a.status = 0 AND d.update_type = '消费' THEN 1 END) AS pending_spend_times \n" + "FROM\n" + " user u\n" + "LEFT JOIN\n" + " detail d ON u.jwcode = d.jwcode\n" + "LEFT JOIN\n" + - " audit a ON d.detail_id = a.detail_id AND a.audit_flag = 1 -- 仅考虑有效且待审核的记录\n" + + " audit a ON d.detail_id = a.detail_id AND a.audit_flag = 1\n" + "WHERE\n" + - " d.detail_flag = 1 AND u.jwcode = #{jwcode} -- 仅考虑有效记录\n" + + " d.detail_flag = 1 AND u.jwcode =#{jwcode}\n" + "GROUP BY\n" + " u.jwcode, u.name" }) diff --git a/src/main/java/com/example/demo/security/SecurityConfig.java b/src/main/java/com/example/demo/security/SecurityConfig.java index d646582..bc554fc 100644 --- a/src/main/java/com/example/demo/security/SecurityConfig.java +++ b/src/main/java/com/example/demo/security/SecurityConfig.java @@ -61,9 +61,9 @@ public class SecurityConfig { request .requestMatchers( HttpMethod.POST, // 用户不登录就可以访问的路径 - "/admin/login","/upload").permitAll() + "/admin/login","/upload/**").permitAll() .requestMatchers( - "/error","alipay/**" + "/error","alipay/**","/upload/**" ).permitAll() .anyRequest().authenticated() // 其它路径,必须要登录后才能访问 ); diff --git a/src/main/java/com/example/demo/security/TokenFilter.java b/src/main/java/com/example/demo/security/TokenFilter.java index e86db73..99b9d7d 100644 --- a/src/main/java/com/example/demo/security/TokenFilter.java +++ b/src/main/java/com/example/demo/security/TokenFilter.java @@ -88,7 +88,7 @@ public class TokenFilter extends OncePerRequestFilter { System.out.println(isUploadOrRechargeRequest); // 如果是上传请求或添加新的充值请求,则跳过令牌检查 if (isUploadOrRechargeRequest) { - filterChain.doFilter(request, response); + filterChain.doFilter(requestWrapper, response); System.out.println(response+"000000000000"); return; } diff --git a/src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java index 7bd8f8a..9ccc4fc 100644 --- a/src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java @@ -29,7 +29,7 @@ public class AuditServiceImpl implements AuditService { public int add(Audit audit) { return auditMapper.insert(audit); } - @CacheEvict(value = "recharge",allEntries = true) + @CacheEvict(value = {"audit", "recharge"}, allEntries = true) @Override public int edit(Audit audit) { return auditMapper.update(audit); diff --git a/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java index dfd8b17..fd572e5 100644 --- a/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java @@ -21,6 +21,8 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.Month; import java.util.List; import java.util.UUID; @@ -42,12 +44,31 @@ public class ConsumeServiceImpl implements ConsumeService { BigDecimal taskGold1 =detail.getTaskCoin(); String jwcode = detail.getJwcode(); User user = userMapper.get(jwcode); - BigDecimal Sumgold =user.getSumgold(); + BigDecimal buyJb =user.getBuyJb(); - Sumgold = Sumgold.add(freeGold1).add(paidGold1).add(taskGold1); + buyJb = buyJb.add(paidGold1); + +// 设置更新后的Sumgold回到user对象 + user.setBuyJb(buyJb); + LocalDate now = LocalDate.now(); + +// 判断当前日期是在六月之前还是之后 + Month currentMonth = now.getMonth(); + boolean isBeforeJune = currentMonth.getValue() < Month.JUNE.getValue(); + boolean isAfterJune = currentMonth.getValue() > Month.JUNE.getValue(); + +// 根据月份更新 free6 或 free12 + if (isBeforeJune) { + // 如果是六月前,更新 free6 + BigDecimal free6 = user.getFree6().add(freeGold1); + user.setFree6(free6); + } else if (isAfterJune) { + // 如果是六月后,更新 free12 + BigDecimal free12 = user.getFree12().add(freeGold1); + user.setFree12(free12); + } // 设置更新后的Sumgold回到user对象 - user.setSumgold(Sumgold); System.out.println(user+"----------------------------------------------------------"); int result = userMapper.update(user); if (result != 1) { diff --git a/src/main/java/com/example/demo/serviceImpl/RateServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/RateServiceImpl.java index 5bbce72..abb58dc 100644 --- a/src/main/java/com/example/demo/serviceImpl/RateServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/RateServiceImpl.java @@ -20,7 +20,7 @@ import java.util.List; public class RateServiceImpl implements RateService { private final RateMapper rateMapper; - + @CacheEvict(value = "rate",allEntries = true) @Override public int add(Rate rate) { return rateMapper.insert(rate); diff --git a/src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java index ed02b4a..e1eb44f 100644 --- a/src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java @@ -22,6 +22,8 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.Month; import java.util.List; import java.util.UUID; @@ -41,7 +43,7 @@ public class RechargeServiceImpl implements RechargeService { @Override @Transactional - + @CacheEvict(value = "recharge",allEntries = true) public int add(Recharge recharge) throws Exception { // return rechargeMapper.insert(recharge); @@ -110,12 +112,30 @@ public class RechargeServiceImpl implements RechargeService { BigDecimal paidGold1 =recharge.getPaidGold(); BigDecimal freeGold1 =recharge.getFreeGold(); User user = userMapper.select(jwcode); - BigDecimal Sumgold =user.getSumgold(); + BigDecimal buyJb =user.getBuyJb(); - Sumgold = Sumgold.add(freeGold1).add(paidGold1); + buyJb = buyJb.add(paidGold1); // 设置更新后的Sumgold回到user对象 - user.setSumgold(Sumgold); + user.setBuyJb(buyJb); + LocalDate now = LocalDate.now(); + +// 判断当前日期是在六月之前还是之后 + Month currentMonth = now.getMonth(); + boolean isBeforeJune = currentMonth.getValue() < Month.JUNE.getValue(); + boolean isAfterJune = currentMonth.getValue() > Month.JUNE.getValue(); + +// 根据月份更新 free6 或 free12 + if (isBeforeJune) { + // 如果是六月前,更新 free6 + BigDecimal free6 = user.getFree6().add(freeGold1); + user.setFree6(free6); + } else if (isAfterJune) { + // 如果是六月后,更新 free12 + BigDecimal free12 = user.getFree12().add(freeGold1); + user.setFree12(free12); + } + System.out.println(user+"----------------------------------------------------------"); result = userMapper.update(user); if (result != 1) { diff --git a/src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java index 982ebdc..1c72a21 100644 --- a/src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java @@ -21,7 +21,7 @@ import java.util.UUID; @RequiredArgsConstructor @Transactional @Service -//@CacheConfig(cacheNames = "refund") +@CacheConfig(cacheNames = "refund") public class RefundServiceImpl implements RefundService { private final RefundMapper refundMapper;