瀏覽代碼

fix: 分销商门店授信和余额交易修改

luofeiyun 1 月之前
父節點
當前提交
afe0182806
共有 19 個文件被更改,包括 380 次插入148 次删除
  1. 10 0
      ship-module-ota/ship-module-ota-api/src/main/java/com/yc/ship/module/ota/api/OtaDistributorApi.java
  2. 2 0
      ship-module-ota/ship-module-ota-api/src/main/java/com/yc/ship/module/ota/enums/DistributorTradeTypeEnum.java
  3. 5 0
      ship-module-ota/ship-module-ota-biz/pom.xml
  4. 12 0
      ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/api/OtaDistributorApiImpl.java
  5. 3 2
      ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/service/distributor/DistributorServiceImpl.java
  6. 143 0
      ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/service/distributorrecharge/DistributorRechargeServiceImpl.java
  7. 3 0
      ship-module-otc/ship-module-otc-api/src/main/java/com/yc/ship/module/otc/enums/ErrorCodeConstants.java
  8. 8 0
      ship-module-otc/ship-module-otc-biz/src/main/java/com/yc/ship/module/otc/controller/admin/store/StoreController.java
  9. 19 0
      ship-module-otc/ship-module-otc-biz/src/main/java/com/yc/ship/module/otc/controller/admin/store/vo/StoreSimpleReqVO.java
  10. 1 1
      ship-module-otc/ship-module-otc-biz/src/main/java/com/yc/ship/module/otc/controller/admin/storecard/StoreCardController.java
  11. 3 0
      ship-module-otc/ship-module-otc-biz/src/main/java/com/yc/ship/module/otc/controller/admin/storetradelog/vo/StoreTradeLogPageReqVO.java
  12. 3 0
      ship-module-otc/ship-module-otc-biz/src/main/java/com/yc/ship/module/otc/controller/admin/storetradelog/vo/StoreTradeLogSaveReqVO.java
  13. 5 0
      ship-module-otc/ship-module-otc-biz/src/main/java/com/yc/ship/module/otc/dal/dataobject/storetradelog/StoreTradeLogDO.java
  14. 7 0
      ship-module-otc/ship-module-otc-biz/src/main/java/com/yc/ship/module/otc/dal/mysql/store/StoreMapper.java
  15. 1 0
      ship-module-otc/ship-module-otc-biz/src/main/java/com/yc/ship/module/otc/dal/mysql/storetradelog/StoreTradeLogMapper.java
  16. 2 0
      ship-module-otc/ship-module-otc-biz/src/main/java/com/yc/ship/module/otc/service/store/StoreService.java
  17. 60 51
      ship-module-otc/ship-module-otc-biz/src/main/java/com/yc/ship/module/otc/service/store/StoreServiceImpl.java
  18. 90 94
      ship-module-otc/ship-module-otc-biz/src/main/java/com/yc/ship/module/otc/service/storeaudit/StoreAuditServiceImpl.java
  19. 3 0
      ship-module-otc/ship-module-otc-biz/src/main/resources/mapper/storetradelog/StoreTradeLogMapper.xml

+ 10 - 0
ship-module-ota/ship-module-ota-api/src/main/java/com/yc/ship/module/ota/api/OtaDistributorApi.java

@@ -1,5 +1,8 @@
 package com.yc.ship.module.ota.api;
 
+import com.yc.ship.framework.common.pojo.CommonResult;
+import com.yc.ship.module.ota.api.dto.DistributorRechargeReqDTO;
+import com.yc.ship.module.ota.api.dto.DistributorRechargeRespDTO;
 import com.yc.ship.module.ota.api.dto.DistributorRespDTO;
 
 public interface OtaDistributorApi {
@@ -9,4 +12,11 @@ public interface OtaDistributorApi {
      * @return
      */
     DistributorRespDTO getDistributorByLoginUserId(Long loginUserId);
+
+    /**
+     * 分销商交易充值
+     * @param rechargeReqDTO
+     * @return
+     */
+    CommonResult<DistributorRechargeRespDTO> tradeRecharge(DistributorRechargeReqDTO rechargeReqDTO);
 }

+ 2 - 0
ship-module-ota/ship-module-ota-api/src/main/java/com/yc/ship/module/ota/enums/DistributorTradeTypeEnum.java

@@ -31,6 +31,8 @@ public enum DistributorTradeTypeEnum implements IntArrayValuable {
     BALANCE_PAY_CREDIT_BILL(16, "预付款支付授信账单"),
     BALANCE_DISTRIBUTE_STORE(17, "给门店分配预付款"),
     CREDIT_DISTRIBUTE_STORE(18, "给门店分配授信"),
+    GUIDE_REFUND_BALANCE_TRANS(19, "导游代退扣预存款"),
+    GUIDE_REFUND_BALANCE_TRANS_CANCEL(20, "导游代退失败回退预存款"),
     ;
 
     public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(DistributorTradeTypeEnum::getType).toArray();

+ 5 - 0
ship-module-ota/ship-module-ota-biz/pom.xml

@@ -27,6 +27,11 @@
             <artifactId>ship-module-ota-api</artifactId>
             <version>1.0.0</version>
         </dependency>
+        <dependency>
+            <groupId>com.yc.ship</groupId>
+            <artifactId>ship-module-otc-api</artifactId>
+            <version>1.0.0</version>
+        </dependency>
         <dependency>
             <groupId>com.yc.ship</groupId>
             <artifactId>module-infra-api</artifactId>

+ 12 - 0
ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/api/OtaDistributorApiImpl.java

@@ -1,9 +1,13 @@
 package com.yc.ship.module.ota.api;
 
+import com.yc.ship.framework.common.pojo.CommonResult;
 import com.yc.ship.framework.common.util.object.BeanUtils;
+import com.yc.ship.module.ota.api.dto.DistributorRechargeReqDTO;
+import com.yc.ship.module.ota.api.dto.DistributorRechargeRespDTO;
 import com.yc.ship.module.ota.api.dto.DistributorRespDTO;
 import com.yc.ship.module.ota.dal.dataobject.distributor.DistributorDO;
 import com.yc.ship.module.ota.service.distributor.DistributorService;
+import com.yc.ship.module.ota.service.distributorrecharge.DistributorRechargeService;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -13,6 +17,9 @@ public class OtaDistributorApiImpl implements OtaDistributorApi{
 
     @Resource
     private DistributorService distributorService;
+
+    @Resource
+    private DistributorRechargeService distributorRechargeService;
     @Override
     public DistributorRespDTO getDistributorByLoginUserId(Long loginUserId) {
         DistributorDO distributorDO = distributorService.getDistributorByLoginUserId(loginUserId);
@@ -21,4 +28,9 @@ public class OtaDistributorApiImpl implements OtaDistributorApi{
         }
         return BeanUtils.toBean(distributorDO, DistributorRespDTO.class);
     }
+
+    @Override
+    public CommonResult<DistributorRechargeRespDTO> tradeRecharge(DistributorRechargeReqDTO rechargeReqDTO) {
+        return distributorRechargeService.tradeRecharge(rechargeReqDTO);
+    }
 }

+ 3 - 2
ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/service/distributor/DistributorServiceImpl.java

@@ -124,7 +124,7 @@ public class DistributorServiceImpl implements DistributorService {
         }
         LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
         Long tenantId = loginUser.getTenantId();
-        Long userId = createSystemUser(createReqVO);
+        Long userId = createSystemUser(createReqVO, distributor.getId());
         if (createReqVO.getType() == 2) {
             //若为旅行社,则创建新租户
             try {
@@ -414,11 +414,12 @@ public class DistributorServiceImpl implements DistributorService {
 
     }
 
-    Long createSystemUser(DistributorSaveReqVO createReqVO) {
+    Long createSystemUser(DistributorSaveReqVO createReqVO, Long distributorId) {
         AdminUserRespDTO reqDTO = new AdminUserRespDTO();
         reqDTO.setUsername(createReqVO.getLoginName());
         reqDTO.setPassword(createReqVO.getPassword());
         reqDTO.setNickname(createReqVO.getName());
+        reqDTO.setDistributorId(distributorId);
         return adminUserApi.createUser(reqDTO);
     }
 

+ 143 - 0
ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/service/distributorrecharge/DistributorRechargeServiceImpl.java

@@ -10,6 +10,7 @@ import com.yc.ship.framework.common.pojo.PageResult;
 import com.yc.ship.framework.common.util.object.BeanUtils;
 import com.yc.ship.framework.mybatis.core.util.MyBatisUtils;
 import com.yc.ship.framework.tenant.core.aop.TenantIgnore;
+import com.yc.ship.framework.tenant.core.util.TenantUtils;
 import com.yc.ship.module.ota.controller.admin.distributorrecharge.vo.DistributorRechargeAuditReqVO;
 import com.yc.ship.module.ota.controller.admin.distributorrecharge.vo.DistributorRechargePageReqVO;
 import com.yc.ship.module.ota.controller.admin.distributorrecharge.vo.DistributorRechargeRespVO;
@@ -26,6 +27,10 @@ import com.yc.ship.module.ota.enums.DistributorTradeTypeEnum;
 import com.yc.ship.module.ota.enums.DistributorTypeEnum;
 import com.yc.ship.module.ota.service.distributor.DistributorService;
 import com.yc.ship.module.ota.service.tradelog.TradeLogService;
+import com.yc.ship.module.otc.api.store.StoreApi;
+import com.yc.ship.module.otc.api.store.dto.StoreReqDTO;
+import com.yc.ship.module.otc.api.store.dto.StoreRespDTO;
+import com.yc.ship.module.otc.enums.TradeModeEnum;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.redisson.api.RLock;
@@ -71,6 +76,9 @@ public class DistributorRechargeServiceImpl implements DistributorRechargeServic
     @Resource
     private TradeLogService tradeLogService;
 
+    @Resource
+    private StoreApi storeApi;
+
 
     /**
      * 余额类型
@@ -411,6 +419,51 @@ public class DistributorRechargeServiceImpl implements DistributorRechargeServic
                             tradeMode = rechargeReqDTO.getMode();
                             //预付款
                             beforeBalance = distributor.getBalance();
+                            if(tradeMode == 1){
+                                //分配后金额
+                                Asserts.isTrue(isUseBalance,"分销商无预付款交易权限");
+                                afterBalance = beforeBalance.subtract(money);
+                                Asserts.isTrue(afterBalance.compareTo(BigDecimal.ZERO)>=0,"余额不足无法分配");
+                                //充值
+                                tradeName = "余额分配金额:" + money + "元,分配后剩余余额" + afterBalance + "元;";
+                                //操作账户资金
+                                flag = distributorService.subBalance(distributor.getId(), money);
+                                if(flag){
+                                    StoreReqDTO storeReqDTO = this.convertStorePlatBalance(rechargeReqDTO.getStoreId(), tradeMode, money, Long.parseLong(rechargeReqDTO.getOrderId()), tradeType, rechargeReqDTO.getRefundId());
+                                    TenantUtils.execute(distributor.getAccountTenantId(), () -> {
+                                        CommonResult<StoreRespDTO> storeResult = storeApi.storePlatTrade(storeReqDTO);
+                                        if(!storeResult.isSuccess()){
+                                            //扣除失败,平台回滚
+                                            distributorService.addBalance(distributor.getId(), money);
+                                        }
+                                        Asserts.isTrue(storeResult.isSuccess(), storeResult.getMsg());
+                                    });
+                                }
+                                tradeMode =2;//对于平台是减少
+                            }else{
+                                //先扣门店的
+                                StoreReqDTO storeReqDTO = this.convertStorePlatBalance(rechargeReqDTO.getStoreId(), tradeMode, money, Long.parseLong(rechargeReqDTO.getOrderId()), tradeType, rechargeReqDTO.getRefundId());
+                                TenantUtils.execute(distributor.getAccountTenantId(), () -> {
+                                    CommonResult<StoreRespDTO> storeResult = storeApi.storePlatTrade(storeReqDTO);
+                                    Asserts.isTrue(storeResult.isSuccess(), storeResult.getMsg());
+                                });
+                                //分配后金额
+                                afterBalance = beforeBalance.add(money);
+                                //充值
+                                tradeName = "门店归还余额金额:" + money + "元,归还后余额" + afterBalance + "元;";
+                                //操作账户资金
+                                flag = distributorService.addBalance(distributor.getId(), money);
+                                if(!flag){
+                                    //门店回滚
+                                    StoreReqDTO storeReqBackDTO = this.convertStorePlatBalance(rechargeReqDTO.getStoreId(), 1, money, Long.parseLong(rechargeReqDTO.getOrderId()), tradeType, rechargeReqDTO.getRefundId());
+                                    TenantUtils.execute(distributor.getAccountTenantId(), () -> {
+                                        CommonResult<StoreRespDTO> storeResult = storeApi.storePlatTrade(storeReqBackDTO);
+                                        Asserts.isTrue(storeResult.isSuccess(), storeResult.getMsg());
+                                    });
+
+                                }
+                                tradeMode =1;//对于平台是增加
+                            }
 
                             break;
                         case 18:
@@ -418,6 +471,42 @@ public class DistributorRechargeServiceImpl implements DistributorRechargeServic
                             tradeMode = rechargeReqDTO.getMode();
                             //平台给门店分配授信
                             beforeBalance = distributor.getPayCredit();
+                            if(tradeMode == 1){
+                                Asserts.isTrue(isUseCredit, "分销商无授信交易权限!");
+                                //剩余授信
+                                afterBalance = beforeBalance.subtract(money);
+                                BigDecimal surplus = distributor.getSurplus().add(money);
+                                Asserts.isTrue(surplus.compareTo(distributor.getPayCredit())<=0,"授信额度不足无法分配");
+                                //充值
+                                tradeName = "授信分配额度:" + money + "元,分配后剩余授信" + afterBalance + "元;";
+                                //操作账户资金
+                                flag = distributorService.subPayCredit(distributor.getId(), money);
+                                if(flag){
+                                    StoreReqDTO reqDTO = this.convertStorePlatCredit(rechargeReqDTO.getStoreId(), tradeMode, money, Long.parseLong(rechargeReqDTO.getOrderId()), tradeType, rechargeReqDTO.getRefundId());
+                                    TenantUtils.execute(distributor.getAccountTenantId(), () -> {
+                                        CommonResult<StoreRespDTO> storeResult = storeApi.storePlatTrade(reqDTO);
+                                        if(!storeResult.isSuccess()){
+                                            //扣除失败,平台回滚
+                                            distributorService.addPayCredit(distributor.getId(), money);
+                                        }
+                                        Asserts.isTrue(storeResult.isSuccess(), storeResult.getMsg());
+                                    });
+                                }
+                                tradeMode =2;//对于平台是减少
+                            }else{
+                                StoreReqDTO reqDTO = this.convertStorePlatCredit(rechargeReqDTO.getStoreId(), tradeMode, money, Long.parseLong(rechargeReqDTO.getOrderId()), tradeType, rechargeReqDTO.getRefundId());
+                                TenantUtils.execute(distributor.getAccountTenantId(), () -> {
+                                    CommonResult<StoreRespDTO> storeResult = storeApi.storePlatTrade(reqDTO);
+                                    Asserts.isTrue(storeResult.isSuccess(), storeResult.getMsg());
+                                });
+                                afterBalance = beforeBalance.add(money);
+                                //充值
+                                tradeName = "门店归还授信额度:" + money + "元,归还后额度" + afterBalance + "元;";
+                                //操作账户资金
+                                flag = distributorService.addPayCredit(distributor.getId(), money);
+
+                                tradeMode =1;//对于平台是增加
+                            }
                             break;
                         default:
                             break;
@@ -473,4 +562,58 @@ public class DistributorRechargeServiceImpl implements DistributorRechargeServic
         return CommonResult.success(respDTO);
     }
 
+    private StoreReqDTO convertStorePlatCredit(Long storeId, Integer mode, BigDecimal amount,Long orderId,Integer tradeType,Long refundId) {
+        StoreReqDTO reqDTO = new StoreReqDTO();
+        reqDTO.setOperateType(4);
+        reqDTO.setStoreId(storeId);
+        reqDTO.setAmount(amount);
+        reqDTO.setOrderId(orderId);
+        reqDTO.setOperateMode(mode);
+        Integer type = null;
+        if (ObjectUtil.equals(tradeType,DistributorTradeTypeEnum.CREDIT_TRANS.getType())){
+            type = 9;
+        }else if (ObjectUtil.equals(tradeType,DistributorTradeTypeEnum.CREDIT_REFUND.getType())){
+            type = 10;
+        }else if (ObjectUtil.equals(tradeType,DistributorTradeTypeEnum.CREDIT_RECHARGE.getType())){
+            type = 11;
+        }else if (ObjectUtil.equals(tradeType,DistributorTradeTypeEnum.CREDIT_DISTRIBUTE_STORE.getType())){
+            type = mode==1?15:18;
+        }
+        TradeModeEnum tradeModeEnum = TradeModeEnum.valueOf(4, type, mode);
+        reqDTO.setTradeModeEnum(tradeModeEnum);
+        reqDTO.setRefundId(refundId);
+        return reqDTO;
+    }
+
+    private StoreReqDTO convertStorePlatBalance(Long storeId, Integer mode, BigDecimal amount,Long orderId,Integer tradeType,Long refundId) {
+        StoreReqDTO reqDTO = new StoreReqDTO();
+        reqDTO.setOperateType(5);
+        reqDTO.setStoreId(storeId);
+        reqDTO.setAmount(amount);
+        reqDTO.setOrderId(orderId);
+        reqDTO.setOperateMode(mode);
+        Integer type = null;
+        if (ObjectUtil.equals(tradeType,DistributorTradeTypeEnum.BALANCE_TRANS.getType())){
+            type = 12;
+        }else if (ObjectUtil.equals(tradeType,DistributorTradeTypeEnum.BALANCE_REFUND.getType())){
+            type = 13;
+        }else if (ObjectUtil.equals(tradeType,DistributorTradeTypeEnum.BALANCE_DISTRIBUTE_STORE.getType())){
+            type = mode == 1?14:16;
+        }else if(ObjectUtil.equals(tradeType,DistributorTradeTypeEnum.BALANCE_PAY_CREDIT_BILL.getType())){
+            type = 19;
+        }else if(ObjectUtil.equals(tradeType,DistributorTradeTypeEnum.STOCK_DIRECT_TRANS.getType())){
+            type = 20;
+        }else if(ObjectUtil.equals(tradeType,DistributorTradeTypeEnum.STOCK_DIRECT_REFUND.getType())){
+            type = 21;
+        }else if(ObjectUtil.equals(tradeType,DistributorTradeTypeEnum.GUIDE_REFUND_BALANCE_TRANS.getType())){
+            type = 22;
+        }else if(ObjectUtil.equals(tradeType,DistributorTradeTypeEnum.GUIDE_REFUND_BALANCE_TRANS_CANCEL.getType())){
+            type = 23;
+        }
+        TradeModeEnum tradeModeEnum = TradeModeEnum.valueOf(5, type, mode);
+        reqDTO.setTradeModeEnum(tradeModeEnum);
+        reqDTO.setRefundId(refundId);
+        return reqDTO;
+    }
+
 }

+ 3 - 0
ship-module-otc/ship-module-otc-api/src/main/java/com/yc/ship/module/otc/enums/ErrorCodeConstants.java

@@ -25,6 +25,7 @@ public interface ErrorCodeConstants {
 
     ErrorCode STORE_USER_EXISTS = new ErrorCode(10_011, "存在账号已绑定门店");
 
+
     ErrorCode NOT_ASSOCIATED_DISTRIBUTOR = new ErrorCode(10_012, "当前账号未关联旅行社");
 
     ErrorCode STORE_CARD_NOT_EXISTS = new ErrorCode(10_013, "门店资金卡不存在");
@@ -35,6 +36,8 @@ public interface ErrorCodeConstants {
 
     ErrorCode STORE_AUDIT_NOT_EXISTS = new ErrorCode(10_016, "旅行社门店授信提额/授信充值/余额充值不存在");
     ErrorCode OVERDUE_BILL_EXISTS = new ErrorCode(10_017, "旅行社存在逾期账单");
+    ErrorCode STORE_DISABLED_BALANCE = new ErrorCode(10_018, "该门店未启用预付款");
+    ErrorCode STORE_DISABLED_CREDIT = new ErrorCode(10_019, "该门店未启用授信");
 
 
     ErrorCode STORE_REQUEST_FAIL = new ErrorCode(20_001, "门店资金卡请求失败");

+ 8 - 0
ship-module-otc/ship-module-otc-biz/src/main/java/com/yc/ship/module/otc/controller/admin/store/StoreController.java

@@ -163,6 +163,14 @@ public class StoreController {
         return success(BeanUtils.toBean(list, StoreSimpleRespVO.class));
     }
 
+    @GetMapping({"/list-all-simple-new", "/simple-list-new"})
+    @Operation(summary = "获取门店精简信息列表", description = "只包含被开启的门店,主要用于前端的下拉选项")
+    public CommonResult<List<StoreSimpleRespVO>> getSimpleStoreListNew(StoreSimpleReqVO reqVO) {
+        reqVO.setStatus(UseStatusEnum.ENABLE.getStatus());
+        List<StoreDO> list = storeService.getStoreList(reqVO);
+        return success(BeanUtils.toBean(list, StoreSimpleRespVO.class));
+    }
+
     @GetMapping("/list-by-distributor")
     @Parameter(name = "distributorId", description = "旅行社id", required = true)
     @Operation(summary = "通过旅行社获取门店精简信息列表", description = "只包含被开启的门店,主要用于前端的下拉选项")

+ 19 - 0
ship-module-otc/ship-module-otc-biz/src/main/java/com/yc/ship/module/otc/controller/admin/store/vo/StoreSimpleReqVO.java

@@ -0,0 +1,19 @@
+package com.yc.ship.module.otc.controller.admin.store.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Schema(description = "管理后台 - 旅行社门店 Response VO")
+@Data
+public class StoreSimpleReqVO{
+
+    @Schema(description = "旅行社ID")
+    private Long agencyId;
+
+    @Schema(description = "状态")
+    private Integer status;
+
+
+}

+ 1 - 1
ship-module-otc/ship-module-otc-biz/src/main/java/com/yc/ship/module/otc/controller/admin/storecard/StoreCardController.java

@@ -35,7 +35,7 @@ import static com.yc.ship.framework.operatelog.core.enums.OperateTypeEnum.EXPORT
 
 @Tag(name = "管理后台 - 门店资金卡")
 @RestController
-@RequestMapping("/store-card")
+@RequestMapping("/otc/store-card")
 @Validated
 public class StoreCardController {
 

+ 3 - 0
ship-module-otc/ship-module-otc-biz/src/main/java/com/yc/ship/module/otc/controller/admin/storetradelog/vo/StoreTradeLogPageReqVO.java

@@ -18,6 +18,9 @@ import static com.yc.ship.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH
 @ToString(callSuper = true)
 public class StoreTradeLogPageReqVO extends PageParam {
 
+    @Schema(description = "分销商ID", example = "19597")
+    private Long distributorId;
+
     @Schema(description = "门店ID", example = "19597")
     private Long storeId;
 

+ 3 - 0
ship-module-otc/ship-module-otc-biz/src/main/java/com/yc/ship/module/otc/controller/admin/storetradelog/vo/StoreTradeLogSaveReqVO.java

@@ -12,6 +12,9 @@ public class StoreTradeLogSaveReqVO {
     @Schema(description = "交易记录ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "24548")
     private Long id;
 
+    @Schema(description = "分销商ID", example = "19597")
+    private Long distributorId;
+
     @Schema(description = "门店ID", example = "19597")
     private Long storeId;
 

+ 5 - 0
ship-module-otc/ship-module-otc-biz/src/main/java/com/yc/ship/module/otc/dal/dataobject/storetradelog/StoreTradeLogDO.java

@@ -29,6 +29,11 @@ public class StoreTradeLogDO extends TenantBaseDO {
      */
     @TableId
     private Long id;
+
+    /**
+     * 旅行社ID
+     */
+    private Long distributorId;
     /**
      * 门店ID
      */

+ 7 - 0
ship-module-otc/ship-module-otc-biz/src/main/java/com/yc/ship/module/otc/dal/mysql/store/StoreMapper.java

@@ -10,6 +10,7 @@ import com.yc.ship.module.otc.controller.admin.store.machine.SellerMachineRespVO
 import com.yc.ship.module.otc.controller.admin.store.vo.StoreAuditPageReqVO;
 import com.yc.ship.module.otc.controller.admin.store.vo.StorePageReqVO;
 import com.yc.ship.module.otc.controller.admin.store.vo.StoreRespVO;
+import com.yc.ship.module.otc.controller.admin.store.vo.StoreSimpleReqVO;
 import com.yc.ship.module.otc.dal.dataobject.store.StoreDO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -63,4 +64,10 @@ public interface StoreMapper extends BaseMapperX<StoreDO> {
 
     IPage<StoreRespVO> selectAuditPage(IPage<StoreRespVO> ipage, @Param("reqVO") StoreAuditPageReqVO reqVO);
 
+    default List<StoreDO> selectList(StoreSimpleReqVO reqVO) {
+        return selectList(new LambdaQueryWrapperX<StoreDO>()
+                .eqIfPresent(StoreDO::getAgencyId, reqVO.getAgencyId())
+                .eqIfPresent(StoreDO::getIsUse, reqVO.getStatus())
+        );
+    }
 }

+ 1 - 0
ship-module-otc/ship-module-otc-biz/src/main/java/com/yc/ship/module/otc/dal/mysql/storetradelog/StoreTradeLogMapper.java

@@ -21,6 +21,7 @@ public interface StoreTradeLogMapper extends BaseMapperX<StoreTradeLogDO> {
 
     default PageResult<StoreTradeLogDO> selectPage(StoreTradeLogPageReqVO reqVO) {
         LambdaQueryWrapperX<StoreTradeLogDO> queryWrapperX = new LambdaQueryWrapperX<>();
+        queryWrapperX.eqIfPresent(StoreTradeLogDO::getDistributorId, reqVO.getDistributorId());
         queryWrapperX.eqIfPresent(StoreTradeLogDO::getStoreId, reqVO.getStoreId());
         queryWrapperX.likeIfPresent(StoreTradeLogDO::getTradeName, reqVO.getTradeName());
 

+ 2 - 0
ship-module-otc/ship-module-otc-biz/src/main/java/com/yc/ship/module/otc/service/store/StoreService.java

@@ -287,4 +287,6 @@ public interface StoreService {
     void updateStoreProductStatus(StoreProductReqDTO reqDTO);
 
     StoreBalanceRespVO queryStoreCreditAndBalance(Integer whetherShow);
+
+    List<StoreDO> getStoreList(StoreSimpleReqVO reqVO);
 }

+ 60 - 51
ship-module-otc/ship-module-otc-biz/src/main/java/com/yc/ship/module/otc/service/store/StoreServiceImpl.java

@@ -7,6 +7,7 @@ import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.yc.ship.framework.common.enums.CommonStatusEnum;
 import com.yc.ship.framework.common.exception.ServiceException;
 import com.yc.ship.framework.common.lang.Asserts;
 import com.yc.ship.framework.common.pojo.CommonResult;
@@ -21,7 +22,10 @@ import com.yc.ship.framework.security.core.util.SecurityFrameworkUtils;
 import com.yc.ship.framework.tenant.core.aop.TenantIgnore;
 import com.yc.ship.framework.tenant.core.context.TenantContextHolder;
 import com.yc.ship.module.ota.api.OtaDistributorApi;
+import com.yc.ship.module.ota.api.dto.DistributorRechargeReqDTO;
+import com.yc.ship.module.ota.api.dto.DistributorRechargeRespDTO;
 import com.yc.ship.module.ota.api.dto.DistributorRespDTO;
+import com.yc.ship.module.ota.enums.DistributorTradeTypeEnum;
 import com.yc.ship.module.otc.api.store.dto.StoreCardRespDTO;
 import com.yc.ship.module.otc.api.store.dto.StoreMachineDTO;
 import com.yc.ship.module.otc.api.store.dto.StoreProductReqDTO;
@@ -833,6 +837,7 @@ public class StoreServiceImpl implements StoreService {
             saveReqVO.setOrderId(orderId == null ? "" : orderId.toString());
             saveReqVO.setRefundId(refundId == null ? "" : refundId.toString());
             saveReqVO.setTradeType(tradeMode.getType());
+            saveReqVO.setDistributorId(store.getAgencyId());
             return storeTradeLogService.createStoreTradeLog(saveReqVO);
         }
     }
@@ -937,33 +942,35 @@ public class StoreServiceImpl implements StoreService {
 
     @Override
     public Long updateStoreCardWithPlat(StoreCardDO storeCardDO , StoreAuditDO storeAudit, TradeModeEnum tradeMode, Long userId){
-//        Asserts.isTrue(storeAudit.getDistributorId()!=null,"旅行社ID不能为空");
-//        DistributorRechargeReqDTO reqDTO = new DistributorRechargeReqDTO();
-//        reqDTO.setAccountId(storeAudit.getDistributorId().toString());
-//        reqDTO.setAccountType(0);
-//        reqDTO.setStoreId(storeAudit.getStoreId());
-//        if(tradeMode == TradeModeEnum.BALANCE_ADMIN_RECHARGE_1 || tradeMode == TradeModeEnum.BALANCE_ADMIN_RECHARGE_2){
-//            Asserts.isTrue(ObjectUtil.equals(storeCardDO.getBalanceType(), StoreBalanceTypeEnum.FIXED.getType()),"当前门店不是定向预付款类型,不能分配");
-//            reqDTO.setRechargeType(DistributorTradeTypeEnum.BALANCE_RECHARGE.getType());
-//            reqDTO.setTradeType(DistributorTradeTypeEnum.BALANCE_DISTRIBUTE_STORE.getType());
-//        }else if(tradeMode == TradeModeEnum.QUOTA_1 || tradeMode == TradeModeEnum.QUOTA_2){
-//            Asserts.isTrue(ObjectUtil.equals(storeCardDO.getCreditType(), StoreCreditTypeEnum.FIXED.getType()),"当前门店不是定向授信类型,不能分配");
-//            reqDTO.setRechargeType(DistributorTradeTypeEnum.CREDIT_RECHARGE.getType());
-//            reqDTO.setTradeType(DistributorTradeTypeEnum.CREDIT_DISTRIBUTE_STORE.getType());
-//        }
-//        reqDTO.setRechargeDistributeType(storeAudit.getRechargeDistributeType());
-//        reqDTO.setAmount(storeAudit.getAmount());
-//        reqDTO.setOrderId(storeAudit.getId().toString());
-//        if(tradeMode == TradeModeEnum.BALANCE_ADMIN_RECHARGE_1 || tradeMode == TradeModeEnum.QUOTA_1){
-//            reqDTO.setMode(1);
-//        }else if(tradeMode == TradeModeEnum.BALANCE_ADMIN_RECHARGE_2 || tradeMode == TradeModeEnum.QUOTA_2){
-//            reqDTO.setMode(2);
-//        }
-//
-//        DistributorRechargeRespDTO checkedData = otaDistributorApi.tradeRecharge(reqDTO).getCheckedData();
-//        return checkedData.getTradeId();
-        //TODO: 待完善
-        return null;
+        Asserts.isTrue(storeAudit.getDistributorId()!=null,"旅行社ID不能为空");
+        DistributorRechargeReqDTO reqDTO = new DistributorRechargeReqDTO();
+        reqDTO.setAccountId(storeAudit.getDistributorId().toString());
+        reqDTO.setAccountType(0);
+        reqDTO.setStoreId(storeAudit.getStoreId());
+        if(tradeMode == TradeModeEnum.BALANCE_ADMIN_RECHARGE_1 || tradeMode == TradeModeEnum.BALANCE_ADMIN_RECHARGE_2){
+            if(ObjectUtil.notEqual(storeCardDO.getBalanceType(), UseStatusEnum.ENABLE.getStatus())) {
+                throw exception(STORE_DISABLED_BALANCE);
+            }
+            reqDTO.setRechargeType(DistributorTradeTypeEnum.BALANCE_RECHARGE.getType());
+            reqDTO.setTradeType(DistributorTradeTypeEnum.BALANCE_DISTRIBUTE_STORE.getType());
+        }else if(tradeMode == TradeModeEnum.QUOTA_1 || tradeMode == TradeModeEnum.QUOTA_2){
+            if(ObjectUtil.notEqual(storeCardDO.getCreditType(), UseStatusEnum.ENABLE.getStatus())) {
+                throw exception(STORE_DISABLED_CREDIT);
+            }
+            reqDTO.setRechargeType(DistributorTradeTypeEnum.CREDIT_RECHARGE.getType());
+            reqDTO.setTradeType(DistributorTradeTypeEnum.CREDIT_DISTRIBUTE_STORE.getType());
+        }
+        reqDTO.setRechargeDistributeType(storeAudit.getRechargeDistributeType());
+        reqDTO.setAmount(storeAudit.getAmount());
+        reqDTO.setOrderId(storeAudit.getId().toString());
+        if(tradeMode == TradeModeEnum.BALANCE_ADMIN_RECHARGE_1 || tradeMode == TradeModeEnum.QUOTA_1){
+            reqDTO.setMode(1);
+        }else if(tradeMode == TradeModeEnum.BALANCE_ADMIN_RECHARGE_2 || tradeMode == TradeModeEnum.QUOTA_2){
+            reqDTO.setMode(2);
+        }
+
+        DistributorRechargeRespDTO checkedData = otaDistributorApi.tradeRecharge(reqDTO).getCheckedData();
+        return checkedData.getTradeId();
     }
 
     @Override
@@ -1025,29 +1032,31 @@ public class StoreServiceImpl implements StoreService {
 
     @Override
     public StoreBalanceRespVO queryStoreCreditAndBalance(Integer whetherShow) {
-//        long loginUserId = getLoginUserId();
-//        Long tenantId = TenantContextHolder.getTenantId();
-//        StoreCardRespDTO store = this.getStoreByUserId(loginUserId);
-//        StoreBalanceRespVO respVO = StoreConvert.INSTANCE.convertStoreType(store);
-//        DistributorRespDTO  distributor = otaDistributorApi.getDistributorByAccountTenantId(tenantId).getCheckedData();
-//        if (Objects.equals(store.getBalanceType(), StoreBalanceTypeEnum.SHARE.getType())) {
-//            //当门店授信和预付款为共享时是否显示旅行社的余额(1-是,0-否)
-//            if (whetherShow!=null && whetherShow ==1){
-//                respVO.setPaymentBalance(distributor.getBalance());
-//            }
-//        }else if (Objects.equals(store.getBalanceType(), StoreBalanceTypeEnum.FIXED.getType())){
-//            respVO.setPaymentBalance(store.getBalance());
-//        }
-//        if (Objects.equals(store.getCreditType(), StoreBalanceTypeEnum.SHARE.getType())) {
-//            //当门店授信和预付款为共享时是否显示旅行社的余额(1-是,0-否)
-//            if (whetherShow!=null && whetherShow ==1){
-//                respVO.setCreditBalance(distributor.getPayCredit().subtract(distributor.getSurplus()));
-//            }
-//        }else if (Objects.equals(store.getCreditType(), StoreBalanceTypeEnum.FIXED.getType())){
-//            respVO.setCreditBalance(store.getCredit().subtract(store.getSurplus()));
-//        }
-//        return respVO;
-        // TODO 待完善
-        return null;
+        long loginUserId = getLoginUserId();
+        StoreCardRespDTO store = this.getStoreByUserId(loginUserId);
+        StoreBalanceRespVO respVO = StoreConvert.INSTANCE.convertStoreType(store);
+        DistributorRespDTO  distributor = otaDistributorApi.getDistributorByLoginUserId(loginUserId);
+        if (Objects.equals(store.getBalanceType(), StoreBalanceTypeEnum.SHARE.getType())) {
+            //当门店授信和预付款为共享时是否显示旅行社的余额(1-是,0-否)
+            if (whetherShow!=null && whetherShow ==1){
+                respVO.setPaymentBalance(distributor.getBalance());
+            }
+        }else if (Objects.equals(store.getBalanceType(), StoreBalanceTypeEnum.FIXED.getType())){
+            respVO.setPaymentBalance(store.getBalance());
+        }
+        if (Objects.equals(store.getCreditType(), StoreBalanceTypeEnum.SHARE.getType())) {
+            //当门店授信和预付款为共享时是否显示旅行社的余额(1-是,0-否)
+            if (whetherShow!=null && whetherShow ==1){
+                respVO.setCreditBalance(distributor.getPayCredit().subtract(distributor.getSurplus()));
+            }
+        }else if (Objects.equals(store.getCreditType(), StoreBalanceTypeEnum.FIXED.getType())){
+            respVO.setCreditBalance(store.getCredit().subtract(store.getSurplus()));
+        }
+        return respVO;
+    }
+
+    @Override
+    public List<StoreDO> getStoreList(StoreSimpleReqVO reqVO) {
+        return storeMapper.selectList(reqVO);
     }
 }

+ 90 - 94
ship-module-otc/ship-module-otc-biz/src/main/java/com/yc/ship/module/otc/service/storeaudit/StoreAuditServiceImpl.java

@@ -4,11 +4,14 @@ import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yc.ship.framework.common.enums.CommonStatusEnum;
 import com.yc.ship.framework.common.lang.Asserts;
 import com.yc.ship.framework.common.pojo.PageResult;
 import com.yc.ship.framework.common.util.object.BeanUtils;
 import com.yc.ship.framework.tenant.core.aop.TenantIgnore;
 import com.yc.ship.framework.tenant.core.context.TenantContextHolder;
+import com.yc.ship.module.ota.api.OtaDistributorApi;
+import com.yc.ship.module.ota.api.dto.DistributorRespDTO;
 import com.yc.ship.module.otc.controller.admin.storeaudit.vo.StoreAuditPageReqVO;
 import com.yc.ship.module.otc.controller.admin.storeaudit.vo.StoreAuditRespVO;
 import com.yc.ship.module.otc.controller.admin.storeaudit.vo.StoreAuditSaveReqVO;
@@ -16,9 +19,8 @@ import com.yc.ship.module.otc.dal.dataobject.store.StoreDO;
 import com.yc.ship.module.otc.dal.dataobject.storeaudit.StoreAuditDO;
 import com.yc.ship.module.otc.dal.dataobject.storecard.StoreCardDO;
 import com.yc.ship.module.otc.dal.mysql.storeaudit.StoreAuditMapper;
-import com.yc.ship.module.otc.enums.StoreBalanceTypeEnum;
-import com.yc.ship.module.otc.enums.StoreCreditTypeEnum;
 import com.yc.ship.module.otc.enums.TradeModeEnum;
+import com.yc.ship.module.otc.enums.UseStatusEnum;
 import com.yc.ship.module.otc.service.store.StoreService;
 import com.yc.ship.module.otc.service.storecard.StoreCardService;
 import com.yc.ship.module.system.api.user.AdminUserApi;
@@ -30,7 +32,7 @@ import java.time.LocalDateTime;
 
 import static com.yc.ship.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static com.yc.ship.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
-import static com.yc.ship.module.otc.enums.ErrorCodeConstants.STORE_AUDIT_NOT_EXISTS;
+import static com.yc.ship.module.otc.enums.ErrorCodeConstants.*;
 
 /**
  * 旅行社门店授信提额/授信充值/余额充值 Service 实现类
@@ -53,104 +55,98 @@ public class StoreAuditServiceImpl implements StoreAuditService {
     @Resource
     private StoreCardService storeCardService;
 
-//    @Resource
-//    private OtaDistributorApi otaDistributorApi;
+    @Resource
+    private OtaDistributorApi otaDistributorApi;
 
     @Override
     public Long createStoreAudit(StoreAuditSaveReqVO createReqVO) {
-//        DistributorRespDTO distributor;
-//        long loginUserId = getLoginUserId();
-//        String userName;
-//        if(createReqVO.getDistributorId() !=null){
-//            distributor = otaDistributorApi.getDistributorById(createReqVO.getDistributorId()).getCheckedData();
-//            userName = userApi.getUser(loginUserId).getCheckedData().getNickname();
-//            TenantContextHolder.setTenantId(distributor.getAccountTenantId());
-//        }else{
-//            distributor = otaDistributorApi.getDistributorByAccountTenantId(TenantContextHolder.getTenantId()).getCheckedData();
-//            createReqVO.setDistributorId(distributor.getId());
-//            userName = userApi.getUser(loginUserId).getCheckedData().getNickname();
-//        }
-//        // 插入
-//        StoreAuditDO storeAudit = BeanUtils.toBean(createReqVO, StoreAuditDO.class);
-//        StoreDO store = storeService.getStore(storeAudit.getStoreId());
-//        StoreCardDO storeCardDO = storeCardService.getStoreCardByStoreId(store.getId());
-//        storeAudit.setPlatTenantId(distributor.getTenantId());
-//
-//        if(ObjectUtil.equal(storeAudit.getOperateType(),1)){
-//            Asserts.isTrue(ObjectUtil.notEqual(storeCardDO.getBalanceType(), StoreBalanceTypeEnum.FORBIDDEN.getType()),"当前门店禁止使用预付款");
-//        }else if(ObjectUtil.equal(storeAudit.getOperateType(),3)){
-//            Asserts.isTrue(ObjectUtil.notEqual(storeCardDO.getCreditType(), StoreCreditTypeEnum.FORBIDDEN.getType()),"当前门店禁止使用授信");
-//        }
-//        LocalDateTime now = LocalDateTime.now();
-//        storeAudit.setId(IdWorker.getId(storeAudit));
-//        storeAudit.setStatus(0);
-////        storeAudit.setOperateType(3);
-//        storeAudit.setApplyTime(now);
-//
-//        storeAudit.setApplyUser(loginUserId);
-//        storeAudit.setApplyUserName(userName);
-//        storeAuditMapper.insert(storeAudit);
-//        // 返回
-//        return storeAudit.getId();
-        //TODO 待完善
-        return null;
+
+        long loginUserId = getLoginUserId();
+        DistributorRespDTO distributor = otaDistributorApi.getDistributorByLoginUserId(loginUserId);
+        if(distributor == null) {
+            throw exception(NOT_ASSOCIATED_DISTRIBUTOR);
+        }
+        String userName = userApi.getUser(loginUserId).getNickname();
+        createReqVO.setDistributorId(distributor.getId());
+        // 插入
+        StoreAuditDO storeAudit = BeanUtils.toBean(createReqVO, StoreAuditDO.class);
+        StoreDO store = storeService.getStore(storeAudit.getStoreId());
+        StoreCardDO storeCardDO = storeCardService.getStoreCardByStoreId(store.getId());
+        storeAudit.setPlatTenantId(distributor.getTenantId());
+
+        if(ObjectUtil.equal(storeAudit.getOperateType(),1)){
+            Asserts.isTrue(ObjectUtil.notEqual(storeCardDO.getBalanceType(), CommonStatusEnum.ENABLE.getStatus()),"当前门店禁止使用预付款");
+        }else if(ObjectUtil.equal(storeAudit.getOperateType(),3)){
+            Asserts.isTrue(ObjectUtil.notEqual(storeCardDO.getCreditType(), CommonStatusEnum.ENABLE.getStatus()),"当前门店禁止使用授信");
+        }
+        LocalDateTime now = LocalDateTime.now();
+        storeAudit.setId(IdWorker.getId(storeAudit));
+        storeAudit.setStatus(0);
+//        storeAudit.setOperateType(3);
+        storeAudit.setApplyTime(now);
+
+        storeAudit.setApplyUser(loginUserId);
+        storeAudit.setApplyUserName(userName);
+        storeAuditMapper.insert(storeAudit);
+        // 返回
+        return storeAudit.getId();
     }
 
     @Override
     public Long updateStoreAudit(StoreAuditSaveReqVO updateReqVO) {
-//        long loginUserId = getLoginUserId();
-//        Long tenantId = TenantContextHolder.getTenantId();
-//        String userName = userApi.getUser(loginUserId).getCheckedData().getNickname();
-//        DistributorRespDTO distributor = otaDistributorApi.getDistributorByIdIgnoreTenant(updateReqVO.getDistributorId()).getCheckedData();
-//        TenantContextHolder.setTenantId(distributor.getAccountTenantId());
-//        // 校验存在
-////        validateStoreAuditExists(updateReqVO.getId());
-//        StoreAuditDO storeAudit = storeAuditMapper.selectById(updateReqVO.getId());
-//
-//        StoreAuditDO updateObj = BeanUtils.toBean(updateReqVO, StoreAuditDO.class);
-//        LocalDateTime now = LocalDateTime.now();
-//        updateObj.setAuditUser(loginUserId);
-//        updateObj.setAuditUserName(userName);
-//        updateObj.setAuditTime(now);
-//
-//        if(updateReqVO.getStatus() == 1){
-//            StoreDO store = storeService.getStore(storeAudit.getStoreId());
-//            StoreCardDO storeCardDO = storeCardService.getStoreCardByStoreId(store.getId());
-//            if(ObjectUtil.equal(storeAudit.getOperateType(),1)){
-//                Asserts.isTrue(ObjectUtil.notEqual(storeCardDO.getBalanceType(), StoreBalanceTypeEnum.FORBIDDEN.getType()),"当前门店禁止使用预付款");
-//            }else if(ObjectUtil.equal(storeAudit.getOperateType(),3)){
-//                Asserts.isTrue(ObjectUtil.notEqual(storeCardDO.getCreditType(), StoreCreditTypeEnum.FORBIDDEN.getType()),"当前门店禁止使用授信");
-//            }
-//            //审核通过处理
-//            // 1.余额,2.授信充正,3.授信提额
-//            int operateType = updateReqVO.getOperateType();
-//            int type = operateType == 1 ? 1 : operateType == 2 ? 2 : 99;
-//            TradeModeEnum tradeModeEnum = TradeModeEnum.valueOf(operateType, type, updateReqVO.getOperateMode());
-//            //现在没有授信充值了 2024-12-23,授信还款只能根据账单
-//            Long logId;
-//            if(tradeModeEnum == TradeModeEnum.BALANCE_ADMIN_RECHARGE_1 || tradeModeEnum == TradeModeEnum.BALANCE_ADMIN_RECHARGE_2
-//                    || tradeModeEnum == TradeModeEnum.QUOTA_1 || tradeModeEnum == TradeModeEnum.QUOTA_2){
-//                int rechargeDistributeType = storeAudit.getRechargeDistributeType() ==null?0: storeAudit.getRechargeDistributeType();
-//                if(rechargeDistributeType == 1){
-//
-//                    logId = storeService.updateStoreCardWithPlat(storeCardDO,storeAudit,tradeModeEnum, loginUserId);
-//                }else{
-//                    //只能平台账号才能充值
-//                    Asserts.isTrue(ObjectUtil.equals(tenantId,storeAudit.getPlatTenantId()),"只能平台用户才能进行充值");
-//                    //直接门店充值
-//                    logId = storeService.updateStoreCard(storeAudit.getStoreId(), tradeModeEnum, storeAudit.getAmount(), loginUserId, storeAudit.getId(), null, null);
-//                }
-//            }else {
-//                logId = storeService.updateStoreCard(storeAudit.getStoreId(), tradeModeEnum, storeAudit.getAmount(), loginUserId, null, null, null);
-//            }
-//            updateObj.setRechargeLogId(logId);
-//        }
-//
-//        // 更新
-//        storeAuditMapper.updateById(updateObj);
-//        return updateObj.getRechargeLogId();
-        //TODO 待完善
-        return null;
+        long loginUserId = getLoginUserId();
+        Long tenantId = TenantContextHolder.getTenantId();
+        String userName = userApi.getUser(loginUserId).getNickname();
+        // 校验存在
+//        validateStoreAuditExists(updateReqVO.getId());
+        StoreAuditDO storeAudit = storeAuditMapper.selectById(updateReqVO.getId());
+
+        StoreAuditDO updateObj = BeanUtils.toBean(updateReqVO, StoreAuditDO.class);
+        LocalDateTime now = LocalDateTime.now();
+        updateObj.setAuditUser(loginUserId);
+        updateObj.setAuditUserName(userName);
+        updateObj.setAuditTime(now);
+
+        if(updateReqVO.getStatus() == 1){
+            StoreDO store = storeService.getStore(storeAudit.getStoreId());
+            StoreCardDO storeCardDO = storeCardService.getStoreCardByStoreId(store.getId());
+            if(ObjectUtil.equal(storeAudit.getOperateType(),1)){
+                if(ObjectUtil.notEqual(storeCardDO.getBalanceType(), UseStatusEnum.ENABLE.getStatus())) {
+                    throw exception(STORE_DISABLED_BALANCE);
+                }
+            }else if(ObjectUtil.equal(storeAudit.getOperateType(),3)){
+                if(ObjectUtil.notEqual(storeCardDO.getCreditType(), UseStatusEnum.ENABLE.getStatus())) {
+                    throw exception(STORE_DISABLED_CREDIT);
+                }
+            }
+            //审核通过处理
+            // 1.余额,2.授信充正,3.授信提额
+            int operateType = updateReqVO.getOperateType();
+            int type = operateType == 1 ? 1 : operateType == 2 ? 2 : 99;
+            TradeModeEnum tradeModeEnum = TradeModeEnum.valueOf(operateType, type, updateReqVO.getOperateMode());
+            //现在没有授信充值了 2024-12-23,授信还款只能根据账单
+            Long logId;
+            if(tradeModeEnum == TradeModeEnum.BALANCE_ADMIN_RECHARGE_1 || tradeModeEnum == TradeModeEnum.BALANCE_ADMIN_RECHARGE_2
+                    || tradeModeEnum == TradeModeEnum.QUOTA_1 || tradeModeEnum == TradeModeEnum.QUOTA_2){
+                int rechargeDistributeType = storeAudit.getRechargeDistributeType() ==null?0: storeAudit.getRechargeDistributeType();
+                if(rechargeDistributeType == 1){
+
+                    logId = storeService.updateStoreCardWithPlat(storeCardDO,storeAudit,tradeModeEnum, loginUserId);
+                }else{
+                    //只能平台账号才能充值
+                    Asserts.isTrue(ObjectUtil.equals(tenantId,storeAudit.getPlatTenantId()),"只能平台用户才能进行充值");
+                    //直接门店充值
+                    logId = storeService.updateStoreCard(storeAudit.getStoreId(), tradeModeEnum, storeAudit.getAmount(), loginUserId, storeAudit.getId(), null, null);
+                }
+            }else {
+                logId = storeService.updateStoreCard(storeAudit.getStoreId(), tradeModeEnum, storeAudit.getAmount(), loginUserId, null, null, null);
+            }
+            updateObj.setRechargeLogId(logId);
+        }
+
+        // 更新
+        storeAuditMapper.updateById(updateObj);
+        return updateObj.getRechargeLogId();
     }
 
     @Override

+ 3 - 0
ship-module-otc/ship-module-otc-biz/src/main/resources/mapper/storetradelog/StoreTradeLogMapper.xml

@@ -30,6 +30,9 @@
         <if test="param.storeId != null and param.storeId != ''">
             AND t1.store_id = #{param.storeId}
         </if>
+        <if test="param.distributorId != null and param.distributorId != ''">
+            AND t1.distributor_id = #{param.distributorId}
+        </if>
         <if test="param.tradeName != null and param.tradeName != ''">
         AND t1.trade_name = #{param.tradeName}
     </if>