diff --git a/src/main/java/com/example/demo/controller/AuditController.java b/src/main/java/com/example/demo/controller/AuditController.java
index 6f35358..d7180be 100644
--- a/src/main/java/com/example/demo/controller/AuditController.java
+++ b/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){
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 d2fdb23..250af7f 100644
--- a/src/main/java/com/example/demo/domain/entity/Activity.java
+++ b/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;
}
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 3301803..dadb0fc 100644
--- a/src/main/java/com/example/demo/domain/entity/Audit.java
+++ b/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;
}
diff --git a/src/main/java/com/example/demo/domain/vo/Meium.java b/src/main/java/com/example/demo/domain/vo/Meium.java
index 523d002..99c9b88 100644
--- a/src/main/java/com/example/demo/domain/vo/Meium.java
+++ b/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;
diff --git a/src/main/java/com/example/demo/domain/vo/RechargeVo.java b/src/main/java/com/example/demo/domain/vo/RechargeVo.java
index 48e6b32..4de8ad1 100644
--- a/src/main/java/com/example/demo/domain/vo/RechargeVo.java
+++ b/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;
+
}
\ No newline at end of file
diff --git a/src/main/java/com/example/demo/mapper/DetailMapper.java b/src/main/java/com/example/demo/mapper/DetailMapper.java
index f3bfe86..f1f25a7 100644
--- a/src/main/java/com/example/demo/mapper/DetailMapper.java
+++ b/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({
""
})
- List getPay(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
-}
+ List getPay(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
+}
\ No newline at end of file
diff --git a/src/main/java/com/example/demo/serviceImpl/ActivityServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/ActivityServiceImpl.java
index e950746..3c62217 100644
--- a/src/main/java/com/example/demo/serviceImpl/ActivityServiceImpl.java
+++ b/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 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);
+ 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 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);
-// 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 searchForPage(Integer pageNum, Integer pageSize, Activity activity) {
- PageHelper.startPage(pageNum, pageSize);
- List 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);
- }
-}
\ No newline at end of file
+//}
\ No newline at end of file
diff --git a/src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java
index 8750afe..203536f 100644
--- a/src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java
+++ b/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 search(Audit audit) {
return auditMapper.select(audit);
diff --git a/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java
index e2bf347..451cc2d 100644
--- a/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java
+++ b/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);
diff --git a/src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java
index e1eb44f..c04306e 100644
--- a/src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java
+++ b/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");
}
diff --git a/src/main/java/com/example/demo/sevice/AuditService.java b/src/main/java/com/example/demo/sevice/AuditService.java
index 5133730..dfccdb7 100644
--- a/src/main/java/com/example/demo/sevice/AuditService.java
+++ b/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 search(Audit audit) ;
PageInfo searchForPage(Integer pageNum, Integer pageSize, Audit audit);
List searchForDetail(ConsumeDetail consumeDetail);