Просмотр исходного кода

1.骑手银行卡新增、修改接口新增mchId字段;
2.修改确认提现接口逻辑;

codingliang 1 год назад
Родитель
Сommit
e8db96cb1f

+ 4 - 0
db/update_241107.sql

@@ -15,3 +15,7 @@ ALTER TABLE goods_shop
 -- 添加字段:
 ALTER TABLE user_money_details
     ADD COLUMN `remark` VARCHAR(32) COMMENT '备注信息;' AFTER children_id;
+
+
+ALTER TABLE rider_bank_card_info
+    ADD COLUMN `mch_id` VARCHAR(32) COMMENT '商户id;' AFTER del_flag;

+ 3 - 0
src/main/java/com/sqx/modules/datacentre/entity/RiderBankCardInfo.java

@@ -59,4 +59,7 @@ public class RiderBankCardInfo {
     @ApiModelProperty(name = "删除标识", notes = "1 是 0否")
     @Pattern(regexp = "(0|1)", message = "删除标识只能为0或1")
     private String delFlag;
+
+    @ApiModelProperty(name = "商户id")
+    private String mchId;
 }

+ 2 - 0
src/main/java/com/sqx/modules/datacentre/service/RiderBankCardInfoService.java

@@ -8,4 +8,6 @@ public interface RiderBankCardInfoService extends IService<RiderBankCardInfo> {
     Result saveCardInfo(RiderBankCardInfo riderBankCardInfo);
 
     Result getUserIdCardInfo(Long userId);
+
+    RiderBankCardInfo getByUserId(Long userId);
 }

+ 17 - 0
src/main/java/com/sqx/modules/datacentre/service/impl/RiderBankCardInfoServiceImpl.java

@@ -1,9 +1,12 @@
 package com.sqx.modules.datacentre.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.sqx.common.exception.SqxException;
 import com.sqx.common.utils.Result;
 import com.sqx.modules.datacentre.dao.RiderBankCardInfoDao;
 import com.sqx.modules.datacentre.entity.RiderBankCardInfo;
@@ -36,4 +39,18 @@ public class RiderBankCardInfoServiceImpl extends ServiceImpl<RiderBankCardInfoD
         RiderBankCardInfo riderBankCardInfo = this.getOne(wrapper);
         return Result.success().put("data",riderBankCardInfo);
     }
+
+    @Override
+    public RiderBankCardInfo getByUserId(Long userId) {
+        LambdaQueryWrapper<RiderBankCardInfo> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(RiderBankCardInfo::getUserId, userId);
+
+        RiderBankCardInfo bankCardInfo = this.getOne(queryWrapper);
+
+        if (ObjectUtil.isNull(bankCardInfo)) {
+            throw new SqxException("银行卡信息不存在!");
+        }
+
+        return bankCardInfo;
+    }
 }

+ 13 - 11
src/main/java/com/sqx/modules/pay/service/impl/CashOutServiceImpl.java

@@ -7,9 +7,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.sqx.common.constant.MyConstant;
 import com.sqx.common.constant.RedisKey;
 import com.sqx.common.exception.SqxException;
+import com.sqx.common.utils.Constant;
 import com.sqx.common.utils.PageUtils;
 import com.sqx.common.utils.Result;
 import com.sqx.modules.app.dao.UserCashOutDao;
@@ -614,25 +614,26 @@ public class CashOutServiceImpl extends ServiceImpl<CashOutDao, CashOut> impleme
         lock.lock();
         try {
             CashOut cashOut = getById(cashId);
+
             // 前置准备
             String mchId = prepareBeforeConfirmCashOut(cashOut);
 
-            // 1 支付宝  2 小程序  3公众号  4 微信app 5银行卡 6rht分账
-            Integer classify = cashOut.getClassify();
-            if (classify == 5) {
-                // 银行卡为手动转账,不需要做任何事情
-            } else if (classify == 6) {
+            // 判断是否启用新支付
+            String value = commonInfoService.findOne(433).getValue();
+            if (StrUtil.equals(value, Constant.YES)){
                 if (StrUtil.isBlank(mchId)) {
                     throw new SqxException("当前用户/店铺未设置商户号");
                 }
+
+                // 自动分账
                 newPayService.wechatSplitBill(cashOut.getOrderNumber(), mchId, new BigDecimal(cashOut.getMoney()));
             } else {
-                throw new SqxException("不支持的提现方式");
+                // 未启用新支付,则表示银行卡手动转账,这里不需要做任何事情
             }
 
+            // 修改提现申请状态
             cashOut.setState(1);
             cashOut.setOutAt(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
-
             updateById(cashOut);
         } finally {
             lock.unlock();
@@ -657,16 +658,17 @@ public class CashOutServiceImpl extends ServiceImpl<CashOutDao, CashOut> impleme
         // 1用户提现  2商户提现  3骑手提现
         Integer cashOutType = cashOut.getType();
 
-        String mchId = null;
+        String mchId;
         if (cashOutType == 2) {
-            // TODO 骑手商户号
+            RiderBankCardInfo riderBankCardInfo = riderBankCardInfoService.getByUserId(userEntity.getUserId());
+            mchId = riderBankCardInfo.getMchId();
         } else if (cashOutType == 3) {
             // 店铺商户号
             Long adminUserId = userEntity.getAdminUserId();
             GoodsShop goodsShop = goodsShopService.getByAdminUserId(adminUserId);
             mchId = goodsShop.getMchId();
         } else {
-            throw new SqxException("暂不支持用户提现");
+            throw new SqxException("暂不支持用户类型提现");
         }
 
         return mchId;