diff --git a/src/main/java/com/example/demo/domain/vo/coin/ConsumeUser.java b/src/main/java/com/example/demo/domain/vo/coin/ConsumeUser.java index 9ef8745..9aeeb8f 100644 --- a/src/main/java/com/example/demo/domain/vo/coin/ConsumeUser.java +++ b/src/main/java/com/example/demo/domain/vo/coin/ConsumeUser.java @@ -9,6 +9,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; +import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -39,13 +40,13 @@ public class ConsumeUser implements Serializable { @ExcelProperty("消费平台") private String payPlatform; // 消费平台 @ExcelProperty("金币总数") - private Integer sumGold; // 金币总数 - @ExcelProperty("永久金币*100") - private Integer permanentGold; // 永久金币 - @ExcelProperty("免费金币*100") - private Integer freeGold; // 免费金币 - @ExcelProperty("任务金币*100") - private Integer taskGold; // 任务金币 + private BigDecimal sumGold; // 金币总数 + @ExcelProperty("永久金币") + private BigDecimal permanentGold; // 永久金币 + @ExcelProperty("免费金币") + private BigDecimal freeGold; // 免费金币 + @ExcelProperty("任务金币") + private BigDecimal taskGold; // 任务金币 @ExcelProperty("备注") private String remark; // 备注 @ExcelProperty("提交人ID") diff --git a/src/main/java/com/example/demo/domain/vo/coin/Gold.java b/src/main/java/com/example/demo/domain/vo/coin/Gold.java index 0d68ad8..5464d67 100644 --- a/src/main/java/com/example/demo/domain/vo/coin/Gold.java +++ b/src/main/java/com/example/demo/domain/vo/coin/Gold.java @@ -5,6 +5,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; +import java.math.BigDecimal; /** * @program: gold-java @@ -21,8 +22,8 @@ import java.io.Serializable; public class Gold implements Serializable { private static final long serialVersionUID = 1L; private Integer totalNum; //总条数 - private Integer permanentGolds; // 永久金币总数 - private Integer freeGolds; // 免费金币总数 - private Integer taskGolds; // 任务金币总数 - private Integer sumGolds; + private BigDecimal permanentGolds; // 永久金币总数 + private BigDecimal freeGolds; // 免费金币总数 + private BigDecimal taskGolds; // 任务金币总数 + private BigDecimal sumGolds; } diff --git a/src/main/java/com/example/demo/domain/vo/coin/GoldUser.java b/src/main/java/com/example/demo/domain/vo/coin/GoldUser.java index ade5773..efac8d1 100644 --- a/src/main/java/com/example/demo/domain/vo/coin/GoldUser.java +++ b/src/main/java/com/example/demo/domain/vo/coin/GoldUser.java @@ -6,6 +6,7 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -29,25 +30,25 @@ public class GoldUser { @ExcelProperty("所属地区") private String market; // 所属地区 @ExcelProperty("当前金币总数") - private Integer NowSumGold; // 当前金币总数 + private BigDecimal NowSumGold; // 当前金币总数 @ExcelProperty("当前永久金币") - private Integer NowPermanentGold; // 当前永久金币 + private BigDecimal NowPermanentGold; // 当前永久金币 @ExcelProperty("当前免费金币") - private Integer NowFreeGold; // 当前免费金币 + private BigDecimal NowFreeGold; // 当前免费金币 @ExcelProperty("当前免费金币6月") - private Integer NowFreeJune; // 免费金币6月 + private BigDecimal NowFreeJune; // 免费金币6月 @ExcelProperty("当前免费金币12月") - private Integer NowFreeDecember; // 免费金币12月 + private BigDecimal NowFreeDecember; // 免费金币12月 @ExcelProperty("当前任务金币") - private Integer NowTaskGold; // 当前任务金币 + private BigDecimal NowTaskGold; // 当前任务金币 @ExcelProperty("历史金币总数") - private Integer historySumGold; // 历史金币总数 + private BigDecimal historySumGold; // 历史金币总数 @ExcelProperty("历史永久金币") - private Integer historyPermanentGold; // 历史永久金币 + private BigDecimal historyPermanentGold; // 历史永久金币 @ExcelProperty("历史免费金币") - private Integer historyFreeGold; // 历史免费金币 + private BigDecimal historyFreeGold; // 历史免费金币 @ExcelProperty("历史任务金币") - private Integer historyTaskGold; // 历史任务金币 + private BigDecimal historyTaskGold; // 历史任务金币 @ExcelProperty("充值次数") private Integer rechargeNum; // 充值次数 @ExcelProperty("消费次数") diff --git a/src/main/java/com/example/demo/domain/vo/coin/RechargeUser.java b/src/main/java/com/example/demo/domain/vo/coin/RechargeUser.java index 98fbffd..8d04023 100644 --- a/src/main/java/com/example/demo/domain/vo/coin/RechargeUser.java +++ b/src/main/java/com/example/demo/domain/vo/coin/RechargeUser.java @@ -7,6 +7,7 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -43,14 +44,14 @@ public class RechargeUser { @ExcelProperty("汇率名称") private String rateName; // 汇率名称 - @ExcelProperty("金额[分]") - private Integer money; // 金额[分] + @ExcelProperty("金额") + private BigDecimal money; // 金额[分] - @ExcelProperty("永久金币*100") - private Integer permanentGold; // 永久金币 + @ExcelProperty("永久金币") + private BigDecimal permanentGold; // 永久金币 - @ExcelProperty("免费金币*100") - private Integer freeGold; // 免费金币 + @ExcelProperty("免费金币") + private BigDecimal freeGold; // 免费金币 @ExcelProperty("支付方式") private String payModel; // 支付方式 diff --git a/src/main/java/com/example/demo/domain/vo/coin/RefundUser.java b/src/main/java/com/example/demo/domain/vo/coin/RefundUser.java index c84437d..301d281 100644 --- a/src/main/java/com/example/demo/domain/vo/coin/RefundUser.java +++ b/src/main/java/com/example/demo/domain/vo/coin/RefundUser.java @@ -7,6 +7,7 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -41,13 +42,13 @@ public class RefundUser { @ExcelProperty("退款方式") private Byte refundModel; // 退款方式(0全部/1部分退款) @ExcelProperty("金币总数") - private Integer sumGold; // 金币总数 - @ExcelProperty("永久金币*100") - private Integer permanentGold; // 永久金币 - @ExcelProperty("免费金币*100") - private Integer freeGold; // 免费金币 - @ExcelProperty("任务金币*100") - private Integer taskGold; // 任务金币 + private BigDecimal sumGold; // 金币总数 + @ExcelProperty("永久金币") + private BigDecimal permanentGold; // 永久金币 + @ExcelProperty("免费金币") + private BigDecimal freeGold; // 免费金币 + @ExcelProperty("任务金币") + private BigDecimal taskGold; // 任务金币 @ExcelProperty("退款原因") private String remark; // 退款原因 @ExcelProperty("提交人ID") diff --git a/src/main/java/com/example/demo/serviceImpl/coin/AuditServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/coin/AuditServiceImpl.java index fe239b6..348dd53 100644 --- a/src/main/java/com/example/demo/serviceImpl/coin/AuditServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/coin/AuditServiceImpl.java @@ -19,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -203,8 +204,8 @@ public class AuditServiceImpl implements AuditService { totalNum++; } // 将累加结果设置到Gold对象 - gold.setPermanentGolds(permanentGoldSum); - gold.setFreeGolds(freeGoldSum); + gold.setPermanentGolds(BigDecimal.valueOf(permanentGoldSum)); + gold.setFreeGolds(BigDecimal.valueOf(freeGoldSum)); gold.setTotalNum(totalNum); return gold; } @@ -246,10 +247,10 @@ public class AuditServiceImpl implements AuditService { totalNum++; } // 将累加结果设置到Gold对象 - gold.setPermanentGolds(permanentGoldSum); - gold.setFreeGolds(freeGoldSum); + gold.setPermanentGolds(BigDecimal.valueOf(permanentGoldSum)); + gold.setFreeGolds(BigDecimal.valueOf(freeGoldSum)); gold.setTotalNum(totalNum); - gold.setTaskGolds(taskGoldSum); + gold.setTaskGolds(BigDecimal.valueOf(taskGoldSum)); return gold; } } diff --git a/src/main/java/com/example/demo/serviceImpl/coin/ConsumeServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/coin/ConsumeServiceImpl.java index 8b53daa..1d1e8d7 100644 --- a/src/main/java/com/example/demo/serviceImpl/coin/ConsumeServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/coin/ConsumeServiceImpl.java @@ -18,6 +18,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; @@ -70,23 +71,23 @@ public class ConsumeServiceImpl implements ConsumeService { List consumeUsers = consumeMapper.selectBy(consumeUser); // 初始化累加器 - int permanentGoldSum = 0; - int freeGoldSum = 0; - int taskGoldSum = 0; + BigDecimal permanentGoldSum = BigDecimal.valueOf(0); + BigDecimal freeGoldSum = BigDecimal.valueOf(0); + BigDecimal taskGoldSum = BigDecimal.valueOf(0); // 遍历消费记录并累加金币 for (ConsumeUser user : consumeUsers) { // 累加永久金币 if (user.getPermanentGold() != null) { - permanentGoldSum += user.getPermanentGold(); + permanentGoldSum = permanentGoldSum.add(user.getPermanentGold()); } // 累加免费金币 if (user.getFreeGold() != null) { - freeGoldSum += user.getFreeGold(); + freeGoldSum = freeGoldSum.add(user.getFreeGold()); } // 累加任务金币 if (user.getTaskGold() != null) { - taskGoldSum += user.getTaskGold(); + taskGoldSum = taskGoldSum.add(user.getTaskGold()); } } @@ -119,7 +120,7 @@ public class ConsumeServiceImpl implements ConsumeService { if (consumeUser.getTaskGold() == null || consumeUser.getFreeGold() == null || consumeUser.getPermanentGold() == null) { return Result.error("金币数量不能为空"); } - if (consumeUser.getTaskGold() < 0 || consumeUser.getFreeGold() < 0 || consumeUser.getPermanentGold() < 0) { + if (consumeUser.getTaskGold().compareTo(BigDecimal.ZERO) < 0 || consumeUser.getFreeGold().compareTo(BigDecimal.ZERO) < 0 || consumeUser.getPermanentGold().compareTo(BigDecimal.ZERO) < 0) { return Result.error("金币不能为负数"); } if(consumeUser.getJwcode()<10000000||consumeUser.getJwcode()>99999999) @@ -141,37 +142,38 @@ public class ConsumeServiceImpl implements ConsumeService { userGoldRecord.setOrderCode("XF" + timestampPart + randomNumber); userGoldRecord.setJwcode(consumeUser.getJwcode()); userGoldRecord.setGoodsName(consumeUser.getGoodsName()); - userGoldRecord.setSumGold(-consumeUser.getSumGold()); - userGoldRecord.setPermanentGold(-consumeUser.getPermanentGold()); + userGoldRecord.setSumGold(-consumeUser.getSumGold().intValue()); + userGoldRecord.setPermanentGold(-consumeUser.getPermanentGold().intValue()); // 获取当前月份(1-12) int currentMonth = LocalDate.now().getMonthValue(); GoldUser gold = userMapper.selectGold(consumeUser.getJwcode().toString()); - if (consumeUser.getFreeGold() > (gold.getNowFreeDecember() + gold.getNowFreeJune()) || consumeUser.getPermanentGold() > gold.getNowPermanentGold() - || consumeUser.getTaskGold() > gold.getNowTaskGold()) { + if (consumeUser.getFreeGold().compareTo(gold.getNowFreeDecember().add(gold.getNowFreeJune())) > 0 + || consumeUser.getPermanentGold().compareTo(gold.getNowPermanentGold()) > 0 + || consumeUser.getTaskGold().compareTo(gold.getNowTaskGold()) > 0) { return Result.error("金币数量不足"); } // 根据当前月份设置对应字段 if (currentMonth >= 1 && currentMonth <= 6) { // 1-6月:设置6月额度,12月保持默认值 - if (consumeUser.getFreeGold() > gold.getNowFreeJune()) { - userGoldRecord.setFreeJune(-gold.getNowFreeJune()); - userGoldRecord.setFreeDecember(-(consumeUser.getFreeGold() - gold.getNowFreeJune())); + if (consumeUser.getFreeGold().compareTo(gold.getNowFreeJune()) > 0) { + userGoldRecord.setFreeJune(-gold.getNowFreeJune().intValue()); + userGoldRecord.setFreeDecember(-(consumeUser.getFreeGold().subtract(gold.getNowFreeJune())).intValue()); } else { - userGoldRecord.setFreeJune(-consumeUser.getFreeGold()); + userGoldRecord.setFreeJune(-consumeUser.getFreeGold().intValue()); userGoldRecord.setFreeDecember(0); } } else { // 7-12月:设置12月额度,6月保持默认值 - if (consumeUser.getFreeGold() > gold.getNowFreeDecember()) { - userGoldRecord.setFreeDecember(-gold.getNowFreeDecember()); - userGoldRecord.setFreeJune(-(consumeUser.getFreeGold() - gold.getNowFreeDecember())); + if (consumeUser.getFreeGold().compareTo(gold.getNowFreeDecember()) > 0) { + userGoldRecord.setFreeDecember(-gold.getNowFreeDecember().intValue()); + userGoldRecord.setFreeJune(-(consumeUser.getFreeGold().subtract(gold.getNowFreeDecember())).intValue()); } else { - userGoldRecord.setFreeDecember(-consumeUser.getFreeGold()); + userGoldRecord.setFreeDecember(-consumeUser.getFreeGold().intValue()); userGoldRecord.setFreeJune(0); } } //信息输入 - userGoldRecord.setTaskGold(-consumeUser.getTaskGold()); + userGoldRecord.setTaskGold(-consumeUser.getTaskGold().intValue()); userGoldRecord.setRemark(consumeUser.getRemark()); userGoldRecord.setType((byte) 1); userGoldRecord.setIsRefund((byte) 0); @@ -184,12 +186,12 @@ public class ConsumeServiceImpl implements ConsumeService { consumeMapper.updateUserGold(userGoldRecord); User user = new User(); user.setJwcode(userGoldRecord.getJwcode()); - user.setCurrentPermanentGold(gold.getNowPermanentGold() - consumeUser.getPermanentGold()); - user.setCurrentFreeJune(gold.getNowFreeJune() + userGoldRecord.getFreeJune()); - user.setCurrentFreeDecember(gold.getNowFreeDecember() + userGoldRecord.getFreeDecember()); - user.setCurrentTaskGold(gold.getNowTaskGold() - consumeUser.getTaskGold()); - user.setConsumeNum(gold.getConsumeNum() + 1); - user.setSumConsume(-(consumeUser.getPermanentGold() + consumeUser.getFreeGold() + consumeUser.getTaskGold())); + user.setCurrentPermanentGold(gold.getNowPermanentGold().intValue() - consumeUser.getPermanentGold().intValue()); + user.setCurrentFreeJune(gold.getNowFreeJune().intValue() + userGoldRecord.getFreeJune()); + user.setCurrentFreeDecember(gold.getNowFreeDecember().intValue() + userGoldRecord.getFreeDecember()); + user.setCurrentTaskGold(gold.getNowTaskGold().intValue() - consumeUser.getTaskGold().intValue()); + user.setConsumeNum(gold.getConsumeNum().intValue() + 1); + user.setSumConsume(-(consumeUser.getPermanentGold().intValue() + consumeUser.getFreeGold().intValue() + consumeUser.getTaskGold().intValue())); userMapper.updateGold(user); // if(consumeUser.getJwcode().equals(94226013)){ GoldTistV2.addCoinNew(userGoldRecord.getJwcode().toString(), 65, diff --git a/src/main/java/com/example/demo/serviceImpl/coin/GoldDetailServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/coin/GoldDetailServiceImpl.java index a6d5ddb..a145f19 100644 --- a/src/main/java/com/example/demo/serviceImpl/coin/GoldDetailServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/coin/GoldDetailServiceImpl.java @@ -21,6 +21,7 @@ import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import com.example.demo.domain.vo.coin.*; +import java.math.BigDecimal; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.HashMap; @@ -108,11 +109,11 @@ public class GoldDetailServiceImpl implements GoldDetailService { totalNum++; } // 将累加结果设置到Gold对象 - gold.setPermanentGolds(permanentGoldSum); - gold.setFreeGolds(freeGoldSum); + gold.setPermanentGolds(BigDecimal.valueOf(permanentGoldSum)); + gold.setFreeGolds(BigDecimal.valueOf(freeGoldSum)); gold.setTotalNum(totalNum); - gold.setTaskGolds(taskGoldSum); - gold.setSumGolds(permanentGoldSum+freeGoldSum+taskGoldSum); + gold.setTaskGolds(BigDecimal.valueOf(taskGoldSum)); + gold.setSumGolds(BigDecimal.valueOf(permanentGoldSum+freeGoldSum+taskGoldSum)); return gold; } diff --git a/src/main/java/com/example/demo/serviceImpl/coin/RechargeServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/coin/RechargeServiceImpl.java index 504f3b5..c7b022e 100644 --- a/src/main/java/com/example/demo/serviceImpl/coin/RechargeServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/coin/RechargeServiceImpl.java @@ -13,6 +13,8 @@ import com.github.pagehelper.PageInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.example.demo.domain.vo.coin.*; + +import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; @@ -83,18 +85,18 @@ public class RechargeServiceImpl implements RechargeService { List rechargeUsers = rechargeMapper.selectBy(rechargeUser); // 初始化累加器 - int permanentGoldSum = 0; - int freeGoldSum = 0; + BigDecimal permanentGoldSum = new BigDecimal(0); + BigDecimal freeGoldSum = new BigDecimal(0); // 遍历充值记录并累加金币 for (RechargeUser user : rechargeUsers) { // 累加永久金币 if (user.getPermanentGold() != null) { - permanentGoldSum += user.getPermanentGold(); + permanentGoldSum = permanentGoldSum.add(user.getPermanentGold()); } // 累加免费金币 if (user.getFreeGold() != null) { - freeGoldSum += user.getFreeGold(); + freeGoldSum = freeGoldSum.add(user.getFreeGold()); } } @@ -112,7 +114,7 @@ public class RechargeServiceImpl implements RechargeService { if(rechargeUser.getFreeGold()==null||rechargeUser.getPermanentGold()==null||rechargeUser.getMoney()==null){ return Result.error("金币和金额不能为空"); } - if(rechargeUser.getFreeGold()<0||rechargeUser.getPermanentGold()<0||rechargeUser.getMoney()<0){ + if(rechargeUser.getFreeGold().compareTo(BigDecimal.ZERO)<0||rechargeUser.getPermanentGold().compareTo(BigDecimal.ZERO)<0||rechargeUser.getMoney().compareTo(BigDecimal.ZERO)<0){ return Result.error("充值不能为0"); } if(rechargeUser.getJwcode()<10000000||rechargeUser.getJwcode()>99999999) @@ -120,7 +122,7 @@ public class RechargeServiceImpl implements RechargeService { return Result.error("精网号位数小于8位或大于8位"); } // 验证免费金币和永久金币是否均为0 - if (rechargeUser.getFreeGold() == 0 && rechargeUser.getPermanentGold() == 0) { + if (rechargeUser.getFreeGold().compareTo(BigDecimal.ZERO) == 0 && rechargeUser.getPermanentGold().compareTo(BigDecimal.ZERO) == 0) { return Result.error("免费金币和永久金币不能同时为0"); } GoldUser goldUser = userMapper.selectUser(rechargeUser.getJwcode().toString()); @@ -141,23 +143,23 @@ public class RechargeServiceImpl implements RechargeService { userGoldRecord.setOrderCode("CZ" + timestampPart + randomNumber); userGoldRecord.setJwcode(rechargeUser.getJwcode()); userGoldRecord.setActivity(rechargeUser.getActivity()); - userGoldRecord.setPermanentGold(rechargeUser.getPermanentGold()); + userGoldRecord.setPermanentGold(rechargeUser.getPermanentGold().intValue()); // 获取当前月份(1-12) int currentMonth = LocalDate.now().getMonthValue(); // 根据当前月份设置对应字段 if (currentMonth >= 1 && currentMonth <= 6) { // 1-6月:设置6月额度,12月保持默认值 userGoldRecord.setFreeJune(0); - userGoldRecord.setFreeDecember(rechargeUser.getFreeGold()); + userGoldRecord.setFreeDecember(rechargeUser.getFreeGold().intValue()); } else { // 7-12月:设置12月额度,6月保持默认值 - userGoldRecord.setFreeJune(rechargeUser.getFreeGold()); + userGoldRecord.setFreeJune(rechargeUser.getFreeGold().intValue()); userGoldRecord.setFreeDecember(0); } //数据输入 - userGoldRecord.setSumGold(rechargeUser.getFreeGold()+rechargeUser.getPermanentGold()); + userGoldRecord.setSumGold(rechargeUser.getFreeGold().intValue()+rechargeUser.getPermanentGold().intValue()); userGoldRecord.setRateId(rechargeUser.getRateId()); - userGoldRecord.setMoney(rechargeUser.getMoney()); + userGoldRecord.setMoney(rechargeUser.getMoney().intValue()); userGoldRecord.setVoucher(rechargeUser.getVoucher()); userGoldRecord.setPayPlatform("金币系统"); userGoldRecord.setPayModel(rechargeUser.getPayModel()); diff --git a/src/main/java/com/example/demo/serviceImpl/coin/RefundServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/coin/RefundServiceImpl.java index 9b88b64..9bb0d1e 100644 --- a/src/main/java/com/example/demo/serviceImpl/coin/RefundServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/coin/RefundServiceImpl.java @@ -13,6 +13,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.example.demo.domain.vo.coin.*; + +import java.math.BigDecimal; import java.time.LocalDate; import java.util.ArrayList; import java.util.Date; @@ -47,7 +49,7 @@ public class RefundServiceImpl implements RefundService { //查找全部退款 @Override - public PageInfo selectAll(Integer pageNum, Integer pageSize, RefundUser refundUser) throws Exception{ + public PageInfo selectAll(Integer pageNum, Integer pageSize, RefundUser refundUser) throws Exception { List markets = marketMapper.getMarketIds(refundUser.getMarkets()); refundUser.setMarkets(markets); PageHelper.startPage(pageNum, pageSize); @@ -59,31 +61,32 @@ public class RefundServiceImpl implements RefundService { @Override public Gold statsGold(RefundUser refundUser) { List markets = marketMapper.getMarketIds(refundUser.getMarkets()); - if (markets.contains("9") || markets.contains("9999")){ - markets=null; + if (markets.contains("9") || markets.contains("9999")) { + markets = null; } refundUser.setMarkets(markets); Gold gold = new Gold(); List refundUsers = refundMapper.selectBy(refundUser); // 初始化累加器 - int permanentGoldSum = 0; - int freeGoldSum = 0; - int taskGoldSum = 0; - // 遍历推开记录并累加金币 + BigDecimal permanentGoldSum = BigDecimal.valueOf(0); + BigDecimal freeGoldSum = BigDecimal.valueOf(0); + BigDecimal taskGoldSum = BigDecimal.valueOf(0); + + // 遍历退款记录并累加金币 for (RefundUser user : refundUsers) { // 累加永久金币 if (user.getPermanentGold() != null) { - permanentGoldSum += user.getPermanentGold(); + permanentGoldSum = permanentGoldSum.add(user.getPermanentGold()); } // 累加免费金币 if (user.getFreeGold() != null) { - freeGoldSum += user.getFreeGold(); + freeGoldSum = freeGoldSum.add(user.getFreeGold()); } // 累加任务金币 if (user.getTaskGold() != null) { - taskGoldSum += user.getTaskGold(); + taskGoldSum = taskGoldSum.add(user.getTaskGold()); } } @@ -97,10 +100,10 @@ public class RefundServiceImpl implements RefundService { //查找筛选退款 @Override - public PageInfo selectBy(Integer pageNum, Integer pageSize, RefundUser refundUser)throws Exception { + public PageInfo selectBy(Integer pageNum, Integer pageSize, RefundUser refundUser) throws Exception { List markets = marketMapper.getMarketIds(refundUser.getMarkets()); - if (markets.contains("9") || markets.contains("9999")){ - markets=null; + if (markets.contains("9") || markets.contains("9999")) { + markets = null; } refundUser.setMarkets(markets); PageHelper.startPage(pageNum, pageSize); @@ -115,15 +118,16 @@ public class RefundServiceImpl implements RefundService { if (refundUser.getTaskGold() == null || refundUser.getFreeGold() == null || refundUser.getPermanentGold() == null) { return Result.error("金币不能为空"); } - if (refundUser.getTaskGold() < 0 || refundUser.getFreeGold() < 0 || refundUser.getPermanentGold() < 0) { + if (refundUser.getTaskGold().compareTo(BigDecimal.ZERO) < 0 || + refundUser.getFreeGold().compareTo(BigDecimal.ZERO) < 0 || + refundUser.getPermanentGold().compareTo(BigDecimal.ZERO) < 0) { return Result.error("金币不能为负数"); } - if(refundUser.getJwcode()<10000000||refundUser.getJwcode()>99999999) - { + if (refundUser.getJwcode() < 10000000 || refundUser.getJwcode() > 99999999) { return Result.error("精网号位数小于8位或大于8位"); } GoldUser goldUser = userMapper.selectUser(refundUser.getJwcode().toString()); - if(goldUser==null){ + if (goldUser == null) { return Result.error("用户不存在"); } UserGoldRecord userGoldRecord = new UserGoldRecord(); @@ -147,22 +151,22 @@ public class RefundServiceImpl implements RefundService { userGoldRecord.setJwcode(refundUser.getJwcode()); userGoldRecord.setRefundType(refundUser.getRefundType()); userGoldRecord.setRefundModel(refundUser.getRefundModel()); - userGoldRecord.setPermanentGold(refundUser.getPermanentGold()); + userGoldRecord.setPermanentGold(refundUser.getPermanentGold().intValue()); // 获取当前月份(1-12) int currentMonth = LocalDate.now().getMonthValue(); // 根据当前月份设置对应字段 if (currentMonth >= 1 && currentMonth <= 6) { // 1-6月:设置6月额度,12月保持默认值 userGoldRecord.setFreeJune(0); - userGoldRecord.setFreeDecember(refundUser.getFreeGold()); + userGoldRecord.setFreeDecember(refundUser.getFreeGold().intValue()); } else { // 7-12月:设置12月额度,6月保持默认值 - userGoldRecord.setFreeJune(refundUser.getFreeGold()); + userGoldRecord.setFreeJune(refundUser.getFreeGold().intValue()); userGoldRecord.setFreeDecember(0); } //信息输入 - userGoldRecord.setTaskGold(refundUser.getTaskGold()); - userGoldRecord.setSumGold(refundUser.getSumGold()); + userGoldRecord.setTaskGold(refundUser.getTaskGold().intValue()); + userGoldRecord.setSumGold(refundUser.getSumGold().intValue()); userGoldRecord.setPayPlatform("金币系统"); userGoldRecord.setRemark(refundUser.getRemark()); userGoldRecord.setAdminId(refundUser.getAdminId()); @@ -173,13 +177,12 @@ public class RefundServiceImpl implements RefundService { //消费订单号校验 if (list == null || list.isEmpty()) { return Result.error("该用户没有该订单号"); - }else if(list.size()==1){ + } else if (list.size() == 1) { ConsumeUser consumeUser = list.getFirst(); - if(consumeUser.getIsRefund().equals(1)) - { + if (consumeUser.getIsRefund().equals(1)) { return Result.error("该订单已被退款"); } - }else { + } else { return Result.error("消费订单重复"); } refundMapper.add(userGoldRecord); @@ -215,7 +218,7 @@ public class RefundServiceImpl implements RefundService { String combined = orderCode + "_" + goodsName; RefundUser refundUser = new RefundUser(); refundUser.setGoodsName(combined); - refundUser.setSumGold(record.getPermanentGold() + record.getFreeGold() + record.getTaskGold()); + refundUser.setSumGold(record.getPermanentGold().add(record.getFreeGold()).add(record.getTaskGold())); refundUser.setPermanentGold(record.getPermanentGold()); refundUser.setFreeGold(record.getFreeGold()); refundUser.setTaskGold(record.getTaskGold()); diff --git a/src/main/resources/mapper/ConsumeMapper.xml b/src/main/resources/mapper/ConsumeMapper.xml index e9f1449..6ebb402 100644 --- a/src/main/resources/mapper/ConsumeMapper.xml +++ b/src/main/resources/mapper/ConsumeMapper.xml @@ -79,10 +79,10 @@ m.name as market, ugr.goods_name AS goodsName, ugr.pay_platform AS payPlatform, - ugr.sum_gold AS sumGold, - ugr.permanent_gold AS permanentGold, - (COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0)) AS freeGold, - ugr.task_gold AS taskGold, + ugr.sum_gold/100 AS sumGold, + ugr.permanent_gold/100 AS permanentGold, + (COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0))/100 AS freeGold, + ugr.task_gold/100 AS taskGold, ugr.remark AS remark, a.admin_name AS adminName, ugr.create_time AS createTime diff --git a/src/main/resources/mapper/RechargeMapper.xml b/src/main/resources/mapper/RechargeMapper.xml index 25f5c19..623bec4 100644 --- a/src/main/resources/mapper/RechargeMapper.xml +++ b/src/main/resources/mapper/RechargeMapper.xml @@ -81,9 +81,9 @@ ugr.activity AS activity, ugr.rate_id AS rateId, r.rate_name AS rateName, - ugr.money AS money, - ugr.permanent_gold AS permanentGold, - (COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0)) AS freeGold, + ugr.money/100 AS money, + ugr.permanent_gold/100 AS permanentGold, + (COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0))/100 AS freeGold, ugr.pay_model AS payModel, ugr.pay_platform AS payPlatform, ugr.remark AS remark, diff --git a/src/main/resources/mapper/RefundMapper.xml b/src/main/resources/mapper/RefundMapper.xml index 6ab865d..38a5025 100644 --- a/src/main/resources/mapper/RefundMapper.xml +++ b/src/main/resources/mapper/RefundMapper.xml @@ -82,10 +82,10 @@ ugr.goods_name AS goodsName, ugr.refund_model AS refundModel, ugr.refund_type AS refundType, - ugr.sum_gold AS sumGold, - ugr.permanent_gold AS permanentGold, - (COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0)) AS freeGold, - ugr.task_gold AS taskGold, + ugr.sum_gold/100 AS sumGold, + ugr.permanent_gold/100 AS permanentGold, + (COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0))/100 AS freeGold, + ugr.task_gold/100 AS taskGold, ugr.remark AS remark, a.admin_name AS adminName, ugr.create_time AS createTime,