From 7fd3525256b0e4a0dbb6f08405368990619adf36 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 20 十月 2023 14:08:26 +0800
Subject: [PATCH] 对接第三方分账接口

---
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java |  141 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 141 insertions(+), 0 deletions(-)

diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
index 4e7c994..d1ba142 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
@@ -1,17 +1,21 @@
 package com.ruoyi.shop.service.impl.shop;
 
+import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson2.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.github.binarywang.wxpay.bean.ecommerce.ApplymentsResult;
 import com.github.binarywang.wxpay.bean.ecommerce.ApplymentsStatusResult;
 import com.github.binarywang.wxpay.bean.ecommerce.ProfitSharingReceiverRequest;
 import com.github.binarywang.wxpay.bean.ecommerce.ProfitSharingReceiverResult;
 import com.github.binarywang.wxpay.exception.WxPayException;
 import com.ruoyi.common.core.constant.CacheConstants;
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.core.utils.StringUtils;
@@ -30,6 +34,7 @@
 import com.ruoyi.shop.service.task.MemberTaskService;
 import com.ruoyi.shop.service.task.ShopFileService;
 import com.ruoyi.shop.service.task.ShopTaskService;
+import com.ruoyi.shop.util.HuiFuTianXiaUtil;
 import com.ruoyi.shop.util.WechatPayUtils;
 import com.ruoyi.system.api.constant.AppErrorConstant;
 import com.ruoyi.system.api.constant.SecurityConstant;
@@ -41,12 +46,16 @@
 import com.ruoyi.system.api.domain.vo.*;
 import com.ruoyi.system.api.service.*;
 import lombok.extern.log4j.Log4j2;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.nio.charset.StandardCharsets;
+import java.rmi.ServerException;
 import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.function.Function;
 import java.util.stream.Collectors;
@@ -100,6 +109,9 @@
     private ShopAuthenticationService shopAuthenticationService;
 
     @Resource
+    private ShopAuthenticationHftxService shopAuthenticationHftxService;
+
+    @Resource
     private ShopProportionService shopProportionService;
 
     @Resource
@@ -134,6 +146,9 @@
 
     @Resource
     private RemoteUserService remoteUserService;
+
+    @Value("${callback_path}")
+    private String callback_path;
 
 
 
@@ -1015,6 +1030,17 @@
     }
 
     /**
+     * 商户进件列表数据(汇付天下)
+     * @param page
+     * @param mgtShopAuthPageDto
+     * @return
+     */
+    @Override
+    public List<MgtShopHFTXAuthPageVo> pageMgtShopHFTXAuth(Page page, MgtShopHFTXAuthPageDto mgtShopAuthPageDto) {
+        return shopMapper.pageMgtShopHFTXAuth(page, mgtShopAuthPageDto);
+    }
+
+    /**
      * @description boardShopTotal
      * @param
      * @return MgtBulletinBoardVo
@@ -1070,7 +1096,70 @@
      */
     @Override
     public void mgtShopHFTXAuth(MgtShopHFTXAuthDto mgtShopHFTXAuthDto) {
+        ShopAuthenticationHftx shopAuthenticationHftx = shopAuthenticationHftxService.getOne(new QueryWrapper<ShopAuthenticationHftx>().eq("shop_id", mgtShopHFTXAuthDto.getShopId()));
+        if(null != shopAuthenticationHftx && "Y".equals(shopAuthenticationHftx.getAuditStatus())){
+            throw new ServiceException("不能重复进件");
+        }
+        if(null == shopAuthenticationHftx){
+            shopAuthenticationHftx = new ShopAuthenticationHftx();
+            shopAuthenticationHftx.setIsDelete(0);
+            shopAuthenticationHftx.setInsertTime(new Date());
+        }
+        BeanUtils.copyProperties(mgtShopHFTXAuthDto, shopAuthenticationHftx);
+        shopAuthenticationHftx.setReqSeqId(IdUtils.simpleUUID());
+        shopAuthenticationHftx.setAuditStatus("");
+        shopAuthenticationHftx.setAuditDesc("");
+        /**
+         * 开始调起进件接口
+         */
+        R<MerchantBasicdataVo> r = null;
+        //用户
+        if(mgtShopHFTXAuthDto.getType() == 1){
+            r = HuiFuTianXiaUtil.merchantBasicdataIndv(mgtShopHFTXAuthDto, shopAuthenticationHftx, callback_path + "/shop/mgt/shop/merchantBasicdataNotify");
+        }
+        //企业进件
+        if(mgtShopHFTXAuthDto.getType() == 2){
+            r = HuiFuTianXiaUtil.merchantBasicdataEnt(mgtShopHFTXAuthDto, shopAuthenticationHftx, callback_path + "/shop/mgt/shop/merchantBasicdataNotify");
+        }
+        if(null == r){
+            throw new ServiceException("参数异常");
+        }
+        if(r.getCode() == 200){
+            MerchantBasicdataVo data = r.getData();
+            shopAuthenticationHftx.setAuditStatus("U");
+            shopAuthenticationHftx.setHuifuId(data.getHuifuId());
+            shopAuthenticationHftx.setTokenNo(data.getTokenNo());
+            shopAuthenticationHftx.setApplyNo(data.getApplyNo());
+            shopAuthenticationHftxService.saveOrUpdate(shopAuthenticationHftx);
+        }else{
+            throw new ServiceException(r.getMsg());
+        }
 
+    }
+
+
+    /**
+     * 商户进件异步通知
+     * @param jsonObject
+     * @return
+     */
+    @Override
+    public R<String> merchantBasicdataNotify(JSONObject jsonObject) {
+        R<MerchantBasicdataVo> merchantBasicdataVoR = HuiFuTianXiaUtil.merchantBasicDataNotify(jsonObject);
+        if(merchantBasicdataVoR.getCode() != 200){
+            return R.fail(merchantBasicdataVoR.getMsg());
+        }
+        MerchantBasicdataVo data = merchantBasicdataVoR.getData();
+        ShopAuthenticationHftx shopAuthenticationHftx = shopAuthenticationHftxService.getOne(new QueryWrapper<ShopAuthenticationHftx>().eq("req_seq_id", data.getReqSeqId()));
+        if(!org.springframework.util.StringUtils.hasLength(shopAuthenticationHftx.getAuditStatus())){
+            shopAuthenticationHftx.setAuditStatus(data.getAuditStatus());
+            shopAuthenticationHftx.setAuditDesc(data.getAuditDesc());
+            shopAuthenticationHftx.setHuifuId(data.getHuifuId());
+            shopAuthenticationHftx.setTokenNo(data.getTokenNo());
+            shopAuthenticationHftx.setApplyNo(data.getApplyNo());
+            shopAuthenticationHftxService.updateById(shopAuthenticationHftx);
+        }
+        return R.ok(data.getReqSeqId());
     }
 
     /**
@@ -1209,6 +1298,23 @@
             }
         }
         return shopAuthGetVo;
+    }
+
+
+    /**
+     * 获取商户审核资料(汇付天下)
+     * @param shopId
+     * @return
+     */
+    @Override
+    public MgtShopHFTXAuthGetVo getMgtShopHFTXAuthInfo(Long shopId) {
+        ShopAuthenticationHftx shopAuthenticationHftx = shopAuthenticationHftxService.getOne(new QueryWrapper<ShopAuthenticationHftx>().eq("shop_id", shopId));
+        MgtShopHFTXAuthGetVo mgtShopHFTXAuthGetVo = new MgtShopHFTXAuthGetVo();
+        if(null == shopAuthenticationHftx){
+            return mgtShopHFTXAuthGetVo;
+        }
+        BeanUtils.copyProperties(shopAuthenticationHftx, mgtShopHFTXAuthGetVo);
+        return mgtShopHFTXAuthGetVo;
     }
 
     /**
@@ -1650,4 +1756,39 @@
         return shopMapper.getTaskMsgList();
     }
 
+
+    /**
+     * 设置商户分账比例
+     * @param mgtShopShareRatioSetDto
+     * @return
+     */
+    @Override
+    public R setMgtShopShareRatio(MgtShopShareRatioSetDto mgtShopShareRatioSetDto) {
+        ShopAuthenticationHftx shopAuthenticationHftx = shopAuthenticationHftxService.getOne(new QueryWrapper<ShopAuthenticationHftx>()
+                .eq("shop_id", mgtShopShareRatioSetDto.getShopId()).eq("is_delete", 0));
+        shopAuthenticationHftx.setShareRatio(mgtShopShareRatioSetDto.getShareRatio());
+        shopAuthenticationHftxService.updateById(shopAuthenticationHftx);
+        return R.ok();
+    }
+
+
+    /**
+     * 查询结算记录
+     * @param merchantBasicdataSettlementDto
+     * @return
+     */
+    @Override
+    public R<List<MerchantBasicdataSettlementVo>> getMerchantBasicDataSettlement(MerchantBasicdataSettlementDto merchantBasicdataSettlementDto) {
+        ShopAuthenticationHftx shopAuthenticationHftx = shopAuthenticationHftxService.getOne(new QueryWrapper<ShopAuthenticationHftx>()
+                .eq("shop_id", merchantBasicdataSettlementDto.getShopId()).eq("is_delete", 0));
+        if(null == shopAuthenticationHftx){
+            return R.ok(new ArrayList<>());
+        }
+        String huifuId = shopAuthenticationHftx.getHuifuId();
+        String startTime = merchantBasicdataSettlementDto.getStartTime();
+        String endTime = merchantBasicdataSettlementDto.getEndTime();
+        Integer pageNum = merchantBasicdataSettlementDto.getPageNum();
+        Integer pageSize = merchantBasicdataSettlementDto.getPageSize();
+        return HuiFuTianXiaUtil.getMerchantBasicdataSettlement(IdUtils.randomUUID(), huifuId, startTime, endTime, pageNum.toString(), pageSize.toString());
+    }
 }

--
Gitblit v1.7.1