diff --git a/src/main/java/com/example/demo/controller/coin/ConsumeController.java b/src/main/java/com/example/demo/controller/coin/ConsumeController.java
index 8d27478..e0ca116 100644
--- a/src/main/java/com/example/demo/controller/coin/ConsumeController.java
+++ b/src/main/java/com/example/demo/controller/coin/ConsumeController.java
@@ -154,6 +154,25 @@ public class ConsumeController {
}
}
+ //消耗金币增加
+ @Log("充值退款(消耗版)")
+ @PostMapping("/addRefund")
+ public Result addRefund(@RequestBody ConsumeUser consumeUser) {
+ try {
+ return consumeService.addRefund(consumeUser);
+// if(consumeUser.getJwcode().equals(94226013))
+// {
+// return consumeService.add(consumeUser);
+// }else {
+// return Result.error("不是测试的精网号,无法添加消费");
+// }
+//
+ } catch (Exception e) {
+ e.printStackTrace();
+ return Result.error("请检查数据的格式");
+ }
+ }
+
public Result select(@RequestBody Page page) {
try {
//页码校验
diff --git a/src/main/java/com/example/demo/mapper/coin/ConsumeMapper.java b/src/main/java/com/example/demo/mapper/coin/ConsumeMapper.java
index a8d899b..b7c4520 100644
--- a/src/main/java/com/example/demo/mapper/coin/ConsumeMapper.java
+++ b/src/main/java/com/example/demo/mapper/coin/ConsumeMapper.java
@@ -29,6 +29,9 @@ public interface ConsumeMapper {
//添加消费订单
void add(UserGoldRecord userGoldRecord);
+ //添加退款订单
+ void addRefund(UserGoldRecord userGoldRecord);
+
//更新退款状态
void updateIsRefund(String orderCode);
diff --git a/src/main/java/com/example/demo/service/coin/ConsumeService.java b/src/main/java/com/example/demo/service/coin/ConsumeService.java
index c478efa..bf3fff6 100644
--- a/src/main/java/com/example/demo/service/coin/ConsumeService.java
+++ b/src/main/java/com/example/demo/service/coin/ConsumeService.java
@@ -28,4 +28,8 @@ public interface ConsumeService {
//增加消费订单
Result add(ConsumeUser consumeUser);
+
+ //增加退款订单
+ Result addRefund(ConsumeUser consumeUser);
+
}
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 ac8c6af..b719d8b 100644
--- a/src/main/java/com/example/demo/serviceImpl/coin/ConsumeServiceImpl.java
+++ b/src/main/java/com/example/demo/serviceImpl/coin/ConsumeServiceImpl.java
@@ -174,4 +174,93 @@ public class ConsumeServiceImpl implements ConsumeService {
// }
return Result.success();
}
+
+
+ //新增消耗
+ @Transactional
+ @Override
+ public Result addRefund(ConsumeUser consumeUser) {
+ if (consumeUser.getTaskGold() == null || consumeUser.getFreeGold() == null || consumeUser.getPermanentGold() == null) {
+ return Result.error("金币数量不能为空");
+ }
+ 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)
+ {
+ return Result.error("精网号位数小于8位或大于8位");
+ }
+ if(consumeUser.getAdminName()==null){
+ return Result.error("管理员不能为空");
+ }
+ GoldUser goldUser = userMapper.selectUser(consumeUser.getJwcode().toString());
+ if (goldUser == null) {
+ return Result.error("用户不存在");
+ }
+ UserGoldRecord userGoldRecord = new UserGoldRecord();
+
+ String orderNumber = UUID.randomUUID().toString().replaceAll("-", "");
+ //订单号生成
+ userGoldRecord.setOrderCode("TKCZ_" + orderNumber);
+ userGoldRecord.setJwcode(consumeUser.getJwcode());
+ userGoldRecord.setGoodsName(consumeUser.getGoodsName());
+ 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().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().compareTo(gold.getNowFreeJune()) > 0) {
+ userGoldRecord.setFreeJune(-gold.getNowFreeJune().intValue());
+ userGoldRecord.setFreeDecember(-(consumeUser.getFreeGold().subtract(gold.getNowFreeJune())).intValue());
+ } else {
+ userGoldRecord.setFreeJune(-consumeUser.getFreeGold().intValue());
+ userGoldRecord.setFreeDecember(0);
+ }
+ } else {
+ // 7-12月:设置12月额度,6月保持默认值
+ 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().intValue());
+ userGoldRecord.setFreeJune(0);
+ }
+ }
+ //信息输入
+ userGoldRecord.setTaskGold(-consumeUser.getTaskGold().intValue());
+ userGoldRecord.setRemark(consumeUser.getRemark());
+ userGoldRecord.setType((byte) 2);
+ userGoldRecord.setAuditStatus(0);
+ userGoldRecord.setPayPlatform("金币系统");
+ userGoldRecord.setAdminId(consumeUser.getAdminId());
+ userGoldRecord.setCreateTime(new Date());
+ userGoldRecord.setPayTime(new Date());
+ consumeMapper.add(userGoldRecord);
+ consumeMapper.updateUserGold(userGoldRecord);
+ User user = new User();
+ user.setJwcode(userGoldRecord.getJwcode());
+ user.setCurrentPermanentGold(BigDecimal.valueOf(gold.getNowPermanentGold().intValue() - consumeUser.getPermanentGold().intValue()));
+ user.setCurrentFreeJune(BigDecimal.valueOf(gold.getNowFreeJune().intValue() + userGoldRecord.getFreeJune()));
+ user.setCurrentFreeDecember(BigDecimal.valueOf(gold.getNowFreeDecember().intValue() + userGoldRecord.getFreeDecember()));
+ user.setCurrentTaskGold(BigDecimal.valueOf(gold.getNowTaskGold().intValue() - consumeUser.getTaskGold().intValue()));
+ user.setConsumeNum(gold.getConsumeNum().intValue() + 1);
+ user.setSumConsumePermanent(BigDecimal.valueOf(-consumeUser.getPermanentGold().intValue()));
+ user.setSumConsumeFree(BigDecimal.valueOf(-consumeUser.getFreeGold().intValue()));
+ user.setSumConsumeTask(BigDecimal.valueOf(-consumeUser.getTaskGold().intValue()));
+ userMapper.updateGold(user);
+ // if(consumeUser.getJwcode().equals(94226013)){
+ GoldTistV2.addCoinNew(userGoldRecord.getJwcode().toString(), 65,
+ (double) (userGoldRecord.getPermanentGold() + userGoldRecord.getFreeDecember() + userGoldRecord.getFreeJune() + userGoldRecord.getTaskGold()) / 100,
+ userGoldRecord.getRemark(), ((double) userGoldRecord.getPermanentGold() / 100), consumeUser.getAdminName(), userGoldRecord.getGoodsName());
+ // }
+ return Result.success();
+ }
}
diff --git a/src/main/resources/mapper/ConsumeMapper.xml b/src/main/resources/mapper/ConsumeMapper.xml
index 905243a..4858652 100644
--- a/src/main/resources/mapper/ConsumeMapper.xml
+++ b/src/main/resources/mapper/ConsumeMapper.xml
@@ -253,7 +253,45 @@
#{payTime}
-
+
+ INSERT INTO user_gold_record
+
+ order_code,
+ jwcode,
+ sum_gold,
+ permanent_gold,
+ free_june,
+ free_december,
+ task_gold,
+ goods_name,
+ remark,
+ type,
+ pay_platform,
+ admin_id,
+ audit_status,
+ create_time,
+ pay_time
+
+ VALUES
+
+ #{orderCode},
+ #{jwcode},
+ #{sumGold},
+ #{permanentGold},
+ #{freeJune},
+ #{freeDecember},
+ #{taskGold},
+ #{goodsName},
+ #{remark},
+ #{type},
+ #{payPlatform},
+ #{adminId},
+ #{auditStatus},
+ #{createTime},
+ #{payTime}
+
+
UPDATE user_gold_record
SET is_refund = 1