From 43888acb9fd00251c080b0ea5762f0edd1b5badf Mon Sep 17 00:00:00 2001 From: lijianlin Date: Thu, 6 Nov 2025 17:00:52 +0800 Subject: [PATCH 01/13] =?UTF-8?q?11-05=20=E6=94=B6=E6=AC=BEstatus=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/cashMapper/CashCollectionMapper.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/cashMapper/CashCollectionMapper.xml b/src/main/resources/cashMapper/CashCollectionMapper.xml index f9c02c0..1fd87eb 100644 --- a/src/main/resources/cashMapper/CashCollectionMapper.xml +++ b/src/main/resources/cashMapper/CashCollectionMapper.xml @@ -211,7 +211,7 @@ \ No newline at end of file diff --git a/src/main/resources/cashMapper/CashRefundMapper.xml b/src/main/resources/cashMapper/CashRefundMapper.xml index 3ecb7a7..b9dd5fe 100644 --- a/src/main/resources/cashMapper/CashRefundMapper.xml +++ b/src/main/resources/cashMapper/CashRefundMapper.xml @@ -6,7 +6,6 @@ jwcode, name, market, - activity, order_code, bank_code, permanent_gold, @@ -32,7 +31,6 @@ #{jwcode}, #{name}, #{market}, - #{activity}, #{orderCode}, #{bankCode}, #{permanentGold}, @@ -133,7 +131,7 @@ - select crr.id, crr.jwcode, @@ -158,14 +156,15 @@ la.head_finance, crc.activity, crc.goods_name, - crc.goods_num, + crc.good_num as goodsNum, crc.num_unit, crc.pay_type, crc.pay_time, crc.voucher, crc.remark, crc.payment_currency, - crc.payment_amount, + crc.payment_amount + from cash_record_refund crr left join lhl_audit la on la.id = crr.audit_id left join cash_record_collection crc on crc.id = crr.related_id @@ -215,7 +214,7 @@ ORDER BY ${sortField} ${sortOrder} - ORDER BY create_time DESC + ORDER BY crr.create_time DESC @@ -225,7 +224,7 @@ crr.name, crr.market, crc.goods_name, - crc.goods_num, + crc.good_num as goodsNum, crc.num_unit, crr.refund_model, crr.submitter_id, @@ -235,9 +234,14 @@ crr.permanent_gold, crr.free_gold, crr.audit_id, - crr.related_id + crr.related_id, + la.area_servise, + la.area_finance, + la.area_charge, + la.head_finance from cash_record_refund crr left join cash_record_collection crc on crc.id = crr.related_id + left join lhl_audit la on la.id = crr.audit_id and crr.status = #{status} @@ -285,8 +289,93 @@ ORDER BY ${sortField} ${sortOrder} - ORDER BY create_time DESC + ORDER BY crr.create_time DESC + + + \ No newline at end of file diff --git a/src/main/resources/mapper/MarketMapper.xml b/src/main/resources/mapper/MarketMapper.xml index 734f78a..7f59272 100644 --- a/src/main/resources/mapper/MarketMapper.xml +++ b/src/main/resources/mapper/MarketMapper.xml @@ -35,4 +35,7 @@ + \ No newline at end of file From 328d62da52e86863cb68e677e66cf341a7753ef6 Mon Sep 17 00:00:00 2001 From: huangqizhen <15552608129@163.com> Date: Tue, 11 Nov 2025 09:49:08 +0800 Subject: [PATCH 04/13] =?UTF-8?q?11.11=20=E9=80=80=E6=AC=BE,=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E5=85=A8=E9=83=A8=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/example/demo/Export/ExportService.java | 2 + .../com/example/demo/Export/ExportServiceImpl.java | 26 +- .../demo/controller/cash/CashRefundController.java | 4 + .../demo/controller/coin/ExportController.java | 18 ++ .../java/com/example/demo/domain/DTO/CashDTO.java | 39 +++ .../example/demo/domain/vo/cash/CashRecordDTO.java | 21 +- .../demo/domain/vo/cash/CashRecordRefund.java | 4 +- .../com/example/demo/domain/vo/cash/LhlAudit.java | 3 +- .../com/example/demo/domain/vo/coin/IdName.java | 13 + .../demo/mapper/cash/CashCollectionMapper.java | 4 + .../example/demo/mapper/cash/CashRefundMapper.java | 6 +- .../com/example/demo/mapper/coin/AuditMapper.java | 5 + .../com/example/demo/mapper/coin/MarketMapper.java | 4 + .../demo/service/coin/ExportExcelService.java | 2 + .../example/demo/service/listen/CashListener.java | 36 +++ .../serviceImpl/cash/CashRefundServiceImpl.java | 290 +++++++++++++-------- .../serviceImpl/coin/ExportExcelServiceImpl.java | 19 ++ .../resources/cashMapper/CashCollectionMapper.xml | 16 ++ src/main/resources/cashMapper/CashRefundMapper.xml | 32 ++- src/main/resources/mapper/AuditMapper.xml | 69 ++--- src/main/resources/mapper/MarketMapper.xml | 6 + 21 files changed, 452 insertions(+), 167 deletions(-) create mode 100644 src/main/java/com/example/demo/domain/DTO/CashDTO.java create mode 100644 src/main/java/com/example/demo/domain/vo/coin/IdName.java create mode 100644 src/main/java/com/example/demo/service/listen/CashListener.java diff --git a/src/main/java/com/example/demo/Export/ExportService.java b/src/main/java/com/example/demo/Export/ExportService.java index a907536..f190b38 100644 --- a/src/main/java/com/example/demo/Export/ExportService.java +++ b/src/main/java/com/example/demo/Export/ExportService.java @@ -30,4 +30,6 @@ public interface ExportService { Result addExportOnline(OnlineDTO dto); //现金负责人退款导出 Result addExportFinance(FinanceDTO dto); + + Result addExportCash(CashDTO dto); } diff --git a/src/main/java/com/example/demo/Export/ExportServiceImpl.java b/src/main/java/com/example/demo/Export/ExportServiceImpl.java index ad7e322..e86d041 100644 --- a/src/main/java/com/example/demo/Export/ExportServiceImpl.java +++ b/src/main/java/com/example/demo/Export/ExportServiceImpl.java @@ -127,8 +127,13 @@ public class ExportServiceImpl implements ExportService { } else if(dto instanceof FinanceDTO financeDTO){ financeDTO.setAccount(Integer.valueOf(account)); financeDTO.setUrl(""); - financeDTO.setFileName(generateFileName("现金明细", adminName)); + financeDTO.setFileName(generateFileName("现金退款明细", adminName)); financeDTO.setDataNum(0); + } else if(dto instanceof CashDTO cashDTO){ + cashDTO.setAccount(Integer.valueOf(account)); + cashDTO.setUrl(""); + cashDTO.setFileName(generateFileName("现金收款明细", adminName)); + cashDTO.setDataNum(0); } } @@ -226,6 +231,16 @@ public class ExportServiceImpl implements ExportService { financeDTO.getFileName(), financeDTO.getDataNum() ); + }else if (dto instanceof CashDTO cashDTO){ + goldDetailMapper.insertExportRecord( + idHolder, + account, + cashDTO.getType(), + cashDTO.getState(), + cashDTO.getUrl(), + cashDTO.getFileName(), + cashDTO.getDataNum() + ); } } @@ -256,6 +271,8 @@ public class ExportServiceImpl implements ExportService { requestData.put(requestDataKey, onlineDTO.getBeanOnlineRechargeInfo()); }else if(dto instanceof FinanceDTO financeDTO){ requestData.put(requestDataKey, financeDTO.getCashRecordDTO()); + }else if (dto instanceof CashDTO cashDTO){ + requestData.put(requestDataKey, cashDTO.getCashCollection()); } exportData.put("requestData", requestData); @@ -314,6 +331,11 @@ public class ExportServiceImpl implements ExportService { @Override public Result addExportFinance(FinanceDTO dto) { - return addExport(dto, "现金明细", "finance:queue:export_queue", "cashRecordDTO"); + return addExport(dto, "现金退款明细", "finance:queue:export_queue", "cashRecordDTO"); + } + + @Override + public Result addExportCash(CashDTO dto) { + return addExport(dto, "现金收款明细", "cash:queue:export_queue", "cashCollection"); } } \ No newline at end of file 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 1aec3c7..bced193 100644 --- a/src/main/java/com/example/demo/controller/cash/CashRefundController.java +++ b/src/main/java/com/example/demo/controller/cash/CashRefundController.java @@ -233,4 +233,8 @@ public class CashRefundController { return Result.success(refundService.financeSelect(page.getPageNum(), page.getPageSize(), page.getCashRecordDTO())); } + @PostMapping("/ceshi") + public Result ceshi() { + return Result.success("测试消息"); + } } diff --git a/src/main/java/com/example/demo/controller/coin/ExportController.java b/src/main/java/com/example/demo/controller/coin/ExportController.java index 01c3f14..07b9eca 100644 --- a/src/main/java/com/example/demo/controller/coin/ExportController.java +++ b/src/main/java/com/example/demo/controller/coin/ExportController.java @@ -6,6 +6,7 @@ import com.example.demo.Util.RedisLockUtil; import com.example.demo.domain.DTO.*; import com.example.demo.domain.entity.Admin; import com.example.demo.domain.entity.Export; +import com.example.demo.domain.DTO.CashDTO; import com.example.demo.domain.vo.coin.Result; import com.example.demo.service.coin.ExportExcelService; import com.example.demo.service.coin.GoldDetailService; @@ -215,4 +216,21 @@ public class ExportController { redisLockUtil.unlock(lockKey, requestId); } } + @PostMapping("/exportCash") + public Result exportCash(@Valid @RequestBody CashDTO dto) { + String lockKey = "export:lock:" + dto.getToken(); + String requestId = UUID.randomUUID().toString(); + long expireTime = 5000; + try { + // 尝试获取锁 + if (!redisLockUtil.tryLock(lockKey, requestId, expireTime)) { + throw new BusinessException("操作太频繁,请稍后重试"); + } + // 执行业务逻辑 + return exportService.addExportCash(dto); + }finally { + // 释放锁 + redisLockUtil.unlock(lockKey, requestId); + } + } } \ No newline at end of file diff --git a/src/main/java/com/example/demo/domain/DTO/CashDTO.java b/src/main/java/com/example/demo/domain/DTO/CashDTO.java new file mode 100644 index 0000000..09aeea1 --- /dev/null +++ b/src/main/java/com/example/demo/domain/DTO/CashDTO.java @@ -0,0 +1,39 @@ +package com.example.demo.domain.DTO; + +import com.example.demo.domain.vo.bean.BeanOnlineRechargeInfo; +import com.example.demo.domain.vo.cash.CashCollection; +import jakarta.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @program: GOLD + * @ClassName CashDTO + * @description: + * @author: huangqizhen + * @create: 2025−11-09 09:26 + * @Version 1.0 + **/ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class CashDTO { + private String token; + private String url = ""; + private String fileName = ""; + private Integer sort = 0; + private String field = ""; + private Integer account; + private Integer type = 13; //类型 + private Integer state = 0; //状态 + private String text = ""; //关键词搜索 + private Integer dataNum = 0; + private String deptid = ""; + + @NotNull(message = "page不能为空") + private Integer page = 1; + @NotNull(message = "pageSize不能为空") + private Integer pageSize = 20; + private CashCollection cashCollection; +} 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 index 8856418..fdc39a8 100644 --- a/src/main/java/com/example/demo/domain/vo/cash/CashRecordDTO.java +++ b/src/main/java/com/example/demo/domain/vo/cash/CashRecordDTO.java @@ -22,7 +22,7 @@ import java.util.List; @Data @AllArgsConstructor @NoArgsConstructor -public class CashRecordDTO extends CashRecordRefund{ +public class CashRecordDTO{ private String activity;// 活动 private String goodsName;// 商品名称 private Integer goodsNum;// 商品数量 @@ -33,7 +33,7 @@ public class CashRecordDTO extends CashRecordRefund{ private BigDecimal paymentAmount;// 支付金额 private String receivedCurrency;// 收款币种 private BigDecimal receivedAmount;// 收款金额 - private BigDecimal handlingCharges;// 手续费 + private BigDecimal handlingCharge;// 手续费 private String payBankCode;// 付款银行 private String payType;// 支付方式 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") @@ -50,7 +50,9 @@ public class CashRecordDTO extends CashRecordRefund{ //到账日期 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") private LocalDateTime receivedTime; + @ExcelIgnore private List goodsNames;// 商品名称 + @ExcelIgnore private List markets;// 地区 @@ -88,16 +90,17 @@ public class CashRecordDTO extends CashRecordRefund{ /** * 永久金币 */ - private Integer permanentGold; + private BigDecimal permanentGold; /** * 免费金币 */ - private Integer freeGold; + private BigDecimal freeGold; /** * 审核人id */ + @ExcelIgnore private Integer auditId; /** @@ -117,6 +120,7 @@ public class CashRecordDTO extends CashRecordRefund{ /** * 提交人id */ + @ExcelIgnore private Integer submitterId; /** @@ -206,6 +210,7 @@ public class CashRecordDTO extends CashRecordRefund{ /** * 关联收款id */ + @ExcelIgnore private Integer relatedId; @ExcelIgnore @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") @@ -217,20 +222,26 @@ public class CashRecordDTO extends CashRecordRefund{ private String auditName; private String executorName; private String marketName; + @ExcelIgnore private List statuses; - + @ExcelIgnore private String processInstanceId; // 流程实例ID + @ExcelIgnore private String currentTaskId; // 当前任务ID private String areaServise; private String areaFinance; private String areaCharge; private String headFinance; + @ExcelIgnore private String sortField; + @ExcelIgnore private String sortOrder; + @ExcelIgnore @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") private Date sTime; // 开始时间 + @ExcelIgnore @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") private Date eTime; // 结束时间 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 index 5883655..7e4f6bf 100644 --- a/src/main/java/com/example/demo/domain/vo/cash/CashRecordRefund.java +++ b/src/main/java/com/example/demo/domain/vo/cash/CashRecordRefund.java @@ -192,10 +192,12 @@ public class CashRecordRefund { private String headFinance; private String sortField; private String sortOrder; - + @ExcelIgnore @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; // 结束时间 + private Integer partRefundGold; + private Integer partRefundFree; } \ No newline at end of file diff --git a/src/main/java/com/example/demo/domain/vo/cash/LhlAudit.java b/src/main/java/com/example/demo/domain/vo/cash/LhlAudit.java index 6a05965..d2a66e5 100644 --- a/src/main/java/com/example/demo/domain/vo/cash/LhlAudit.java +++ b/src/main/java/com/example/demo/domain/vo/cash/LhlAudit.java @@ -16,8 +16,9 @@ import lombok.NoArgsConstructor; @AllArgsConstructor @NoArgsConstructor public class LhlAudit { + private Integer id; private String areaServise;// private String areaFinance; private String areaCharge; private String headFinace; -} +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/domain/vo/coin/IdName.java b/src/main/java/com/example/demo/domain/vo/coin/IdName.java new file mode 100644 index 0000000..fa550d3 --- /dev/null +++ b/src/main/java/com/example/demo/domain/vo/coin/IdName.java @@ -0,0 +1,13 @@ +package com.example.demo.domain.vo.coin; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class IdName { + private Integer id; + private String name; +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/mapper/cash/CashCollectionMapper.java b/src/main/java/com/example/demo/mapper/cash/CashCollectionMapper.java index 94e23d5..139c995 100644 --- a/src/main/java/com/example/demo/mapper/cash/CashCollectionMapper.java +++ b/src/main/java/com/example/demo/mapper/cash/CashCollectionMapper.java @@ -1,5 +1,6 @@ package com.example.demo.mapper.cash; +import cn.hutool.core.lang.Opt; import com.example.demo.domain.entity.CashRecord; import com.example.demo.domain.entity.GOrder; import com.example.demo.domain.entity.RechargeActivity; @@ -9,6 +10,7 @@ import org.apache.ibatis.annotations.Param; import java.time.LocalDateTime; import java.util.List; +import java.util.Set; /** * @program: gold-java @@ -54,4 +56,6 @@ public interface CashCollectionMapper { int markSynced(@Param("orderId") Integer orderId); //根据id查询收款订单 CashCollection selectById(Integer id); + + List selectBatchIds(Set relatedIds); } 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 980016b..ee5fa3a 100644 --- a/src/main/java/com/example/demo/mapper/cash/CashRefundMapper.java +++ b/src/main/java/com/example/demo/mapper/cash/CashRefundMapper.java @@ -1,10 +1,12 @@ package com.example.demo.mapper.cash; +import cn.hutool.core.lang.Opt; import com.example.demo.domain.vo.cash.*; import com.example.demo.domain.vo.coin.RefundUser; import org.apache.ibatis.annotations.Mapper; import java.util.List; +import java.util.Set; /** * @program: GOLD @@ -32,4 +34,6 @@ public interface CashRefundMapper { //获取各阶段审核人 LhlAudit getAudit(Integer id); List exSelect(CashRecordDTO cashRecordDTO); -} + + List getAuditBatch(Set auditIds); +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/mapper/coin/AuditMapper.java b/src/main/java/com/example/demo/mapper/coin/AuditMapper.java index e5f9409..ec9280b 100644 --- a/src/main/java/com/example/demo/mapper/coin/AuditMapper.java +++ b/src/main/java/com/example/demo/mapper/coin/AuditMapper.java @@ -1,5 +1,7 @@ package com.example.demo.mapper.coin; +import cn.hutool.core.lang.Opt; +import com.example.demo.domain.entity.Admin; import com.example.demo.domain.entity.User; import com.example.demo.domain.entity.UserGoldRecord; import com.example.demo.domain.vo.coin.RechargeAudit; @@ -9,6 +11,7 @@ import org.apache.ibatis.annotations.Param; import java.util.Date; import java.util.List; +import java.util.Set; /** * @program: gold-java @@ -46,4 +49,6 @@ public interface AuditMapper { String getName(Integer auditId); //更新首充日期 void updateFirstRecharge(Integer jwcode); + + List getNamesByIds(Set submitterIds); } diff --git a/src/main/java/com/example/demo/mapper/coin/MarketMapper.java b/src/main/java/com/example/demo/mapper/coin/MarketMapper.java index 4feda3d..99adcd3 100644 --- a/src/main/java/com/example/demo/mapper/coin/MarketMapper.java +++ b/src/main/java/com/example/demo/mapper/coin/MarketMapper.java @@ -1,8 +1,11 @@ package com.example.demo.mapper.coin; +import cn.hutool.core.lang.Opt; import com.example.demo.domain.entity.Market; +import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Set; public interface MarketMapper { List getMarket(); @@ -15,4 +18,5 @@ public interface MarketMapper { Market getMarketIdDao(String country); Market getMarketIdBytype(String market); String getMarketById(String market); + List getMarketByIds(@Param("marketIds") Set marketIds); } \ No newline at end of file diff --git a/src/main/java/com/example/demo/service/coin/ExportExcelService.java b/src/main/java/com/example/demo/service/coin/ExportExcelService.java index 669f8f3..c65b87e 100644 --- a/src/main/java/com/example/demo/service/coin/ExportExcelService.java +++ b/src/main/java/com/example/demo/service/coin/ExportExcelService.java @@ -36,4 +36,6 @@ public interface ExportExcelService { Exception OnlineExcel(String message) throws Exception; //负责人退款导出 Exception FinanceExcel(String message) throws Exception; + + Exception CashExcel(String message) throws Exception; } \ No newline at end of file diff --git a/src/main/java/com/example/demo/service/listen/CashListener.java b/src/main/java/com/example/demo/service/listen/CashListener.java new file mode 100644 index 0000000..16cdfbc --- /dev/null +++ b/src/main/java/com/example/demo/service/listen/CashListener.java @@ -0,0 +1,36 @@ +package com.example.demo.service.listen; + +import com.example.demo.Util.RedisUtil; +import com.example.demo.service.coin.ExportExcelService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * @program: GOLD + * @ClassName CashListener + * @description: + * @author: huangqizhen + * @create: 2025−11-09 09:42 + * @Version 1.0 + **/ +@Component +public class CashListener extends BaseMessageListener { + @Autowired + private ExportExcelService exportExcelService; + + protected CashListener(RedisUtil redisQueueUtil) { + super(redisQueueUtil, "cash:queue:export_queue"); + } + + @Override + protected void handleMessage(String message) { + validateMessage( message); + try { + Thread.sleep(5000); + exportExcelService.CashExcel(message); + } catch (Exception e) { + handleException(e, message); + + } + } +} 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 cefa8bd..6bfef96 100644 --- a/src/main/java/com/example/demo/serviceImpl/cash/CashRefundServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/cash/CashRefundServiceImpl.java @@ -1,8 +1,9 @@ package com.example.demo.serviceImpl.cash; - +import com.example.demo.domain.entity.Admin; import com.example.demo.Util.BusinessException; import com.example.demo.Util.GoldTistV2; import com.example.demo.controller.coin.AuditController; +import com.example.demo.domain.entity.Market; import com.example.demo.domain.entity.User; import com.example.demo.domain.entity.UserGoldRecord; import com.example.demo.domain.vo.cash.*; @@ -13,20 +14,18 @@ import com.example.demo.mapper.cash.CashRefundMapper; import com.example.demo.mapper.coin.AuditMapper; import com.example.demo.mapper.coin.MarketMapper; import com.example.demo.mapper.coin.RefundMapper; -import com.example.demo.service.cash.CashCollectionService; 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; import java.math.BigDecimal; import java.math.RoundingMode; import java.time.LocalDate; -import java.util.Date; -import java.util.List; -import java.util.UUID; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; import static org.apache.commons.lang3.StringUtils.substring; @@ -58,48 +57,97 @@ public class CashRefundServiceImpl implements RefundService { @Override public PageInfo select(Integer pageNum, Integer pageSize, CashRecordDTO cashRecordDTO) { PageHelper.startPage(pageNum, pageSize); -// System.out.println(goldDetail.getMarkets()); List list = cashRefundMapper.select(cashRecordDTO); + + if (list.isEmpty()) { + return new PageInfo<>(list); + } + + // 批量收集ID + Set relatedIds = new HashSet<>(); + Set marketIds = new HashSet<>(); + Set submitterIds = new HashSet<>(); + Set auditIds = new HashSet<>(); + + list.forEach(item -> { + if (item.getRelatedId() != null) relatedIds.add(item.getRelatedId()); + if (item.getMarket() != null) marketIds.add(Integer.valueOf(item.getMarket())); + if (item.getSubmitterId() != null) submitterIds.add(item.getSubmitterId()); + if (item.getAuditId() != null) auditIds.add(item.getAuditId()); + }); + + // 批量查询 + Map cashCollectionMap = cashCollectionMapper.selectBatchIds(relatedIds) + .stream().collect(Collectors.toMap(CashCollection::getId, Function.identity())); + + Map marketNameMap = marketMapper.getMarketByIds(marketIds) + .stream().collect(Collectors.toMap(Market::getId, Market::getName)); + + Map submitterNameMap = auditMapper.getNamesByIds(submitterIds) + .stream().collect(Collectors.toMap(Admin::getId, Admin::getAdminName)); + + Map auditMap = cashRefundMapper.getAuditBatch(auditIds) + .stream().collect(Collectors.toMap(LhlAudit::getId, Function.identity())); + + // 处理数据 list.forEach(item -> { - CashCollection cashCollection = cashCollectionMapper.selectById(item.getRelatedId()); - String marketName = marketMapper.getMarketById(item.getMarket()); - String submitter = auditMapper.getName(item.getSubmitterId()); - LhlAudit lhlAudit = cashRefundMapper.getAudit(item.getAuditId()); - if(cashCollection.getFreeGold()== null){ - cashCollection.setFreeGold(0); + CashCollection cashCollection = cashCollectionMap.get(item.getRelatedId()); + if (cashCollection != null) { + processCashCollection(item, cashCollection); } - if(cashCollection.getPermanentGold()== null){ - cashCollection.setPermanentGold(0); + + String marketName = marketNameMap.get(item.getMarket()); + String submitter = submitterNameMap.get(item.getSubmitterId()); + LhlAudit lhlAudit = auditMap.get(item.getAuditId()); + + item.setMarketName(marketName != null ? marketName : ""); + item.setSubmitter(submitter != null ? submitter : ""); + + if (lhlAudit != null) { + item.setAreaServise(lhlAudit.getAreaServise()); + item.setAreaFinance(lhlAudit.getAreaFinance()); + item.setAreaCharge(lhlAudit.getAreaCharge()); + item.setHeadFinance(lhlAudit.getHeadFinace()); } - BigDecimal free = new BigDecimal(cashCollection.getFreeGold()) - .divide(new BigDecimal(100), 2, RoundingMode.HALF_UP); - BigDecimal permanent = new BigDecimal(cashCollection.getPermanentGold()) - .divide(new BigDecimal(100), 2, RoundingMode.HALF_UP); - item.setGold(permanent); - item.setFree(free); - item.setActivity(cashCollection.getActivity()); - item.setPaymentCurrency(cashCollection.getPaymentCurrency()); - item.setPaymentAmount(cashCollection.getPaymentAmount()); - item.setReceivedCurrency(cashCollection.getReceivedCurrency()); - item.setReceivedAmount(cashCollection.getReceivedAmount()); - item.setPayType(cashCollection.getPayType()); - item.setPayTime(cashCollection.getPayTime()); - item.setPayBankCode(cashCollection.getBankCode()); - item.setPaySubmitter(cashCollection.getSubmitterName()); - item.setAudit(cashCollection.getAuditName()); - item.setReceivedTime(cashCollection.getReceivedTime()); - item.setPayVoucher(cashCollection.getVoucher()); - item.setPayRemark(cashCollection.getRemark()); - item.setMarketName(marketName); - item.setSubmitter(submitter); - item.setAreaServise(lhlAudit.getAreaServise()); - item.setAreaFinance(lhlAudit.getAreaFinance()); - item.setAreaCharge(lhlAudit.getAreaCharge()); - item.setHeadFinance(lhlAudit.getHeadFinace()); }); + return new PageInfo<>(list); } + private void processCashCollection(CashRecordDTO item, CashCollection cashCollection) { + // 设置默认值 + Integer freeGold = cashCollection.getFreeGold() != null ? cashCollection.getFreeGold() : 0; + Integer permanentGold = cashCollection.getPermanentGold() != null ? cashCollection.getPermanentGold() : 0; + + BigDecimal free = new BigDecimal(freeGold).divide(new BigDecimal(100), 2, RoundingMode.HALF_UP); + BigDecimal permanent = new BigDecimal(permanentGold).divide(new BigDecimal(100), 2, RoundingMode.HALF_UP); + + item.setGold(permanent); + item.setFree(free); + item.setActivity(cashCollection.getActivity()); + item.setPaymentCurrency(cashCollection.getPaymentCurrency()); + item.setPaymentAmount(cashCollection.getPaymentAmount()); + item.setReceivedCurrency(cashCollection.getReceivedCurrency()); + item.setReceivedAmount(cashCollection.getReceivedAmount()); + item.setPayType(cashCollection.getPayType()); + item.setPayTime(cashCollection.getPayTime()); + item.setPayBankCode(cashCollection.getBankCode()); + item.setPaySubmitter(cashCollection.getSubmitterName()); + item.setAudit(cashCollection.getAuditName()); + item.setReceivedTime(cashCollection.getReceivedTime()); + item.setPayVoucher(cashCollection.getVoucher()); + item.setPayRemark(cashCollection.getRemark()); + item.setHandlingCharge(cashCollection.getHandlingCharge()); + + // 处理金币金额 + if (item.getPermanentGold() != null) { + item.setPermanentGold(item.getPermanentGold().divide(new BigDecimal(100), 2, RoundingMode.HALF_UP)); + } + if (item.getFreeGold() != null) { + item.setFreeGold(item.getFreeGold().divide(new BigDecimal(100), 2, RoundingMode.HALF_UP)); + } + } + @Override public int add(CashRecordRefund cashRecordRefund) throws Exception { if(cashRecordRefund.getJwcode()==null){ @@ -270,44 +318,58 @@ CashRecordDone cashRecordDone1 = new CashRecordDone(); PageHelper.startPage(pageNum, pageSize); // System.out.println(goldDetail.getMarkets()); List list = cashRefundMapper.financeSelect(cashRecordDTO); - System.out.println( list); + if (list.isEmpty()) { + return new PageInfo<>(list); + } + + // 批量收集ID + Set relatedIds = new HashSet<>(); + Set marketIds = new HashSet<>(); + Set submitterIds = new HashSet<>(); + Set auditIds = new HashSet<>(); + list.forEach(item -> { - CashCollection cashCollection = cashCollectionMapper.selectById(item.getRelatedId()); - String marketName = marketMapper.getMarketById(item.getMarket()); - String submitter = auditMapper.getName(item.getSubmitterId()); - LhlAudit lhlAudit = cashRefundMapper.getAudit(item.getAuditId()); - if(cashCollection.getFreeGold()== null){ - cashCollection.setFreeGold(0); + if (item.getRelatedId() != null) relatedIds.add(item.getRelatedId()); + if (item.getMarket() != null) marketIds.add(Integer.valueOf(item.getMarket())); + if (item.getSubmitterId() != null) submitterIds.add(item.getSubmitterId()); + if (item.getAuditId() != null) auditIds.add(item.getAuditId()); + }); + + // 批量查询 + Map cashCollectionMap = cashCollectionMapper.selectBatchIds(relatedIds) + .stream().collect(Collectors.toMap(CashCollection::getId, Function.identity())); + + Map marketNameMap = marketMapper.getMarketByIds(marketIds) + .stream().collect(Collectors.toMap(Market::getId, Market::getName)); + + Map submitterNameMap = auditMapper.getNamesByIds(submitterIds) + .stream().collect(Collectors.toMap(Admin::getId, Admin::getAdminName)); + + Map auditMap = cashRefundMapper.getAuditBatch(auditIds) + .stream().collect(Collectors.toMap(LhlAudit::getId, Function.identity())); + + // 处理数据 + list.forEach(item -> { + CashCollection cashCollection = cashCollectionMap.get(item.getRelatedId()); + if (cashCollection != null) { + processCashCollection(item, cashCollection); } - if(cashCollection.getPermanentGold()== null){ - cashCollection.setPermanentGold(0); + + String marketName = marketNameMap.get(item.getMarket()); + String submitter = submitterNameMap.get(item.getSubmitterId()); + LhlAudit lhlAudit = auditMap.get(item.getAuditId()); + + item.setMarketName(marketName != null ? marketName : ""); + item.setSubmitter(submitter != null ? submitter : ""); + + if (lhlAudit != null) { + item.setAreaServise(lhlAudit.getAreaServise()); + item.setAreaFinance(lhlAudit.getAreaFinance()); + item.setAreaCharge(lhlAudit.getAreaCharge()); + item.setHeadFinance(lhlAudit.getHeadFinace()); } - BigDecimal free = new BigDecimal(cashCollection.getFreeGold()) - .divide(new BigDecimal(100), 2, RoundingMode.HALF_UP); - BigDecimal permanent = new BigDecimal(cashCollection.getPermanentGold()) - .divide(new BigDecimal(100), 2, RoundingMode.HALF_UP); - item.setGold(permanent); - item.setFree(free); - item.setActivity(cashCollection.getActivity()); - item.setPaymentCurrency(cashCollection.getPaymentCurrency()); - item.setPaymentAmount(cashCollection.getPaymentAmount()); - item.setReceivedCurrency(cashCollection.getReceivedCurrency()); - item.setReceivedAmount(cashCollection.getReceivedAmount()); - item.setPayType(cashCollection.getPayType()); - item.setPayTime(cashCollection.getPayTime()); - item.setPayBankCode(cashCollection.getBankCode()); - item.setPaySubmitter(cashCollection.getSubmitterName()); - item.setAudit(cashCollection.getAuditName()); - item.setReceivedTime(cashCollection.getReceivedTime()); - item.setPayVoucher(cashCollection.getVoucher()); - item.setPayRemark(cashCollection.getRemark()); - item.setMarketName(marketName); - item.setSubmitter(submitter); - item.setAreaServise(lhlAudit.getAreaServise()); - item.setAreaFinance(lhlAudit.getAreaFinance()); - item.setAreaCharge(lhlAudit.getAreaCharge()); - item.setHeadFinance(lhlAudit.getHeadFinace()); }); + return new PageInfo<>(list); } @@ -316,38 +378,58 @@ CashRecordDone cashRecordDone1 = new CashRecordDone(); PageHelper.startPage(pageNum, pageSize); // System.out.println(goldDetail.getMarkets()); List list = cashRefundMapper.exSelect(cashRecordDTO); + if (list.isEmpty()) { + return new PageInfo<>(list); + } + + // 批量收集ID + Set relatedIds = new HashSet<>(); + Set marketIds = new HashSet<>(); + Set submitterIds = new HashSet<>(); + Set auditIds = new HashSet<>(); + list.forEach(item -> { - CashCollection cashCollection = cashCollectionMapper.selectById(item.getRelatedId()); - String marketName - = marketMapper.getMarketById(item.getMarket()); - String submitter = auditMapper.getName(item.getSubmitterId()); - LhlAudit lhlAudit = cashRefundMapper.getAudit(item.getAuditId()); - BigDecimal free = new BigDecimal(cashCollection.getFreeGold()) - .divide(new BigDecimal(100), 2, RoundingMode.HALF_UP); - BigDecimal permanent = new BigDecimal(cashCollection.getPermanentGold()) - .divide(new BigDecimal(100), 2, RoundingMode.HALF_UP); - item.setGold(permanent); - item.setFree(free); - item.setActivity(cashCollection.getActivity()); - item.setPaymentCurrency(cashCollection.getPaymentCurrency()); - item.setPaymentAmount(cashCollection.getPaymentAmount()); - item.setReceivedCurrency(cashCollection.getReceivedCurrency()); - item.setReceivedAmount(cashCollection.getReceivedAmount()); - item.setPayType(cashCollection.getPayType()); - item.setPayTime(cashCollection.getPayTime()); - item.setPayBankCode(cashCollection.getBankCode()); - item.setPaySubmitter(cashCollection.getSubmitterName()); - item.setAudit(cashCollection.getAuditName()); - item.setReceivedTime(cashCollection.getReceivedTime()); - item.setPayVoucher(cashCollection.getVoucher()); - item.setPayRemark(cashCollection.getRemark()); - item.setMarketName(marketName); - item.setSubmitter(submitter); - item.setAreaServise(lhlAudit.getAreaServise()); - item.setAreaFinance(lhlAudit.getAreaFinance()); - item.setAreaCharge(lhlAudit.getAreaCharge()); - item.setHeadFinance(lhlAudit.getHeadFinace()); + if (item.getRelatedId() != null) relatedIds.add(item.getRelatedId()); + if (item.getMarket() != null) marketIds.add(Integer.valueOf(item.getMarket())); + if (item.getSubmitterId() != null) submitterIds.add(item.getSubmitterId()); + if (item.getAuditId() != null) auditIds.add(item.getAuditId()); }); + + // 批量查询 + Map cashCollectionMap = cashCollectionMapper.selectBatchIds(relatedIds) + .stream().collect(Collectors.toMap(CashCollection::getId, Function.identity())); + + Map marketNameMap = marketMapper.getMarketByIds(marketIds) + .stream().collect(Collectors.toMap(Market::getId, Market::getName)); + + Map submitterNameMap = auditMapper.getNamesByIds(submitterIds) + .stream().collect(Collectors.toMap(Admin::getId, Admin::getAdminName)); + + Map auditMap = cashRefundMapper.getAuditBatch(auditIds) + .stream().collect(Collectors.toMap(LhlAudit::getId, Function.identity())); + + // 处理数据 + list.forEach(item -> { + CashCollection cashCollection = cashCollectionMap.get(item.getRelatedId()); + if (cashCollection != null) { + processCashCollection(item, cashCollection); + } + + String marketName = marketNameMap.get(item.getMarket()); + String submitter = submitterNameMap.get(item.getSubmitterId()); + LhlAudit lhlAudit = auditMap.get(item.getAuditId()); + + item.setMarketName(marketName != null ? marketName : ""); + item.setSubmitter(submitter != null ? submitter : ""); + + if (lhlAudit != null) { + item.setAreaServise(lhlAudit.getAreaServise()); + item.setAreaFinance(lhlAudit.getAreaFinance()); + item.setAreaCharge(lhlAudit.getAreaCharge()); + item.setHeadFinance(lhlAudit.getHeadFinace()); + } + }); + return new PageInfo<>(list); } diff --git a/src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java index 5e4d0cc..0b4b6d0 100644 --- a/src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java @@ -19,6 +19,7 @@ import com.example.demo.domain.entity.User; import com.example.demo.domain.export.Goldmingxi; 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.coin.*; @@ -285,6 +286,22 @@ public class ExportExcelServiceImpl implements ExportExcelService { } @Override + public Exception CashExcel(String message) throws Exception { + return exportExcelGeneric(message, "cashUser", page -> { + try { + JsonNode rootNode = objectMapper.readTree(message); + JsonNode requestDataNode = rootNode.path("requestData"); + JsonNode beanRechargeNode = requestDataNode.path("cashCollection"); + CashCollection cashCollection = objectMapper.treeToValue(beanRechargeNode, CashCollection.class); + page.setCashCollection(cashCollection); + return cashRefundController.export(page); + } catch (Exception e) { + throw new RuntimeException(e); + } + }); + } + + @Override public List getExcel(Export export) { List list = exportMapper.getExportRecord(export.getAccount(),export.getType()); System.out.println(list+"-------------------------------"); @@ -523,6 +540,8 @@ public class ExportExcelServiceImpl implements ExportExcelService { return BeanOnlineRechargeInfo.class; case "financeUser": return CashRecordDTO.class; + case "cashUser": + return CashCollection.class; default: throw new IllegalArgumentException("不支持的导出类型: " + exportType); } diff --git a/src/main/resources/cashMapper/CashCollectionMapper.xml b/src/main/resources/cashMapper/CashCollectionMapper.xml index 99c6b6f..ce94b08 100644 --- a/src/main/resources/cashMapper/CashCollectionMapper.xml +++ b/src/main/resources/cashMapper/CashCollectionMapper.xml @@ -255,4 +255,20 @@ left join recharge_activity ra on ra.id = cr.activity where cr.id=#{id} + \ No newline at end of file diff --git a/src/main/resources/cashMapper/CashRefundMapper.xml b/src/main/resources/cashMapper/CashRefundMapper.xml index b9dd5fe..8887167 100644 --- a/src/main/resources/cashMapper/CashRefundMapper.xml +++ b/src/main/resources/cashMapper/CashRefundMapper.xml @@ -26,15 +26,15 @@ refund_amount, related_id, audit_id, - status, + status ) VALUES ( #{jwcode}, #{name}, #{market}, #{orderCode}, #{bankCode}, - #{permanentGold}, - #{freeGold}, + #{partRefundGold}, + #{partRefundFree}, #{submitterId}, #{submitterMarket}, #{voucher}, @@ -51,7 +51,7 @@ #{refundAmount}, #{id}, #{auditId}, - #{status}, + #{status} ); @@ -73,7 +73,7 @@ - update cash_record + update cash_record_refund set status = 10, refund_model = #{refundModel}, @@ -81,15 +81,15 @@ where id = #{id} - update cash_record set status = 11 - where order_type =2 and id = #{id} + update cash_record_refund set status = 11 + where id = #{id} - update cash_record set status = #{status},executor = #{executor},reject_reason = #{rejectReason} - where order_type =2 and id = #{id} + update cash_record_refund set status = #{status},executor = #{executor},reject_reason = #{rejectReason} + where id = #{id} - update cash_record set refund_currency = #{refundCurrency}, + update cash_record_refund set refund_currency = #{refundCurrency}, refund_amount = #{refundAmount}, refund_channels = #{refundChannels}, refund_time = #{refundTime}, @@ -97,10 +97,10 @@ refund_voucher = #{refundVoucher}, status = #{status}, executor = #{executor} - where order_type =2 and id = #{id} + where id = #{id} - update cash_record + update cash_record_collection set status = #{status} @@ -378,4 +378,12 @@ + + \ No newline at end of file diff --git a/src/main/resources/mapper/AuditMapper.xml b/src/main/resources/mapper/AuditMapper.xml index ffa4b51..25cc1c4 100644 --- a/src/main/resources/mapper/AuditMapper.xml +++ b/src/main/resources/mapper/AuditMapper.xml @@ -1,7 +1,6 @@ - update user_gold_record set audit_id = #{auditId}, @@ -12,43 +11,29 @@ order by create_time DESC limit 1 - update user - set sum_permanent_gold = sum_permanent_gold + COALESCE(#{sumPermanentGold},0), - sum_free_june = sum_free_june + COALESCE(#{sumFreeJune},0), - sum_free_december = sum_free_december + COALESCE(#{sumFreeDecember},0), - sum_task_gold = sum_task_gold + COALESCE(#{sumTaskGold},0), - current_permanent_gold = current_permanent_gold + COALESCE(#{currentPermanentGold},0), - current_free_june = current_free_june + COALESCE(#{currentFreeJune},0), - current_free_december = current_free_december + COALESCE(#{currentFreeDecember},0), - current_task_gold = current_task_gold + COALESCE(#{currentTaskGold},0), - recharge_num = recharge_num+COALESCE(#{rechargeNum},0) - - + + + current_permanent_gold = current_permanent_gold + #{currentPermanentGold}, + + + current_free_june = current_free_june + #{currentFreeJune}, + + + current_free_december = current_free_december + #{currentFreeDecember}, + + + current_task_gold = current_task_gold + #{currentTaskGold}, + + where jwcode = #{jwcode} - update user_gold_record set is_refund = #{isRefund} - where order_code = #{orderCode} - - - update user - set first_recharge = NOW() - where jwcode = #{jwcode} + where order_code = #{orderCode} and type in (0,1) - - - - - - - - - - + + + + + update user set first_recharge = now() where jwcode = #{jwcode} and first_recharge is null + + \ No newline at end of file diff --git a/src/main/resources/mapper/MarketMapper.xml b/src/main/resources/mapper/MarketMapper.xml index 7f59272..496fe44 100644 --- a/src/main/resources/mapper/MarketMapper.xml +++ b/src/main/resources/mapper/MarketMapper.xml @@ -38,4 +38,10 @@ + \ No newline at end of file From 4320c60db2ff87803c48ed3e4193ffd246e0caf6 Mon Sep 17 00:00:00 2001 From: lijianlin Date: Tue, 11 Nov 2025 13:38:15 +0800 Subject: [PATCH 05/13] =?UTF-8?q?11-11=20=E6=94=B6=E6=AC=BE=E5=AE=9E?= =?UTF-8?q?=E4=BD=93=E7=B1=BB=E4=B8=8E=E6=93=8D=E4=BD=9C=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E8=A1=A8=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/cash/CashCollectionController.java | 4 +- .../demo/domain/vo/cash/CashCollection.java | 2 +- .../example/demo/mapper/cash/CashAuditMapper.java | 3 +- .../demo/mapper/cash/CashCollectionMapper.java | 4 +- .../demo/service/cash/CashCollectionService.java | 4 +- .../serviceImpl/cash/CashAuditServiceImpl.java | 3 +- .../cash/CashCollectionServiceImpl.java | 4 +- .../demo/serviceImpl/coin/AdminServiceImpl.java | 6 +- .../resources/cashMapper/CashCollectionMapper.xml | 68 +++++++++++----------- 9 files changed, 50 insertions(+), 48 deletions(-) diff --git a/src/main/java/com/example/demo/controller/cash/CashCollectionController.java b/src/main/java/com/example/demo/controller/cash/CashCollectionController.java index 4930f4a..9e3effd 100644 --- a/src/main/java/com/example/demo/controller/cash/CashCollectionController.java +++ b/src/main/java/com/example/demo/controller/cash/CashCollectionController.java @@ -78,7 +78,7 @@ public class CashCollectionController { } //重新提交审核的收款订单 @PostMapping("/reSubmit") - public Result reSubmit(@RequestBody CashRecord cashRecord) { + public Result reSubmit(@RequestBody CashCollection cashRecord) { try { return Result.success(cashCollectionService.reSubmit(cashRecord)); }catch (Exception e){ @@ -113,7 +113,7 @@ public class CashCollectionController { }} //补全手续费等 @PostMapping("/complete") - public Result complete(@RequestBody CashRecord cashRecord) { + public Result complete(@RequestBody CashCollection cashRecord) { try { return Result.success(cashCollectionService.complete(cashRecord)); }catch (Exception e){ diff --git a/src/main/java/com/example/demo/domain/vo/cash/CashCollection.java b/src/main/java/com/example/demo/domain/vo/cash/CashCollection.java index b25d472..38cfc61 100644 --- a/src/main/java/com/example/demo/domain/vo/cash/CashCollection.java +++ b/src/main/java/com/example/demo/domain/vo/cash/CashCollection.java @@ -61,7 +61,7 @@ public class CashCollection implements Serializable { private String remark; // 备注 private String receivedRemark; //到账备注 private String rejectReason; // 驳回理由 - private String auditId; //审核人id + private Integer auditId; //审核人id private String auditName; //审核人id private Integer cashRoleId; //角色id(0客服,1地区财务/负责人,2总部) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") diff --git a/src/main/java/com/example/demo/mapper/cash/CashAuditMapper.java b/src/main/java/com/example/demo/mapper/cash/CashAuditMapper.java index e243824..f92f221 100644 --- a/src/main/java/com/example/demo/mapper/cash/CashAuditMapper.java +++ b/src/main/java/com/example/demo/mapper/cash/CashAuditMapper.java @@ -1,6 +1,7 @@ package com.example.demo.mapper.cash; import com.example.demo.domain.entity.CashRecord; +import com.example.demo.domain.vo.cash.CashCollection; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -15,7 +16,7 @@ import org.apache.ibatis.annotations.Param; @Mapper public interface CashAuditMapper { //审核收款订单 - void updateOrder (CashRecord updateOrder); + void updateOrder (CashCollection updateOrder); //根据id获取审核人姓名 String getAuditName(Integer auditId); } diff --git a/src/main/java/com/example/demo/mapper/cash/CashCollectionMapper.java b/src/main/java/com/example/demo/mapper/cash/CashCollectionMapper.java index 139c995..f55f4f1 100644 --- a/src/main/java/com/example/demo/mapper/cash/CashCollectionMapper.java +++ b/src/main/java/com/example/demo/mapper/cash/CashCollectionMapper.java @@ -34,7 +34,7 @@ public interface CashCollectionMapper { @Param("status") Integer status); //编辑订单 // 编辑订单(状态=5)后重新提交 - int updateByOrderCode(@Param("cashRecord") CashRecord cashRecord); + int updateByOrderCode(@Param("cashRecordCollection") CashCollection cashRecord); //多条件查询收款订单列表 List selectCollection1(@Param("pageNum") Integer pageNum, @Param("pageSize") Integer pageSize, @@ -43,7 +43,7 @@ public interface CashCollectionMapper { //根据订单号查询待审核的现金收款订单 CashRecord selectAuditByOrderCode(@Param("orderCode") String orderCode); //补全手续费等信息 - int complete(@Param("cashRecord") CashRecord cashRecord); + int complete(@Param("cashRecordCollection") CashCollection cashRecord); //根据精网号获取姓名 String getNameByJwcode(@Param("jwcode") Integer jwcode); //根据精网号获取市场名 diff --git a/src/main/java/com/example/demo/service/cash/CashCollectionService.java b/src/main/java/com/example/demo/service/cash/CashCollectionService.java index 81a1226..45a7628 100644 --- a/src/main/java/com/example/demo/service/cash/CashCollectionService.java +++ b/src/main/java/com/example/demo/service/cash/CashCollectionService.java @@ -24,11 +24,11 @@ public interface CashCollectionService { //撤回未审核的收款订单 String cancel(String orderCode); //编辑并重新提交收款订单 - String reSubmit(CashRecord cashRecord); + String reSubmit(CashCollection cashRecord); //多条件查询收款订单列表 PageInfo selectCollection(Integer pageNum, Integer pageSize, CashCollection cashCollection); //补全手续费等 - String complete(CashRecord cashRecord); + String complete(CashCollection cashRecord); //根据精网号获取姓名和地区 User getNameAndMarket(Integer jwcode); //获取活动列表 diff --git a/src/main/java/com/example/demo/serviceImpl/cash/CashAuditServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/cash/CashAuditServiceImpl.java index dc44547..b8419b9 100644 --- a/src/main/java/com/example/demo/serviceImpl/cash/CashAuditServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/cash/CashAuditServiceImpl.java @@ -4,6 +4,7 @@ import com.example.demo.Util.GoldTistV2; import com.example.demo.domain.entity.CashRecord; import com.example.demo.domain.entity.User; import com.example.demo.domain.entity.UserGoldRecord; +import com.example.demo.domain.vo.cash.CashCollection; import com.example.demo.mapper.cash.CashAuditMapper; import com.example.demo.mapper.cash.CashCollectionMapper; import com.example.demo.mapper.coin.AuditMapper; @@ -46,7 +47,7 @@ public class CashAuditServiceImpl implements CashAuditService { ){ throw new IllegalArgumentException("订单不存在或已被审核"); } - CashRecord updateOrder = new CashRecord(); + CashCollection updateOrder = new CashCollection(); //设置审核人 updateOrder.setAuditId(auditId); //判断是通过还是驳回,更新审核状态 diff --git a/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java index 3f83e6c..c0d86ee 100644 --- a/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java @@ -133,7 +133,7 @@ public class CashCollectionServiceImpl implements CashCollectionService { //编辑并重新提交收款订单 @Override - public String reSubmit(CashRecord cashRecord) { + public String reSubmit(CashCollection cashRecord) { if (cashRecord.getJwcode()==null){ throw new IllegalArgumentException("精网号不能为空"); } @@ -232,7 +232,7 @@ public class CashCollectionServiceImpl implements CashCollectionService { } //补全手续费等内容 @Override - public String complete(CashRecord cashRecord) { + public String complete(CashCollection cashRecord) { int rows = cashCollectionMapper.complete(cashRecord); diff --git a/src/main/java/com/example/demo/serviceImpl/coin/AdminServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/coin/AdminServiceImpl.java index 1014c4e..b28b1a4 100644 --- a/src/main/java/com/example/demo/serviceImpl/coin/AdminServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/coin/AdminServiceImpl.java @@ -94,7 +94,6 @@ public class AdminServiceImpl implements AdminService { //更新密码 @Override public Result updatePassword(Password password) { - String oldPassword = password.getOldPassword(); String newPassword = password.getNewPassword(); String againPassword = password.getAgainPassword(); @@ -129,15 +128,15 @@ public class AdminServiceImpl implements AdminService { BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); // 使用Spring管理的密码编码器(不要手动new) + + String encodedPassword = passwordEncoder.encode(newPassword); // 更新数据库中的密码 admin.setPassword(encodedPassword); admin.setUpdateTime(new Date()); // 更新修改时间 adminMapper.updatePassword(admin); - return Result.success("密码修改成功"); - } catch (BadCredentialsException e) { // 旧密码验证失败 return Result.error("原密码错误,请重新输入"); @@ -182,6 +181,7 @@ public class AdminServiceImpl implements AdminService { } + //获取当前登录的管理员账号 public String getCurrentAdminAccount() { // 1. 从 Security 上下文获取认证信息 Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); diff --git a/src/main/resources/cashMapper/CashCollectionMapper.xml b/src/main/resources/cashMapper/CashCollectionMapper.xml index ce94b08..1a85cc9 100644 --- a/src/main/resources/cashMapper/CashCollectionMapper.xml +++ b/src/main/resources/cashMapper/CashCollectionMapper.xml @@ -6,7 +6,7 @@ insert into - cash_record(order_type,jwcode,name,market,activity, + cash_record_collection(order_type,jwcode,name,market,activity, order_code,goods_name,good_num,num_unit,permanent_gold,free_gold, payment_currency,payment_amount,received_market, pay_type,pay_time,status,submitter_id,submitter_market, @@ -29,58 +29,58 @@ - update cash_record + update cash_record_collection set status=#{status} where order_code=#{orderCode} - UPDATE cash_record + UPDATE cash_record_collection - jwcode = #{cashRecord.jwcode}, - name = #{cashRecord.name}, - market = #{cashRecord.market}, - activity = #{cashRecord.activity}, - goods_name = #{cashRecord.goodsName}, - good_num = #{cashRecord.goodNum}, - num_unit = #{cashRecord.NumUnit}, - permanent_gold = #{cashRecord.permanentGold}, - free_gold = #{cashRecord.freeGold}, - Num_unit = #{cashRecord.NumUnit}, - payment_currency = #{cashRecord.paymentCurrency}, - payment_amount = #{cashRecord.paymentAmount}, - received_market = #{cashRecord.receivedMarket}, - pay_type = #{cashRecord.payType}, - pay_time = #{cashRecord.payTime}, - voucher = #{cashRecord.voucher}, - remark = #{cashRecord.remark}, + jwcode = #{cashRecordCollection.jwcode}, + name = #{cashRecordCollection.name}, + market = #{cashRecordCollection.market}, + activity = #{cashRecordCollection.activity}, + goods_name = #{cashRecordCollection.goodsName}, + good_num = #{cashRecordCollection.goodNum}, + num_unit = #{cashRecordCollection.NumUnit}, + permanent_gold = #{cashRecordCollection.permanentGold}, + free_gold = #{cashRecordCollection.freeGold}, + Num_unit = #{cashRecordCollection.NumUnit}, + payment_currency = #{cashRecordCollection.paymentCurrency}, + payment_amount = #{cashRecordCollection.paymentAmount}, + received_market = #{cashRecordCollection.receivedMarket}, + pay_type = #{cashRecordCollection.payType}, + pay_time = #{cashRecordCollection.payTime}, + voucher = #{cashRecordCollection.voucher}, + remark = #{cashRecordCollection.remark}, status = 0, - WHERE order_code = #{cashRecord.orderCode} + WHERE order_code = #{cashRecordCollection.orderCode} AND status = 5 - UPDATE cash_record + UPDATE cash_record_collection - handling_charge = #{cashRecord.handlingCharge}, + handling_charge = #{cashRecordCollection.handlingCharge}, - received_currency = #{cashRecord.receivedCurrency}, + received_currency = #{cashRecordCollection.receivedCurrency}, - received_amount = #{cashRecord.receivedAmount}, + received_amount = #{cashRecordCollection.receivedAmount}, - received_time = #{cashRecord.receivedTime}, + received_time = #{cashRecordCollection.receivedTime}, - payment_currency = #{cashRecord.paymentCurrency}, + payment_currency = #{cashRecordCollection.paymentCurrency}, - payment_amount = #{cashRecord.paymentAmount}, + payment_amount = #{cashRecordCollection.paymentAmount}, status = CASE @@ -95,7 +95,7 @@ ELSE status END - WHERE order_code = #{cashRecord.orderCode} + WHERE order_code = #{cashRecordCollection.orderCode} AND status IN (1, 3) @@ -131,7 +131,7 @@ cr.audit_id,cr.create_time,cr.update_time,cr.audit_time, a1.admin_name as submitterName, a2.admin_name as auditName - from cash_record cr + from cash_record_collection cr left join admin a1 on cr.submitter_id = a1.id left join admin a2 on cr.audit_id = a2.id left join market m1 on m1.id = cr.market @@ -213,11 +213,11 @@ @@ -249,7 +249,7 @@ cr.pay_type,cr.received_market,cr.pay_time,cr.received_time,cr.audit_id,cr.status,cr.submitter_id, cr.submitter_market,cr.voucher,cr.remark,cr.audit_time,a1.admin_name as submitterName, a2.admin_name as auditName,ra.activity_name as activity - from cash_record cr + from cash_record_collection cr left join admin a1 on cr.submitter_id = a1.id left join admin a2 on cr.audit_id = a2.id left join recharge_activity ra on ra.id = cr.activity From 060b0e71bb56143edd4c805eb27299b72a4519b6 Mon Sep 17 00:00:00 2001 From: lijianlin Date: Tue, 11 Nov 2025 14:09:00 +0800 Subject: [PATCH 06/13] =?UTF-8?q?11-11=20=E6=94=B6=E6=AC=BEsql=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/cash/CashCollectionController.java | 2 +- src/main/resources/cashMapper/CashAuditMapper.xml | 4 ++-- .../resources/cashMapper/CashCollectionMapper.xml | 21 ++++++++++----------- 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/example/demo/controller/cash/CashCollectionController.java b/src/main/java/com/example/demo/controller/cash/CashCollectionController.java index 9e3effd..cb79b6e 100644 --- a/src/main/java/com/example/demo/controller/cash/CashCollectionController.java +++ b/src/main/java/com/example/demo/controller/cash/CashCollectionController.java @@ -68,7 +68,7 @@ public class CashCollectionController { } //撤回未审核的收款订单 @PostMapping("/cancel") - public Result cancel(@RequestBody CashRecord cashRecord) { + public Result cancel(@RequestBody CashCollection cashRecord) { try { return Result.success( cashCollectionService.cancel(cashRecord.getOrderCode())); diff --git a/src/main/resources/cashMapper/CashAuditMapper.xml b/src/main/resources/cashMapper/CashAuditMapper.xml index 28e36a4..cba43c8 100644 --- a/src/main/resources/cashMapper/CashAuditMapper.xml +++ b/src/main/resources/cashMapper/CashAuditMapper.xml @@ -4,7 +4,7 @@ - update cash_record + update cash_record_collection set status=#{status}, reject_reason=#{rejectReason}, audit_id=#{auditId}, @@ -13,7 +13,7 @@ \ No newline at end of file diff --git a/src/main/resources/cashMapper/CashCollectionMapper.xml b/src/main/resources/cashMapper/CashCollectionMapper.xml index 1a85cc9..beddb7e 100644 --- a/src/main/resources/cashMapper/CashCollectionMapper.xml +++ b/src/main/resources/cashMapper/CashCollectionMapper.xml @@ -12,7 +12,7 @@ pay_type,pay_time,status,submitter_id,submitter_market, voucher,remark) values(#{orderType},#{jwcode},#{name},#{market},#{activity}, - #{orderCode},#{goodsName},#{goodNum},#{NumUnit},#{permanentGold},#{freeGold},#{paymentCurrency}, + #{orderCode},#{goodsName},#{goodNum},#{numUnit},#{permanentGold},#{freeGold},#{paymentCurrency}, #{paymentAmount},#{receivedMarket},#{payType},#{payTime}, #{status},#{submitterId},#{submitterMarket},#{voucher},#{remark}) @@ -43,10 +43,9 @@ activity = #{cashRecordCollection.activity}, goods_name = #{cashRecordCollection.goodsName}, good_num = #{cashRecordCollection.goodNum}, - num_unit = #{cashRecordCollection.NumUnit}, + num_unit = #{cashRecordCollection.numUnit}, permanent_gold = #{cashRecordCollection.permanentGold}, free_gold = #{cashRecordCollection.freeGold}, - Num_unit = #{cashRecordCollection.NumUnit}, payment_currency = #{cashRecordCollection.paymentCurrency}, payment_amount = #{cashRecordCollection.paymentAmount}, received_market = #{cashRecordCollection.receivedMarket}, @@ -63,23 +62,23 @@ UPDATE cash_record_collection - + handling_charge = #{cashRecordCollection.handlingCharge}, - + received_currency = #{cashRecordCollection.receivedCurrency}, - + received_amount = #{cashRecordCollection.receivedAmount}, - + received_time = #{cashRecordCollection.receivedTime}, - + payment_currency = #{cashRecordCollection.paymentCurrency}, - + payment_amount = #{cashRecordCollection.paymentAmount}, @@ -111,7 +110,7 @@ @@ -218,7 +217,7 @@ payment_currency,payment_amount,pay_type,pay_time,crc.status,submitter_id, voucher,remark from cash_record_collection crc - left join recharge_activity ra on ra.id = cash_record.activity + left join recharge_activity ra on ra.id = crc.activity where order_code=#{orderCode} From 6ce4a1d455157f7e7f1ea7f1f83555467c778e8d Mon Sep 17 00:00:00 2001 From: huangqizhen <15552608129@163.com> Date: Tue, 11 Nov 2025 14:19:54 +0800 Subject: [PATCH 07/13] =?UTF-8?q?11.11=20=E5=9C=B0=E5=8C=BA=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/example/demo/domain/vo/cash/CashRecordDTO.java | 2 +- .../com/example/demo/serviceImpl/cash/CashRefundServiceImpl.java | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) 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 index fdc39a8..6f46211 100644 --- a/src/main/java/com/example/demo/domain/vo/cash/CashRecordDTO.java +++ b/src/main/java/com/example/demo/domain/vo/cash/CashRecordDTO.java @@ -75,7 +75,7 @@ public class CashRecordDTO{ /** * 所属地区 */ - private String market; + private Integer market; /** * 金币订单号 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 6bfef96..5d9b9f4 100644 --- a/src/main/java/com/example/demo/serviceImpl/cash/CashRefundServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/cash/CashRefundServiceImpl.java @@ -71,7 +71,7 @@ public class CashRefundServiceImpl implements RefundService { list.forEach(item -> { if (item.getRelatedId() != null) relatedIds.add(item.getRelatedId()); - if (item.getMarket() != null) marketIds.add(Integer.valueOf(item.getMarket())); + if (item.getMarket() != null) marketIds.add(item.getMarket()); if (item.getSubmitterId() != null) submitterIds.add(item.getSubmitterId()); if (item.getAuditId() != null) auditIds.add(item.getAuditId()); }); @@ -330,7 +330,7 @@ CashRecordDone cashRecordDone1 = new CashRecordDone(); list.forEach(item -> { if (item.getRelatedId() != null) relatedIds.add(item.getRelatedId()); - if (item.getMarket() != null) marketIds.add(Integer.valueOf(item.getMarket())); + if (item.getMarket() != null) marketIds.add(item.getMarket()); if (item.getSubmitterId() != null) submitterIds.add(item.getSubmitterId()); if (item.getAuditId() != null) auditIds.add(item.getAuditId()); }); @@ -390,7 +390,7 @@ CashRecordDone cashRecordDone1 = new CashRecordDone(); list.forEach(item -> { if (item.getRelatedId() != null) relatedIds.add(item.getRelatedId()); - if (item.getMarket() != null) marketIds.add(Integer.valueOf(item.getMarket())); + if (item.getMarket() != null) marketIds.add(item.getMarket()); if (item.getSubmitterId() != null) submitterIds.add(item.getSubmitterId()); if (item.getAuditId() != null) auditIds.add(item.getAuditId()); }); From e01421ab2e9cd7b2f089d80c4f9ec460f2c7632a Mon Sep 17 00:00:00 2001 From: huangqizhen <15552608129@163.com> Date: Tue, 11 Nov 2025 15:50:00 +0800 Subject: [PATCH 08/13] =?UTF-8?q?11.11=20=E4=BF=AE=E6=94=B9=E6=89=A7?= =?UTF-8?q?=E8=A1=8C=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/example/demo/Mysql/MysqlServiceImpl.java | 9 +++++---- .../com/example/demo/security/SecurityConfig.java | 2 +- .../resources/cashMapper/CashCollectionMapper.xml | 12 ++++++++---- src/main/resources/cashMapper/CashRefundMapper.xml | 12 ++++++++---- src/main/resources/mapper/AuditMapper.xml | 21 ++++++++++++++------- src/main/resources/mapper/MarketMapper.xml | 13 +++++++++---- 6 files changed, 45 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/example/demo/Mysql/MysqlServiceImpl.java b/src/main/java/com/example/demo/Mysql/MysqlServiceImpl.java index bef5b69..d9f7aa1 100644 --- a/src/main/java/com/example/demo/Mysql/MysqlServiceImpl.java +++ b/src/main/java/com/example/demo/Mysql/MysqlServiceImpl.java @@ -26,6 +26,7 @@ import java.time.LocalDateTime; import java.time.Month; import java.time.format.DateTimeFormatter; import java.util.*; +import java.util.Date; @Service @@ -64,7 +65,7 @@ public class MysqlServiceImpl implements MysqlService { @Override - @Transactional(transactionManager = "mysqlTransactionManager") // 👈 保证插入和用户更新在一个事务 + @Transactional(transactionManager = "mysqlTransactionManager",rollbackFor = Exception.class) // 👈 保证插入和用户更新在一个事务 public void getSqlserverData() throws Exception { logger.info("开始从 SQL Server 同步数据到 MySQL"); @@ -357,7 +358,7 @@ public class MysqlServiceImpl implements MysqlService { if (validZeroTypes.contains(data.gtype)) { stmt.setInt(13, 0); - stmt.setNull(20, 0); + stmt.setInt(20, 0); stmt.setString(1, "ERPCZ_" + data.orderNumber); } else if (validOneTypes.contains(data.gtype)) { stmt.setInt(13, 1); @@ -415,8 +416,8 @@ public class MysqlServiceImpl implements MysqlService { } else { stmt.setInt(17, 1); } - - stmt.setTimestamp(18, data.cz_time); + Timestamp now = new Timestamp(System.currentTimeMillis()); + stmt.setTimestamp(18, now); stmt.setTimestamp(19, data.cz_time); stmt.setString(21, data.uid); } diff --git a/src/main/java/com/example/demo/security/SecurityConfig.java b/src/main/java/com/example/demo/security/SecurityConfig.java index 440eb38..3e6d045 100644 --- a/src/main/java/com/example/demo/security/SecurityConfig.java +++ b/src/main/java/com/example/demo/security/SecurityConfig.java @@ -60,7 +60,7 @@ public class SecurityConfig { request .requestMatchers( HttpMethod.POST, // 用户不登录就可以访问的路径 - "/admin/login","/upload/**","/detailY/ERP","/home/java/haiwaiyanfa/gold1/**","/home/java/haiwaiyanfa/**","/statistics/**","/Mysql").permitAll() + "/admin/login","/upload/**","/detailY/ERP","/home/java/haiwaiyanfa/gold1/**","/home/java/haiwaiyanfa/**","/statistics/**","/Mysql/**").permitAll() .requestMatchers( "/error","alipay/**","/upload/**","/home/java/haiwaiyanfa/gold1/**","/home/java/haiwaiyanfa/**" ).permitAll() diff --git a/src/main/resources/cashMapper/CashCollectionMapper.xml b/src/main/resources/cashMapper/CashCollectionMapper.xml index beddb7e..0297002 100644 --- a/src/main/resources/cashMapper/CashCollectionMapper.xml +++ b/src/main/resources/cashMapper/CashCollectionMapper.xml @@ -265,9 +265,13 @@ left join admin a1 on cr.submitter_id = a1.id left join admin a2 on cr.audit_id = a2.id left join recharge_activity ra on ra.id = cr.activity - where cr.id IN - - #{id} - + + + cr.id IN + + #{id} + + + \ No newline at end of file diff --git a/src/main/resources/cashMapper/CashRefundMapper.xml b/src/main/resources/cashMapper/CashRefundMapper.xml index 8887167..8ae112d 100644 --- a/src/main/resources/cashMapper/CashRefundMapper.xml +++ b/src/main/resources/cashMapper/CashRefundMapper.xml @@ -380,10 +380,14 @@ \ No newline at end of file diff --git a/src/main/resources/mapper/AuditMapper.xml b/src/main/resources/mapper/AuditMapper.xml index 25cc1c4..1971aa2 100644 --- a/src/main/resources/mapper/AuditMapper.xml +++ b/src/main/resources/mapper/AuditMapper.xml @@ -169,13 +169,20 @@ select admin_name from admin where id = #{auditId} - + update user set first_recharge = now() where jwcode = #{jwcode} and first_recharge is null diff --git a/src/main/resources/mapper/MarketMapper.xml b/src/main/resources/mapper/MarketMapper.xml index 496fe44..36f8994 100644 --- a/src/main/resources/mapper/MarketMapper.xml +++ b/src/main/resources/mapper/MarketMapper.xml @@ -39,9 +39,14 @@ select name from market where id=#{market} \ No newline at end of file From 27c39a70946f9b1f8570ae7ed4ec7f1bbef278b9 Mon Sep 17 00:00:00 2001 From: huangqizhen <15552608129@163.com> Date: Wed, 12 Nov 2025 11:00:57 +0800 Subject: [PATCH 09/13] =?UTF-8?q?11.11=20=E5=AF=BC=E5=87=BA=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/controller/cash/CashCollectionController.java | 15 +++++++++++++++ .../demo/serviceImpl/coin/ExportExcelServiceImpl.java | 5 ++++- src/main/resources/mapper/AuditMapper.xml | 2 +- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/example/demo/controller/cash/CashCollectionController.java b/src/main/java/com/example/demo/controller/cash/CashCollectionController.java index cb79b6e..1ada80c 100644 --- a/src/main/java/com/example/demo/controller/cash/CashCollectionController.java +++ b/src/main/java/com/example/demo/controller/cash/CashCollectionController.java @@ -111,6 +111,21 @@ public class CashCollectionController { return Result.error(e.getMessage()); }} + @PostMapping("/export") + public Result export(@RequestBody Page page) throws Exception { + try { + if (ObjectUtils.isEmpty(page.getPageNum())) { + return Result.error("页码数为空!"); + } + if (ObjectUtils.isEmpty(page.getPageSize())) { + return Result.error("页大小为空!"); + } + return Result.success(cashCollectionService.selectCollection(page.getPageNum(), page.getPageSize(),page.getCashCollection())); + } catch (Exception e) { + return Result.error(e.getMessage()); + } + } + //补全手续费等 @PostMapping("/complete") public Result complete(@RequestBody CashCollection cashRecord) { diff --git a/src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java index 0b4b6d0..085b42a 100644 --- a/src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java @@ -8,6 +8,7 @@ import com.example.demo.Util.ExcelUploadUtil; import com.example.demo.Util.JWTUtil; import com.example.demo.controller.bean.BeanConsumeController; import com.example.demo.controller.bean.BeanRechargeController; +import com.example.demo.controller.cash.CashCollectionController; import com.example.demo.controller.cash.CashRefundController; import com.example.demo.controller.coin.ConsumeController; import com.example.demo.controller.coin.GoldDetailController; @@ -85,6 +86,8 @@ public class ExportExcelServiceImpl implements ExportExcelService { private AuthenticationManager authenticationManager; @Autowired private CashRefundController cashRefundController; + @Autowired + private CashCollectionController cashCollectionController; // 每页查询的数据量 private static final int PAGE_SIZE = 5000; @Autowired @@ -294,7 +297,7 @@ public class ExportExcelServiceImpl implements ExportExcelService { JsonNode beanRechargeNode = requestDataNode.path("cashCollection"); CashCollection cashCollection = objectMapper.treeToValue(beanRechargeNode, CashCollection.class); page.setCashCollection(cashCollection); - return cashRefundController.export(page); + return cashCollectionController.export(page); } catch (Exception e) { throw new RuntimeException(e); } diff --git a/src/main/resources/mapper/AuditMapper.xml b/src/main/resources/mapper/AuditMapper.xml index 1971aa2..07ef448 100644 --- a/src/main/resources/mapper/AuditMapper.xml +++ b/src/main/resources/mapper/AuditMapper.xml @@ -169,7 +169,7 @@ select admin_name from admin where id = #{auditId} - select id, admin_name from admin From 2d0eee5beea45cdee7e3f46a7a4e610258b3db1b Mon Sep 17 00:00:00 2001 From: lijianlin Date: Wed, 12 Nov 2025 11:40:51 +0800 Subject: [PATCH 10/13] =?UTF-8?q?11-12=20=E6=94=B6=E6=AC=BE=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../example/demo/serviceImpl/cash/CashCollectionServiceImpl.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java index c0d86ee..0ddc8f1 100644 --- a/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java @@ -190,10 +190,10 @@ public class CashCollectionServiceImpl implements CashCollectionService { @Override public PageInfo selectCollection(Integer pageNum, Integer pageSize, CashCollection cashCollection) { //将操作人的地区列表改为id - List markets = marketMapper.getMarketIds(cashCollection.getMarkets()); + /* List markets = marketMapper.getMarketIds(cashCollection.getMarkets()); if (markets.contains("9") || markets.contains("9999")){ markets=null; - } + }*/ // cashCollection.setReceivedMarket(marketMapper.getMarketId(cashCollection.getReceivedMarket())); if (cashCollection.getCashRoleId()==2) { //角色是总部时,若不特地传状态,传1346,sql处理为(1,3,4,6)筛选, @@ -225,7 +225,7 @@ public class CashCollectionServiceImpl implements CashCollectionService { cashCollection.setSubmitterId(cashCollection.getSubmitterId()); cashCollection.setReceivedMarket(null); } - cashCollection.setMarkets(markets); + // cashCollection.setMarkets(markets); PageHelper.startPage(pageNum, pageSize); List cashCollections = cashCollectionMapper.selectCollection1(pageNum, pageSize, cashCollection); return new PageInfo<>(cashCollections); From f88b4348382395dff621e9172b294204b44913c0 Mon Sep 17 00:00:00 2001 From: wangguorui <2069821375@qq.com> Date: Thu, 13 Nov 2025 10:16:42 +0800 Subject: [PATCH 11/13] =?UTF-8?q?=E6=B6=88=E6=81=AF=E6=8E=A8=E9=80=81?= =?UTF-8?q?=EF=BC=8811.13=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/RabbitMQ/CashCollectionConsumer.java | 76 +++++++ .../example/demo/RabbitMQ/CashRefundConsumer.java | 76 +++++++ .../java/com/example/demo/RabbitMQ/LogAspect.java | 5 + .../com/example/demo/config/RabbitMQConfig.java | 240 ++++++++++++++++++++- .../controller/cash/CashCollectionController.java | 2 +- .../demo/domain/vo/cash/CashCollectionMessage.java | 66 ++++++ .../demo/domain/vo/cash/CashRefundMessage.java | 76 +++++++ .../serviceImpl/cash/CashAuditServiceImpl.java | 145 ++++++++----- .../cash/CashCollectionServiceImpl.java | 186 +++++++++++----- .../serviceImpl/cash/CashRefundServiceImpl.java | 214 ++++++++++++++---- src/main/resources/cashMapper/CashRefundMapper.xml | 2 +- 11 files changed, 930 insertions(+), 158 deletions(-) create mode 100644 src/main/java/com/example/demo/RabbitMQ/CashCollectionConsumer.java create mode 100644 src/main/java/com/example/demo/RabbitMQ/CashRefundConsumer.java create mode 100644 src/main/java/com/example/demo/domain/vo/cash/CashCollectionMessage.java create mode 100644 src/main/java/com/example/demo/domain/vo/cash/CashRefundMessage.java diff --git a/src/main/java/com/example/demo/RabbitMQ/CashCollectionConsumer.java b/src/main/java/com/example/demo/RabbitMQ/CashCollectionConsumer.java new file mode 100644 index 0000000..40e5e44 --- /dev/null +++ b/src/main/java/com/example/demo/RabbitMQ/CashCollectionConsumer.java @@ -0,0 +1,76 @@ +package com.example.demo.RabbitMQ; + +import com.example.demo.config.RabbitMQConfig; +import com.example.demo.domain.vo.cash.CashCollectionMessage; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +/** + * 收款流程消息消费者 + * 监听收款流程中各个状态变更的消息队列 + */ +@Component +@Slf4j +public class CashCollectionConsumer { + + /** + * 处理收款订单创建消息 + * 当有新的收款订单创建时,该方法会被调用 + * + * @param message 收款订单消息对象 + */ + @RabbitListener(queues = RabbitMQConfig.COLLECTION_CREATED_QUEUE) + public void handleCollectionCreated(CashCollectionMessage message) { + log.info("收款订单创建通知: 订单号={}, 状态={}, 提交人={}, 消息={}", + message.getOrderCode(), message.getStatus(), message.getSubmitterId(), message.getMessage()); + } + + /** + * 处理收款订单审核通过消息 + * 当收款订单审核通过时,该方法会被调用 + * + * @param message 收款订单消息对象 + */ + @RabbitListener(queues = RabbitMQConfig.COLLECTION_AUDITED_QUEUE) + public void handleCollectionAudited(CashCollectionMessage message) { + log.info("收款订单审核通过通知: 订单号={}, 状态={}, 审核人={}, 消息={}", + message.getOrderCode(), message.getStatus(), message.getAuditId(), message.getMessage()); + } + + /** + * 处理收款订单审核驳回消息 + * 当收款订单被审核驳回时,该方法会被调用 + * + * @param message 收款订单消息对象 + */ + @RabbitListener(queues = RabbitMQConfig.COLLECTION_REJECTED_QUEUE) + public void handleCollectionRejected(CashCollectionMessage message) { + log.info("收款订单审核驳回通知: 订单号={}, 状态={}, 审核人={}, 消息={}", + message.getOrderCode(), message.getStatus(), message.getAuditId(), message.getMessage()); + } + + /** + * 处理收款订单完成消息 + * 当收款订单流程全部完成时,该方法会被调用 + * + * @param message 收款订单消息对象 + */ + @RabbitListener(queues = RabbitMQConfig.COLLECTION_COMPLETED_QUEUE) + public void handleCollectionCompleted(CashCollectionMessage message) { + log.info("收款订单完成通知: 订单号={}, 状态={}, 消息={}", + message.getOrderCode(), message.getStatus(), message.getMessage()); + } + + /** + * 处理收款订单撤回消息 + * 当收款订单被撤回时,该方法会被调用 + * + * @param message 收款订单消息对象 + */ + @RabbitListener(queues = RabbitMQConfig.COLLECTION_CANCELLED_QUEUE) + public void handleCollectionCancelled(CashCollectionMessage message) { + log.info("收款订单撤回通知: 订单号={}, 状态={}, 提交人={}, 消息={}", + message.getOrderCode(), message.getStatus(), message.getSubmitterId(), message.getMessage()); + } +} diff --git a/src/main/java/com/example/demo/RabbitMQ/CashRefundConsumer.java b/src/main/java/com/example/demo/RabbitMQ/CashRefundConsumer.java new file mode 100644 index 0000000..09a8d77 --- /dev/null +++ b/src/main/java/com/example/demo/RabbitMQ/CashRefundConsumer.java @@ -0,0 +1,76 @@ +package com.example.demo.RabbitMQ; + +import com.example.demo.config.RabbitMQConfig; +import com.example.demo.domain.vo.cash.CashRefundMessage; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +/** + * 退款流程消息消费者 + * 监听退款流程中各个状态变更的消息队列 + */ +@Component +@Slf4j +public class CashRefundConsumer { + + /** + * 处理退款订单创建消息 + * 当有新的退款订单创建时,该方法会被调用 + * + * @param message 退款订单消息对象 + */ + @RabbitListener(queues = RabbitMQConfig.REFUND_CREATED_QUEUE) + public void handleRefundCreated(CashRefundMessage message) { + log.info("退款订单创建通知: 订单号={}, 状态={}, 提交人={}, 消息={}", + message.getOrderCode(), message.getStatus(), message.getSubmitterId(), message.getMessage()); + } + + /** + * 处理退款订单审核通过消息 + * 当退款订单审核通过时,该方法会被调用 + * + * @param message 退款订单消息对象 + */ + @RabbitListener(queues = RabbitMQConfig.REFUND_REVIEWED_QUEUE) + public void handleRefundReviewed(CashRefundMessage message) { + log.info("退款订单审核通过通知: 订单号={}, 状态={}, 审核人={}, 消息={}", + message.getOrderCode(), message.getStatus(), message.getAuditId(), message.getMessage()); + } + + /** + * 处理退款订单审核驳回消息 + * 当退款订单被审核驳回时,该方法会被调用 + * + * @param message 退款订单消息对象 + */ + @RabbitListener(queues = RabbitMQConfig.REFUND_REJECTED_QUEUE) + public void handleRefundRejected(CashRefundMessage message) { + log.info("退款订单审核驳回通知: 订单号={}, 状态={}, 审核人={}, 消息={}", + message.getOrderCode(), message.getStatus(), message.getAuditId(), message.getMessage()); + } + + /** + * 处理退款订单执行消息 + * 当退款订单被执行时,该方法会被调用 + * + * @param message 退款订单消息对象 + */ + @RabbitListener(queues = RabbitMQConfig.REFUND_EXECUTED_QUEUE) + public void handleRefundExecuted(CashRefundMessage message) { + log.info("退款订单执行通知: 订单号={}, 状态={}, 执行人={}, 消息={}", + message.getOrderCode(), message.getStatus(), message.getExecutorId(), message.getMessage()); + } + + /** + * 处理退款订单完成消息 + * 当退款订单流程全部完成时,该方法会被调用 + * + * @param message 退款订单消息对象 + */ + @RabbitListener(queues = RabbitMQConfig.REFUND_COMPLETED_QUEUE) + public void handleRefundCompleted(CashRefundMessage message) { + log.info("退款订单完成通知: 订单号={}, 状态={}, 消息={}", + message.getOrderCode(), message.getStatus(), message.getMessage()); + } +} diff --git a/src/main/java/com/example/demo/RabbitMQ/LogAspect.java b/src/main/java/com/example/demo/RabbitMQ/LogAspect.java index 45420af..a789790 100644 --- a/src/main/java/com/example/demo/RabbitMQ/LogAspect.java +++ b/src/main/java/com/example/demo/RabbitMQ/LogAspect.java @@ -44,6 +44,11 @@ public class LogAspect { String username = SecurityUtils.getCurrentUsername(); Integer userId = SecurityUtils.getCurrentUserId(); + // 添加空值检查 + if (userId == null) { + log.warn("无法获取当前用户ID,使用默认值 -1"); + userId = -1; // 或者使用其他默认值 + } String ip = getClientIp(); ObjectMapper mapper = new ObjectMapper(); diff --git a/src/main/java/com/example/demo/config/RabbitMQConfig.java b/src/main/java/com/example/demo/config/RabbitMQConfig.java index 84dca8d..8caa0b7 100644 --- a/src/main/java/com/example/demo/config/RabbitMQConfig.java +++ b/src/main/java/com/example/demo/config/RabbitMQConfig.java @@ -1,6 +1,5 @@ package com.example.demo.config; - import org.springframework.amqp.core.Binding; import org.springframework.amqp.core.BindingBuilder; import org.springframework.amqp.core.Queue; @@ -12,12 +11,32 @@ import org.springframework.amqp.support.converter.MessageConverter; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +/** + * RabbitMQ配置类 + * 配置消息队列、交换机以及它们之间的绑定关系 + */ @Configuration public class RabbitMQConfig { public static final String LOG_QUEUE = "operation_log_queue"; public static final String LOG_EXCHANGE = "operation_log_exchange"; + // 收款流程相关队列和交换机常量定义 + public static final String CASH_COLLECTION_EXCHANGE = "cash_collection_exchange"; + public static final String COLLECTION_CREATED_QUEUE = "collection_created_queue"; + public static final String COLLECTION_AUDITED_QUEUE = "collection_audited_queue"; + public static final String COLLECTION_COMPLETED_QUEUE = "collection_completed_queue"; + public static final String COLLECTION_CANCELLED_QUEUE = "collection_cancelled_queue"; + public static final String COLLECTION_REJECTED_QUEUE = "collection_rejected_queue"; + + // 退款流程相关队列和交换机常量定义 + public static final String CASH_REFUND_EXCHANGE = "cash_refund_exchange"; + public static final String REFUND_CREATED_QUEUE = "refund_created_queue"; + public static final String REFUND_REVIEWED_QUEUE = "refund_reviewed_queue"; + public static final String REFUND_EXECUTED_QUEUE = "refund_executed_queue"; + public static final String REFUND_COMPLETED_QUEUE = "refund_completed_queue"; + public static final String REFUND_REJECTED_QUEUE = "refund_rejected_queue"; + @Bean public Queue logQueue() { return new Queue(LOG_QUEUE, true); @@ -34,6 +53,225 @@ public class RabbitMQConfig { .to(logExchange()) .with("log.*"); } + + /** + * 创建收款流程交换机 + * @return TopicExchange对象 + */ + @Bean + public TopicExchange cashCollectionExchange() { + return new TopicExchange(CASH_COLLECTION_EXCHANGE); + } + + /** + * 创建收款创建队列 + * @return Queue对象 + */ + @Bean + public Queue collectionCreatedQueue() { + return new Queue(COLLECTION_CREATED_QUEUE, true); + } + + /** + * 创建收款审核队列 + * @return Queue对象 + */ + @Bean + public Queue collectionAuditedQueue() { + return new Queue(COLLECTION_AUDITED_QUEUE, true); + } + + /** + * 创建收款完成队列 + * @return Queue对象 + */ + @Bean + public Queue collectionCompletedQueue() { + return new Queue(COLLECTION_COMPLETED_QUEUE, true); + } + + /** + * 创建收款取消队列 + * @return Queue对象 + */ + @Bean + public Queue collectionCancelledQueue() { + return new Queue(COLLECTION_CANCELLED_QUEUE, true); + } + + /** + * 创建收款拒绝队列 + * @return Queue对象 + */ + @Bean + public Queue collectionRejectedQueue() { + return new Queue(COLLECTION_REJECTED_QUEUE, true); + } + + /** + * 创建退款流程交换机 + * @return TopicExchange对象 + */ + @Bean + public TopicExchange cashRefundExchange() { + return new TopicExchange(CASH_REFUND_EXCHANGE); + } + + /** + * 创建退款创建队列 + * @return Queue对象 + */ + @Bean + public Queue refundCreatedQueue() { + return new Queue(REFUND_CREATED_QUEUE, true); + } + + /** + * 创建退款审核队列 + * @return Queue对象 + */ + @Bean + public Queue refundReviewedQueue() { + return new Queue(REFUND_REVIEWED_QUEUE, true); + } + + /** + * 创建退款执行队列 + * @return Queue对象 + */ + @Bean + public Queue refundExecutedQueue() { + return new Queue(REFUND_EXECUTED_QUEUE, true); + } + + /** + * 创建退款完成队列 + * @return Queue对象 + */ + @Bean + public Queue refundCompletedQueue() { + return new Queue(REFUND_COMPLETED_QUEUE, true); + } + + /** + * 创建退款拒绝队列 + * @return Queue对象 + */ + @Bean + public Queue refundRejectedQueue() { + return new Queue(REFUND_REJECTED_QUEUE, true); + } + + /** + * 绑定收款创建队列到收款交换机 + * @return Binding对象 + */ + @Bean + public Binding collectionCreatedBinding() { + return BindingBuilder.bind(collectionCreatedQueue()) + .to(cashCollectionExchange()) + .with("collection.created"); + } + + /** + * 绑定收款审核队列到收款交换机 + * @return Binding对象 + */ + @Bean + public Binding collectionAuditedBinding() { + return BindingBuilder.bind(collectionAuditedQueue()) + .to(cashCollectionExchange()) + .with("collection.audited"); + } + + /** + * 绑定收款完成队列到收款交换机 + * @return Binding对象 + */ + @Bean + public Binding collectionCompletedBinding() { + return BindingBuilder.bind(collectionCompletedQueue()) + .to(cashCollectionExchange()) + .with("collection.completed"); + } + + /** + * 绑定收款取消队列到收款交换机 + * @return Binding对象 + */ + @Bean + public Binding collectionCancelledBinding() { + return BindingBuilder.bind(collectionCancelledQueue()) + .to(cashCollectionExchange()) + .with("collection.cancelled"); + } + + /** + * 绑定收款拒绝队列到收款交换机 + * @return Binding对象 + */ + @Bean + public Binding collectionRejectedBinding() { + return BindingBuilder.bind(collectionRejectedQueue()) + .to(cashCollectionExchange()) + .with("collection.rejected"); + } + + /** + * 绑定退款创建队列到退款交换机 + * @return Binding对象 + */ + @Bean + public Binding refundCreatedBinding() { + return BindingBuilder.bind(refundCreatedQueue()) + .to(cashRefundExchange()) + .with("refund.created"); + } + + /** + * 绑定退款审核队列到退款交换机 + * @return Binding对象 + */ + @Bean + public Binding refundReviewedBinding() { + return BindingBuilder.bind(refundReviewedQueue()) + .to(cashRefundExchange()) + .with("refund.reviewed"); + } + + /** + * 绑定退款执行队列到退款交换机 + * @return Binding对象 + */ + @Bean + public Binding refundExecutedBinding() { + return BindingBuilder.bind(refundExecutedQueue()) + .to(cashRefundExchange()) + .with("refund.executed"); + } + + /** + * 绑定退款完成队列到退款交换机 + * @return Binding对象 + */ + @Bean + public Binding refundCompletedBinding() { + return BindingBuilder.bind(refundCompletedQueue()) + .to(cashRefundExchange()) + .with("refund.completed"); + } + + /** + * 绑定退款拒绝队列到退款交换机 + * @return Binding对象 + */ + @Bean + public Binding refundRejectedBinding() { + return BindingBuilder.bind(refundRejectedQueue()) + .to(cashRefundExchange()) + .with("refund.rejected"); + } + @Bean public MessageConverter messageConverter() { return new Jackson2JsonMessageConverter(); diff --git a/src/main/java/com/example/demo/controller/cash/CashCollectionController.java b/src/main/java/com/example/demo/controller/cash/CashCollectionController.java index 4930f4a..4cbc124 100644 --- a/src/main/java/com/example/demo/controller/cash/CashCollectionController.java +++ b/src/main/java/com/example/demo/controller/cash/CashCollectionController.java @@ -87,7 +87,7 @@ public class CashCollectionController { } //多条件查询收款订单列表 @PostMapping("/selectCollection") - public Result selcetAll(@RequestBody Page page){ + public Result selectAll(@RequestBody Page page){ try { if (ObjectUtils.isEmpty(page.getPageNum())) { return Result.error("页码数为空!"); diff --git a/src/main/java/com/example/demo/domain/vo/cash/CashCollectionMessage.java b/src/main/java/com/example/demo/domain/vo/cash/CashCollectionMessage.java new file mode 100644 index 0000000..c819350 --- /dev/null +++ b/src/main/java/com/example/demo/domain/vo/cash/CashCollectionMessage.java @@ -0,0 +1,66 @@ +package com.example.demo.domain.vo.cash; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.LocalDateTime; + +/** + * 收款消息实体类 + * 用于在收款流程中传递状态变更信息 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class CashCollectionMessage { + /** + * 订单ID + */ + private Integer id; + + /** + * 订单编号 + */ + private String orderCode; + + /** + * 订单状态 + */ + private Integer status; + + /** + * 状态描述 + */ + private String statusDescription; + + /** + * 消息内容 + */ + private String message; + + /** + * 提交人ID + */ + private Integer submitterId; + + /** + * 提交人姓名 + */ + private String submitterName; + + /** + * 审核人ID + */ + private Integer auditId; + + /** + * 审核人姓名 + */ + private String auditName; + + /** + * 时间戳 + */ + private LocalDateTime timestamp = LocalDateTime.now(); +} diff --git a/src/main/java/com/example/demo/domain/vo/cash/CashRefundMessage.java b/src/main/java/com/example/demo/domain/vo/cash/CashRefundMessage.java new file mode 100644 index 0000000..0271d5d --- /dev/null +++ b/src/main/java/com/example/demo/domain/vo/cash/CashRefundMessage.java @@ -0,0 +1,76 @@ +package com.example.demo.domain.vo.cash; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.LocalDateTime; + +/** + * 退款消息实体类 + * 用于在退款流程中传递状态变更信息 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class CashRefundMessage { + /** + * 订单ID + */ + private Integer id; + + /** + * 订单编号 + */ + private String orderCode; + + /** + * 订单状态 + */ + private Integer status; + + /** + * 状态描述 + */ + private String statusDescription; + + /** + * 消息内容 + */ + private String message; + + /** + * 提交人ID + */ + private Integer submitterId; + + /** + * 提交人姓名 + */ + private String submitterName; + + /** + * 审核人ID + */ + private Integer auditId; + + /** + * 审核人姓名 + */ + private String auditName; + + /** + * 执行人ID + */ + private Integer executorId; + + /** + * 执行人姓名 + */ + private String executorName; + + /** + * 时间戳 + */ + private LocalDateTime timestamp = LocalDateTime.now(); +} diff --git a/src/main/java/com/example/demo/serviceImpl/cash/CashAuditServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/cash/CashAuditServiceImpl.java index dc44547..69f2a40 100644 --- a/src/main/java/com/example/demo/serviceImpl/cash/CashAuditServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/cash/CashAuditServiceImpl.java @@ -1,20 +1,24 @@ package com.example.demo.serviceImpl.cash; import com.example.demo.Util.GoldTistV2; +import com.example.demo.config.RabbitMQConfig; import com.example.demo.domain.entity.CashRecord; import com.example.demo.domain.entity.User; import com.example.demo.domain.entity.UserGoldRecord; +import com.example.demo.domain.vo.cash.CashCollectionMessage; import com.example.demo.mapper.cash.CashAuditMapper; import com.example.demo.mapper.cash.CashCollectionMapper; import com.example.demo.mapper.coin.AuditMapper; import com.example.demo.mapper.coin.RechargeMapper; import com.example.demo.service.cash.CashAuditService; +import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.time.LocalDate; +import java.time.LocalDateTime; import java.time.ZoneOffset; import java.util.Date; @@ -23,7 +27,7 @@ import static net.sf.jsqlparser.parser.feature.Feature.update; /** * @program: gold-java * @ClassName CashAuditServiceImpl - * @description: + * @description: 处理收款订单的审核业务逻辑 * @author: Ethan * @create: 2025−10-08 10:09 * @Version 1.0 @@ -38,12 +42,15 @@ public class CashAuditServiceImpl implements CashAuditService { private CashCollectionMapper cashCollectionMapper; @Autowired private CashAuditMapper cashAuditMapper; + @Autowired + private RabbitTemplate rabbitTemplate; + @Transactional @Override - public boolean auditCollection(String token,Integer auditId, String orderCode, Integer action, String rejectReason) { + public boolean auditCollection(String token, Integer auditId, String orderCode, Integer action, String rejectReason) { CashRecord order = cashCollectionMapper.selectAuditByOrderCode(orderCode); - if (order==null || order.getStatus()!=0 - ){ + if (order == null || order.getStatus() != 0 + ) { throw new IllegalArgumentException("订单不存在或已被审核"); } CashRecord updateOrder = new CashRecord(); @@ -52,54 +59,54 @@ public class CashAuditServiceImpl implements CashAuditService { //判断是通过还是驳回,更新审核状态 updateOrder.setOrderCode(orderCode); String auditName = cashAuditMapper.getAuditName(auditId); - if (action==1){ //通过 + if (action == 1) { //通过 updateOrder.setStatus(1); - if (order.getGoodsName().equals("金币充值")){ - //往金币订单表加一条充值记录 - UserGoldRecord rechargeOrder = new UserGoldRecord(); - rechargeOrder.setOrderCode(orderCode.replaceFirst("^XJ_", "XJCZ_")); - rechargeOrder.setJwcode(order.getJwcode()); - rechargeOrder.setActivity(order.getActivity()); - rechargeOrder.setPermanentGold(order.getPermanentGold()); - // 获取当前月份(1-12) - int currentMonth = LocalDate.now().getMonthValue(); - // 根据当前月份设置对应字段 - if (currentMonth >= 1 && currentMonth <= 6) { - // 1-6月:设置12月额度,6月保持默认值 - rechargeOrder.setFreeJune(0); - rechargeOrder.setFreeDecember(order.getFreeGold()); - } else { - // 7-12月:设置6月额度,12月保持默认值 - rechargeOrder.setFreeJune(order.getFreeGold()); - rechargeOrder.setFreeDecember(0); - } - rechargeOrder.setSumGold(order.getPermanentGold()+order.getFreeGold()); - rechargeOrder.setRateId(Integer.valueOf(order.getPaymentCurrency())); - rechargeOrder.setMoney(order.getPaymentAmount().intValue()); - rechargeOrder.setRemark(order.getRemark()); - rechargeOrder.setVoucher(order.getVoucher()); - rechargeOrder.setPayPlatform("金币系统"); - rechargeOrder.setPayModel(order.getPayType()); - //把时间转换成Date - Date date = Date.from(order.getPayTime().toInstant(ZoneOffset.ofHours(8))); - rechargeOrder.setPayTime(date); - rechargeOrder.setAdminId(order.getSubmitterId()); - rechargeOrder.setAuditId(auditId); - rechargeOrder.setType((byte) 0); - rechargeOrder.setAuditStatus(1); - rechargeOrder.setCreateTime(new Date()); - rechargeMapper.add(rechargeOrder); - //往ERP加一条充值数据 - GoldTistV2.addCoinNew(order.getJwcode().toString(), 64, //充值永久金币 - (double) (order.getPermanentGold() ) /100, - order.getRemark(),(double) (order.getPermanentGold() ) /100, auditName, "金币充值"); - GoldTistV2.addCoinNew(order.getJwcode().toString(), 63, //充值免费 - (double) (order.getFreeGold()) /100, - order.getRemark(),0, auditName, "金币充值"); - //修改用户余额,添加金币 - User user = new User(); - user.setJwcode(order.getJwcode()); - user.setSumConsumePermanent(BigDecimal.valueOf(order.getPermanentGold())); + if (order.getGoodsName().equals("金币充值")) { + //往金币订单表加一条充值记录 + UserGoldRecord rechargeOrder = new UserGoldRecord(); + rechargeOrder.setOrderCode(orderCode.replaceFirst("^XJ_", "XJCZ_")); + rechargeOrder.setJwcode(order.getJwcode()); + rechargeOrder.setActivity(order.getActivity()); + rechargeOrder.setPermanentGold(order.getPermanentGold()); + // 获取当前月份(1-12) + int currentMonth = LocalDate.now().getMonthValue(); + // 根据当前月份设置对应字段 + if (currentMonth >= 1 && currentMonth <= 6) { + // 1-6月:设置12月额度,6月保持默认值 + rechargeOrder.setFreeJune(0); + rechargeOrder.setFreeDecember(order.getFreeGold()); + } else { + // 7-12月:设置6月额度,12月保持默认值 + rechargeOrder.setFreeJune(order.getFreeGold()); + rechargeOrder.setFreeDecember(0); + } + rechargeOrder.setSumGold(order.getPermanentGold() + order.getFreeGold()); + rechargeOrder.setRateId(Integer.valueOf(order.getPaymentCurrency())); + rechargeOrder.setMoney(order.getPaymentAmount().intValue()); + rechargeOrder.setRemark(order.getRemark()); + rechargeOrder.setVoucher(order.getVoucher()); + rechargeOrder.setPayPlatform("金币系统"); + rechargeOrder.setPayModel(order.getPayType()); + //把时间转换成Date + Date date = Date.from(order.getPayTime().toInstant(ZoneOffset.ofHours(8))); + rechargeOrder.setPayTime(date); + rechargeOrder.setAdminId(order.getSubmitterId()); + rechargeOrder.setAuditId(auditId); + rechargeOrder.setType((byte) 0); + rechargeOrder.setAuditStatus(1); + rechargeOrder.setCreateTime(new Date()); + rechargeMapper.add(rechargeOrder); + //往ERP加一条充值数据 + GoldTistV2.addCoinNew(order.getJwcode().toString(), 64, //充值永久金币 + (double) (order.getPermanentGold()) / 100, + order.getRemark(), (double) (order.getPermanentGold()) / 100, auditName, "金币充值"); + GoldTistV2.addCoinNew(order.getJwcode().toString(), 63, //充值免费 + (double) (order.getFreeGold()) / 100, + order.getRemark(), 0, auditName, "金币充值"); + //修改用户余额,添加金币 + User user = new User(); + user.setJwcode(order.getJwcode()); + user.setSumConsumePermanent(BigDecimal.valueOf(order.getPermanentGold())); // 根据当前月份设置对应字段 if (currentMonth >= 1 && currentMonth <= 6) { // 1-6月:设置12月额度,6月保持默认值 @@ -112,16 +119,44 @@ public class CashAuditServiceImpl implements CashAuditService { user.setCurrentFreeJune(BigDecimal.valueOf(order.getFreeGold())); user.setSumFreeDecember(BigDecimal.valueOf(0)); } - user.setCurrentPermanentGold(BigDecimal.valueOf(order.getPermanentGold())); - user.setRechargeNum(1); //充值次数加一 + user.setCurrentPermanentGold(BigDecimal.valueOf(order.getPermanentGold())); + user.setRechargeNum(1); //充值次数加一 auditMapper.updateUserGold(user); - }} - else if (action==2){ //驳回 + } + } else if (action == 2) { //驳回 updateOrder.setStatus(2); updateOrder.setRejectReason(rejectReason); } //更新订单 cashAuditMapper.updateOrder(updateOrder); + // 创建消息队列,用于发送审核结果通知 + CashCollectionMessage message = new CashCollectionMessage(); + message.setId(order.getId()); + message.setOrderCode(orderCode); + message.setStatus(updateOrder.getStatus()); + message.setStatusDescription(action == 1 ? "线下财务审核通过待填手续费" : "线下财务审核驳回"); + message.setMessage(action == 1 ? "收款订单审核通过" : "收款订单审核驳回"); + message.setSubmitterId(order.getSubmitterId()); + message.setAuditId(auditId); + message.setAuditName(auditName); + message.setTimestamp(LocalDateTime.now()); + + // 根据审核结果发送不同的消息 + if (action == 1) { + // 发送审核通过消息 + rabbitTemplate.convertAndSend( + RabbitMQConfig.CASH_COLLECTION_EXCHANGE, + "collection.audited", + message + ); + } else { + // 发送审核驳回消息 + rabbitTemplate.convertAndSend( + RabbitMQConfig.CASH_COLLECTION_EXCHANGE, + "collection.rejected", + message + ); + } return true; } } diff --git a/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java index 3f83e6c..67d4716 100644 --- a/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java @@ -1,10 +1,12 @@ package com.example.demo.serviceImpl.cash; +import com.example.demo.config.RabbitMQConfig; import com.example.demo.domain.entity.CashRecord; import com.example.demo.domain.entity.GOrder; import com.example.demo.domain.entity.RechargeActivity; import com.example.demo.domain.entity.User; import com.example.demo.domain.vo.cash.CashCollection; +import com.example.demo.domain.vo.cash.CashCollectionMessage; import com.example.demo.domain.vo.coin.Result; import com.example.demo.mapper.cash.CashCollectionMapper; import com.example.demo.mapper.coin.MarketMapper; @@ -12,6 +14,7 @@ import com.example.demo.service.cash.CashCollectionService; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -26,7 +29,7 @@ import java.util.UUID; /** * @program: gold-java * @ClassName cashCollectionServiceImpl - * @description: + * @description: 处理收款相关业务逻辑 * @author: Ethan * @create: 2025−09-26 11:23 * @Version 1.0 @@ -39,49 +42,53 @@ public class CashCollectionServiceImpl implements CashCollectionService { private CashCollectionMapper cashCollectionMapper; @Autowired private MarketMapper marketMapper; + @Autowired + private RabbitTemplate rabbitTemplate; //新增收款订单 @Override - public String add(CashCollection cashCollection) { - if (cashCollection.getJwcode()==null){ + public String add(CashCollection cashCollection) { + if (cashCollection.getJwcode() == null) { throw new IllegalArgumentException("精网号不能为空"); } - if(cashCollection.getJwcode()<10000000||cashCollection.getJwcode()>99999999){ + if (cashCollection.getJwcode() < 10000000 || cashCollection.getJwcode() > 99999999) { throw new IllegalArgumentException("精网号必须为8位"); } - if(cashCollection.getName()== null){ + if (cashCollection.getName() == null) { throw new IllegalArgumentException("客户姓名不能为空"); } - if(cashCollection.getActivity()== null){ + if (cashCollection.getActivity() == null) { throw new IllegalArgumentException("活动不能为空"); } - if(cashCollection.getGoodsName()== null){ + if (cashCollection.getGoodsName() == null) { throw new IllegalArgumentException("商品名不能为空"); } - if (cashCollection.getGoodsName().equals("金币充值")){ - if( cashCollection.getPermanentGold()== 0 && cashCollection.getFreeGold()== 0){ - throw new IllegalArgumentException("金币数量不能为空");} + if (cashCollection.getGoodsName().equals("金币充值")) { + if (cashCollection.getPermanentGold() == 0 && cashCollection.getFreeGold() == 0) { + throw new IllegalArgumentException("金币数量不能为空"); + } } - if (!cashCollection.getGoodsName().equals("金币充值")){ - if( cashCollection.getGoodNum()== 0 ){ - throw new IllegalArgumentException("产品数量不能为空");} - if(cashCollection.getNumUnit()== null){ + if (!cashCollection.getGoodsName().equals("金币充值")) { + if (cashCollection.getGoodNum() == 0) { + throw new IllegalArgumentException("产品数量不能为空"); + } + if (cashCollection.getNumUnit() == null) { throw new IllegalArgumentException("数量单位不能为空"); } } - if(cashCollection.getPaymentCurrency()== null){ + if (cashCollection.getPaymentCurrency() == null) { throw new IllegalArgumentException("支付币种不能为空"); } - if(cashCollection.getPaymentAmount()== null){ + if (cashCollection.getPaymentAmount() == null) { throw new IllegalArgumentException("支付金额不能为空"); } - if (cashCollection.getPayType()== null){ + if (cashCollection.getPayType() == null) { throw new IllegalArgumentException("支付方式不能为空"); } - if (cashCollection.getReceivedMarket()== null){ + if (cashCollection.getReceivedMarket() == null) { throw new IllegalArgumentException("到账地区不能为空"); } - if(cashCollection.getPayTime()== null){ + if (cashCollection.getPayTime() == null) { throw new IllegalArgumentException("付款时间不能为空"); } //生成订单号后半部分 @@ -113,9 +120,25 @@ public class CashCollectionServiceImpl implements CashCollectionService { //cashRecord.setMarket(cashCollectionMapper.getMarketByJwcode(cashRecord.getJwcode())); //插入新收款订单 cashCollectionMapper.add(cashRecord); + // 发送收款创建消息 + CashCollectionMessage message = new CashCollectionMessage(); + message.setId(cashRecord.getId()); + message.setOrderCode(cashRecord.getOrderCode()); + message.setStatus(cashRecord.getStatus()); + message.setStatusDescription("线下财务待审核"); + message.setMessage("收款订单已创建"); + message.setSubmitterId(cashRecord.getSubmitterId()); + // 可以通过 submitterId 查询提交人姓名 + message.setTimestamp(LocalDateTime.now()); + rabbitTemplate.convertAndSend( + RabbitMQConfig.CASH_COLLECTION_EXCHANGE, + "collection.created", + message + ); return "添加成功"; } + //撤回未审核的订单 @Override public String cancel(String orderCode) { @@ -123,105 +146,148 @@ public class CashCollectionServiceImpl implements CashCollectionService { if (cashRecord == null) { throw new IllegalArgumentException("订单不存在"); } - if (cashRecord.getStatus() != 0){ + if (cashRecord.getStatus() != 0) { throw new IllegalArgumentException("订单状态不符合条件"); } //修改订单状态 int rows = cashCollectionMapper.updateStatus(orderCode, 5); + if (rows > 0) { + // 发送收款撤回消息 + CashCollectionMessage message = new CashCollectionMessage(); + message.setId(cashRecord.getId()); + message.setOrderCode(cashRecord.getOrderCode()); + message.setStatus(5); + message.setStatusDescription("手动撤回待编辑提交"); + message.setMessage("收款订单已撤回"); + message.setSubmitterId(cashRecord.getSubmitterId()); + message.setAuditId(cashRecord.getAuditId()); + message.setTimestamp(LocalDateTime.now()); + + rabbitTemplate.convertAndSend( + RabbitMQConfig.CASH_COLLECTION_EXCHANGE, + "collection.cancelled", + message + ); + } return rows > 0 ? "撤回成功" : "撤回失败"; } //编辑并重新提交收款订单 @Override public String reSubmit(CashRecord cashRecord) { - if (cashRecord.getJwcode()==null){ + if (cashRecord.getJwcode() == null) { throw new IllegalArgumentException("精网号不能为空"); } - if(cashRecord.getJwcode()<10000000||cashRecord.getJwcode()>99999999){ + if (cashRecord.getJwcode() < 10000000 || cashRecord.getJwcode() > 99999999) { throw new IllegalArgumentException("精网号必须为8位"); } - if(cashRecord.getName()== null){ + if (cashRecord.getName() == null) { throw new IllegalArgumentException("客户姓名不能为空"); } - if(cashRecord.getActivity()== null){ + if (cashRecord.getActivity() == null) { throw new IllegalArgumentException("活动不能为空"); } - if(cashRecord.getGoodsName()== null){ + if (cashRecord.getGoodsName() == null) { throw new IllegalArgumentException("商品名不能为空"); } - if (cashRecord.getGoodsName().equals("金币充值")){ - if( cashRecord.getPermanentGold()== 0 && cashRecord.getFreeGold()== 0){ - throw new IllegalArgumentException("金币数量不能为空");} + if (cashRecord.getGoodsName().equals("金币充值")) { + if (cashRecord.getPermanentGold() == 0 && cashRecord.getFreeGold() == 0) { + throw new IllegalArgumentException("金币数量不能为空"); + } } - if (!cashRecord.getGoodsName().equals("金币充值")){ - if( cashRecord.getGoodNum()== 0 ){ - throw new IllegalArgumentException("产品数量不能为空");} - if(cashRecord.getNumUnit()== null){ + if (!cashRecord.getGoodsName().equals("金币充值")) { + if (cashRecord.getGoodNum() == 0) { + throw new IllegalArgumentException("产品数量不能为空"); + } + if (cashRecord.getNumUnit() == null) { throw new IllegalArgumentException("数量单位不能为空"); } } - if(cashRecord.getPaymentCurrency()== null){ + if (cashRecord.getPaymentCurrency() == null) { throw new IllegalArgumentException("支付币种不能为空"); } - if(cashRecord.getPaymentAmount()== null){ + if (cashRecord.getPaymentAmount() == null) { throw new IllegalArgumentException("支付金额不能为空"); } - if (cashRecord.getPayType()== null){ + if (cashRecord.getPayType() == null) { throw new IllegalArgumentException("支付方式不能为空"); } - if (cashRecord.getReceivedMarket()== null){ + if (cashRecord.getReceivedMarket() == null) { throw new IllegalArgumentException("到账地区不能为空"); } - if(cashRecord.getPayTime()== null){ + if (cashRecord.getPayTime() == null) { throw new IllegalArgumentException("付款时间不能为空"); } - CashRecord status=cashCollectionMapper.selectByOrderCode(cashRecord.getOrderCode()); - if (!status.getStatus().equals(5)){ + CashRecord status = cashCollectionMapper.selectByOrderCode(cashRecord.getOrderCode()); + if (!status.getStatus().equals(5)) { throw new IllegalArgumentException("只允许编辑已撤回订单"); } //地区,根据jwcode插入(弃用,插入前调用接口获取地区和姓名,之后前端传入) //cashRecord.setMarket(cashCollectionMapper.getMarketByJwcode(cashRecord.getJwcode())); int rows = cashCollectionMapper.updateByOrderCode(cashRecord); + if (rows > 0) { + // 发送重新提交消息 + CashCollectionMessage message = new CashCollectionMessage(); + message.setId(cashRecord.getId()); + message.setOrderCode(cashRecord.getOrderCode()); + message.setStatus(0); // 重新提交后状态变为待审核 + message.setStatusDescription("线下财务待审核"); + message.setMessage("收款订单已重新提交"); + message.setSubmitterId(cashRecord.getSubmitterId()); + message.setTimestamp(LocalDateTime.now()); + + rabbitTemplate.convertAndSend( + RabbitMQConfig.CASH_COLLECTION_EXCHANGE, + "collection.created", + message + ); + } return rows > 0 ? "重新提交成功" : "重新提交失败"; } + //多条件查询收款订单列表 @Override public PageInfo selectCollection(Integer pageNum, Integer pageSize, CashCollection cashCollection) { //将操作人的地区列表改为id List markets = marketMapper.getMarketIds(cashCollection.getMarkets()); - if (markets.contains("9") || markets.contains("9999")){ - markets=null; + if (markets.contains("9") || markets.contains("9999")) { + markets = null; } - // cashCollection.setReceivedMarket(marketMapper.getMarketId(cashCollection.getReceivedMarket())); - if (cashCollection.getCashRoleId()==2) { + // cashCollection.setReceivedMarket(marketMapper.getMarketId(cashCollection.getReceivedMarket())); + if (cashCollection.getCashRoleId() == 2) { //角色是总部时,若不特地传状态,传1346,sql处理为(1,3,4,6)筛选, - if(cashCollection.getStatus()==null){ - cashCollection.setStatus(1346);} + if (cashCollection.getStatus() == null) { + cashCollection.setStatus(1346); + } cashCollection.setSubmitterId(null); cashCollection.setReceivedMarket(null); cashCollection.setSubmitterMarket(null); } - if (cashCollection.getCashRoleId()==1){ + if (cashCollection.getCashRoleId() == 1) { //角色是地方财务,提交人置空不设筛选条件,仅按收款地区、提交人地区筛选() - if(cashCollection.getStatus()==null){ - cashCollection.setStatus(123460);} + if (cashCollection.getStatus() == null) { + cashCollection.setStatus(123460); + } //状态为待审核和已驳回时按照提交人地区筛选 - if (cashCollection.getStatus()==0||cashCollection.getStatus()==2){ - cashCollection.setReceivedMarket(null);} + if (cashCollection.getStatus() == 0 || cashCollection.getStatus() == 2) { + cashCollection.setReceivedMarket(null); + } //状态为已通过和Link通过时,按收款地区筛选 - if (cashCollection.getStatus()==13){ - cashCollection.setSubmitterMarket(null);} + if (cashCollection.getStatus() == 13) { + cashCollection.setSubmitterMarket(null); + } cashCollection.setSubmitterId(null); //状态为46,已通过和已退款,满足收款地区或提交人地区即可, } - if (cashCollection.getCashRoleId()==0){ + if (cashCollection.getCashRoleId() == 0) { //角色是地方财务,提交人置空不设筛选条件---仅当角色是0 地方客服时,按提交人筛选 - if(cashCollection.getStatus()==null){ - cashCollection.setStatus(1234560);} + if (cashCollection.getStatus() == null) { + cashCollection.setStatus(1234560); + } cashCollection.setSubmitterId(cashCollection.getSubmitterId()); cashCollection.setReceivedMarket(null); } @@ -230,6 +296,7 @@ public class CashCollectionServiceImpl implements CashCollectionService { List cashCollections = cashCollectionMapper.selectCollection1(pageNum, pageSize, cashCollection); return new PageInfo<>(cashCollections); } + //补全手续费等内容 @Override public String complete(CashRecord cashRecord) { @@ -239,6 +306,7 @@ public class CashCollectionServiceImpl implements CashCollectionService { return rows > 0 ? "编辑成功" : "编辑失败"; } + //根据精网号查询姓名和地区 @Override public User getNameAndMarket(Integer jwcode) { @@ -249,12 +317,14 @@ public class CashCollectionServiceImpl implements CashCollectionService { return user; } + //获取收款活动列表 @Override public List getActivityList() { LocalDateTime now = LocalDateTime.now(); return cashCollectionMapper.getActivityList(now); } + //同步g_order订单到cash_record表 @Override @Transactional(rollbackFor = Exception.class) @@ -312,11 +382,13 @@ public class CashCollectionServiceImpl implements CashCollectionService { //存入现金库 cashCollectionMapper.add(cashRecord); cashCollectionMapper.markSynced(gOrder.getId()); - }log.info("同步完成一批,数量 {}", gOrders.size()); + } + log.info("同步完成一批,数量 {}", gOrders.size()); if (gOrders.size() < 100) { break; // 最后一批 } - }return "同步完毕"; + } + return "同步完毕"; } @Override 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 8dbce7a..d89ded6 100644 --- a/src/main/java/com/example/demo/serviceImpl/cash/CashRefundServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/cash/CashRefundServiceImpl.java @@ -1,11 +1,13 @@ package com.example.demo.serviceImpl.cash; import com.example.demo.Util.GoldTistV2; +import com.example.demo.config.RabbitMQConfig; 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.cash.CashRefundMessage; import com.example.demo.domain.vo.coin.Result; import com.example.demo.mapper.cash.CashRefundMapper; import com.example.demo.mapper.coin.AuditMapper; @@ -15,11 +17,13 @@ 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.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.Date; import java.util.List; import java.util.UUID; @@ -29,7 +33,7 @@ import static org.apache.commons.lang3.StringUtils.substring; /** * @program: GOLD * @ClassName CashRefundServiceImpl - * @description: + * @description: 处理退款相关业务逻辑 * @author: huangqizhen * @create: 2025−09-28 15:02 * @Version 1.0 @@ -46,6 +50,9 @@ public class CashRefundServiceImpl implements RefundService { private AuditMapper auditMapper; @Autowired private MarketMapper marketMapper; + @Autowired + private RabbitTemplate rabbitTemplate; + @Override public PageInfo select(Integer pageNum, Integer pageSize, CashRecordDTO cashRecordDTO) { PageHelper.startPage(pageNum, pageSize); @@ -54,16 +61,17 @@ public class CashRefundServiceImpl implements RefundService { return new PageInfo<>(list); } + // 添加退款订单 @Override - public int add(CashRecordRefund cashRecordRefund) throws Exception { - if(cashRecordRefund.getJwcode()==null){ - throw new Exception("未输入精网号") ; + public int add(CashRecordRefund cashRecordRefund) throws Exception { + if (cashRecordRefund.getJwcode() == null) { + throw new Exception("未输入精网号"); } - if(cashRecordRefund.getRefundModel()== null){ - throw new Exception("请填充退款类型") ; + if (cashRecordRefund.getRefundModel() == null) { + throw new Exception("请填充退款类型"); } - if(cashRecordRefund.getRefundReason()== null){ - throw new Exception("请填写退款理由") ; + if (cashRecordRefund.getRefundReason() == null) { + throw new Exception("请填写退款理由"); } CashRecordDone cashRecordDonetwo = new CashRecordDone(); cashRecordDonetwo.setAreaServise(cashRecordRefund.getAreaServise()); @@ -80,99 +88,173 @@ public class CashRefundServiceImpl implements RefundService { CashRecordDone cashRecordDone1 = new CashRecordDone(); cashRecordDone1.setId(cashRecordRefund.getId()); cashRecordDone1.setStatus(6); - if (cashRecordDone1.getId()!=null||cashRecordDone1.getOrderCode()!= null) - return cashRefundMapper.updateStatus(cashRecordDone1); + if (cashRecordDone1.getId() != null || cashRecordDone1.getOrderCode() != null) + cashRefundMapper.updateStatus(cashRecordDone1); else return Result.error("提交失败").getCode(); + + // 发送退款创建消息 + CashRefundMessage message = new CashRefundMessage(); + message.setId(cashRecordRefund.getId()); + message.setOrderCode(cashRecordRefund.getOrderCode()); + message.setStatus(10); + message.setStatusDescription("地区财务待审核"); + message.setMessage("退款订单已创建"); + message.setSubmitterId(cashRecordRefund.getSubmitterId()); + message.setTimestamp(LocalDateTime.now()); + + rabbitTemplate.convertAndSend( + RabbitMQConfig.CASH_REFUND_EXCHANGE, + "refund.created", + message + ); + + return Result.success("提交成功").getCode(); } + // 更新退款订单信息 @Override public int update(CashRecordDone cashRecordDone) throws Exception { - if (cashRecordDone.getJwcode()== null) { + if (cashRecordDone.getJwcode() == null) { throw new RuntimeException("未输入精网号"); } - if (cashRecordDone.getPaymentAmount()== null) { + if (cashRecordDone.getPaymentAmount() == null) { throw new RuntimeException("未输入付款金额"); } - if (cashRecordDone.getPaymentCurrency()== null){ - throw new RuntimeException("未输入付款币种"); + if (cashRecordDone.getPaymentCurrency() == null) { + throw new RuntimeException("未输入付款币种"); } - if (cashRecordDone.getRefundModel()== null) { + if (cashRecordDone.getRefundModel() == null) { throw new RuntimeException("请填写退款类型"); } - if (cashRecordDone.getRefundReason()== null) { + if (cashRecordDone.getRefundReason() == null) { throw new RuntimeException("请填写退款理由"); } int result = cashRefundMapper.update(cashRecordDone); return (result > 0 ? Result.success("提交成功") : Result.error("提交失败")).getCode(); } + // 撤回退款订单 @Override public int withdraw(CashRecordDone cashRecordDone) { return cashRefundMapper.withdraw(cashRecordDone.getId()); } + // 审核退款订单 @Override - public int review(CashRecordDone cashRecordDone) throws Exception { - if(cashRecordDone.getStatus()== 12|| cashRecordDone.getStatus()== 22){ - if(cashRecordDone.getOrderCode()== null){ + public int review(CashRecordDone cashRecordDone) throws Exception { + if (cashRecordDone.getStatus() == 12 || cashRecordDone.getStatus() == 22) { + if (cashRecordDone.getOrderCode() == null) { throw new RuntimeException("未输入订单号"); } -CashRecordDone cashRecordDone1 = new CashRecordDone(); + CashRecordDone cashRecordDone1 = new CashRecordDone(); cashRecordDone1.setOrderCode(cashRecordDone.getOrderCode().substring(2)); cashRecordDone1.setStatus(4); - if (cashRecordDone1.getId()!=null||cashRecordDone1.getOrderCode()!= null){ - cashRefundMapper.updateStatus(cashRecordDone1); - }} + if (cashRecordDone1.getId() != null || cashRecordDone1.getOrderCode() != null) { + cashRefundMapper.updateStatus(cashRecordDone1); + } + } cashRefundMapper.updateAudit(cashRecordDone); int result = cashRefundMapper.review(cashRecordDone); + + if (result > 0) { + // 发送审核消息 + CashRefundMessage message = new CashRefundMessage(); + message.setId(cashRecordDone.getId()); + message.setOrderCode(cashRecordDone.getOrderCode()); + message.setStatus(cashRecordDone.getStatus()); + message.setStatusDescription(getStatusDescription(cashRecordDone.getStatus())); + message.setMessage("退款订单已审核"); + message.setSubmitterId(cashRecordDone.getSubmitterId()); + message.setAuditId(cashRecordDone.getAuditId()); + // 可以通过 auditId 查询审核人姓名 + message.setTimestamp(LocalDateTime.now()); + + if (cashRecordDone.getStatus() == 12 || cashRecordDone.getStatus() == 22) { + rabbitTemplate.convertAndSend( + RabbitMQConfig.CASH_REFUND_EXCHANGE, + "refund.rejected", + message + ); + } else { + rabbitTemplate.convertAndSend( + RabbitMQConfig.CASH_REFUND_EXCHANGE, + "refund.reviewed", + message + ); + } + } + return (result > 0 ? Result.success("提交成功") : Result.error("提交失败")).getCode(); } + // 执行退款操作 @Override public int executor(CashRecordDone cashRecordDone) throws Exception { - if(cashRecordDone.getRefundVoucher()== null){ + if (cashRecordDone.getRefundVoucher() == null) { throw new RuntimeException("未输入退款凭证"); } - if(cashRecordDone.getRefundTime()== null){ + if (cashRecordDone.getRefundTime() == null) { throw new RuntimeException("未输入退款时间"); } - if(cashRecordDone.getRefundRemark()== null){ + if (cashRecordDone.getRefundRemark() == null) { throw new RuntimeException("未输入退款备注"); } - if(cashRecordDone.getRefundChannels()== null){ + if (cashRecordDone.getRefundChannels() == null) { throw new RuntimeException("未输入退款途径"); } - if(cashRecordDone.getRefundCurrency()== null){ + if (cashRecordDone.getRefundCurrency() == null) { throw new RuntimeException("未输入退款币种"); } - if(cashRecordDone.getRefundAmount()== null){ + if (cashRecordDone.getRefundAmount() == null) { throw new RuntimeException("未输入退款金额"); } int result = cashRefundMapper.executor(cashRecordDone); + if (result > 0) { + // 发送执行消息 + CashRefundMessage message = new CashRefundMessage(); + message.setId(cashRecordDone.getId()); + message.setOrderCode(cashRecordDone.getOrderCode()); + message.setStatus(cashRecordDone.getStatus()); + message.setStatusDescription(getStatusDescription(cashRecordDone.getStatus())); + message.setMessage("退款订单已执行"); + message.setSubmitterId(cashRecordDone.getSubmitterId()); + message.setExecutorId(cashRecordDone.getExecutor()); + // 可以通过 executorId 查询执行人姓名 + message.setTimestamp(LocalDateTime.now()); + + rabbitTemplate.convertAndSend( + RabbitMQConfig.CASH_REFUND_EXCHANGE, + "refund.executed", + message + ); + } return (result > 0 ? Result.success("提交成功") : Result.error("提交失败")).getCode(); } + // 更新退款订单状态 @Override public int updateStatus(CashRecordDone cashRecordDone) { return cashRefundMapper.updateStatus(cashRecordDone); } + // 最终审核退款订单 @Override public int finalreview(CashRecordDone cashRecordDone) { - if(cashRecordDone.getPermanentGold()== null){ + if (cashRecordDone.getPermanentGold() == null) { cashRecordDone.setPermanentGold(0); } - if(cashRecordDone.getFreeGold()== null){ + if (cashRecordDone.getFreeGold() == null) { cashRecordDone.setFreeGold(0); } - if(cashRecordDone.getStatus()== 32){ + if (cashRecordDone.getStatus() == 32) { CashRecordDone cashRecordDone1 = new CashRecordDone(); cashRecordDone1.setOrderCode(cashRecordDone.getOrderCode().substring(2)); cashRecordDone1.setStatus(4); - if (cashRecordDone1.getId()!=null||cashRecordDone1.getOrderCode()!= null){ - cashRefundMapper.updateStatus(cashRecordDone1); - }} - if (cashRecordDone.getGoodsName() != null &&cashRecordDone.getStatus() ==40 && + if (cashRecordDone1.getId() != null || cashRecordDone1.getOrderCode() != null) { + cashRefundMapper.updateStatus(cashRecordDone1); + } + } + if (cashRecordDone.getGoodsName() != null && cashRecordDone.getStatus() == 40 && (cashRecordDone.getGoodsName().equals("金币充值") || cashRecordDone.getGoodsName().contains("金币充值"))) { UserGoldRecord userGoldRecord = new UserGoldRecord(); @@ -182,7 +264,7 @@ CashRecordDone cashRecordDone1 = new CashRecordDone(); userGoldRecord.setRefundType("金币退款"); userGoldRecord.setCrefundModel(cashRecordDone.getRefundModel()); userGoldRecord.setJwcode(cashRecordDone.getJwcode()); - userGoldRecord.setSumGold(cashRecordDone.getPermanentGold()+cashRecordDone.getFreeGold()); + userGoldRecord.setSumGold(cashRecordDone.getPermanentGold() + cashRecordDone.getFreeGold()); userGoldRecord.setPermanentGold(cashRecordDone.getPermanentGold()); int currentMonth = LocalDate.now().getMonthValue(); if (currentMonth >= 1 && currentMonth <= 6) { @@ -203,22 +285,68 @@ CashRecordDone cashRecordDone1 = new CashRecordDone(); userGoldRecord.setCreateTime(new Date()); userGoldRecord.setUpdateTime(new Date()); String auditName = auditMapper.getName(cashRecordDone.getAuditId()); - refundMapper.add(userGoldRecord); - User user = new User(); - user.setJwcode(userGoldRecord.getJwcode()); + refundMapper.add(userGoldRecord); + User user = new User(); + user.setJwcode(userGoldRecord.getJwcode()); user.setCurrentPermanentGold(BigDecimal.valueOf(-userGoldRecord.getPermanentGold())); //当前永久金币 user.setCurrentFreeJune(BigDecimal.valueOf(-userGoldRecord.getFreeJune())); //当前六月免费金币 user.setCurrentFreeDecember(BigDecimal.valueOf(-userGoldRecord.getFreeDecember())); //当前十二月免费金币 auditMapper.updateUserGold(user); - GoldTistV2.addCoinNew(userGoldRecord.getJwcode().toString(), 58, //退款免费+永久金币-充值 - (double) (userGoldRecord.getFreeDecember()+userGoldRecord.getFreeJune()+userGoldRecord.getPermanentGold() ) /100, - userGoldRecord.getRemark(),(double) userGoldRecord.getPermanentGold() / 100, auditName, "退款金币充值");} + GoldTistV2.addCoinNew(userGoldRecord.getJwcode().toString(), 58, //退款免费+永久金币-充值 + (double) (userGoldRecord.getFreeDecember() + userGoldRecord.getFreeJune() + userGoldRecord.getPermanentGold()) / 100, + userGoldRecord.getRemark(), (double) userGoldRecord.getPermanentGold() / 100, auditName, "退款金币充值"); + } cashRefundMapper.updateAudit(cashRecordDone); int result = cashRefundMapper.review(cashRecordDone); + if (result > 0) { + // 发送最终审核消息 + CashRefundMessage message = new CashRefundMessage(); + message.setId(cashRecordDone.getId()); + message.setOrderCode(cashRecordDone.getOrderCode()); + message.setStatus(cashRecordDone.getStatus()); + message.setStatusDescription(getStatusDescription(cashRecordDone.getStatus())); + message.setMessage("退款订单已完成"); + message.setSubmitterId(cashRecordDone.getSubmitterId()); + message.setAuditId(cashRecordDone.getAuditId()); + message.setTimestamp(LocalDateTime.now()); + + rabbitTemplate.convertAndSend( + RabbitMQConfig.CASH_REFUND_EXCHANGE, + "refund.completed", + message + ); + } return (result > 0 ? Result.success("提交成功") : Result.error("提交失败")).getCode(); } + // 辅助方法:根据状态码获取状态描述 + private String getStatusDescription(Integer status) { + switch (status) { + case 10: + return "地区财务待审核"; + case 11: + return "地区财务手动撤回待编辑提交"; + case 12: + return "地区财务驳回"; + case 20: + return "地区负责人待审核"; + case 22: + return "地区负责人驳回"; + case 30: + return "总部财务待审核"; + case 32: + return "总部财务驳回"; + case 40: + return "执行人待处理"; + case 41: + return "执行人已处理,退款结束"; + default: + return "未知状态"; + } + } + + // 财务查询退款订单列表 @Override public PageInfo financeSelect(Integer pageNum, Integer pageSize, CashRecordDTO cashRecordDTO) { PageHelper.startPage(pageNum, pageSize); diff --git a/src/main/resources/cashMapper/CashRefundMapper.xml b/src/main/resources/cashMapper/CashRefundMapper.xml index 3ecb7a7..df73ebe 100644 --- a/src/main/resources/cashMapper/CashRefundMapper.xml +++ b/src/main/resources/cashMapper/CashRefundMapper.xml @@ -133,7 +133,7 @@ - select crr.id, crr.jwcode, From 9e84212c6e55e6ce55c068a2535e6e4b6b8f8e31 Mon Sep 17 00:00:00 2001 From: wangguorui <2069821375@qq.com> Date: Thu, 13 Nov 2025 11:01:09 +0800 Subject: [PATCH 12/13] =?UTF-8?q?=E6=B6=88=E6=81=AF=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=EF=BC=8811.13=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/controller/cash/CashCollectionController.java | 4 ++-- .../java/com/example/demo/mapper/cash/CashAuditMapper.java | 4 +--- .../com/example/demo/mapper/cash/CashCollectionMapper.java | 5 ++--- .../example/demo/service/cash/CashCollectionService.java | 4 ++-- .../demo/serviceImpl/cash/CashRefundServiceImpl.java | 13 +++++++++++++ 5 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/example/demo/controller/cash/CashCollectionController.java b/src/main/java/com/example/demo/controller/cash/CashCollectionController.java index 8850388..51cb578 100644 --- a/src/main/java/com/example/demo/controller/cash/CashCollectionController.java +++ b/src/main/java/com/example/demo/controller/cash/CashCollectionController.java @@ -78,7 +78,7 @@ public class CashCollectionController { } //重新提交审核的收款订单 @PostMapping("/reSubmit") - public Result reSubmit(@RequestBody CashCollection cashRecord) { + public Result reSubmit(@RequestBody CashRecord cashRecord) { try { return Result.success(cashCollectionService.reSubmit(cashRecord)); }catch (Exception e){ @@ -128,7 +128,7 @@ public class CashCollectionController { //补全手续费等 @PostMapping("/complete") - public Result complete(@RequestBody CashCollection cashRecord) { + public Result complete(@RequestBody CashRecord cashRecord) { try { return Result.success(cashCollectionService.complete(cashRecord)); }catch (Exception e){ diff --git a/src/main/java/com/example/demo/mapper/cash/CashAuditMapper.java b/src/main/java/com/example/demo/mapper/cash/CashAuditMapper.java index f92f221..2353234 100644 --- a/src/main/java/com/example/demo/mapper/cash/CashAuditMapper.java +++ b/src/main/java/com/example/demo/mapper/cash/CashAuditMapper.java @@ -1,9 +1,7 @@ package com.example.demo.mapper.cash; import com.example.demo.domain.entity.CashRecord; -import com.example.demo.domain.vo.cash.CashCollection; import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; /** * @program: gold-java @@ -16,7 +14,7 @@ import org.apache.ibatis.annotations.Param; @Mapper public interface CashAuditMapper { //审核收款订单 - void updateOrder (CashCollection updateOrder); + void updateOrder (CashRecord updateOrder); //根据id获取审核人姓名 String getAuditName(Integer auditId); } diff --git a/src/main/java/com/example/demo/mapper/cash/CashCollectionMapper.java b/src/main/java/com/example/demo/mapper/cash/CashCollectionMapper.java index f55f4f1..9ecd2c9 100644 --- a/src/main/java/com/example/demo/mapper/cash/CashCollectionMapper.java +++ b/src/main/java/com/example/demo/mapper/cash/CashCollectionMapper.java @@ -1,6 +1,5 @@ package com.example.demo.mapper.cash; -import cn.hutool.core.lang.Opt; import com.example.demo.domain.entity.CashRecord; import com.example.demo.domain.entity.GOrder; import com.example.demo.domain.entity.RechargeActivity; @@ -34,7 +33,7 @@ public interface CashCollectionMapper { @Param("status") Integer status); //编辑订单 // 编辑订单(状态=5)后重新提交 - int updateByOrderCode(@Param("cashRecordCollection") CashCollection cashRecord); + int updateByOrderCode(@Param("cashRecordCollection") CashRecord cashRecord); //多条件查询收款订单列表 List selectCollection1(@Param("pageNum") Integer pageNum, @Param("pageSize") Integer pageSize, @@ -43,7 +42,7 @@ public interface CashCollectionMapper { //根据订单号查询待审核的现金收款订单 CashRecord selectAuditByOrderCode(@Param("orderCode") String orderCode); //补全手续费等信息 - int complete(@Param("cashRecordCollection") CashCollection cashRecord); + int complete(@Param("cashRecordCollection") CashRecord cashRecord); //根据精网号获取姓名 String getNameByJwcode(@Param("jwcode") Integer jwcode); //根据精网号获取市场名 diff --git a/src/main/java/com/example/demo/service/cash/CashCollectionService.java b/src/main/java/com/example/demo/service/cash/CashCollectionService.java index 45a7628..81a1226 100644 --- a/src/main/java/com/example/demo/service/cash/CashCollectionService.java +++ b/src/main/java/com/example/demo/service/cash/CashCollectionService.java @@ -24,11 +24,11 @@ public interface CashCollectionService { //撤回未审核的收款订单 String cancel(String orderCode); //编辑并重新提交收款订单 - String reSubmit(CashCollection cashRecord); + String reSubmit(CashRecord cashRecord); //多条件查询收款订单列表 PageInfo selectCollection(Integer pageNum, Integer pageSize, CashCollection cashCollection); //补全手续费等 - String complete(CashCollection cashRecord); + String complete(CashRecord cashRecord); //根据精网号获取姓名和地区 User getNameAndMarket(Integer jwcode); //获取活动列表 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 d89ded6..d1f0578 100644 --- a/src/main/java/com/example/demo/serviceImpl/cash/CashRefundServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/cash/CashRefundServiceImpl.java @@ -354,4 +354,17 @@ public class CashRefundServiceImpl implements RefundService { List list = cashRefundMapper.financeSelect(cashRecordDTO); return new PageInfo<>(list); } + + @Override + public PageInfo exSelect(Integer pageNum, Integer pageSize, CashRecordDTO cashRecordDTO) { + PageHelper.startPage(pageNum, pageSize); + List list = cashRefundMapper.exSelect(cashRecordDTO); + return new PageInfo<>(list); + } + + + @Override + public void addOnline(CashRecordRefund cashRecordRefund) { + + } } From 969d3d636fc4d37cf05edb7383dec351e639410c Mon Sep 17 00:00:00 2001 From: lijianlin Date: Thu, 13 Nov 2025 13:56:48 +0800 Subject: [PATCH 13/13] =?UTF-8?q?11-13=20=E6=94=B6=E6=AC=BE=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../example/demo/serviceImpl/cash/CashCollectionServiceImpl.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java index 67d4716..949fc64 100644 --- a/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java @@ -250,11 +250,11 @@ public class CashCollectionServiceImpl implements CashCollectionService { //多条件查询收款订单列表 @Override public PageInfo selectCollection(Integer pageNum, Integer pageSize, CashCollection cashCollection) { - //将操作人的地区列表改为id + /* //将操作人的地区列表改为id List markets = marketMapper.getMarketIds(cashCollection.getMarkets()); if (markets.contains("9") || markets.contains("9999")) { markets = null; - } + }*/ // cashCollection.setReceivedMarket(marketMapper.getMarketId(cashCollection.getReceivedMarket())); if (cashCollection.getCashRoleId() == 2) { //角色是总部时,若不特地传状态,传1346,sql处理为(1,3,4,6)筛选, @@ -291,7 +291,7 @@ public class CashCollectionServiceImpl implements CashCollectionService { cashCollection.setSubmitterId(cashCollection.getSubmitterId()); cashCollection.setReceivedMarket(null); } - cashCollection.setMarkets(markets); + // cashCollection.setMarkets(markets); PageHelper.startPage(pageNum, pageSize); List cashCollections = cashCollectionMapper.selectCollection1(pageNum, pageSize, cashCollection); return new PageInfo<>(cashCollections);