From 812e70e2a3d2488f5023fa80f6861c6f3a264694 Mon Sep 17 00:00:00 2001 From: huangqizhen <15552608129@163.com> Date: Wed, 5 Nov 2025 14:05:15 +0800 Subject: [PATCH] =?UTF-8?q?11.5=20=E9=80=80=E6=AC=BE=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/controller/cash/CashRefundController.java | 21 +- .../example/demo/domain/vo/cash/CashRecordDTO.java | 39 +++ .../demo/domain/vo/cash/CashRecordRefund.java | 197 +++++++++++++ .../java/com/example/demo/domain/vo/coin/Page.java | 2 + .../example/demo/mapper/cash/CashRefundMapper.java | 7 +- .../example/demo/service/cash/RefundService.java | 10 +- .../serviceImpl/cash/CashRefundServiceImpl.java | 50 ++-- src/main/resources/cashMapper/CashRefundMapper.xml | 307 +++++++++++---------- 8 files changed, 453 insertions(+), 180 deletions(-) create mode 100644 src/main/java/com/example/demo/domain/vo/cash/CashRecordDTO.java create mode 100644 src/main/java/com/example/demo/domain/vo/cash/CashRecordRefund.java 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 e8d459c..9614661 100644 --- a/src/main/java/com/example/demo/controller/cash/CashRefundController.java +++ b/src/main/java/com/example/demo/controller/cash/CashRefundController.java @@ -4,6 +4,7 @@ package com.example.demo.controller.cash; import com.example.demo.Util.JWTUtil; import com.example.demo.domain.entity.Admin; import com.example.demo.domain.vo.cash.CashRecordDone; +import com.example.demo.domain.vo.cash.CashRecordRefund; import com.example.demo.domain.vo.coin.Page; import com.example.demo.domain.vo.coin.RechargeUser; import com.example.demo.domain.vo.coin.Result; @@ -43,7 +44,9 @@ public class CashRefundController { private RefundService refundService; @Autowired MarketService marketService; - +/** + * 当地财务负责人退款记录 + */ @PostMapping("/select") public Result select(@RequestBody Page page) throws Exception { // 获取当前请求对象 @@ -84,17 +87,23 @@ public class CashRefundController { } // 校验通过,保持 requestedMarkets 不变 } - return Result.success(refundService.select(page.getPageNum(), page.getPageSize(), page.getCashRecordDone())); + return Result.success(refundService.financeSelect(page.getPageNum(), page.getPageSize(), page.getCashRecordDTO())); } + /** + * 添加退款现金记录 + */ @PostMapping("/add") - public Result add(@RequestBody CashRecordDone cashRecordDone) throws Exception { + public Result add(@RequestBody CashRecordRefund cashRecordRefund) throws Exception { try { - return Result.success(refundService.add(cashRecordDone)); + return Result.success(refundService.add(cashRecordRefund)); } catch (Exception e) { return Result.error(e.getMessage()); } } + /** + * 查询客服提交现金记录 + */ @PostMapping("/selecta") public Result selecta(@RequestBody Page page) { @@ -107,9 +116,9 @@ public class CashRefundController { return Result.error("页大小为空!"); } // 获取传入的市场列表 - List requestedMarkets = page.getCashRecordDone() != null ? page.getCashRecordDone().getMarkets() : null; + List requestedMarkets = page.getCashRecordDTO() != null ? page.getCashRecordDTO().getMarkets() : null; - return Result.success(refundService.select(page.getPageNum(), page.getPageSize(), page.getCashRecordDone())); + return Result.success(refundService.select(page.getPageNum(), page.getPageSize(), page.getCashRecordDTO())); } @PostMapping("/update") public Result update(@RequestBody CashRecordDone cashRecordDone)throws Exception { diff --git a/src/main/java/com/example/demo/domain/vo/cash/CashRecordDTO.java b/src/main/java/com/example/demo/domain/vo/cash/CashRecordDTO.java new file mode 100644 index 0000000..c7c2f63 --- /dev/null +++ b/src/main/java/com/example/demo/domain/vo/cash/CashRecordDTO.java @@ -0,0 +1,39 @@ +package com.example.demo.domain.vo.cash; + +import lombok.AllArgsConstructor; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +/** + * @program: GOLD + * @ClassName CashRecordDTO + * @description: + * @author: huangqizhen + * @create: 2025−11-04 17:03 + * @Version 1.0 + **/ +@Data +@AllArgsConstructor +public class CashRecordDTO extends CashRecordRefund{ + private Integer activity; + private String goodsName; + private Integer goodsNum; + private String numUnit; + private BigDecimal gold; + private BigDecimal free; + private String paymentCurrency; + private BigDecimal paymentAmount; + private String receiveCurrency; + private BigDecimal receiveAmount; + private BigDecimal handlingCharges; + private String payType; + private String receivedMarket; + private String payVoucher; + private String payRemark; + private List goodsNames; + private List markets; + + +} diff --git a/src/main/java/com/example/demo/domain/vo/cash/CashRecordRefund.java b/src/main/java/com/example/demo/domain/vo/cash/CashRecordRefund.java new file mode 100644 index 0000000..5be39cf --- /dev/null +++ b/src/main/java/com/example/demo/domain/vo/cash/CashRecordRefund.java @@ -0,0 +1,197 @@ +package com.example.demo.domain.vo.cash; + + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * + * @TableName cash_record_refund + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class CashRecordRefund { + /** + * 序号 + */ + private Integer id; + + /** + * 精网号 + */ + private Integer jwcode; + + /** + * 姓名 + */ + private String name; + + /** + * 所属地区 + */ + private String market; + + /** + * 金币订单号 + */ + private String orderCode; + + /** + * 银行流水订单号 + */ + private String bankCode; + + /** + * 永久金币 + */ + private Integer permanentGold; + + /** + * 免费金币 + */ + private Integer freeGold; + + /** + * 审核人id + */ + private Integer auditId; + + /** + * 订单状态(1位代表收款,2位代表退款) +0:线下财务待审核;1:线下财务审核通过待填手续费;2线下财务审核驳回;5:手动撤回待编辑提交 +3:link线上财务复核待填手续费 +4:收款流程全部结束 +6:退款 +--------------------------------------------- +10:地区财务待审核;11:地区财务手动撤回待编辑提交12:地区财务驳回; +20:地区负责人待审核;22:地区负责人驳回; +30:总部财务待审核;32:总部财务驳回; +40:执行人待处理;41:执行人已处理,退款结束 + */ + private Integer status; + + /** + * 提交人id + */ + private Integer submitterId; + + /** + * 提交人地区 + */ + private String submitterMarket; + + /** + * 转账凭证 + */ + private String voucher; + + /** + * 备注 + */ + private String remark; + + /** + * 驳回理由 + */ + private String rejectReason; + + /** + * 退款备注(理由),客服填写 + */ + private String refundReason; + + /** + * 退款方式(0全额/1部分) + */ + private Integer refundModel; + + /** + * 退款执行人OA号 + */ + private Integer executor; + + /** + * 退款途径 + */ + private String refundChannels; + + /** + * 退款日期(到天) + */ + private Date refundTime; + + /** + * 退款备注(执行人填写) + */ + private String refundRemark; + + /** + * 退款截图 + */ + private String refundVoucher; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新时间 + */ + private Date updateTime; + + /** + * 审核时间 + */ + private Date auditTime; + + /** + * 退款币种 + */ + private String refundCurrency; + + /** + * 退款金额 + */ + private String refundAmount; + + /** + * 关联收款id + */ + private Integer relatedId; + @ExcelIgnore + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") + private Date startTime; // 开始时间 + @ExcelIgnore + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") + private Date endTime; // 结束时间 + private String submitterName; + private String auditName; + private String executorName; + private String marketName; + private List statuses; + + private String processInstanceId; // 流程实例ID + private String currentTaskId; // 当前任务ID + + private String areaServise; + private String areaFinance; + private String areaCharge; + private String headFinance; + private String sortField; + private String sortOrder; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") + private Date sTime; // 开始时间 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") + private Date eTime; // 结束时间 + +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/domain/vo/coin/Page.java b/src/main/java/com/example/demo/domain/vo/coin/Page.java index ec84775..048bdc3 100644 --- a/src/main/java/com/example/demo/domain/vo/coin/Page.java +++ b/src/main/java/com/example/demo/domain/vo/coin/Page.java @@ -3,6 +3,7 @@ package com.example.demo.domain.vo.coin; import com.example.demo.domain.entity.User; import com.example.demo.domain.vo.bean.*; import com.example.demo.domain.vo.cash.CashCollection; +import com.example.demo.domain.vo.cash.CashRecordDTO; import com.example.demo.domain.vo.cash.CashRecordDone; import lombok.Data; import lombok.NoArgsConstructor; @@ -44,5 +45,6 @@ public class Page { private HistoryRecord historyRecord; //历史记录 private CashCollection cashCollection; //现金收款 private CashRecordDone cashRecordDone; + private CashRecordDTO cashRecordDTO; } diff --git a/src/main/java/com/example/demo/mapper/cash/CashRefundMapper.java b/src/main/java/com/example/demo/mapper/cash/CashRefundMapper.java index 70cffe4..4c1039a 100644 --- a/src/main/java/com/example/demo/mapper/cash/CashRefundMapper.java +++ b/src/main/java/com/example/demo/mapper/cash/CashRefundMapper.java @@ -1,7 +1,9 @@ package com.example.demo.mapper.cash; import com.example.demo.domain.vo.cash.CashCollection; +import com.example.demo.domain.vo.cash.CashRecordDTO; import com.example.demo.domain.vo.cash.CashRecordDone; +import com.example.demo.domain.vo.cash.CashRecordRefund; import com.example.demo.domain.vo.coin.RefundUser; import org.apache.ibatis.annotations.Mapper; @@ -17,9 +19,9 @@ import java.util.List; **/ @Mapper public interface CashRefundMapper { - List select(CashRecordDone cashRecordDone); + List select(CashRecordDTO cashRecordDTO); int update(CashRecordDone cashRecordDone); - int insert(CashRecordDone cashRecordDone); + int insert(CashRecordRefund cashRecordRefund); int withdraw(Integer id); int review(CashRecordDone cashRecordDone); @@ -29,4 +31,5 @@ public interface CashRefundMapper { int updateStatus(CashRecordDone cashRecordDone); void addAudit(CashRecordDone cashRecordDone); void updateAudit(CashRecordDone cashRecordDone); + List financeSelect(CashRecordDTO cashRecordDTO); } 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 3612678..57f1035 100644 --- a/src/main/java/com/example/demo/service/cash/RefundService.java +++ b/src/main/java/com/example/demo/service/cash/RefundService.java @@ -1,6 +1,9 @@ package com.example.demo.service.cash; +import com.example.demo.domain.vo.cash.CashRecordDTO; import com.example.demo.domain.vo.cash.CashRecordDone; +import com.example.demo.domain.vo.cash.CashRecordRefund; +import com.example.demo.domain.vo.coin.Page; import com.github.pagehelper.PageInfo; /** @@ -12,10 +15,10 @@ import com.github.pagehelper.PageInfo; * @Version 1.0 **/ public interface RefundService { - //多条件查询 - PageInfo select(Integer pageNum, Integer pageSize, CashRecordDone cashRecordDone); + //多条件查询(qi'yong) + PageInfo select(Integer pageNum, Integer pageSize, CashRecordDTO cashRecordDTO); //添加 - int add(CashRecordDone cashRecordDone) throws Exception; + int add(CashRecordRefund cashRecordRefund) throws Exception; //修改 int update(CashRecordDone cashRecordDone) throws Exception; // @@ -28,4 +31,5 @@ public interface RefundService { int updateStatus(CashRecordDone cashRecordDone); int finalreview(CashRecordDone cashRecordDone); + PageInfo financeSelect(Integer pageNum, Integer pageSize, CashRecordDTO cashRecordDTO); } 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 53ea1ee..8dbce7a 100644 --- a/src/main/java/com/example/demo/serviceImpl/cash/CashRefundServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/cash/CashRefundServiceImpl.java @@ -3,7 +3,9 @@ package com.example.demo.serviceImpl.cash; import com.example.demo.Util.GoldTistV2; import com.example.demo.domain.entity.User; import com.example.demo.domain.entity.UserGoldRecord; +import com.example.demo.domain.vo.cash.CashRecordDTO; import com.example.demo.domain.vo.cash.CashRecordDone; +import com.example.demo.domain.vo.cash.CashRecordRefund; import com.example.demo.domain.vo.coin.Result; import com.example.demo.mapper.cash.CashRefundMapper; import com.example.demo.mapper.coin.AuditMapper; @@ -12,6 +14,7 @@ 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 jakarta.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -44,49 +47,38 @@ public class CashRefundServiceImpl implements RefundService { @Autowired private MarketMapper marketMapper; @Override - public PageInfo select(Integer pageNum, Integer pageSize, CashRecordDone cashRecordDone) { + public PageInfo select(Integer pageNum, Integer pageSize, CashRecordDTO cashRecordDTO) { PageHelper.startPage(pageNum, pageSize); // System.out.println(goldDetail.getMarkets()); - List list = cashRefundMapper.select(cashRecordDone); + List list = cashRefundMapper.select(cashRecordDTO); return new PageInfo<>(list); } @Override - public int add(CashRecordDone cashRecordDone) throws Exception { - if(cashRecordDone.getHandlingCharge()== null){ - throw new Exception("未输入手续费") ; - } - if(cashRecordDone.getJwcode()==null){ + public int add(CashRecordRefund cashRecordRefund) throws Exception { + if(cashRecordRefund.getJwcode()==null){ throw new Exception("未输入精网号") ; } - if(cashRecordDone.getPaymentAmount()== null){ - throw new Exception("未输入付款金额") ; - } - if(cashRecordDone.getPaymentCurrency()== null){ - throw new Exception("未输入付款币种") ; - } - if(cashRecordDone.getRefundModel()== null){ + if(cashRecordRefund.getRefundModel()== null){ throw new Exception("请填充退款类型") ; } - if(cashRecordDone.getRefundReason()== null){ + if(cashRecordRefund.getRefundReason()== null){ throw new Exception("请填写退款理由") ; } CashRecordDone cashRecordDonetwo = new CashRecordDone(); - cashRecordDonetwo.setAreaServise(cashRecordDone.getAreaServise()); + cashRecordDonetwo.setAreaServise(cashRecordRefund.getAreaServise()); cashRefundMapper.addAudit(cashRecordDonetwo); - cashRecordDone.setAuditId(cashRecordDonetwo.getId()); + cashRecordRefund.setAuditId(cashRecordDonetwo.getId()); - cashRecordDone.setOrderType(2); - cashRecordDone.setStatus(10); + cashRecordRefund.setStatus(10); //生成订单号后半部分 - String orderNumber = cashRecordDone.getOrderCode(); + String orderNumber = cashRecordRefund.getOrderCode(); //构建订单信息 - cashRecordDone.setOrderCode("TK" + orderNumber); //订单号 - cashRecordDone.setMarket(marketMapper.getMarketId(cashRecordDone.getMarket())); - cashRecordDone.setReceivedMarket(marketMapper.getMarketId(cashRecordDone.getReceivedMarket())); - cashRefundMapper.insert(cashRecordDone); + cashRecordRefund.setOrderCode("TK" + orderNumber); //订单号 + cashRecordRefund.setMarket(String.valueOf(Integer.valueOf(marketMapper.getMarketId(cashRecordRefund.getMarket())))); + cashRefundMapper.insert(cashRecordRefund); CashRecordDone cashRecordDone1 = new CashRecordDone(); - cashRecordDone1.setId(cashRecordDone.getId()); + cashRecordDone1.setId(cashRecordRefund.getId()); cashRecordDone1.setStatus(6); if (cashRecordDone1.getId()!=null||cashRecordDone1.getOrderCode()!= null) return cashRefundMapper.updateStatus(cashRecordDone1); @@ -226,4 +218,12 @@ CashRecordDone cashRecordDone1 = new CashRecordDone(); int result = cashRefundMapper.review(cashRecordDone); return (result > 0 ? Result.success("提交成功") : Result.error("提交失败")).getCode(); } + + @Override + public PageInfo financeSelect(Integer pageNum, Integer pageSize, CashRecordDTO cashRecordDTO) { + PageHelper.startPage(pageNum, pageSize); +// System.out.println(goldDetail.getMarkets()); + List list = cashRefundMapper.financeSelect(cashRecordDTO); + return new PageInfo<>(list); + } } diff --git a/src/main/resources/cashMapper/CashRefundMapper.xml b/src/main/resources/cashMapper/CashRefundMapper.xml index ab6d627..3ecb7a7 100644 --- a/src/main/resources/cashMapper/CashRefundMapper.xml +++ b/src/main/resources/cashMapper/CashRefundMapper.xml @@ -2,72 +2,58 @@ - INSERT INTO cash_record ( - order_type, - jwcode, - name, - market, - activity, - order_code, - bank_code, - goods_name, - good_num, - audit_id, - payment_currency, - payment_amount, - received_currency, - received_amount, - handling_charge, - received_market, - pay_type, - pay_time, - received_time, - status, - submitter_id, - voucher, - remark, - refund_reason, - refund_model, - executor, - refund_channels, - refund_time, - refund_remark, - refund_voucher, - permanent_gold, - free_gold + INSERT INTO cash_record_refund ( + jwcode, + name, + market, + activity, + order_code, + bank_code, + permanent_gold, + free_gold, + submitter_id, + submitter_market, + voucher, + remark, + reject_reason, + refund_reason, + refund_model, + executor, + refund_channels, + refund_time, + refund_remark, + refund_voucher, + refund_currency, + refund_amount, + related_id, + audit_id, + status, ) VALUES ( - #{orderType}, - #{jwcode}, - #{name}, - #{market}, - #{activity}, - #{orderCode}, - #{bankCode}, - #{goodsName}, - #{goodNum}, - #{auditId}, - #{paymentCurrency}, - #{paymentAmount}, - #{receivedCurrency}, - #{receivedAmount}, - #{handlingCharge}, - #{receivedMarket}, - #{payType}, - #{payTime}, - #{receivedTime}, - #{status}, - #{submitterId}, - #{voucher}, - #{remark}, - #{refundReason}, - #{refundModel}, - #{executor}, - #{refundChannels}, - #{refundTime}, - #{refundRemark}, - #{refundVoucher}, + #{jwcode}, + #{name}, + #{market}, + #{activity}, + #{orderCode}, + #{bankCode}, #{permanentGold}, - #{freeGold} + #{freeGold}, + #{submitterId}, + #{submitterMarket}, + #{voucher}, + #{remark}, + #{rejectReason}, + #{refundReason}, + #{refundModel}, + #{executor}, + #{refundChannels}, + #{refundTime}, + #{refundRemark}, + #{refundVoucher}, + #{refundCurrency}, + #{refundAmount}, + #{id}, + #{auditId}, + #{status}, ); @@ -148,117 +134,150 @@ +