瀏覽代碼

付款管理-增加外部通道,只针对付款和继续付款

ZhangWenQiang 4 年之前
父節點
當前提交
8c09a8155d

+ 73 - 0
happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwpayment/service/impl/HlwPaymentServiceImpl.java

@@ -442,6 +442,14 @@ public class HlwPaymentServiceImpl extends ServiceImpl<HlwPaymentMapper, HlwPaym
         //服务商信息
         //服务商信息
         HlwSubcontractor hlwSubcontractor = hlwSubcontractorService.getById(hlwPayment.getSubcontractorId());
         HlwSubcontractor hlwSubcontractor = hlwSubcontractorService.getById(hlwPayment.getSubcontractorId());
         /**
         /**
+         * 付款通道(0:外部通道 1:内部通道)
+         */
+        if (hlwPaymentEntity.getPaymentLane() == 0) {
+            //外部通道
+            result = outPay(hlwPaymentDetailList, hlwCompany, hlwPayment, hlwPaymentEntity);
+            return result;
+        }
+        /**
          * 银行通道(1:招商银行 2:宁波银行)
          * 银行通道(1:招商银行 2:宁波银行)
          */
          */
         if (hlwSubcontractor.getBankType().equals(PayNbcbConst.bankType)) {
         if (hlwSubcontractor.getBankType().equals(PayNbcbConst.bankType)) {
@@ -657,6 +665,14 @@ public class HlwPaymentServiceImpl extends ServiceImpl<HlwPaymentMapper, HlwPaym
         //服务商信息
         //服务商信息
         HlwSubcontractor hlwSubcontractor = hlwSubcontractorService.getById(hlwPayment.getSubcontractorId());
         HlwSubcontractor hlwSubcontractor = hlwSubcontractorService.getById(hlwPayment.getSubcontractorId());
         /**
         /**
+         * 付款通道(0:外部通道 1:内部通道)
+         */
+        if (hlwPaymentEntity.getPaymentLane() == 0) {
+            //外部通道
+            result = outPay(hlwPaymentDetailList, hlwCompany, hlwPayment, hlwPaymentEntity);
+            return result;
+        }
+        /**
          * 银行通道(1:招商银行 2:宁波银行)
          * 银行通道(1:招商银行 2:宁波银行)
          */
          */
         if (hlwSubcontractor.getBankType().equals(PayNbcbConst.bankType)) {
         if (hlwSubcontractor.getBankType().equals(PayNbcbConst.bankType)) {
@@ -874,6 +890,63 @@ public class HlwPaymentServiceImpl extends ServiceImpl<HlwPaymentMapper, HlwPaym
     }
     }
 
 
     /**
     /**
+     * 外部渠道支付通道
+     *
+     * @param hlwPaymentDetailList
+     * @param hlwCompany
+     * @param hlwPayment
+     * @param hlwPaymentEntity
+     * @return
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public Result<HlwPayment> outPay(List<HlwPaymentDetail> hlwPaymentDetailList, HlwCompany hlwCompany,
+                                     HlwPayment hlwPayment, HlwPayment hlwPaymentEntity) {
+        Result<HlwPayment> result = new Result<>();
+        //获取当前登录用户
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        for (int i = 0; i < hlwPaymentDetailList.size(); i++) {
+            HlwPaymentDetail hlwPaymentDetail = hlwPaymentDetailList.get(i);
+            //状态改为已支付
+            if (hlwPaymentDetail.getStatus() == 1) {
+                hlwPaymentDetail.setStatus(HlwConstant.PAYMENT_RESULT_PAY_SUCCESS);
+            }
+            hlwPaymentDetail.setPaymentTime(new Date());
+            hlwPaymentDetail.setPaymentBy(sysUser.getUsername());
+            hlwPaymentDetail.setUpdateTime(new Date());
+            hlwPaymentDetailService.updateById(hlwPaymentDetail);
+            //用户信息
+            HlwUser hlwUser = hlwUserService.getByIdcardNumberAndApplicationId(hlwPaymentDetail.getIdcardNumber(), hlwPaymentEntity.getApplicationId());
+            if (hlwUser != null) {
+                hlwUser.setLastPaymentCompany(hlwCompany.getCompanyName());
+                hlwUserService.updateById(hlwUser);
+            }
+            //订单信息
+            HlwOrder hlwOrder = hlwOrderService.getById(hlwPaymentDetail.getOrderId());
+            if (hlwOrder != null) {
+                hlwOrder.setLastPaymentCompany(hlwCompany.getCompanyName());
+                hlwOrderService.updateById(hlwOrder);
+            }
+        }
+        //更新付款单信息
+        //支付中
+        hlwPayment.setPaymentTime(new Date());
+        hlwPayment.setStatus(HlwConstant.PAYMENT_STATUS_PAY_OK);
+        updateById(hlwPayment);
+        /**
+         * 是否通过平台
+         */
+        if (hlwPayment.getIsThroughPlatform() == HlwConstant.PAYMENT_THROUGH_PLATFORM_NO) {
+            //更新企业账户信息
+            updateAccount(hlwPayment);
+        } else {
+            //更新A-B-C账户信息
+            updateAccountA_B(hlwPayment);
+        }
+        result.success("付款成功!");
+        return result;
+    }
+
+    /**
      * 更新企业账户信息
      * 更新企业账户信息
      *
      *
      * @param hlwPayment
      * @param hlwPayment