diff --git a/src/main/java/com/example/demo/controller/coin/RefundController.java b/src/main/java/com/example/demo/controller/coin/RefundController.java index 2b66254..cfda074 100644 --- a/src/main/java/com/example/demo/controller/coin/RefundController.java +++ b/src/main/java/com/example/demo/controller/coin/RefundController.java @@ -124,7 +124,7 @@ public class RefundController { // @Log("筛选商品") @PostMapping("/selectGoods") public Result getSelectGoods(@RequestBody RefundUser refundUser) { - List list = refundService.selectGoods(refundUser.getJwcode()); + List list = refundService.selectGoods(refundUser); return Result.success(list); } 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 f1b52b5..a075a7b 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 @@ -77,4 +77,6 @@ public class RefundUser { private List markets; // 地区列表 @ExcelIgnore private Integer flag; //是否为员工号 + @ExcelIgnore + private Integer type; } diff --git a/src/main/java/com/example/demo/mapper/coin/RefundMapper.java b/src/main/java/com/example/demo/mapper/coin/RefundMapper.java index 0b99c4a..8312e87 100644 --- a/src/main/java/com/example/demo/mapper/coin/RefundMapper.java +++ b/src/main/java/com/example/demo/mapper/coin/RefundMapper.java @@ -33,7 +33,7 @@ public interface RefundMapper { List getRefundType(); //获取商品 - List selectGoods(Integer jwcode); + List selectGoods(RefundUser refundUser); Gold sumGold(RefundUser refundUser); } diff --git a/src/main/java/com/example/demo/service/coin/RefundService.java b/src/main/java/com/example/demo/service/coin/RefundService.java index 5c10024..999728e 100644 --- a/src/main/java/com/example/demo/service/coin/RefundService.java +++ b/src/main/java/com/example/demo/service/coin/RefundService.java @@ -36,5 +36,5 @@ public interface RefundService { List getRefundType(); //查找退款商品 - List selectGoods(Integer jwcode); + List selectGoods(RefundUser refundUser); } 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 0fdd766..1d13b53 100644 --- a/src/main/java/com/example/demo/serviceImpl/coin/RefundServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/coin/RefundServiceImpl.java @@ -115,22 +115,58 @@ public class RefundServiceImpl implements RefundService { userGoldRecord.setJwcode(refundUser.getJwcode()); userGoldRecord.setRefundType(refundUser.getRefundType()); userGoldRecord.setRefundModel(refundUser.getRefundModel()); - 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().intValue()); - } else { - // 7-12月:设置12月额度,6月保持默认值 - userGoldRecord.setFreeJune(refundUser.getFreeGold().intValue()); - userGoldRecord.setFreeDecember(0); + if(Objects.equals(refundUser.getRefundType(), "商品退款")){ + if (currentMonth >= 1 && currentMonth <= 6) { + // 1-6月:设置6月额度,12月保持默认值 + userGoldRecord.setFreeJune(0); + userGoldRecord.setFreeDecember(refundUser.getFreeGold().intValue()); + } else { + // 7-12月:设置12月额度,6月保持默认值 + userGoldRecord.setFreeJune(refundUser.getFreeGold().intValue()); + userGoldRecord.setFreeDecember(0); + } + //信息输入 + userGoldRecord.setPermanentGold(refundUser.getPermanentGold().intValue()); + userGoldRecord.setTaskGold(refundUser.getTaskGold().intValue()); + userGoldRecord.setSumGold(refundUser.getSumGold().intValue()); + }else{ + GoldUser gold = userMapper.selectGold(refundUser.getJwcode().toString()); + if (refundUser.getFreeGold().compareTo(gold.getNowFreeDecember().add(gold.getNowFreeJune())) > 0 + || refundUser.getPermanentGold().compareTo(gold.getNowPermanentGold()) > 0 + || refundUser.getTaskGold().compareTo(gold.getNowTaskGold()) > 0) { + return Result.error("金币数量不足"); + } + // 根据当前月份设置对应字段 + if (currentMonth >= 1 && currentMonth <= 6) { + // 1-6月:设置6月额度,12月保持默认值 + if (refundUser.getFreeGold().compareTo(gold.getNowFreeJune()) > 0) { + userGoldRecord.setFreeJune(-gold.getNowFreeJune().intValue()); + userGoldRecord.setFreeDecember(-(refundUser.getFreeGold().subtract(gold.getNowFreeJune())).intValue()); + } else { + userGoldRecord.setFreeJune(-refundUser.getFreeGold().intValue()); + userGoldRecord.setFreeDecember(0); + } + } else { + // 7-12月:设置12月额度,6月保持默认值 + if (refundUser.getFreeGold().compareTo(gold.getNowFreeDecember()) > 0) { + userGoldRecord.setFreeDecember(-gold.getNowFreeDecember().intValue()); + userGoldRecord.setFreeJune(-(refundUser.getFreeGold().subtract(gold.getNowFreeDecember())).intValue()); + } else { + userGoldRecord.setFreeDecember(-refundUser.getFreeGold().intValue()); + userGoldRecord.setFreeJune(0); + } + } + //信息输入 + userGoldRecord.setPermanentGold(-refundUser.getPermanentGold().intValue()); + userGoldRecord.setTaskGold(-refundUser.getTaskGold().intValue()); + userGoldRecord.setSumGold(-refundUser.getSumGold().intValue()); } - //信息输入 - userGoldRecord.setTaskGold(refundUser.getTaskGold().intValue()); - userGoldRecord.setSumGold(refundUser.getSumGold().intValue()); + + + userGoldRecord.setPayPlatform("金币系统"); userGoldRecord.setRemark(refundUser.getRemark()); userGoldRecord.setAdminId(refundUser.getAdminId()); @@ -147,7 +183,7 @@ public class RefundServiceImpl implements RefundService { return Result.error("该订单已被退款"); } } else { - return Result.error("消费订单重复"); + return Result.error("订单重复"); } refundMapper.add(userGoldRecord); consumeMapper.updateIsRefund(orderCode); @@ -167,8 +203,8 @@ public class RefundServiceImpl implements RefundService { //查找退款商品 @Override - public List selectGoods(Integer jwcode) { - List refundUsers = refundMapper.selectGoods(jwcode); + public List selectGoods(RefundUser refundUser) { + List refundUsers = refundMapper.selectGoods(refundUser); List list = new ArrayList<>(); for (RefundUser record : refundUsers) { if (record == null) { @@ -180,14 +216,14 @@ public class RefundServiceImpl implements RefundService { // 拼接格式:订单号_商品名(例如:XF20250629_商品BC) String combined = orderCode + "_" + goodsName; - RefundUser refundUser = new RefundUser(); - refundUser.setOrderCode(orderCode); - refundUser.setGoodsName(goodsName); - refundUser.setSumGold(record.getPermanentGold().add(record.getFreeGold()).add(record.getTaskGold())); - refundUser.setPermanentGold(record.getPermanentGold()); - refundUser.setFreeGold(record.getFreeGold()); - refundUser.setTaskGold(record.getTaskGold()); - list.add(refundUser); + RefundUser newRefundUser = new RefundUser(); + newRefundUser.setOrderCode(orderCode); + newRefundUser.setGoodsName(goodsName); + newRefundUser.setSumGold(record.getPermanentGold().add(record.getFreeGold()).add(record.getTaskGold())); + newRefundUser.setPermanentGold(record.getPermanentGold()); + newRefundUser.setFreeGold(record.getFreeGold()); + newRefundUser.setTaskGold(record.getTaskGold()); + list.add(newRefundUser); } return list; } diff --git a/src/main/resources/mapper/RefundMapper.xml b/src/main/resources/mapper/RefundMapper.xml index 674f3f9..a87d783 100644 --- a/src/main/resources/mapper/RefundMapper.xml +++ b/src/main/resources/mapper/RefundMapper.xml @@ -270,9 +270,11 @@ ugr.task_gold AS taskGold FROM user_gold_record ugr - ugr.type = 1 - AND ugr.is_refund = 0 - AND ugr.flag = 1 + ugr.is_refund = 0 + AND ugr.type = 0 + + AND ugr.type = #{type} + AND ugr.jwcode = #{jwcode}