From d3ef7684ac239eac934f4e33ac8465e56dfc4727 Mon Sep 17 00:00:00 2001 From: huangqizhen <15552608129@163.com> Date: Sun, 19 Oct 2025 17:54:02 +0800 Subject: [PATCH] =?UTF-8?q?10.19=E8=BF=9E=E6=8E=A5erp,=E9=87=91=E5=B8=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/controller/cash/CashRefundController.java | 3 +- .../example/demo/domain/entity/UserGoldRecord.java | 1 + .../demo/domain/vo/cash/CashRecordDone.java | 2 + .../com/example/demo/mapper/coin/RefundMapper.java | 1 + .../example/demo/service/cash/RefundService.java | 2 + .../example/demo/service/coin/RefundService.java | 1 + .../serviceImpl/cash/CashRefundServiceImpl.java | 67 +++++++++++++++++++++- .../demo/serviceImpl/coin/RefundServiceImpl.java | 1 + src/main/resources/cashMapper/CashRefundMapper.xml | 13 ++++- 9 files changed, 85 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/example/demo/controller/cash/CashRefundController.java b/src/main/java/com/example/demo/controller/cash/CashRefundController.java index e845825..6c379e2 100644 --- a/src/main/java/com/example/demo/controller/cash/CashRefundController.java +++ b/src/main/java/com/example/demo/controller/cash/CashRefundController.java @@ -105,6 +105,7 @@ public class CashRefundController { return Result.success(refundService.update(cashRecordDone)); } + else return Result.error("该订单状态无法支持此操作"); } @PostMapping("/review") @@ -113,7 +114,7 @@ public class CashRefundController { } @PostMapping("/finalReview") public Result finalReview(@RequestBody CashRecordDone cashRecordDone) { - return Result.success(refundService.review(cashRecordDone)); + return Result.success(refundService.finalreview(cashRecordDone)); } @PostMapping("/executor") public Result executor(@RequestBody CashRecordDone cashRecordDone) { diff --git a/src/main/java/com/example/demo/domain/entity/UserGoldRecord.java b/src/main/java/com/example/demo/domain/entity/UserGoldRecord.java index 8bf2317..8c4aaaa 100644 --- a/src/main/java/com/example/demo/domain/entity/UserGoldRecord.java +++ b/src/main/java/com/example/demo/domain/entity/UserGoldRecord.java @@ -31,6 +31,7 @@ public class UserGoldRecord implements Serializable { private String goodsName; // 商品名称 private String refundType; // 退款类型 private Byte refundModel; // 退款方式(0全部/1部分退款) + private Integer CrefundModel; private String remark; // 备注 private Byte type; // 类型(0充值/1消耗/2退款) private Byte isRefund; // 是否已退款(消费限定)1退款0未退款 diff --git a/src/main/java/com/example/demo/domain/vo/cash/CashRecordDone.java b/src/main/java/com/example/demo/domain/vo/cash/CashRecordDone.java index de0b646..7678173 100644 --- a/src/main/java/com/example/demo/domain/vo/cash/CashRecordDone.java +++ b/src/main/java/com/example/demo/domain/vo/cash/CashRecordDone.java @@ -99,6 +99,8 @@ public class CashRecordDone { private Integer refundAmount; private String marketName; private List statuses; + private Integer permanentGold; + private Integer freeGold; private String processInstanceId; // 流程实例ID private String currentTaskId; // 当前任务ID 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 8726a5a..1b9020d 100644 --- a/src/main/java/com/example/demo/mapper/coin/RefundMapper.java +++ b/src/main/java/com/example/demo/mapper/coin/RefundMapper.java @@ -37,4 +37,5 @@ public interface RefundMapper { List selectGoods(RefundUser refundUser); Gold sumGold(RefundUser refundUser); + } diff --git a/src/main/java/com/example/demo/service/cash/RefundService.java b/src/main/java/com/example/demo/service/cash/RefundService.java index ef74817..a0dd385 100644 --- a/src/main/java/com/example/demo/service/cash/RefundService.java +++ b/src/main/java/com/example/demo/service/cash/RefundService.java @@ -26,4 +26,6 @@ public interface RefundService { int executor(CashRecordDone cashRecordDone); //修改原数据状态 int updateStatus(CashRecordDone cashRecordDone); + + int finalreview(CashRecordDone cashRecordDone); } 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 999728e..b52546d 100644 --- a/src/main/java/com/example/demo/service/coin/RefundService.java +++ b/src/main/java/com/example/demo/service/coin/RefundService.java @@ -37,4 +37,5 @@ public interface RefundService { //查找退款商品 List selectGoods(RefundUser refundUser); + } diff --git a/src/main/java/com/example/demo/serviceImpl/cash/CashRefundServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/cash/CashRefundServiceImpl.java index 590fae3..6db4aac 100644 --- a/src/main/java/com/example/demo/serviceImpl/cash/CashRefundServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/cash/CashRefundServiceImpl.java @@ -1,17 +1,24 @@ package com.example.demo.serviceImpl.cash; +import com.example.demo.Util.GoldTistV2; +import com.example.demo.domain.entity.UserGoldRecord; import com.example.demo.domain.vo.cash.CashRecordDone; import com.example.demo.domain.vo.coin.Result; import com.example.demo.mapper.cash.CashRefundMapper; +import com.example.demo.mapper.coin.AuditMapper; +import com.example.demo.mapper.coin.RefundMapper; import com.example.demo.service.cash.RefundService; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.time.LocalDate; import java.util.List; import java.util.UUID; +import static org.apache.commons.lang3.StringUtils.substring; + /** * @program: GOLD * @ClassName CashRefundServiceImpl @@ -26,6 +33,10 @@ public class CashRefundServiceImpl implements RefundService { @Autowired private CashRefundMapper cashRefundMapper; + @Autowired + private RefundMapper refundMapper; + @Autowired + private AuditMapper auditMapper; @Override public PageInfo select(Integer pageNum, Integer pageSize, CashRecordDone cashRecordDone) { PageHelper.startPage(pageNum, pageSize); @@ -57,9 +68,9 @@ public class CashRefundServiceImpl implements RefundService { cashRecordDone.setOrderType(2); cashRecordDone.setStatus(10); //生成订单号后半部分 - String orderNumber = UUID.randomUUID().toString().replaceAll("-", ""); + String orderNumber = cashRecordDone.getOrderCode(); //构建订单信息 - cashRecordDone.setOrderCode("TKXJ_" + orderNumber); //订单号 + cashRecordDone.setOrderCode("TK_" + orderNumber); //订单号 cashRefundMapper.insert(cashRecordDone); CashRecordDone cashRecordDone1 = new CashRecordDone(); cashRecordDone1.setId(cashRecordDone.getId()); @@ -95,6 +106,12 @@ public class CashRefundServiceImpl implements RefundService { @Override public int review(CashRecordDone cashRecordDone) { + if(cashRecordDone.getStatus()== 12|| cashRecordDone.getStatus()== 22){ +CashRecordDone cashRecordDone1 = new CashRecordDone(); + cashRecordDone1.setOrderCode(cashRecordDone.getOrderCode().substring(2)); + cashRecordDone1.setStatus(4); + cashRefundMapper.updateStatus(cashRecordDone1); + } int result = cashRefundMapper.review(cashRecordDone); return (result > 0 ? Result.success("提交成功") : Result.error("提交失败")).getCode(); } @@ -127,4 +144,50 @@ public class CashRefundServiceImpl implements RefundService { public int updateStatus(CashRecordDone cashRecordDone) { return cashRefundMapper.updateStatus(cashRecordDone); } + + @Override + public int finalreview(CashRecordDone cashRecordDone) { + if(cashRecordDone.getStatus()== 32){ + CashRecordDone cashRecordDone1 = new CashRecordDone(); + cashRecordDone1.setOrderCode(cashRecordDone.getOrderCode().substring(2)); + cashRecordDone1.setStatus(4); + cashRefundMapper.updateStatus(cashRecordDone1); + } + if (cashRecordDone.getGoodsName() != null && + (cashRecordDone.getGoodsName().equals("金币充值") || + cashRecordDone.getGoodsName().contains("金币充值"))) { + UserGoldRecord userGoldRecord = new UserGoldRecord(); + userGoldRecord.setOrderCode(cashRecordDone.getOrderCode()); + userGoldRecord.setType((byte) 2); + userGoldRecord.setIsRefund((byte) 1); + userGoldRecord.setRefundType("金币退款"); + userGoldRecord.setCrefundModel(cashRecordDone.getRefundModel()); + userGoldRecord.setJwcode(cashRecordDone.getJwcode()); + userGoldRecord.setSumGold(cashRecordDone.getPermanentGold()+cashRecordDone.getFreeGold()); + userGoldRecord.setPermanentGold(cashRecordDone.getPermanentGold()); + int currentMonth = LocalDate.now().getMonthValue(); + if (currentMonth >= 1 && currentMonth <= 6) { + // 1-6月:设置12月额度,6月保持默认值 + userGoldRecord.setFreeJune(0); + userGoldRecord.setFreeDecember(cashRecordDone.getFreeGold()); + } else { + // 7-12月:设置6月额度,12月保持默认值 + userGoldRecord.setFreeJune(cashRecordDone.getFreeGold()); + userGoldRecord.setFreeDecember(0); + } + userGoldRecord.setGoodsName(cashRecordDone.getGoodsName()); + userGoldRecord.setPayPlatform("金币系统"); + userGoldRecord.setRemark(cashRecordDone.getRemark()); + userGoldRecord.setAdminId(cashRecordDone.getAuditId()); + userGoldRecord.setAuditStatus(1); + String auditName = auditMapper.getName(cashRecordDone.getAuditId()); + refundMapper.add(userGoldRecord); + + GoldTistV2.addCoinNew(userGoldRecord.getJwcode().toString(), 58, //退款免费+永久金币-充值 + (double) (userGoldRecord.getFreeDecember()+userGoldRecord.getFreeJune()+userGoldRecord.getPermanentGold() ) /100, + userGoldRecord.getRemark(),(double) userGoldRecord.getPermanentGold() / 100, auditName, "退款金币充值");} + + int result = cashRefundMapper.review(cashRecordDone); + return (result > 0 ? Result.success("提交成功") : Result.error("提交失败")).getCode(); + } } 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 ac1dcb4..846c53f 100644 --- a/src/main/java/com/example/demo/serviceImpl/coin/RefundServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/coin/RefundServiceImpl.java @@ -251,4 +251,5 @@ public class RefundServiceImpl implements RefundService { } return list; } + } diff --git a/src/main/resources/cashMapper/CashRefundMapper.xml b/src/main/resources/cashMapper/CashRefundMapper.xml index 9305970..0e508b6 100644 --- a/src/main/resources/cashMapper/CashRefundMapper.xml +++ b/src/main/resources/cashMapper/CashRefundMapper.xml @@ -93,7 +93,14 @@ update cash_record set status = #{status} - where id = #{id} + + + and id = #{id} + + + and order_code = #{orderCode} + + @@ -110,9 +117,9 @@ cr.goods_name, cr.good_num, cr.payment_currency, - cr.payment_amount, + Round((payment_amount) / 100.0, 2) AS freeGold, cr.received_currency, - cr.received_amount, + Round((received_amount) / 100.0, 2) AS freeGold, cr.handling_charge, cr.pay_type, cr.received_market,