Ver código fonte

feat(app): 调整资金变动查询接口参数类型并优化退款回调逻辑

- 将 selectFundChanges 接口的查询参数由字符串类型改为整型- 优化微信退款回调处理逻辑,增加订单状态校验
- 移除冗余的资金变动记录插入代码- 新增 ShopMoneyMapper 的自定义分页查询方法及 XML 实现
- 完善分页查询接口默认参数配置,提升接口健壮性
SheepHy 4 dias atrás
pai
commit
938650b0ba

+ 1 - 14
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/controller/OrderController.java

@@ -305,20 +305,7 @@ public class OrderController {
                 appOrderRefundsInfo.setStatus(refundData.getStatus());
                 appOrderRefundsInfo.setSuccessTime(refundData.getSuccessTime());
                 appOrderRefundsInfoService.updateById(appOrderRefundsInfo);
-                ShopMoney shopMoney = shopMoneyMapper.selectOne(Wrappers.<ShopMoney>lambdaQuery()
-                        .eq(ShopMoney::getOrgCode, appOrder.getOrgCode())
-                        .last("limit 1")
-                        .orderByDesc(ShopMoney::getCreateTime));
-                shopMoneyMapper.insert(new ShopMoney()
-                        .setOrgCode(appOrder.getOrgCode())
-                        .setIncomeType(1)
-                        .setMoneyType(2)
-                        .setOrderCode(appOrder.getOrderCode())
-                        .setBeforeChange(shopMoney.getAfterChange())
-                        .setAfterChange(shopMoney.getAfterChange().subtract(appOrder.getPrice()))
-                        .setMoneyChange(appOrder.getPrice())
-                        .setChangeInfo(2)
-                        .setCreateTime(new Date()));
+
             }
 
             @Override

+ 17 - 1
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/pay/config/WeChatProfitSharingService.java

@@ -506,12 +506,28 @@ public class WeChatProfitSharingService {
             WechatCallbackRefundData refundData = getRefundCallbackData(res);
             if ("SUCCESS".equals(refundData.getStatus())) {
                 // 执行业务逻辑
+                AppOrder appOrder = appOrderMapper.selectOne(Wrappers.lambdaQuery(AppOrder.class).eq(AppOrder::getOrderCode, refundData.getOrderNo()));
+                if(null != appOrder && appOrder.getOrderStatus() != 6){
+                    ShopMoney shopMoney = shopMoneyMapper.selectOne(Wrappers.<ShopMoney>lambdaQuery()
+                            .eq(ShopMoney::getOrgCode, appOrder.getOrgCode())
+                            .last("limit 1")
+                            .orderByDesc(ShopMoney::getCreateTime));
+                    shopMoneyMapper.insert(new ShopMoney()
+                            .setOrgCode(appOrder.getOrgCode())
+                            .setIncomeType(1)
+                            .setMoneyType(2)
+                            .setOrderCode(appOrder.getOrderCode())
+                            .setBeforeChange(shopMoney.getAfterChange())
+                            .setAfterChange(shopMoney.getAfterChange().subtract(appOrder.getPrice()))
+                            .setMoneyChange(appOrder.getPrice())
+                            .setChangeInfo(2)
+                            .setCreateTime(new Date()));
+                }
                 refundCallback.success(refundData);
             } else {
                 // 特殊情况退款失败业务处理,退款到银行发现用户的卡作废或者冻结了,导致原路退款银行卡失败,可前往商户平台-交易中心,手动处理此笔退款
                 refundCallback.fail(refundData);
             }
-
             // 5.成功应答
             response.setStatus(200);
             result.put("code", "SUCCESS");

+ 6 - 6
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/controller/StatisticsController.java

@@ -112,12 +112,12 @@ public class StatisticsController {
      */
     @GetMapping("/selectFundChanges")
     @Operation(summary = "分页查询店铺资金总览-门店")
-    public Result<Page<ShopMoney>> selectFundChanges(@RequestParam(name="pageNo",required=false) Integer pageNo,
-                                                               @RequestParam(name="pageSize",required=false) Integer pageSize,
-                                                               @RequestParam(name="incomeExpenseType",required=false)String incomeExpenseType,
-                                                               @RequestParam(name="changeReason",required=false)String changeReason,
-                                                               @RequestParam(name="amountType",required=false)String amountType){
+    public Result<Page<ShopMoney>> selectFundChanges(@RequestParam(name="pageNo",required=false, defaultValue="1") Integer pageNo,
+                                                               @RequestParam(name="pageSize",required=false, defaultValue="10") Integer pageSize,
+                                                               @RequestParam(name="incomeType",required=false, defaultValue = "0")int incomeType,
+                                                               @RequestParam(name="moneyType",required=false, defaultValue = "0")int moneyType,
+                                                               @RequestParam(name="changeInfo",required=false, defaultValue = "0")int changeInfo){
         Page<ShopMoney> page = new Page<>(pageNo, pageSize);
-        return Result.ok(statisticsService.selectFundChanges(page,incomeExpenseType,changeReason,amountType));
+        return Result.ok(statisticsService.selectFundChanges(page,incomeType,moneyType,changeInfo));
     }
 }

+ 7 - 0
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/mapper/ShopMoneyMapper.java

@@ -1,7 +1,14 @@
 package org.jeecg.modules.system.app.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.ibatis.annotations.Param;
 import org.jeecg.modules.system.app.entity.ShopMoney;
 
 public interface ShopMoneyMapper extends BaseMapper<ShopMoney> {
+    Page<ShopMoney> selectFundChanges(@Param("page")Page<ShopMoney> page,
+                                      @Param("orgCode")String orgCode,
+                                      @Param("incomeType")int incomeType,
+                                      @Param("moneyType")int moneyType,
+                                      @Param("changeInfo")int changeInfo);
 }

+ 16 - 0
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/mapper/xml/ShopMoneyMapper.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.system.app.mapper.ShopMoneyMapper">
+    <select id="selectFundChanges" resultType="org.jeecg.modules.system.app.entity.ShopMoney">
+        select * from nm_shop_money where org_code = #{orgCode}
+        <if test="incomeType != null and incomeType != 0">
+            and income_type = #{incomeType}
+        </if>
+        <if test="moneyType != null and moneyType != 0">
+            and money_type = #{moneyType}
+        </if>
+        <if test="changeInfo != null and changeInfo != 0">
+            and change_info = #{changeInfo}
+        </if>
+    </select>
+</mapper>

+ 3 - 3
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/service/IStatisticsService.java

@@ -70,8 +70,8 @@ public interface IStatisticsService {
      *
      */
     Page<ShopMoney> selectFundChanges(Page<ShopMoney> page,
-                                      String incomeExpenseType,
-                                      String changeReason,
-                                      String amountType);
+                                      int incomeType,
+                                      int moneyType,
+                                      int changeInfo);
 
 }

+ 2 - 7
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/service/impl/StatisticsServiceImpl.java

@@ -59,13 +59,8 @@ public class StatisticsServiceImpl implements IStatisticsService {
     }
 
     @Override
-    public Page<ShopMoney> selectFundChanges(Page<ShopMoney> page, String incomeExpenseType, String changeReason, String amountType) {
+    public Page<ShopMoney> selectFundChanges(Page<ShopMoney> page, int incomeType, int moneyType, int changeInfo) {
         LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        return shopMoneyMapper.selectPage(page, Wrappers.<ShopMoney>lambdaQuery()
-                .eq(StringUtils.isNotBlank(incomeExpenseType), ShopMoney::getIncomeType, incomeExpenseType)
-                .eq(StringUtils.isNotBlank(changeReason), ShopMoney::getChangeInfo, changeReason)
-                .eq(StringUtils.isNotBlank(amountType), ShopMoney::getMoneyType, amountType)
-                .eq(ShopMoney::getOrgCode, loginUser.getOrgCode())
-        );
+        return shopMoneyMapper.selectFundChanges(page, loginUser.getOrgCode(), incomeType, moneyType, changeInfo);
     }
 }