From 77e0a6e31f706bfa65b1e9cd812f5f6b3d3f8396 Mon Sep 17 00:00:00 2001 From: sunjiabei Date: Mon, 30 Jun 2025 13:51:43 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=80=80=E6=AC=BE=E5=8F=8A?= =?UTF-8?q?=E9=99=84=E5=B1=9E=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/controller/RechargeController.java | 2 +- .../example/demo/controller/RefundController.java | 30 +++++++-- .../com/example/demo/domain/vo/RefundUser.java | 1 + .../java/com/example/demo/mapper/RefundMapper.java | 5 ++ .../com/example/demo/service/RefundService.java | 7 ++ .../demo/serviceImpl/RefundServiceImpl.java | 76 +++++++++++++++++++++- src/main/resources/mapper/RefundMapper.xml | 40 +++++++++--- 7 files changed, 147 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/example/demo/controller/RechargeController.java b/src/main/java/com/example/demo/controller/RechargeController.java index 7ecf564..005e08a 100644 --- a/src/main/java/com/example/demo/controller/RechargeController.java +++ b/src/main/java/com/example/demo/controller/RechargeController.java @@ -78,7 +78,7 @@ public class RechargeController { } } - //消耗金币增加 + //充值金币增加 @PostMapping("/add") public Result add(@RequestBody RechargeUser rechargeUser) { try { diff --git a/src/main/java/com/example/demo/controller/RefundController.java b/src/main/java/com/example/demo/controller/RefundController.java index 30c180a..d75573c 100644 --- a/src/main/java/com/example/demo/controller/RefundController.java +++ b/src/main/java/com/example/demo/controller/RefundController.java @@ -1,9 +1,6 @@ package com.example.demo.controller; -import com.example.demo.domain.vo.Gold; -import com.example.demo.domain.vo.Page; -import com.example.demo.domain.vo.RefundUser; -import com.example.demo.domain.vo.Result; +import com.example.demo.domain.vo.*; import com.example.demo.service.ConsumeService; import com.example.demo.service.RefundService; import lombok.RequiredArgsConstructor; @@ -12,6 +9,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** * @program: gold-java * @ClassName RefundMapper.xml @@ -76,4 +75,27 @@ public class RefundController { } } + @PostMapping("/refundType") + public Result getRefundType() + { + List list = refundService.getRefundType(); + return Result.success(list); + } + + @PostMapping("/selectGoods") + public Result getSelectGoods(@RequestBody RefundUser refundUser) + { + List list = refundService.selectGoods(refundUser.getJwcode()); + return Result.success(list); + } + + //消耗金币增加 + @PostMapping("/add") + public Result add(@RequestBody RefundUser refundUser) { + try { + return refundService.add(refundUser); + } catch (Exception e) { + return Result.error("接口调用失败"); + } + } } diff --git a/src/main/java/com/example/demo/domain/vo/RefundUser.java b/src/main/java/com/example/demo/domain/vo/RefundUser.java index 6ca6b78..e0e42f6 100644 --- a/src/main/java/com/example/demo/domain/vo/RefundUser.java +++ b/src/main/java/com/example/demo/domain/vo/RefundUser.java @@ -23,6 +23,7 @@ public class RefundUser { private static final long serialVersionUID = 1L; + private String orderCode; // 订单号 private String name; // 客户姓名 private Integer jwcode; // 精网号 private String market; // 所属地区 diff --git a/src/main/java/com/example/demo/mapper/RefundMapper.java b/src/main/java/com/example/demo/mapper/RefundMapper.java index fd6c184..5f2970a 100644 --- a/src/main/java/com/example/demo/mapper/RefundMapper.java +++ b/src/main/java/com/example/demo/mapper/RefundMapper.java @@ -24,4 +24,9 @@ public interface RefundMapper { List selectBy(RefundUser refundUser); void add(UserGoldRecord userGoldRecord); + + List getRefundType(); + + List selectGoods(Integer jwcode); + } diff --git a/src/main/java/com/example/demo/service/RefundService.java b/src/main/java/com/example/demo/service/RefundService.java index 40e0b25..55b856c 100644 --- a/src/main/java/com/example/demo/service/RefundService.java +++ b/src/main/java/com/example/demo/service/RefundService.java @@ -7,6 +7,8 @@ import com.example.demo.domain.vo.RefundUser; import com.example.demo.domain.vo.Result; import com.github.pagehelper.PageInfo; +import java.util.List; + /** * @program: gold-java * @ClassName RefundService @@ -25,4 +27,9 @@ public interface RefundService { PageInfo selectBy(Integer pageNum, Integer pageSize, RefundUser refundUser); Result add(RefundUser refundUser); + + //获取退款类型 + List getRefundType(); + + List selectGoods(Integer jwcode); } diff --git a/src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java index 200f391..8ff5138 100644 --- a/src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java @@ -1,5 +1,6 @@ package com.example.demo.serviceImpl; +import com.example.demo.domain.entity.UserGoldRecord; import com.example.demo.domain.vo.ConsumeUser; import com.example.demo.domain.vo.Gold; import com.example.demo.domain.vo.RefundUser; @@ -13,7 +14,13 @@ import com.github.pagehelper.PageInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.Date; import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; /** * @program: gold-java @@ -83,6 +90,73 @@ public class RefundServiceImpl implements RefundService { @Override public Result add(RefundUser refundUser) { - return null; + UserGoldRecord userGoldRecord = new UserGoldRecord(); + String goodsNameWithOrder = refundUser.getGoodsName(); + //订单号生成 + if (goodsNameWithOrder != null && goodsNameWithOrder.contains("_")) { + String[] parts = goodsNameWithOrder.split("_", 2); + if (parts.length >= 2) { + // 提取订单号(保留原始前缀) + String orderCode = parts[0]; // XF202506281545524400006580 + + // 提取商品名(处理可能包含下划线的情况) + String goodsName = parts[1]; // 商品A + + // 设置属性(添加退款前缀) + userGoldRecord.setOrderCode("TK" + orderCode); // TKXF202506281545524400006580 + userGoldRecord.setGoodsName(goodsName); // 商品A + } + } + userGoldRecord.setJwcode(refundUser.getJwcode()); + userGoldRecord.setRefundType(refundUser.getRefundType()); + userGoldRecord.setRefundModel(refundUser.getRefundModel()); + userGoldRecord.setPermanentGold(refundUser.getPermanentGold()); + // 获取当前月份(1-12) + int currentMonth = LocalDate.now().getMonthValue(); + // 根据当前月份设置对应字段 + if (currentMonth >= 1 && currentMonth <= 6) { + // 1-6月:设置6月额度,12月保持默认值 + userGoldRecord.setFreeJune(0); + userGoldRecord.setFreeDecember(refundUser.getFreeGold()); + } else { + // 7-12月:设置12月额度,6月保持默认值 + userGoldRecord.setFreeJune(refundUser.getFreeGold()); + userGoldRecord.setFreeDecember(0); + } + userGoldRecord.setTaskGold(refundUser.getTaskGold()); + userGoldRecord.setSumGold(refundUser.getSumGold()); + userGoldRecord.setPayPlatform("金币系统"); + userGoldRecord.setRemark(refundUser.getRemark()); + userGoldRecord.setAdminId(refundUser.getAdminId()); + userGoldRecord.setType((byte) 2); + userGoldRecord.setAuditStatus(0); + userGoldRecord.setCreateTime(new Date()); + refundMapper.add(userGoldRecord); + return Result.success(); + } + + @Override + public List getRefundType() { + List list = refundMapper.getRefundType(); + return list; + } + + @Override + public List selectGoods(Integer jwcode) { + List userGoldRecords = refundMapper.selectGoods(jwcode); + List list = new ArrayList<>(); + for (UserGoldRecord record : userGoldRecords) { + if (record == null) { + continue; + } + + String orderCode = record.getOrderCode() != null ? record.getOrderCode() : "无订单号"; + String goodsName = record.getGoodsName() != null ? record.getGoodsName() : "无商品名"; + + // 拼接格式:订单号_商品名(例如:XF20250629_商品BC) + String combined = orderCode + "_" + goodsName; + list.add(combined); + } + return list; } } diff --git a/src/main/resources/mapper/RefundMapper.xml b/src/main/resources/mapper/RefundMapper.xml index 2e70fec..ea654ba 100644 --- a/src/main/resources/mapper/RefundMapper.xml +++ b/src/main/resources/mapper/RefundMapper.xml @@ -7,6 +7,7 @@ SELECT u.name AS name, u.jwcode AS jwcode, u.market AS market, + ugr.order_code AS orderCode, ugr.goods_name AS goodsName, ugr.refund_model AS refundModel, ugr.refund_type AS refundType, @@ -64,6 +65,7 @@ SELECT u.name AS name, u.jwcode AS jwcode, u.market AS market, + ugr.order_code AS orderCode, ugr.goods_name AS goodsName, ugr.refund_model AS refundModel, ugr.refund_type AS refundType, @@ -138,37 +140,59 @@ order_code, jwcode, + refund_type, + refund_model, sum_gold, permanent_gold, free_june, free_december, task_gold, goods_name, + pay_platform, remark, type, - pay_platform, - is_refund, admin_id, - create_time, - pay_time + audit_status, + create_time VALUES #{orderCode}, #{jwcode}, + #{refundType}, + #{refundModel}, #{sumGold}, #{permanentGold}, #{freeJune}, #{freeDecember}, #{taskGold}, #{goodsName}, + #{payPlatform}, #{remark}, #{type}, - #{payPlatform}, - #{isRefund}, #{adminId}, - #{createTime}, - #{payTime} + #{auditStatus}, + #{createTime} + + + + \ No newline at end of file