Browse Source

Merge remote-tracking branch 'origin/dev' into dev

# Conflicts:
#	src/main/java/com/example/demo/controller/AuditController.java
#	src/main/java/com/example/demo/domain/vo/Meium.java
#	src/main/java/com/example/demo/mapper/StatisticsMapper.java
detached
lv123 7 months ago
parent
commit
267c946097
  1. 101
      src/main/java/com/example/demo/controller/AuditController.java
  2. 31
      src/main/java/com/example/demo/domain/entity/Activity.java
  3. 1
      src/main/java/com/example/demo/domain/entity/Audit.java
  4. 4
      src/main/java/com/example/demo/domain/vo/Meium.java
  5. 2
      src/main/java/com/example/demo/domain/vo/RechargeVo.java
  6. 3
      src/main/java/com/example/demo/mapper/DetailMapper.java
  7. 2
      src/main/java/com/example/demo/mapper/RechargeMapper.java
  8. 245
      src/main/java/com/example/demo/mapper/StatisticsMapper.java
  9. 78
      src/main/java/com/example/demo/serviceImpl/ActivityServiceImpl.java
  10. 55
      src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java
  11. 3
      src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java
  12. 59
      src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java
  13. 1
      src/main/java/com/example/demo/sevice/AuditService.java

101
src/main/java/com/example/demo/controller/AuditController.java

@ -17,6 +17,8 @@ import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.Month;
import java.util.Arrays;
@RestController
@ -41,23 +43,110 @@ public class AuditController {
return Result.error(e.getMessage());
}
}
@PostMapping("/goldedit")
public Result goldedit(@RequestBody Audit audit) throws Exception {
auditService.goldedit(audit);
return Result.success();
}
@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());
Detail detail = detailMapper.selectByDetailId(audit.getRefundId());
BigDecimal rechargeCoin = detail.getRechargeCoin();
BigDecimal taskCoin = detail.getTaskCoin();
BigDecimal freeCoin = detail.getFreeCoin();
// User user = userMapper.selectByJwcode(detail.getJwcode());
// user.setBuyJb(user.getBuyJb().add(rechargeCoin));
// user.setCoreJb(user.getCoreJb().add(taskCoin));
// user.setFree6(user.getFree6().add(freeCoin));
// userMapper.update(user);
User user = userMapper.selectByJwcode(detail.getJwcode());
user.setBuyJb(user.getBuyJb().add(rechargeCoin));
user.setCoreJb(user.getCoreJb().add(taskCoin));
LocalDate now = LocalDate.now();
Month currentMonth = now.getMonth();
// 判断月份范围并返回对应值
if (currentMonth.getValue() <= 6) {
user.setFree6(user.getFree6().add(freeCoin)); // 在1月到6月时返回的值
} else {
user.setFree12(user.getFree12().add(freeCoin)); // 在7月到12月时返回的值
}
userMapper.update(user);
}
// 充值驳回
if (audit.getStatus() == 2 && audit.getRechargeId() != null) {
// 获取 detail1 对象
Detail detail1 = detailMapper.selectByDetailId(audit.getDetailId());
if (detail1 == null) {
throw new RuntimeException("驳回失败!未找到对应的 Detail 信息,audit.getDetailId() = " + audit.getDetailId());
}
// 获取金币数据
BigDecimal rechargeCoin1 = detail1.getRechargeCoin();
BigDecimal taskCoin1 = detail1.getTaskCoin();
BigDecimal freeCoin1 = detail1.getFreeCoin();
// 获取 user1 对象
User user1 = userMapper.selectByJwcode(detail1.getJwcode());
if (user1 == null) {
throw new RuntimeException("驳回失败!未找到对应的用户信息,detail1.getJwcode() = " + detail1.getJwcode());
}
// 检查并更新用户金币
if (rechargeCoin1 != null) {
if (user1.getBuyJb().compareTo(rechargeCoin1) < 0) {
throw new RuntimeException("驳回失败!该用户剩余 BuyJb 金币不足扣除数量!");
} else {
user1.setBuyJb(user1.getBuyJb().subtract(rechargeCoin1));
}
}
if (taskCoin1 != null) {
if (user1.getCoreJb().compareTo(taskCoin1) < 0) {
throw new RuntimeException("驳回失败!该用户剩余 CoreJb 金币不足扣除数量!");
} else {
user1.setCoreJb(user1.getCoreJb().subtract(taskCoin1));
}
}
// 判断当前月份
LocalDate now1 = LocalDate.now();
Month currentMonth1 = now1.getMonth();
// 检查 free6 free12 的金币是否足够
if (freeCoin1 != null) {
if (currentMonth1.getValue() <= 6) {
if (user1.getFree6().compareTo(freeCoin1) < 0) {
throw new RuntimeException("驳回失败!该用户剩余 free6 金币不足扣除数量!");
} else {
user1.setFree6(user1.getFree6().subtract(freeCoin1));
}
} else {
if (user1.getFree12().compareTo(freeCoin1) < 0) {
throw new RuntimeException("驳回失败!该用户剩余 free12 金币不足扣除数量!");
} else {
user1.setFree12(user1.getFree12().subtract(freeCoin1));
}
}
}
// 更新用户信息到数据库
userMapper.update(user1);
}
return Result.success();
}
@PostMapping
public Result search(@RequestBody Page page){

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

@ -21,34 +21,35 @@ public class Activity implements Serializable {
private Integer activityId;
private Integer adminId;
private String dept;
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
private LocalDateTime startTime;
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
private LocalDateTime endTime;
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date startTime;
private Date endTime;
private String activityName;
private BigDecimal rechargeRatio;
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
private LocalDateTime createTime;
private Date createTime;
private Integer activityFlag;
@DateTimeFormat(pattern = "yyyy-MM-dd")
private String name;
private Integer status;
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
private LocalDateTime startDate;
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
private LocalDateTime endDate;
private Date startDate;
private Date endDate;
private String token; // 新增的token字段
private String adminName;
private String freeGold;
}

1
src/main/java/com/example/demo/domain/entity/Audit.java

@ -25,5 +25,6 @@ public class Audit {
private String reson;
private Integer detailId;
private String token;
private Recharge recharge;
}

4
src/main/java/com/example/demo/domain/vo/Meium.java

@ -25,12 +25,10 @@ public class Meium implements Serializable {
private BigDecimal taskSumCoin;
private String area;
private String store;
private BigDecimal totalRechargeSum;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private BigDecimal totalRechargeSum;
private Date searchStartTime;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date searchEndTime;
private String updateType;
private String type;

2
src/main/java/com/example/demo/domain/vo/RechargeVo.java

@ -40,4 +40,6 @@ public class RechargeVo {
private Integer auditId;
private String token;
private Integer detailId;
}

3
src/main/java/com/example/demo/mapper/DetailMapper.java

@ -26,7 +26,8 @@ public interface DetailMapper {
@Select({
"SELECT * from detail where detail_id =#{detailId}"
})
Detail selectByRefundId(Integer detail_id);
Detail selectByDetailId(Integer detail_id);
@Select({
"<script>",
"select detail.*,admin.name,admin.area,user.name as uname,audit.status from detail",

2
src/main/java/com/example/demo/mapper/RechargeMapper.java

@ -32,7 +32,7 @@ public interface RechargeMapper {
@Select({
"<script>",
"SELECT DISTINCT user.`name` as user_name , recharge.*,activity.activity_name,audit.`status`,audit.audit_id,audit.reson, admin.name,admin.area FROM recharge",
"SELECT DISTINCT user.`name` as user_name , recharge.*,activity.activity_name,audit.`status`,audit.audit_id,audit.reson, admin.name,admin.area,audit.detail_id FROM recharge",
"INNER JOIN audit ON recharge.recharge_id = audit.recharge_id",
"INNER JOIN `user` ON recharge.jwcode = `user`.jwcode",
"INNER JOIN activity on recharge.activity_id = activity.activity_id",

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

@ -9,6 +9,8 @@ import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
@ -184,8 +186,6 @@ public interface StatisticsMapper {
// "ORDER BY DATE_FORMAT(create_time, '%Y-%m') DESC "})
// List<SumCoin> getMediuPayCoin();
// 本年 ---充值
@Select({
"SELECT m.month,",
" COALESCE(SUM(d.recharge_coin), 0) AS rechargeSumCoin,",
@ -196,7 +196,7 @@ public interface StatisticsMapper {
" FROM (",
" SELECT 0 AS n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3",
" UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7",
" UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10 UNION ALL SELECT 11",
" UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10",
" ) AS numbers",
") AS m",
"LEFT JOIN detail d ON DATE_FORMAT(d.create_time, '%Y-%m') = m.month AND d.update_type = '充值'",
@ -205,7 +205,6 @@ public interface StatisticsMapper {
})
List<SumCoin> getMediuPayCoin();
//本年--消费
@Select({
"SELECT m.month,",
" COALESCE(SUM(d.recharge_coin), 0) AS rechargeSumCoin,",
@ -216,7 +215,7 @@ public interface StatisticsMapper {
" FROM (",
" SELECT 0 AS n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3",
" UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7",
" UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10 UNION ALL SELECT 11",
" UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10",
" ) AS numbers",
") AS m",
"LEFT JOIN detail d ON DATE_FORMAT(d.create_time, '%Y-%m') = m.month AND d.update_type = '消费'",
@ -224,183 +223,6 @@ public interface StatisticsMapper {
"ORDER BY m.month DESC"
})
List<SumCoin> getMediuConsumeCoin();
// 本月 ---充值
// @Select({
// "SELECT DATE(d.create_time) as day,",
// " COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.recharge_coin ELSE 0 END), 0) AS rechargeSumCoin,",
// " COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.free_coin ELSE 0 END), 0) AS freeSumCoin,",
// " COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.task_coin ELSE 0 END), 0) AS taskSumCoin",
// "FROM detail d",
// "WHERE d.update_type = '充值'",
// " AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})",
// "GROUP BY DATE(d.create_time)",
// "ORDER BY DATE(d.create_time)"
// })
// List<SumCoin> getMediuPayCoinyue(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
@Select({
"SELECT m.day,",
" COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.recharge_coin ELSE 0 END), 0) AS rechargeSumCoin,",
" COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.free_coin ELSE 0 END), 0) AS freeSumCoin,",
" COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.task_coin ELSE 0 END), 0) AS taskSumCoin",
"FROM (",
" SELECT DATE_ADD(#{searchStartTime}, INTERVAL n DAY) AS day",
" FROM (",
" SELECT a.N + b.N * 10 AS n",
" FROM (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) a,",
" (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) b",
" ) numbers",
" WHERE DATE_ADD(#{searchStartTime}, INTERVAL n DAY) <= #{searchEndTime}",
") m",
"LEFT JOIN detail d ON DATE(d.create_time) = m.day AND d.update_type = '充值'",
"GROUP BY m.day",
"ORDER BY m.day"
})
List<SumCoin> getMediuPayCoinyue(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
@Select({
"SELECT m.day,",
" COALESCE(SUM(CASE WHEN d.update_type = '消费' THEN d.recharge_coin ELSE 0 END), 0) AS rechargeSumCoin,",
" COALESCE(SUM(CASE WHEN d.update_type = '消费' THEN d.free_coin ELSE 0 END), 0) AS freeSumCoin,",
" COALESCE(SUM(CASE WHEN d.update_type = '消费' THEN d.task_coin ELSE 0 END), 0) AS taskSumCoin",
"FROM (",
" SELECT DATE_ADD(#{searchStartTime}, INTERVAL n DAY) AS day",
" FROM (",
" SELECT a.N + b.N * 10 AS n",
" FROM (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) a,",
" (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) b",
" ) numbers",
" WHERE DATE_ADD(#{searchStartTime}, INTERVAL n DAY) <= #{searchEndTime}",
") m",
"LEFT JOIN detail d ON DATE(d.create_time) = m.day AND d.update_type = '消费'",
"GROUP BY m.day",
"ORDER BY m.day"
})
List<SumCoin> getMediuCounsumeCoinyue(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
//本周--充值
@Select({
"SELECT",
" CASE DAYOFWEEK(m.day)",
" WHEN 2 THEN '星期一'",
" WHEN 3 THEN '星期二'",
" WHEN 4 THEN '星期三'",
" WHEN 5 THEN '星期四'",
" WHEN 6 THEN '星期五'",
" WHEN 7 THEN '星期六'",
" WHEN 1 THEN '星期天'",
" END AS dayofweek,",
" COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.recharge_coin ELSE 0 END), 0) AS rechargeSumCoin,",
" COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.free_coin ELSE 0 END), 0) AS freeSumCoin,",
" COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.task_coin ELSE 0 END), 0) AS taskSumCoin",
"FROM (",
" SELECT DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY) + INTERVAL n DAY AS day",
" FROM (SELECT 0 AS n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6) numbers",
") m",
"LEFT JOIN detail d ON DATE(d.create_time) = m.day AND d.update_type = '充值'",
"GROUP BY m.day",
"ORDER BY m.day"
})
List<SumCoin> getMediuPayCoinweek();
//本周--消费
@Select({
"SELECT",
" CASE DAYOFWEEK(m.day)",
" WHEN 2 THEN '星期一'",
" WHEN 3 THEN '星期二'",
" WHEN 4 THEN '星期三'",
" WHEN 5 THEN '星期四'",
" WHEN 6 THEN '星期五'",
" WHEN 7 THEN '星期六'",
" WHEN 1 THEN '星期天'",
" END AS dayofweek,",
" COALESCE(SUM(CASE WHEN d.update_type = '消费' THEN d.recharge_coin ELSE 0 END), 0) AS rechargeSumCoin,",
" COALESCE(SUM(CASE WHEN d.update_type = '消费' THEN d.free_coin ELSE 0 END), 0) AS freeSumCoin,",
" COALESCE(SUM(CASE WHEN d.update_type = '消费' THEN d.task_coin ELSE 0 END), 0) AS taskSumCoin",
"FROM (",
" SELECT DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY) + INTERVAL n DAY AS day",
" FROM (SELECT 0 AS n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6) numbers",
") m",
"LEFT JOIN detail d ON DATE(d.create_time) = m.day AND d.update_type = '消费'",
"GROUP BY m.day",
"ORDER BY m.day"
})
List<SumCoin> getMediuConsumeCoinweek();
//今天--消费充值
@Select({
"SELECT DATE_FORMAT(create_time, '%Y-%m-%d') AS day,",
" NOW() AS currentTimestamp,",
" SUM(recharge_coin) AS rechargeSumCoin,",
" SUM(free_coin) AS freeSumCoin,",
" SUM(task_coin) AS taskSumCoin",
"FROM `detail`",
"WHERE DATE(create_time) = CURDATE() AND update_type = '充值'"
})
List<SumCoin> getMediuPayCoinday();
@Select({
"SELECT DATE_FORMAT(create_time, '%Y-%m-%d') AS day,",
" NOW() AS currentTimestamp,",
" SUM(recharge_coin) AS rechargeSumCoin,",
" SUM(free_coin) AS freeSumCoin,",
" SUM(task_coin) AS taskSumCoin",
"FROM `detail`",
"WHERE DATE(create_time) = CURDATE() AND update_type = '消费'"
})
List<SumCoin> getMediuConsumeCoinday();
//给定时间段--消费充值
@Select({
"SELECT m.day,",
" COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.recharge_coin ELSE 0 END), 0) AS rechargeSumCoin,",
" COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.free_coin ELSE 0 END), 0) AS freeSumCoin,",
" COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.task_coin ELSE 0 END), 0) AS taskSumCoin",
"FROM (",
" SELECT DATE_ADD(#{searchStartTime}, INTERVAL n DAY) AS day",
" FROM (",
" SELECT a.N + b.N * 10 AS n",
" FROM (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) a,",
" (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) b",
" ) numbers",
" WHERE DATE_ADD(#{searchStartTime}, INTERVAL n DAY) <= #{searchEndTime}",
") m",
"LEFT JOIN detail d ON DATE(d.create_time) = m.day AND d.update_type = '充值'",
"GROUP BY m.day",
"ORDER BY m.day"
})
List<SumCoin> getMediuPayCoin1(SumCoin sumCoin);
@Select({
"SELECT m.day,",
" COALESCE(SUM(CASE WHEN d.update_type = '消费' THEN d.recharge_coin ELSE 0 END), 0) AS rechargeSumCoin,",
" COALESCE(SUM(CASE WHEN d.update_type = '消费' THEN d.free_coin ELSE 0 END), 0) AS freeSumCoin,",
" COALESCE(SUM(CASE WHEN d.update_type = '消费' THEN d.task_coin ELSE 0 END), 0) AS taskSumCoin",
"FROM (",
" SELECT DATE_ADD(#{searchStartTime}, INTERVAL n DAY) AS day",
" FROM (",
" SELECT a.N + b.N * 10 AS n",
" FROM (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) a,",
" (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) b",
" ) numbers",
" WHERE DATE_ADD(#{searchStartTime}, INTERVAL n DAY) <= #{searchEndTime}",
") m",
"LEFT JOIN detail d ON DATE(d.create_time) = m.day AND d.update_type = '消费'",
"GROUP BY m.day",
"ORDER BY m.day"
})
List<SumCoin> getMediuConsumeCoin2(SumCoin sumCoin);
@Select({"SELECT today.jwcode," ,
"today.rechargeSumCoin AS todayRecharge," ,
@ -446,26 +268,47 @@ List<SumCoin> getMediuPayCoin1(SumCoin sumCoin);
@Select({
"SELECT m.month,",
" COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.recharge_coin ELSE 0 END), 0) AS rechargeSumCoin,",
" COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.free_coin ELSE 0 END), 0) AS freeSumCoin,",
" COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.task_coin ELSE 0 END), 0) AS taskSumCoin",
"FROM (",
" SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL n MONTH), '%Y-%m') AS month",
" FROM (",
" SELECT 0 AS n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3",
" UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7",
" UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10",
" ) AS numbers",
") AS m",
"LEFT JOIN detail d ON DATE_FORMAT(d.create_time, '%Y-%m') = m.month",
"<if test='searchStartTime != null and searchEndTime != null'>",
"and detail.create_time between #{searchStartTime} and #{searchEndTime}",
"</if>",
"GROUP BY m.month",
"ORDER BY m.month DESC"
})
List<SumCoin> getMediu();
@Select({
"SELECT m.week,",
"SELECT m.month,",
" COALESCE(SUM(CASE WHEN d.update_type = '消费' THEN d.recharge_coin ELSE 0 END), 0) AS xrechargeSumCoin,",
" COALESCE(SUM(CASE WHEN d.update_type = '消费' THEN d.free_coin ELSE 0 END), 0) AS xfreeSumCoin,",
" COALESCE(SUM(CASE WHEN d.update_type = '消费' THEN d.task_coin ELSE 0 END), 0) AS xtaskSumCoin",
"FROM (",
" SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL n WEEK), '%Y-%u') AS week",
" SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL n MONTH), '%Y-%m') AS month",
" FROM (",
" SELECT 0 AS n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3",
" UNION ALL SELECT 4 UNION ALL SELECT 5",
" UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7",
" UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10",
" ) AS numbers",
") AS m",
"LEFT JOIN detail d ON DATE_FORMAT(d.create_time, '%Y-%u') = m.week",
"LEFT JOIN detail d ON DATE_FORMAT(d.create_time, '%Y-%m') = m.month",
"<if test='searchStartTime != null and searchEndTime != null'>",
"AND d.create_time BETWEEN #{searchStartTime} AND #{searchEndTime}",
"and detail.create_time between #{searchStartTime} and #{searchEndTime}",
"</if>",
"GROUP BY m.week",
"ORDER BY m.week DESC"
"GROUP BY m.month",
"ORDER BY m.month DESC"
})
List<SumCoin> getMediu2();
@ -483,7 +326,7 @@ List<SumCoin> getMediuPayCoin1(SumCoin sumCoin);
"FROM detail d",
"right JOIN admin ad ON ad.admin_id = d.admin_id",
"<if test='searchStartTime != null and searchEndTime != null'>",
"AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})",
"and d.create_time between #{searchStartTime} and #{searchEndTime}",
"</if>",
"GROUP BY ad.area, ad.store",
"order by freeSumCoin desc",
@ -503,7 +346,7 @@ List<SumCoin> getMediuPayCoin1(SumCoin sumCoin);
"FROM detail d",
"right JOIN admin ad ON ad.admin_id = d.admin_id",
"<if test='searchStartTime != null and searchEndTime != null'>",
"AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})",
"and d.create_time between #{searchStartTime} and #{searchEndTime}",
"</if>",
"GROUP BY ad.area, ad.store",
"order by rechargeSumCoin desc",
@ -523,7 +366,7 @@ List<SumCoin> getMediuPayCoin1(SumCoin sumCoin);
"FROM detail d",
"right JOIN admin ad ON ad.admin_id = d.admin_id",
"<if test='searchStartTime != null and searchEndTime != null'>",
"AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})",
"and d.create_time between #{searchStartTime} and #{searchEndTime}",
"</if>",
"GROUP BY ad.area, ad.store",
"order by taskSumCoin desc",
@ -543,7 +386,7 @@ List<SumCoin> getMediuPayCoin1(SumCoin sumCoin);
"FROM detail d",
"right JOIN admin ad ON ad.admin_id = d.admin_id",
"<if test='searchStartTime != null and searchEndTime != null'>",
"AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})",
"and d.create_time between #{searchStartTime} and #{searchEndTime}",
"</if>",
"GROUP BY ad.area, ad.store",
"order by totalRechargeSum desc",
@ -563,7 +406,7 @@ List<SumCoin> getMediuPayCoin1(SumCoin sumCoin);
"FROM detail d",
"right JOIN admin ad ON ad.admin_id = d.admin_id",
"<if test='searchStartTime != null and searchEndTime != null'>",
"AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})",
"and d.create_time between #{searchStartTime} and #{searchEndTime}",
"</if>",
"GROUP BY ad.area, ad.store",
"order by freeSumCoin asc",
@ -583,7 +426,7 @@ List<SumCoin> getMediuPayCoin1(SumCoin sumCoin);
"FROM detail d",
"right JOIN admin ad ON ad.admin_id = d.admin_id",
"<if test='searchStartTime != null and searchEndTime != null'>",
"AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})",
"and d.create_time between #{searchStartTime} and #{searchEndTime}",
"</if>",
"GROUP BY ad.area, ad.store",
"order by rechargeSumCoin asc",
@ -603,7 +446,7 @@ List<SumCoin> getMediuPayCoin1(SumCoin sumCoin);
"FROM detail d",
"right JOIN admin ad ON ad.admin_id = d.admin_id",
"<if test='searchStartTime != null and searchEndTime != null'>",
"AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})",
"and d.create_time between #{searchStartTime} and #{searchEndTime}",
"</if>",
"GROUP BY ad.area, ad.store",
"order by taskSumCoin asc",
@ -615,7 +458,7 @@ List<SumCoin> getMediuPayCoin1(SumCoin sumCoin);
"SELECT ad.area,",
" ad.store,",
" SUM(CASE WHEN d.update_type = '消费' THEN d.recharge_coin ELSE 0 END) AS rechargeSumCoin,",
" SUM(CASE WHEN d.update_type sddfergrfdfbdgrhyrrhtgetre dfdtgEGTwqcdefwerbtgrytyrh = '消费' THEN d.free_coin ELSE 0 END) AS freeSumCoin,",
" SUM(CASE WHEN d.update_type = '消费' THEN d.free_coin ELSE 0 END) AS freeSumCoin,",
" SUM(CASE WHEN d.update_type = '消费' THEN d.task_coin ELSE 0 END) AS taskSumCoin,",
" (SUM(CASE WHEN d.update_type = '消费' THEN d.recharge_coin ELSE 0 END) +",
" SUM(CASE WHEN d.update_type = '消费' THEN d.free_coin ELSE 0 END) +",
@ -623,11 +466,11 @@ List<SumCoin> getMediuPayCoin1(SumCoin sumCoin);
"FROM detail d",
"right JOIN admin ad ON ad.admin_id = d.admin_id",
"<if test='searchStartTime != null and searchEndTime != null'>",
"AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})",
"and d.create_time between #{searchStartTime} and #{searchEndTime}",
"</if>",
"GROUP BY ad.area, ad.store",
"order by totalRechargeSum asc",
"</script>"
})
List<Meium> getPay(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
}
List<Meium> getPay(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
}

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

@ -50,24 +50,49 @@ public class ActivityServiceImpl implements ActivityService {
}
@Cacheable(key="#root.method.name + ':'+ #pageNum + '-' + #pageSize + '-' + #activity.hashCode() ")
@Override
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);
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);
});
return new PageInfo<>(list);
}
}
// @Cacheable(key="#root.method.name + ':'+ #pageNum + '-' + #pageSize + '-' + #activity.hashCode() ")
// @Override
// 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);
// Date nowDate = new Date();
// list.forEach(activity1 -> {
// // 假设 getStartTime() getEndTime() 返回的是 java.util.Date 类型
// LocalDateTime nowDate = LocalDateTime.now();
//
// for (Activity activity1 : list) {
// Date startTime = activity1.getStartTime();
// Date endTime = activity1.getEndTime();
//
// // 使用 Date 类的 before after 方法进行比较
// if (nowDate.before(startTime)) {
// if (nowDate.isBefore(startTime)) {
// activity1.setStatus(0); // 设置状态为 0
// } else if (nowDate.after(endTime)) {
// } else if (nowDate.isAfter(endTime)) {
// activity1.setStatus(2); // 设置状态为 2
// } else {
// activity1.setStatus(1); // 设置状态为 1
@ -75,32 +100,9 @@ public class ActivityServiceImpl implements ActivityService {
//
// // 保存修改后的对象
// activityMapper.edit(activity1);
// });
// }
//
// // 返回分页信息
// return new PageInfo<>(list);
// }
//}
public PageInfo<Activity> searchForPage(Integer pageNum, Integer pageSize, Activity activity) {
PageHelper.startPage(pageNum, pageSize);
List<Activity> list = activityMapper.select(activity);
LocalDateTime nowDate = LocalDateTime.now();
for (Activity activity1 : list) {
LocalDateTime startTime = activity1.getStartTime();
LocalDateTime endTime = activity1.getEndTime();
if (nowDate.isBefore(startTime)) {
activity1.setStatus(0); // 设置状态为 0
} else if (nowDate.isAfter(endTime)) {
activity1.setStatus(2); // 设置状态为 2
} else {
activity1.setStatus(1); // 设置状态为 1
}
// 保存修改后的对象
activityMapper.edit(activity1);
}
// 返回分页信息
return new PageInfo<>(list);
}
}
//}

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

@ -4,8 +4,11 @@ package com.example.demo.serviceImpl;
import com.example.demo.domain.entity.Audit;
import com.example.demo.domain.entity.User;
import com.example.demo.domain.vo.ConsumeDetail;
import com.example.demo.mapper.AuditMapper;
import com.example.demo.mapper.RechargeMapper;
import com.example.demo.mapper.UserMapper;
import com.example.demo.sevice.AuditService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@ -16,12 +19,17 @@ import org.springframework.cache.annotation.Cacheable;
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;
@Transactional
@Service
@RequiredArgsConstructor
@CacheConfig(cacheNames = "audit")
public class AuditServiceImpl implements AuditService {
private final UserMapper userMapper;
private final AuditMapper auditMapper;
@CacheEvict(value = {"audit", "recharge"}, allEntries = true)
@ -36,6 +44,53 @@ public class AuditServiceImpl implements AuditService {
return auditMapper.update(audit);
}
@CacheEvict(value = {"audit", "recharge","refund"}, allEntries = true)
@Override
public int goldedit(Audit audit) throws Exception {
int result = auditMapper.update(audit);
if (result != 1) {
throw new Exception("Failed to insert recharge data");
}
Integer auditFlag = audit.getAuditFlag();
if(auditFlag == 1){
String jwcode=audit.getRecharge().getJwcode();
BigDecimal paidGold1 =audit.getRecharge().getPaidGold();
BigDecimal freeGold1 =audit.getRecharge().getFreeGold();
User user = userMapper.select(jwcode);
BigDecimal buyJb =user.getBuyJb();
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 isJune = currentMonth.getValue() == Month.JUNE.getValue();
boolean isAfterJune = currentMonth.getValue() > Month.JUNE.getValue();
// 根据月份更新 free6 free12
if (isBeforeJune||isJune) {
// 如果是六月前更新 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) {
throw new Exception("Failed to insert recharge data");
}
}
return auditMapper.update(audit);
}
@Override
public List<Audit> search(Audit audit) {
return auditMapper.select(audit);

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

@ -57,10 +57,11 @@ public class ConsumeServiceImpl implements ConsumeService {
// 判断当前日期是在六月之前还是之后
Month currentMonth = now.getMonth();
boolean isBeforeJune = currentMonth.getValue() < Month.JUNE.getValue();
boolean isJune = currentMonth.getValue() == Month.JUNE.getValue();
boolean isAfterJune = currentMonth.getValue() > Month.JUNE.getValue();
// 根据月份更新 free6 free12
if (isBeforeJune) {
if (isBeforeJune||isJune) {
// 如果是六月前更新 free6
BigDecimal free6 = user.getFree6().add(freeGold1);
user.setFree6(free6);

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

@ -92,7 +92,6 @@ public class RechargeServiceImpl implements RechargeService {
}
detail.setJwcode(JwCode);
detail.setActivityId(activityId);
detail.setTaskCoin(paidGold);
detail.setRechargeCoin(rechargeGold);
detail.setFreeCoin(freeGold);
detail.setRechargeWay(rechargeWay);
@ -109,35 +108,35 @@ public class RechargeServiceImpl implements RechargeService {
throw new Exception("Failed to insert another entity");
}
BigDecimal paidGold1 =recharge.getPaidGold();
BigDecimal freeGold1 =recharge.getFreeGold();
User user = userMapper.select(jwcode);
BigDecimal buyJb =user.getBuyJb();
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);
}
System.out.println(user+"----------------------------------------------------------");
result = userMapper.update(user);
// BigDecimal paidGold1 =recharge.getPaidGold();
// BigDecimal freeGold1 =recharge.getFreeGold();
// User user = userMapper.select(jwcode);
// BigDecimal buyJb =user.getBuyJb();
//
// 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);
// }
//
// System.out.println(user+"----------------------------------------------------------");
// result = userMapper.update(user);
if (result != 1) {
throw new Exception("Failed to insert another entity");
}

1
src/main/java/com/example/demo/sevice/AuditService.java

@ -11,6 +11,7 @@ import java.util.List;
public interface AuditService {
int add (Audit audit);
int edit(Audit audit);
int goldedit(Audit audit) throws Exception;
List<Audit> search(Audit audit) ;
PageInfo<Audit> searchForPage(Integer pageNum, Integer pageSize, Audit audit);
List<ConsumeDetail> searchForDetail(ConsumeDetail consumeDetail);

Loading…
Cancel
Save