Browse Source

1.汇付交易确认 2.汇付确认退款 3.修改医生端信息采集数据

wjj 2 days ago
parent
commit
d8f12b96b4
27 changed files with 766 additions and 212 deletions
  1. 70 23
      fs-admin/src/main/java/com/fs/hisStore/controller/FsStorePaymentScrmController.java
  2. 3 0
      fs-service/src/main/java/com/fs/course/vo/FsUserInfoCollectionUVO.java
  3. 8 0
      fs-service/src/main/java/com/fs/his/domain/FsStoreOrder.java
  4. 8 0
      fs-service/src/main/java/com/fs/his/domain/FsStorePayment.java
  5. 2 1
      fs-service/src/main/java/com/fs/his/service/IFsStoreOrderService.java
  6. 27 1
      fs-service/src/main/java/com/fs/his/service/impl/FsPackageOrderServiceImpl.java
  7. 42 17
      fs-service/src/main/java/com/fs/his/service/impl/FsStoreAfterSalesServiceImpl.java
  8. 54 1
      fs-service/src/main/java/com/fs/his/service/impl/FsStoreOrderServiceImpl.java
  9. 43 22
      fs-service/src/main/java/com/fs/his/service/impl/FsStorePaymentServiceImpl.java
  10. 9 0
      fs-service/src/main/java/com/fs/hisStore/domain/FsStoreOrderScrm.java
  11. 1 0
      fs-service/src/main/java/com/fs/hisStore/domain/FsStorePaymentScrm.java
  12. 101 38
      fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreAfterSalesScrmServiceImpl.java
  13. 80 24
      fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreOrderScrmServiceImpl.java
  14. 66 18
      fs-service/src/main/java/com/fs/hisStore/service/impl/FsUserInformationCollectionServiceImpl.java
  15. 2 0
      fs-service/src/main/java/com/fs/hisStore/vo/FsUserInformationCollectionListDVO.java
  16. 19 0
      fs-service/src/main/java/com/fs/huifuPay/domain/HuifuConfirmrefundResult.java
  17. 5 0
      fs-service/src/main/java/com/fs/huifuPay/domain/HuifuOrderConfirm.java
  18. 12 0
      fs-service/src/main/java/com/fs/huifuPay/domain/HuifuOrderConfirmResult.java
  19. 1 0
      fs-service/src/main/java/com/fs/huifuPay/sdk/opps/core/request/V2TradePaymentDelaytransConfirmrefundRequest.java
  20. 2 0
      fs-service/src/main/java/com/fs/huifuPay/service/HuiFuService.java
  21. 95 22
      fs-service/src/main/java/com/fs/huifuPay/service/impl/HuiFuServiceImpl.java
  22. 4 0
      fs-service/src/main/java/com/fs/sop/mapper/QwSopMapper.java
  23. 16 0
      fs-service/src/main/resources/mapper/his/FsStoreOrderMapper.xml
  24. 5 1
      fs-service/src/main/resources/mapper/his/FsStorePaymentMapper.xml
  25. 28 1
      fs-service/src/main/resources/mapper/hisStore/FsStoreOrderScrmMapper.xml
  26. 21 1
      fs-service/src/main/resources/mapper/hisStore/FsStorePaymentScrmMapper.xml
  27. 42 42
      fs-user-app/src/main/java/com/fs/app/controller/HuifuPayController.java

+ 70 - 23
fs-admin/src/main/java/com/fs/hisStore/controller/FsStorePaymentScrmController.java

@@ -11,17 +11,23 @@ import com.fs.common.core.domain.AjaxResult;
 import com.fs.common.core.domain.R;
 import com.fs.common.core.page.TableDataInfo;
 import com.fs.common.enums.BusinessType;
+import com.fs.common.exception.CustomException;
+import com.fs.common.utils.DateUtils;
 import com.fs.common.utils.ParseUtils;
 import com.fs.common.utils.StringUtils;
 import com.fs.common.utils.poi.ExcelUtil;
 import com.fs.common.utils.spring.SpringUtils;
 import com.fs.company.service.ICompanyService;
 import com.fs.config.cloud.CloudHostProper;
+import com.fs.core.utils.OrderCodeUtils;
 import com.fs.his.domain.FsHfpayConfig;
+import com.fs.his.domain.FsStorePayment;
 import com.fs.his.mapper.FsHfpayConfigMapper;
 import com.fs.hisStore.domain.FsPayConfigScrm;
 import com.fs.huifuPay.domain.HuiFuQueryOrderResult;
 import com.fs.huifuPay.domain.HuiFuRefundResult;
+import com.fs.huifuPay.domain.HuifuConfirmrefundResult;
+import com.fs.huifuPay.sdk.opps.core.request.V2TradePaymentDelaytransConfirmrefundRequest;
 import com.fs.huifuPay.sdk.opps.core.request.V2TradePaymentScanpayQueryRequest;
 import com.fs.huifuPay.sdk.opps.core.request.V2TradePaymentScanpayRefundRequest;
 import com.fs.huifuPay.service.HuiFuService;
@@ -209,31 +215,72 @@ public class FsStorePaymentScrmController extends BaseController
                         huifuId=fsPayConfig.getHuifuId();
                     }
                 }
-                V2TradePaymentScanpayRefundRequest request = new V2TradePaymentScanpayRefundRequest();
-                request.setHuifuId(huifuId);
-                request.setOrdAmt(payment.getPayMoney().toString());
-                request.setOrgReqDate(new SimpleDateFormat("yyyyMMdd").format(payment.getCreateTime()));
-                request.setReqSeqId("refund-"+payment.getPayCode());
-                Map<String, Object> extendInfoMap = new HashMap<>();
-                extendInfoMap.put("org_party_order_id", payment.getBankSerialNo());
-                request.setExtendInfo(extendInfoMap);
-                HuiFuRefundResult refund = huiFuService.refund(request);
-                logger.info("退款:"+refund);
-                if((refund.getResp_code().equals("00000000")||refund.getResp_code().equals("00000100"))&&(refund.getTrans_stat().equals("S")||refund.getTrans_stat().equals("P"))){
-                    payment.setRefundMoney(fsStorePayment.getRefundMoney());
-                    payment.setStatus(-1);
-                    payment.setRefundTime(new Date());
-                    fsStorePaymentService.updateFsStorePayment(payment);
-                    //收款 减去所有
-                    if(payment.getCompanyId()!=null&&payment.getCompanyId()>0){
-                        companyService.subCompanyPaymentMoney(payment);
+                if (payment.getIsShare() == 1 && payment.getShareStatus() == 1) {
+                    V2TradePaymentDelaytransConfirmrefundRequest confirmRefundRequest = new V2TradePaymentDelaytransConfirmrefundRequest();
+                    //Map<String, Object> extendInfoMap = new HashMap<>();
+                    String orderCode = OrderCodeUtils.getOrderSn();
+                    if (StringUtils.isEmpty(orderCode)) {
+                        throw new CustomException("订单生成失败,请重试");
+                    }
+                    confirmRefundRequest.setReqSeqId(orderCode);
+                    confirmRefundRequest.setOrgReqSeqId(payment.getShareCode());
+                    confirmRefundRequest.setOrgReqDate(payment.getShareDate());
+                    //多汇付使用appID
+                    HuifuConfirmrefundResult result = huiFuService.confirmRefund(confirmRefundRequest, payment.getAppId());
+                    if (result.getResp_code().equals("00000000") && (result.getTrans_stat().equals("S") || result.getTrans_stat().equals("P"))) {
+                        V2TradePaymentScanpayRefundRequest request = new V2TradePaymentScanpayRefundRequest();
+                        request.setHuifuId(huifuId);
+                        request.setOrdAmt(payment.getPayMoney().toString());
+                        request.setOrgReqDate(new SimpleDateFormat("yyyyMMdd").format(payment.getCreateTime()));
+                        request.setReqSeqId("refund-"+payment.getPayCode());
+                        Map<String, Object> extendInfoMap = new HashMap<>();
+                        extendInfoMap.put("org_party_order_id", payment.getBankSerialNo());
+                        request.setExtendInfo(extendInfoMap);
+                        HuiFuRefundResult refund = huiFuService.refund(request);
+                        logger.info("退款:"+refund);
+                        if((refund.getResp_code().equals("00000000")||refund.getResp_code().equals("00000100"))&&(refund.getTrans_stat().equals("S")||refund.getTrans_stat().equals("P"))){
+                            payment.setRefundMoney(fsStorePayment.getRefundMoney());
+                            payment.setStatus(-1);
+                            payment.setRefundTime(new Date());
+                            fsStorePaymentService.updateFsStorePayment(payment);
+                            //收款 减去所有
+                            if(payment.getCompanyId()!=null&&payment.getCompanyId()>0){
+                                companyService.subCompanyPaymentMoney(payment);
+                            }
+                            return R.ok();
+                        }else {
+                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                            return R.error(refund.getResp_desc());
+                        }
+                    } else {
+                        throw new CustomException("交易确认退款请求失败" + result.getResp_desc());
+                    }
+                } else {
+                    V2TradePaymentScanpayRefundRequest request = new V2TradePaymentScanpayRefundRequest();
+                    request.setHuifuId(huifuId);
+                    request.setOrdAmt(payment.getPayMoney().toString());
+                    request.setOrgReqDate(new SimpleDateFormat("yyyyMMdd").format(payment.getCreateTime()));
+                    request.setReqSeqId("refund-"+payment.getPayCode());
+                    Map<String, Object> extendInfoMap = new HashMap<>();
+                    extendInfoMap.put("org_party_order_id", payment.getBankSerialNo());
+                    request.setExtendInfo(extendInfoMap);
+                    HuiFuRefundResult refund = huiFuService.refund(request);
+                    logger.info("退款:"+refund);
+                    if((refund.getResp_code().equals("00000000")||refund.getResp_code().equals("00000100"))&&(refund.getTrans_stat().equals("S")||refund.getTrans_stat().equals("P"))){
+                        payment.setRefundMoney(fsStorePayment.getRefundMoney());
+                        payment.setStatus(-1);
+                        payment.setRefundTime(new Date());
+                        fsStorePaymentService.updateFsStorePayment(payment);
+                        //收款 减去所有
+                        if(payment.getCompanyId()!=null&&payment.getCompanyId()>0){
+                            companyService.subCompanyPaymentMoney(payment);
+                        }
+                        return R.ok();
+                    }else {
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return R.error(refund.getResp_desc());
                     }
-                    return R.ok();
-                }else {
-                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                    return R.error(refund.getResp_desc());
                 }
-
             }else if (payment.getPayMode()!=null&&payment.getPayMode().equals("wx")){
 
             }

+ 3 - 0
fs-service/src/main/java/com/fs/course/vo/FsUserInfoCollectionUVO.java

@@ -62,4 +62,7 @@ public class FsUserInfoCollectionUVO {
     private String prescribeImgUrl;
 
     private FsDoctor doctor;
+
+    //处方审核状态 0待审核 1通过 2拒绝
+    private Integer prescribeStatus;
 }

+ 8 - 0
fs-service/src/main/java/com/fs/his/domain/FsStoreOrder.java

@@ -271,4 +271,12 @@ public class FsStoreOrder extends BaseEntity
 
     //用户信息采集是否确认 1-确认
     private Integer isConfirm;
+    //分账商户id
+    private String divHuifuId;
+    //中医院商户id
+    private String zyyHuifuId;
+    //分账金额
+    private BigDecimal divAmount;
+    //中医院分账金额
+    private BigDecimal zyyDivAmount;
 }

+ 8 - 0
fs-service/src/main/java/com/fs/his/domain/FsStorePayment.java

@@ -96,11 +96,19 @@ public class FsStorePayment extends BaseEntity
     private BigDecimal shareMoney;
     private Integer isShare;
 
+    private String shareDate;
+
 
     //小程序appId
     private String appId;
 
+    public String getShareDate() {
+        return shareDate;
+    }
 
+    public void setShareDate(String shareDate) {
+        this.shareDate = shareDate;
+    }
     public Integer getIsShare() {
         return isShare;
     }

+ 2 - 1
fs-service/src/main/java/com/fs/his/service/IFsStoreOrderService.java

@@ -20,6 +20,7 @@ import com.fs.his.dto.*;
 import com.fs.his.param.*;
 import com.fs.his.vo.*;
 import com.fs.hisStore.domain.FsStoreOrderScrm;
+import com.fs.huifuPay.domain.HuifuOrderConfirmResult;
 import org.springframework.transaction.annotation.Transactional;
 
 /**
@@ -106,7 +107,7 @@ public interface IFsStoreOrderService
 
     R createOrder(Long prescribeId);
 
-    R createOrderByPackageOrder(FsPackageOrder packageOrder);
+    R createOrderByPackageOrder(FsPackageOrder packageOrder, HuifuOrderConfirmResult result);
 
     R payConfirm(String orderCode,String payCode, String tradeNo,String payType,Integer type,String bankTransactionId,String bankSerialNo);
 

+ 27 - 1
fs-service/src/main/java/com/fs/his/service/impl/FsPackageOrderServiceImpl.java

@@ -54,6 +54,9 @@ import com.fs.hisStore.mapper.FsUserInformationCollectionMapper;
 import com.fs.hisStore.service.IFsUserInformationCollectionService;
 import com.fs.huifuPay.domain.HuiFuCreateOrder;
 import com.fs.huifuPay.domain.HuifuCreateOrderResult;
+import com.fs.huifuPay.domain.HuifuOrderConfirm;
+import com.fs.huifuPay.domain.HuifuOrderConfirmResult;
+import com.fs.huifuPay.sdk.opps.core.utils.DateTools;
 import com.fs.huifuPay.service.HuiFuService;
 import com.fs.system.domain.SysConfig;
 import com.fs.system.oss.CloudStorageService;
@@ -916,10 +919,23 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
 //        try {
         logger.info("进入订单");
         FsPackageOrder order=null;
+        HuifuOrderConfirmResult result = null;
         if(type.equals(1)){
             FsStorePayment storePayment = fsStorePaymentMapper.selectFsStorePaymentByPaymentCode(payCode);
             if (storePayment!=null){
                 if(storePayment.getStatus().equals(0)){
+//                    logger.info("开始确认订单..........");
+//                    HuifuOrderConfirm confirm = new HuifuOrderConfirm();
+//                    confirm.setOrgReqSeqId("package-"+payCode);
+//                    confirm.setOrgReqDate(DateTools.getCurrentDateYYYYMMDD());
+//                    confirm.setTotalAmount(storePayment.getPayMoney());
+//                    String orderCode = OrderCodeUtils.getOrderSn();
+//                    if (StringUtils.isEmpty(orderCode)) {
+//                        return R.error("订单生成失败,请重试");
+//                    }
+//                    confirm.setReqSeqId(orderCode);
+//                    result = huiFuService.confirmOrder(confirm);
+//                    logger.info("确认订单结束..........");
                     FsStorePayment paymentMap=new FsStorePayment();
                     paymentMap.setPaymentId(storePayment.getPaymentId());
                     paymentMap.setStatus(1);
@@ -927,6 +943,16 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
                     paymentMap.setTradeNo(tradeNo);
                     paymentMap.setBankSerialNo(bankSerialNo);
                     paymentMap.setBankTransactionId(bankTransactionId);
+//                    if (result != null && result.getResp_code().equals("00000000") && (result.getTrans_stat().equals("S") || result.getTrans_stat().equals("P"))) {
+//                        //分账标识
+//                        paymentMap.setShareStatus(1);
+//                        paymentMap.setIsShare(1);
+//                        paymentMap.setShareCode(result.getReq_seq_id());
+//                        paymentMap.setShareDate(result.getReq_date());
+//                    }  else {
+//                        throw new CustomException("交易确认订单失败");
+//                    }
+
                     if(payType.equals(PayType.WECHAT_MINI_PROGRAM_PAYMENT.getCode())){
                         paymentMap.setPayTypeCode(PayType.WECHAT_MINI_PROGRAM_PAYMENT.name());
                     }
@@ -989,7 +1015,7 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
 //        }
         if (packageSubType!=1){
             logger.info("创建订单2");
-            storeOrderService.createOrderByPackageOrder(order);
+            storeOrderService.createOrderByPackageOrder(order,result);
             logger.info("创建订单");
         }
         FsUser fsUser = fsUserService.selectFsUserByUserId(order.getUserId());

+ 42 - 17
fs-service/src/main/java/com/fs/his/service/impl/FsStoreAfterSalesServiceImpl.java

@@ -40,6 +40,8 @@ import com.fs.his.service.*;
 import com.fs.his.utils.ConfigUtil;
 import com.fs.his.vo.*;
 import com.fs.huifuPay.domain.HuiFuRefundResult;
+import com.fs.huifuPay.domain.HuifuConfirmrefundResult;
+import com.fs.huifuPay.sdk.opps.core.request.V2TradePaymentDelaytransConfirmrefundRequest;
 import com.fs.huifuPay.sdk.opps.core.request.V2TradePaymentScanpayRefundRequest;
 import com.fs.huifuPay.service.HuiFuService;
 import com.fs.im.dto.*;
@@ -532,24 +534,25 @@ public class FsStoreAfterSalesServiceImpl implements IFsStoreAfterSalesService {
                     throw new CustomException("退款请求失败" + result.getRetMsg());
                 }
             } else if (payment.getPayMode().equals("hf")) {
-                V2TradePaymentScanpayRefundRequest request = new V2TradePaymentScanpayRefundRequest();
-                request.setOrdAmt(payment.getPayMoney().toString());
-                request.setOrgReqDate(new SimpleDateFormat("yyyyMMdd").format(payment.getCreateTime()));
-                request.setReqSeqId("refund-" + payment.getPayCode());
-                Map<String, Object> extendInfoMap = new HashMap<>();
-                extendInfoMap.put("org_req_seq_id", orderType + "-" + payment.getPayCode());
-                request.setExtendInfo(extendInfoMap);
-                HuiFuRefundResult refund = huiFuService.refund(request);
-                logger.info("订单退款返回结果:退款订单id:" + order.getOrderId() + refund);
-                if ((refund.getResp_code().equals("00000000") || refund.getResp_code().equals("00000100")) && (refund.getTrans_stat().equals("S") || refund.getTrans_stat().equals("P"))) {
-                    FsStorePayment paymentMap = new FsStorePayment();
-                    paymentMap.setPaymentId(payment.getPaymentId());
-                    paymentMap.setStatus(-1);
-                    paymentMap.setRefundTime(DateUtils.getNowDate());
-                    paymentMap.setRefundMoney(payment.getPayMoney());
-                    fsStorePaymentMapper.updateFsStorePayment(paymentMap);
+                if (payment.getIsShare() == 1 && payment.getShareStatus() == 1) {
+                    V2TradePaymentDelaytransConfirmrefundRequest confirmRefundRequest = new V2TradePaymentDelaytransConfirmrefundRequest();
+                    //Map<String, Object> extendInfoMap = new HashMap<>();
+                    String orderCode = OrderCodeUtils.getOrderSn();
+                    if (StringUtils.isEmpty(orderCode)) {
+                        throw new CustomException("订单生成失败,请重试");
+                    }
+                    confirmRefundRequest.setReqSeqId(orderCode);
+                    confirmRefundRequest.setOrgReqSeqId(payment.getShareCode());
+                    confirmRefundRequest.setOrgReqDate(payment.getShareDate());
+                    //多汇付使用appID
+                    HuifuConfirmrefundResult result = huiFuService.confirmRefund(confirmRefundRequest, null);
+                    if (result.getResp_code().equals("00000000") && (result.getTrans_stat().equals("S") || result.getTrans_stat().equals("P"))) {
+                        refund(payment,orderType,order.getOrderId());
+                    } else {
+                        throw new CustomException("交易确认退款请求失败" + result.getResp_desc());
+                    }
                 } else {
-                    throw new CustomException("退款请求失败" + refund.getResp_desc());
+                    refund(payment,orderType,order.getOrderId());
                 }
             }
             try {
@@ -595,6 +598,28 @@ public class FsStoreAfterSalesServiceImpl implements IFsStoreAfterSalesService {
         return i;
     }
 
+    private void refund(FsStorePayment payment,String orderType,Long orderId) {
+        V2TradePaymentScanpayRefundRequest request = new V2TradePaymentScanpayRefundRequest();
+        request.setOrdAmt(payment.getPayMoney().toString());
+        request.setOrgReqDate(new SimpleDateFormat("yyyyMMdd").format(payment.getCreateTime()));
+        request.setReqSeqId("refund-" + payment.getPayCode());
+        Map<String, Object> extendInfoMap = new HashMap<>();
+        extendInfoMap.put("org_req_seq_id", orderType + "-" + payment.getPayCode());
+        request.setExtendInfo(extendInfoMap);
+        HuiFuRefundResult refund = huiFuService.refund(request);
+        logger.info("订单退款返回结果:退款订单id:" + orderId + refund);
+        if ((refund.getResp_code().equals("00000000") || refund.getResp_code().equals("00000100")) && (refund.getTrans_stat().equals("S") || refund.getTrans_stat().equals("P"))) {
+            FsStorePayment paymentMap = new FsStorePayment();
+            paymentMap.setPaymentId(payment.getPaymentId());
+            paymentMap.setStatus(-1);
+            paymentMap.setRefundTime(DateUtils.getNowDate());
+            paymentMap.setRefundMoney(payment.getPayMoney());
+            fsStorePaymentMapper.updateFsStorePayment(paymentMap);
+        } else {
+            throw new CustomException("退款请求失败" + refund.getResp_desc());
+        }
+    }
+
     @Override
     public List<FsStoreAfterSalesExcelVO> selectFsStoreAfterSalesExcelListVO(FsStoreAfterSalesParam fsStoreAfterSales) {
         return fsStoreAfterSalesMapper.selectFsStoreAfterSalesExcelListVO(fsStoreAfterSales);

+ 54 - 1
fs-service/src/main/java/com/fs/his/service/impl/FsStoreOrderServiceImpl.java

@@ -61,6 +61,9 @@ import com.fs.hisapi.param.RecipeDetailParam;
 import com.fs.hisapi.service.HisApiService;
 import com.fs.huifuPay.domain.HuiFuCreateOrder;
 import com.fs.huifuPay.domain.HuifuCreateOrderResult;
+import com.fs.huifuPay.domain.HuifuOrderConfirm;
+import com.fs.huifuPay.domain.HuifuOrderConfirmResult;
+import com.fs.huifuPay.sdk.opps.core.utils.DateTools;
 import com.fs.huifuPay.service.HuiFuService;
 import com.fs.im.dto.*;
 import com.fs.im.service.IImService;
@@ -848,7 +851,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
     }
 
     @Override
-    public R createOrderByPackageOrder(FsPackageOrder packageOrder) {
+    public R createOrderByPackageOrder(FsPackageOrder packageOrder,HuifuOrderConfirmResult result) {
         logger.info("111111111111111");
 
         logger.info("2222222222222");
@@ -861,6 +864,15 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
         Integer packageSubType = (Integer) packageJson.get("packageSubType");
         Integer productType = (Integer) packageJson.get("productType");
         FsStoreOrder order = new FsStoreOrder();
+        //确认订单返回结果
+        if (result != null && result.getResp_code().equals("00000000") && (result.getTrans_stat().equals("S") || result.getTrans_stat().equals("P"))) {
+            order.setZyyDivAmount(result.getYsyAmount());
+            order.setZyyHuifuId(result.getZyzHuifuId());
+            if (result.getOtherAmount() != null && result.getOtherHuifuId() != null) {
+                order.setDivHuifuId(result.getOtherHuifuId());
+                order.setZyyDivAmount(result.getOtherAmount());
+            }
+        }
         Long prescribeId =null;
         if (productType==1 || productType==2){
             if (packageOrder.getDoctorId() == null) {
@@ -1627,11 +1639,26 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
     public R payConfirm(String orderCode, String payCode, String tradeNo, String payType, Integer type,String bankTransactionId,String bankSerialNo){
         try {
             FsStoreOrder order = null;
+            HuifuOrderConfirmResult result = null;
             if (type.equals(1)) {
 
                 FsStorePayment storePayment = fsStorePaymentMapper.selectFsStorePaymentByPaymentCode(payCode);
                 if (storePayment != null) {
                     if (storePayment.getStatus().equals(0)) {
+
+//                        log.info("开始确认订单分账..........");
+//                        HuifuOrderConfirm confirm = new HuifuOrderConfirm();
+//                        confirm.setOrgReqSeqId("store-"+payCode);
+//                        confirm.setOrgReqDate(DateTools.getCurrentDateYYYYMMDD());
+//                        String orderSn = OrderCodeUtils.getOrderSn();
+//                        if (StringUtils.isEmpty(orderSn)) {
+//                            return R.error("订单生成失败,请重试");
+//                        }
+//                        confirm.setReqSeqId(orderSn);
+//                        confirm.setTotalAmount(storePayment.getPayMoney());
+//                        result = huiFuService.confirmOrder(confirm);
+//                        log.info("确认订单分账结束..........");
+
                         log.info(payCode + "待支付");
                         FsStorePayment paymentMap = new FsStorePayment();
                         paymentMap.setPaymentId(storePayment.getPaymentId());
@@ -1640,6 +1667,17 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
                         paymentMap.setTradeNo(tradeNo);
                         paymentMap.setBankSerialNo(bankSerialNo);
                         paymentMap.setBankTransactionId(bankTransactionId);
+//                        if (result != null && result.getResp_code().equals("00000000") && (result.getTrans_stat().equals("S") || result.getTrans_stat().equals("P"))) {
+//                            //分账标识
+//                            paymentMap.setShareStatus(1);
+//                            paymentMap.setIsShare(1);
+//                            paymentMap.setShareDate(result.getReq_date());
+//                            paymentMap.setShareCode(result.getReq_seq_id());
+//                        } else {
+//                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+//                            throw new CustomException("交易确认订单失败");
+//                        }
+
                         if (payType.equals(PayType.WECHAT_MINI_PROGRAM_PAYMENT.getCode())) {
                             paymentMap.setPayTypeCode(PayType.WECHAT_MINI_PROGRAM_PAYMENT.name());
                         } else if (payType.equals(PayType.ALIPAY_BARCODE_PAYMENT.getCode())) {
@@ -1698,6 +1736,21 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
                 storeOrder.setFollowTime(calendar.getTime());
             }
             storeOrder.setPayTime(new Date());
+
+            //确认订单返回结果
+//            log.info("确认交易返回数据{}========>",result);
+//            if (result != null && result.getResp_code().equals("00000000") && (result.getTrans_stat().equals("S") || result.getTrans_stat().equals("P"))) {
+//                storeOrder.setZyyDivAmount(result.getYsyAmount());
+//                storeOrder.setZyyHuifuId(result.getZyzHuifuId());
+//                if (result.getOtherAmount() != null && result.getOtherHuifuId() != null) {
+//                    storeOrder.setDivHuifuId(result.getOtherHuifuId());
+//                    storeOrder.setZyyDivAmount(result.getOtherAmount());
+//                }
+//            } else {
+//                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+//                throw new CustomException("交易确认订单失败");
+//            }
+
             fsStoreOrderMapper.updateFsStoreOrder(storeOrder);
             try {
                 //更新用户下单次数(获取阈值,当订单总价大于等于阈值,则下单次数+1)

+ 43 - 22
fs-service/src/main/java/com/fs/his/service/impl/FsStorePaymentServiceImpl.java

@@ -66,10 +66,8 @@ import com.fs.hisStore.domain.FsStorePaymentScrm;
 import com.fs.hisStore.mapper.FsStorePaymentScrmMapper;
 import com.fs.hisStore.param.FsStorePaymentGetWxaCodeParam;
 import com.fs.hisStore.param.FsStorePaymentPayParam;
-import com.fs.huifuPay.domain.HuiFuCreateOrder;
-import com.fs.huifuPay.domain.HuiFuQueryOrderResult;
-import com.fs.huifuPay.domain.HuiFuRefundResult;
-import com.fs.huifuPay.domain.HuifuCreateOrderResult;
+import com.fs.huifuPay.domain.*;
+import com.fs.huifuPay.sdk.opps.core.request.V2TradePaymentDelaytransConfirmrefundRequest;
 import com.fs.huifuPay.sdk.opps.core.request.V2TradePaymentScanpayQueryRequest;
 import com.fs.huifuPay.sdk.opps.core.request.V2TradePaymentScanpayRefundRequest;
 import com.fs.huifuPay.service.HuiFuService;
@@ -499,30 +497,53 @@ public class FsStorePaymentServiceImpl implements IFsStorePaymentService {
                 }
             }
             else if(fsStorePayment.getPayMode().equals("hf")){
-                V2TradePaymentScanpayRefundRequest request = new V2TradePaymentScanpayRefundRequest();
-                request.setOrdAmt(fsStorePayment.getPayMoney().toString());
-                request.setOrgReqDate(new SimpleDateFormat("yyyyMMdd").format(fsStorePayment.getCreateTime()));
-                request.setReqSeqId("refund-"+fsStorePayment.getPayCode());
-                Map<String, Object> extendInfoMap = new HashMap<>();
-                extendInfoMap.put("org_req_seq_id", orderType+"-"+fsStorePayment.getPayCode());
-                request.setExtendInfo(extendInfoMap);
-                HuiFuRefundResult refund = huiFuService.refund(request);
-                logger.info("订单退款返回结果:"+paymentId+""+refund);
-                if((refund.getResp_code().equals("00000000")||refund.getResp_code().equals("00000100"))&&(refund.getTrans_stat().equals("S")||refund.getTrans_stat().equals("P"))){
-                    FsStorePayment paymentMap=new FsStorePayment();
-                    paymentMap.setPaymentId(fsStorePayment.getPaymentId());
-                    paymentMap.setStatus(-1);
-                    paymentMap.setRefundTime(DateUtils.getNowDate());
-                    paymentMap.setRefundMoney(fsStorePayment.getPayMoney());
-                    fsStorePaymentMapper.updateFsStorePayment(paymentMap);
-                }else {
-                    throw new CustomException("退款请求失败"+refund.getResp_desc());
+                if (fsStorePayment.getIsShare() == 1 && fsStorePayment.getShareStatus() == 1) {
+                    V2TradePaymentDelaytransConfirmrefundRequest confirmRefundRequest = new V2TradePaymentDelaytransConfirmrefundRequest();
+                    //Map<String, Object> extendInfoMap = new HashMap<>();
+                    String orderCode = OrderCodeUtils.getOrderSn();
+                    if (StringUtils.isEmpty(orderCode)) {
+                        throw new CustomException("订单生成失败,请重试");
+                    }
+                    confirmRefundRequest.setReqSeqId(orderCode);
+                    confirmRefundRequest.setOrgReqSeqId(fsStorePayment.getShareCode());
+                    confirmRefundRequest.setOrgReqDate(fsStorePayment.getShareDate());
+                    //多汇付使用appID
+                    HuifuConfirmrefundResult result = huiFuService.confirmRefund(confirmRefundRequest, null);
+                    if (result.getResp_code().equals("00000000") && (result.getTrans_stat().equals("S") || result.getTrans_stat().equals("P"))) {
+                        refund(fsStorePayment,orderType,paymentId);
+                    } else {
+                        throw new CustomException("交易确认退款请求失败" + result.getResp_desc());
+                    }
+                } else {
+                    refund(fsStorePayment,orderType,paymentId);
                 }
             }
         }
         return R.ok();
     }
 
+    private void refund(FsStorePayment payment, String orderType, Long orderId) {
+        V2TradePaymentScanpayRefundRequest request = new V2TradePaymentScanpayRefundRequest();
+        request.setOrdAmt(payment.getPayMoney().toString());
+        request.setOrgReqDate(new SimpleDateFormat("yyyyMMdd").format(payment.getCreateTime()));
+        request.setReqSeqId("refund-" + payment.getPayCode());
+        Map<String, Object> extendInfoMap = new HashMap<>();
+        extendInfoMap.put("org_req_seq_id", orderType + "-" + payment.getPayCode());
+        request.setExtendInfo(extendInfoMap);
+        HuiFuRefundResult refund = huiFuService.refund(request);
+        logger.info("订单退款返回结果:" + orderId + refund);
+        if ((refund.getResp_code().equals("00000000") || refund.getResp_code().equals("00000100")) && (refund.getTrans_stat().equals("S") || refund.getTrans_stat().equals("P"))) {
+            FsStorePayment paymentMap = new FsStorePayment();
+            paymentMap.setPaymentId(payment.getPaymentId());
+            paymentMap.setStatus(-1);
+            paymentMap.setRefundTime(DateUtils.getNowDate());
+            paymentMap.setRefundMoney(payment.getPayMoney());
+            fsStorePaymentMapper.updateFsStorePayment(paymentMap);
+        } else {
+            throw new CustomException("退款请求失败" + refund.getResp_desc());
+        }
+    }
+
     @Override
     public FsStorePayment selectFsStorePaymentByPaymentCode(String payCode) {
         return fsStorePaymentMapper.selectFsStorePaymentByPaymentCode(payCode);

+ 9 - 0
fs-service/src/main/java/com/fs/hisStore/domain/FsStoreOrderScrm.java

@@ -352,4 +352,13 @@ public class FsStoreOrderScrm extends BaseEntity
     private String erpPhone;
     private Integer isMerge;
 
+    //分账商户id
+    private String divHuifuId;
+    //中医院商户id
+    private String zyyHuifuId;
+    //分账金额
+    private BigDecimal divAmount;
+    //中医院分账金额
+    private BigDecimal zyyDivAmount;
+
 }

+ 1 - 0
fs-service/src/main/java/com/fs/hisStore/domain/FsStorePaymentScrm.java

@@ -100,6 +100,7 @@ public class FsStorePaymentScrm extends BaseEntity
     private String shareCode;
     private BigDecimal shareMoney;
     private Integer isShare;
+    private String shareDate;
 
     //小程序appId(用于多汇付支付/退款)
     private String appId;

+ 101 - 38
fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreAfterSalesScrmServiceImpl.java

@@ -39,6 +39,8 @@ import com.fs.hisStore.enums.*;
 import com.fs.hisStore.mapper.*;
 import com.fs.hisStore.param.*;
 import com.fs.huifuPay.domain.HuiFuRefundResult;
+import com.fs.huifuPay.domain.HuifuConfirmrefundResult;
+import com.fs.huifuPay.sdk.opps.core.request.V2TradePaymentDelaytransConfirmrefundRequest;
 import com.fs.huifuPay.sdk.opps.core.request.V2TradePaymentScanpayRefundRequest;
 import com.fs.huifuPay.service.HuiFuService;
 import com.fs.pay.service.IPayService;
@@ -796,27 +798,46 @@ public class FsStoreAfterSalesScrmServiceImpl implements IFsStoreAfterSalesScrmS
                                 huifuId=fsPayConfig.getHuifuId();
                             }
                         }
-                        V2TradePaymentScanpayRefundRequest request = new V2TradePaymentScanpayRefundRequest();
-                        DecimalFormat df = new DecimalFormat("0.00");
-                        request.setOrgHfSeqId(payment.getTradeNo());
-                        request.setHuifuId(huifuId);
-                        request.setOrdAmt(df.format(refundAmount));
-                        request.setOrgReqDate(new SimpleDateFormat("yyyyMMdd").format(payment.getCreateTime()));
-                        request.setReqSeqId("refund-"+payment.getPayCode());
-                        Map<String, Object> extendInfoMap = new HashMap<>();
-                        extendInfoMap.put("org_party_order_id", payment.getBankSerialNo());
-                        request.setExtendInfo(extendInfoMap);
-                        HuiFuRefundResult refund = huiFuService.refund(request);
-                        logger.info("退款:"+refund);
-                        if((refund.getResp_code().equals("00000000")||refund.getResp_code().equals("00000100"))&&(refund.getTrans_stat().equals("S")||refund.getTrans_stat().equals("P"))){
-                            payment.setRefundMoney(refundAmount);
-                            payment.setStatus(-1);
-                            payment.setRefundTime(new Date());
-                            paymentService.updateFsStorePayment(payment);
-                        }else {
-                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                            return R.error(refund.getResp_desc());
+                        if (payment.getIsShare() == 1 && payment.getShareStatus() == 1) {
+                            V2TradePaymentDelaytransConfirmrefundRequest confirmRefundRequest = new V2TradePaymentDelaytransConfirmrefundRequest();
+                            String orderCode = OrderCodeUtils.getOrderSn();
+                            if (StringUtils.isEmpty(orderCode)) {
+                                throw new CustomException("订单生成失败,请重试");
+                            }
+                            confirmRefundRequest.setReqSeqId(orderCode);
+                            confirmRefundRequest.setOrgReqSeqId(payment.getShareCode());
+                            confirmRefundRequest.setOrgReqDate(payment.getShareDate());
+                            //多汇付使用appID
+                            HuifuConfirmrefundResult result = huiFuService.confirmRefund(confirmRefundRequest, payment.getAppId());
+                            if (result.getResp_code().equals("00000000") && (result.getTrans_stat().equals("S") || result.getTrans_stat().equals("P"))) {
+                                refund(payment,huifuId);
+                            } else {
+                                throw new CustomException("交易确认退款请求失败" + result.getResp_desc());
+                            }
+                        } else {
+                            refund(payment,huifuId);
                         }
+//                        V2TradePaymentScanpayRefundRequest request = new V2TradePaymentScanpayRefundRequest();
+//                        DecimalFormat df = new DecimalFormat("0.00");
+//                        request.setOrgHfSeqId(payment.getTradeNo());
+//                        request.setHuifuId(huifuId);
+//                        request.setOrdAmt(df.format(refundAmount));
+//                        request.setOrgReqDate(new SimpleDateFormat("yyyyMMdd").format(payment.getCreateTime()));
+//                        request.setReqSeqId("refund-"+payment.getPayCode());
+//                        Map<String, Object> extendInfoMap = new HashMap<>();
+//                        extendInfoMap.put("org_party_order_id", payment.getBankSerialNo());
+//                        request.setExtendInfo(extendInfoMap);
+//                        HuiFuRefundResult refund = huiFuService.refund(request);
+//                        logger.info("退款:"+refund);
+//                        if((refund.getResp_code().equals("00000000")||refund.getResp_code().equals("00000100"))&&(refund.getTrans_stat().equals("S")||refund.getTrans_stat().equals("P"))){
+//                            payment.setRefundMoney(refundAmount);
+//                            payment.setStatus(-1);
+//                            payment.setRefundTime(new Date());
+//                            paymentService.updateFsStorePayment(payment);
+//                        }else {
+//                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+//                            return R.error(refund.getResp_desc());
+//                        }
 
                     }else {
                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -838,6 +859,29 @@ public class FsStoreAfterSalesScrmServiceImpl implements IFsStoreAfterSalesScrmS
         return R.ok();
     }
 
+    private void refund(FsStorePaymentScrm payment,String huifuId){
+        V2TradePaymentScanpayRefundRequest request = new V2TradePaymentScanpayRefundRequest();
+        request.setOrgHfSeqId(payment.getTradeNo());
+        request.setHuifuId(huifuId);
+        request.setOrdAmt(payment.getPayMoney().toString());
+        request.setOrgReqDate(new SimpleDateFormat("yyyyMMdd").format(payment.getCreateTime()));
+        request.setReqSeqId("refund-" + payment.getPayCode());
+        Map<String, Object> extendInfoMap = new HashMap<>();
+        extendInfoMap.put("org_party_order_id", payment.getBankSerialNo());
+        request.setExtendInfo(extendInfoMap);
+        HuiFuRefundResult refund = huiFuService.refund(request);
+        logger.info("退款:" + refund);
+        if ((refund.getResp_code().equals("00000000") || refund.getResp_code().equals("00000100")) && (refund.getTrans_stat().equals("S") || refund.getTrans_stat().equals("P"))) {
+            payment.setRefundMoney(payment.getPayMoney());
+            payment.setStatus(-1);
+            payment.setRefundTime(new Date());
+            paymentService.updateFsStorePayment(payment);
+        } else {
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            throw new CustomException("退款失败:" + refund.getResp_desc());
+        }
+    }
+
 
     @Autowired
     private FsJstAftersalePushScrmMapper fsJstAftersalePushMapper;
@@ -1516,26 +1560,45 @@ public class FsStoreAfterSalesScrmServiceImpl implements IFsStoreAfterSalesScrmS
                         huifuId=fsPayConfig.getHuifuId();
                     }
                 }
-                V2TradePaymentScanpayRefundRequest request = new V2TradePaymentScanpayRefundRequest();
-                request.setOrdAmt(payment.getPayMoney().toString());
-                request.setHuifuId(huifuId);
-                request.setOrgReqDate(new SimpleDateFormat("yyyyMMdd").format(payment.getCreateTime()));
-                request.setReqSeqId("refund-" + payment.getPayCode());
-                Map<String, Object> extendInfoMap = new HashMap<>();
-                extendInfoMap.put("org_req_seq_id", orderType + "-" + payment.getPayCode());
-                request.setExtendInfo(extendInfoMap);
-                HuiFuRefundResult refund = huiFuService.refund(request);
-                logger.info("订单退款返回结果:退款订单id:" + order.getOrderId() + refund);
-                if ((refund.getResp_code().equals("00000000") || refund.getResp_code().equals("00000100")) && (refund.getTrans_stat().equals("S") || refund.getTrans_stat().equals("P"))) {
-                    FsStorePaymentScrm paymentMap = new FsStorePaymentScrm();
-                    paymentMap.setPaymentId(payment.getPaymentId());
-                    paymentMap.setStatus(-1);
-                    paymentMap.setRefundTime(DateUtils.getNowDate());
-                    paymentMap.setRefundMoney(payment.getPayMoney());
-                    fsStorePaymentMapper.updateFsStorePayment(paymentMap);
+                if (payment.getIsShare() == 1 && payment.getShareStatus() == 1) {
+                    V2TradePaymentDelaytransConfirmrefundRequest confirmRefundRequest = new V2TradePaymentDelaytransConfirmrefundRequest();
+                    String orderCode = OrderCodeUtils.getOrderSn();
+                    if (StringUtils.isEmpty(orderCode)) {
+                        throw new CustomException("订单生成失败,请重试");
+                    }
+                    confirmRefundRequest.setReqSeqId(orderCode);
+                    confirmRefundRequest.setOrgReqSeqId(payment.getShareCode());
+                    confirmRefundRequest.setOrgReqDate(payment.getShareDate());
+                    //多汇付使用appID
+                    HuifuConfirmrefundResult result = huiFuService.confirmRefund(confirmRefundRequest, payment.getAppId());
+                    if (result.getResp_code().equals("00000000") && (result.getTrans_stat().equals("S") || result.getTrans_stat().equals("P"))) {
+                        refund(payment,huifuId);
+                    } else {
+                        throw new CustomException("交易确认退款请求失败" + result.getResp_desc());
+                    }
                 } else {
-                    throw new CustomException("退款请求失败" + refund.getResp_desc());
+                    refund(payment,huifuId);
                 }
+//                V2TradePaymentScanpayRefundRequest request = new V2TradePaymentScanpayRefundRequest();
+//                request.setOrdAmt(payment.getPayMoney().toString());
+//                request.setHuifuId(huifuId);
+//                request.setOrgReqDate(new SimpleDateFormat("yyyyMMdd").format(payment.getCreateTime()));
+//                request.setReqSeqId("refund-" + payment.getPayCode());
+//                Map<String, Object> extendInfoMap = new HashMap<>();
+//                extendInfoMap.put("org_req_seq_id", orderType + "-" + payment.getPayCode());
+//                request.setExtendInfo(extendInfoMap);
+//                HuiFuRefundResult refund = huiFuService.refund(request);
+//                logger.info("订单退款返回结果:退款订单id:" + order.getOrderId() + refund);
+//                if ((refund.getResp_code().equals("00000000") || refund.getResp_code().equals("00000100")) && (refund.getTrans_stat().equals("S") || refund.getTrans_stat().equals("P"))) {
+//                    FsStorePaymentScrm paymentMap = new FsStorePaymentScrm();
+//                    paymentMap.setPaymentId(payment.getPaymentId());
+//                    paymentMap.setStatus(-1);
+//                    paymentMap.setRefundTime(DateUtils.getNowDate());
+//                    paymentMap.setRefundMoney(payment.getPayMoney());
+//                    fsStorePaymentMapper.updateFsStorePayment(paymentMap);
+//                } else {
+//                    throw new CustomException("退款请求失败" + refund.getResp_desc());
+//                }
             }
             //管易作废
             if (StringUtils.isNotEmpty(fsStoreOrder.getExtendOrderId())) {

+ 80 - 24
fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreOrderScrmServiceImpl.java

@@ -80,10 +80,10 @@ import com.fs.hisapi.domain.ApiResponse;
 import com.fs.hisapi.param.CreateOrderParam;
 import com.fs.hisapi.param.RecipeDetailParam;
 import com.fs.hisapi.service.HisApiService;
-import com.fs.huifuPay.domain.HuiFuCreateOrder;
-import com.fs.huifuPay.domain.HuiFuRefundResult;
-import com.fs.huifuPay.domain.HuifuCreateOrderResult;
+import com.fs.huifuPay.domain.*;
+import com.fs.huifuPay.sdk.opps.core.request.V2TradePaymentDelaytransConfirmrefundRequest;
 import com.fs.huifuPay.sdk.opps.core.request.V2TradePaymentScanpayRefundRequest;
+import com.fs.huifuPay.sdk.opps.core.utils.DateTools;
 import com.fs.huifuPay.service.HuiFuService;
 import com.fs.pay.pay.dto.OrderQueryDTO;
 import com.fs.pay.pay.dto.RefundDTO;
@@ -1714,11 +1714,25 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
         //支付订单
 //        try {
         FsStoreOrderScrm order = null;
+        HuifuOrderConfirmResult result = null;
         if (type.equals(1)) {
             FsStorePaymentScrm storePayment = paymentService.selectFsStorePaymentByCode(payCode);
             if (storePayment == null || !storePayment.getStatus().equals(0)) {
                 return "";
             }
+//            logger.info("开始确认订单..........");
+//            HuifuOrderConfirm confirm = new HuifuOrderConfirm();
+//            confirm.setOrgReqSeqId("store-"+payCode);
+//            confirm.setOrgReqDate(DateTools.getCurrentDateYYYYMMDD());
+//            confirm.setTotalAmount(storePayment.getPayMoney());
+//            confirm.setAppId(storePayment.getAppId());
+//            String orderCode = OrderCodeUtils.getOrderSn();
+//            if (StringUtils.isEmpty(orderCode)) {
+//                throw new CustomException ("订单生成失败,请重试");
+//            }
+//            confirm.setReqSeqId(orderCode);
+//            result = huiFuService.confirmOrder(confirm);
+//            logger.info("确认订单结束..........");
             FsStorePaymentScrm storePaymentMap = new FsStorePaymentScrm();
             storePaymentMap.setPaymentId(storePayment.getPaymentId());
             storePaymentMap.setStatus(1);
@@ -1726,8 +1740,19 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
             storePaymentMap.setTradeNo(tradeNo);
             storePaymentMap.setBankSerialNo(bankSerialNo);
             storePaymentMap.setBankTransactionId(bankTransactionId);
+//            //确认订单返回结果
+//            if (result != null && result.getResp_code().equals("00000000") && (result.getTrans_stat().equals("S") || result.getTrans_stat().equals("P"))) {
+//                //分账标识
+//                storePaymentMap.setShareStatus(1);
+//                storePaymentMap.setIsShare(1);
+//                storePaymentMap.setShareCode(result.getReq_seq_id());
+//                storePaymentMap.setShareDate(result.getReq_date());
+//            }  else {
+//                throw new CustomException("交易确认订单失败");
+//            }
             paymentService.updateFsStorePayment(storePaymentMap);
             order = fsStoreOrderMapper.selectFsStoreOrderById(storePayment.getOrderId());
+
             if (order != null && !order.getStatus().equals(OrderInfoEnum.STATUS_0.getValue())) {
                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                 return "";
@@ -1764,6 +1789,17 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
             storeOrder.setPaid(OrderInfoEnum.PAY_STATUS_1.getValue());
             storeOrder.setStatus(OrderInfoEnum.STATUS_1.getValue());
             storeOrder.setPayTime(new Date());
+//            //确认订单返回结果
+//            if (result != null && result.getResp_code().equals("00000000") && (result.getTrans_stat().equals("S") || result.getTrans_stat().equals("P"))) {
+//                storeOrder.setZyyDivAmount(result.getYsyAmount());
+//                storeOrder.setZyyHuifuId(result.getZyzHuifuId());
+//                if (result.getOtherAmount() != null && result.getOtherHuifuId() != null) {
+//                    storeOrder.setDivHuifuId(result.getOtherHuifuId());
+//                    storeOrder.setZyyDivAmount(result.getOtherAmount());
+//                }
+//            }  else {
+//                throw new CustomException("交易确认订单失败");
+//            }
             fsStoreOrderMapper.updateFsStoreOrder(storeOrder);
             // 添加订单审核
             if (storeOrder.getCompanyId() != null) {
@@ -2270,29 +2306,26 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
                                 huifuId=fsPayConfig.getHuifuId();
                             }
                         }
-
-
-                        V2TradePaymentScanpayRefundRequest request = new V2TradePaymentScanpayRefundRequest();
-                        request.setOrgHfSeqId(payment.getTradeNo());
-                        request.setHuifuId(huifuId);
-                        request.setOrdAmt(payment.getPayMoney().toString());
-                        request.setOrgReqDate(new SimpleDateFormat("yyyyMMdd").format(payment.getCreateTime()));
-                        request.setReqSeqId("refund-" + payment.getPayCode());
-                        Map<String, Object> extendInfoMap = new HashMap<>();
-                        extendInfoMap.put("org_party_order_id", payment.getBankSerialNo());
-                        request.setExtendInfo(extendInfoMap);
-                        HuiFuRefundResult refund = huiFuService.refund(request);
-                        logger.info("退款:" + refund);
-                        if ((refund.getResp_code().equals("00000000") || refund.getResp_code().equals("00000100")) && (refund.getTrans_stat().equals("S") || refund.getTrans_stat().equals("P"))) {
-                            payment.setRefundMoney(payment.getPayMoney());
-                            payment.setStatus(-1);
-                            payment.setRefundTime(new Date());
-                            paymentService.updateFsStorePayment(payment);
+                        if (payment.getIsShare() == 1 && payment.getShareStatus() == 1) {
+                            V2TradePaymentDelaytransConfirmrefundRequest confirmRefundRequest = new V2TradePaymentDelaytransConfirmrefundRequest();
+                            //Map<String, Object> extendInfoMap = new HashMap<>();
+                            String orderCode = OrderCodeUtils.getOrderSn();
+                            if (StringUtils.isEmpty(orderCode)) {
+                                throw new CustomException("订单生成失败,请重试");
+                            }
+                            confirmRefundRequest.setReqSeqId(orderCode);
+                            confirmRefundRequest.setOrgReqSeqId(payment.getShareCode());
+                            confirmRefundRequest.setOrgReqDate(payment.getShareDate());
+                            //多汇付使用appID
+                            HuifuConfirmrefundResult result = huiFuService.confirmRefund(confirmRefundRequest, payment.getAppId());
+                            if (result.getResp_code().equals("00000000") && (result.getTrans_stat().equals("S") || result.getTrans_stat().equals("P"))) {
+                                    refund(payment,huifuId);
+                            } else {
+                                throw new CustomException("交易确认退款请求失败" + result.getResp_desc());
+                            }
                         } else {
-                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                            return R.error(refund.getResp_desc());
+                            refund(payment,huifuId);
                         }
-
                     } else {
                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                         return R.error("支付类型异常");
@@ -2311,6 +2344,29 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
 
     }
 
+    private void refund(FsStorePaymentScrm payment,String huifuId){
+        V2TradePaymentScanpayRefundRequest request = new V2TradePaymentScanpayRefundRequest();
+        request.setOrgHfSeqId(payment.getTradeNo());
+        request.setHuifuId(huifuId);
+        request.setOrdAmt(payment.getPayMoney().toString());
+        request.setOrgReqDate(new SimpleDateFormat("yyyyMMdd").format(payment.getCreateTime()));
+        request.setReqSeqId("refund-" + payment.getPayCode());
+        Map<String, Object> extendInfoMap = new HashMap<>();
+        extendInfoMap.put("org_party_order_id", payment.getBankSerialNo());
+        request.setExtendInfo(extendInfoMap);
+        HuiFuRefundResult refund = huiFuService.refund(request);
+        logger.info("退款:" + refund);
+        if ((refund.getResp_code().equals("00000000") || refund.getResp_code().equals("00000100")) && (refund.getTrans_stat().equals("S") || refund.getTrans_stat().equals("P"))) {
+            payment.setRefundMoney(payment.getPayMoney());
+            payment.setStatus(-1);
+            payment.setRefundTime(new Date());
+            paymentService.updateFsStorePayment(payment);
+        } else {
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            throw new CustomException("退款失败:" + refund.getResp_desc());
+        }
+    }
+
     @Override
     public R updateExpress(FsStoreOrderExpressEditParam param) {
         FsStoreOrderScrm order = fsStoreOrderMapper.selectFsStoreOrderById(param.getOrderId());

+ 66 - 18
fs-service/src/main/java/com/fs/hisStore/service/impl/FsUserInformationCollectionServiceImpl.java

@@ -15,6 +15,7 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.fs.common.BeanCopyUtils;
+import com.fs.common.OrderUtils;
 import com.fs.common.core.domain.R;
 import com.fs.common.core.redis.RedisCache;
 import com.fs.common.exception.CustomException;
@@ -26,6 +27,7 @@ import com.fs.company.mapper.CompanyUserMapper;
 import com.fs.company.service.ICompanyService;
 import com.fs.core.config.WxMaConfiguration;
 import com.fs.core.config.WxPayProperties;
+import com.fs.core.utils.OrderCodeUtils;
 import com.fs.course.mapper.FsUserCompanyUserMapper;
 import com.fs.course.param.CollectionInfoConfirmParam;
 import com.fs.course.vo.FsUserInfoCollectionUVO;
@@ -43,6 +45,8 @@ import com.fs.hisStore.param.FsUserInformationCollectionParam;
 import com.fs.hisStore.vo.FsUserInformationCollectionListDVO;
 import com.fs.hisStore.vo.FsUserInformationCollectionVO;
 import com.fs.huifuPay.domain.HuiFuRefundResult;
+import com.fs.huifuPay.domain.HuifuConfirmrefundResult;
+import com.fs.huifuPay.sdk.opps.core.request.V2TradePaymentDelaytransConfirmrefundRequest;
 import com.fs.huifuPay.sdk.opps.core.request.V2TradePaymentScanpayRefundRequest;
 import com.fs.huifuPay.service.HuiFuService;
 import com.fs.store.domain.FsDoctorConfirm;
@@ -65,6 +69,7 @@ import com.github.binarywang.wxpay.bean.result.WxPayRefundResult;
 import com.github.binarywang.wxpay.config.WxPayConfig;
 import com.github.binarywang.wxpay.exception.WxPayException;
 import com.github.binarywang.wxpay.service.WxPayService;
+import com.google.common.collect.Lists;
 import com.google.gson.Gson;
 import me.chanjar.weixin.common.error.WxErrorException;
 import org.slf4j.Logger;
@@ -322,6 +327,27 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
         FsUserInformationCollection collection = fsUserInformationCollectionMapper.selectFsUserInformationCollectionById(id);
         if (collection != null) {
             vo.setAnswers(JSON.parseArray(collection.getJsonInfo(), AnswerVO.class));
+            List<AnswerVO> answers = vo.getAnswers();
+            if (!CollectionUtils.isEmpty(answers)){
+                List<AnswerVO> collect = answers
+                        .stream()
+                        .filter(answerVO -> !answerVO.getValue().isEmpty())
+                        .collect(Collectors.toList());
+                if (!CollectionUtils.isEmpty(collect)) {
+                    collect.forEach(answerVO -> {
+                        List<Integer> value = answerVO.getValue();
+                        List<AnswerVO.Options> options = answerVO.getOptions();
+                        List<AnswerVO.Options> filterOptions = Lists.newArrayList();
+                        for (AnswerVO.Options option : options) {
+                            if (value.contains(option.getValue())) {
+                                filterOptions.add(option);
+                            }
+                        }
+                        answerVO.setOptions(filterOptions);
+                    });
+                }
+                vo.setAnswers(collect);
+            }
         }
         return vo;
     }
@@ -485,6 +511,7 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
                             FsPrescribe fsPrescribe = fsPrescribeMapper.selectFsPrescribeByPrescribeId(prescribeId);
                             if (fsPrescribe != null) {
                                 vo.setPrescribeImgUrl(fsPrescribe.getPrescribeImgUrl());
+                                vo.setPrescribeStatus(fsPrescribe.getStatus());
                             }
                         } else {
                             throw new CustomException("没有处方订单");
@@ -716,24 +743,25 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
                     throw new CustomException("退款请求失败" + result.getRetMsg());
                 }
             } else if (payment.getPayMode().equals("hf")) {
-                V2TradePaymentScanpayRefundRequest request = new V2TradePaymentScanpayRefundRequest();
-                request.setOrdAmt(payment.getPayMoney().toString());
-                request.setOrgReqDate(new SimpleDateFormat("yyyyMMdd").format(payment.getCreateTime()));
-                request.setReqSeqId("refund-" + payment.getPayCode());
-                Map<String, Object> extendInfoMap = new HashMap<>();
-                extendInfoMap.put("org_req_seq_id", orderType + "-" + payment.getPayCode());
-                request.setExtendInfo(extendInfoMap);
-                HuiFuRefundResult refund = huiFuService.refund(request);
-                logger.info("订单退款返回结果:退款订单id:" + orderId + refund);
-                if ((refund.getResp_code().equals("00000000") || refund.getResp_code().equals("00000100")) && (refund.getTrans_stat().equals("S") || refund.getTrans_stat().equals("P"))) {
-                    FsStorePayment paymentMap = new FsStorePayment();
-                    paymentMap.setPaymentId(payment.getPaymentId());
-                    paymentMap.setStatus(-1);
-                    paymentMap.setRefundTime(DateUtils.getNowDate());
-                    paymentMap.setRefundMoney(payment.getPayMoney());
-                    fsStorePaymentMapper.updateFsStorePayment(paymentMap);
+                if (payment.getIsShare() == 1 && payment.getShareStatus() == 1) {
+                    V2TradePaymentDelaytransConfirmrefundRequest confirmRefundRequest = new V2TradePaymentDelaytransConfirmrefundRequest();
+                    //Map<String, Object> extendInfoMap = new HashMap<>();
+                    String orderCode = OrderCodeUtils.getOrderSn();
+                    if (StringUtils.isEmpty(orderCode)) {
+                        throw new CustomException("订单生成失败,请重试");
+                    }
+                    confirmRefundRequest.setReqSeqId(orderCode);
+                    confirmRefundRequest.setOrgReqSeqId(payment.getShareCode());
+                    confirmRefundRequest.setOrgReqDate(payment.getShareDate());
+                    //多汇付使用appID
+                    HuifuConfirmrefundResult result = huiFuService.confirmRefund(confirmRefundRequest, null);
+                    if (result.getResp_code().equals("00000000") && (result.getTrans_stat().equals("S") || result.getTrans_stat().equals("P"))) {
+                        refund(payment, orderType, orderId);
+                    } else {
+                        throw new CustomException("交易确认退款请求失败" + result.getResp_desc());
+                    }
                 } else {
-                    throw new CustomException("退款请求失败" + refund.getResp_desc());
+                    refund(payment, orderType, orderId);
                 }
             }
         } else {
@@ -742,7 +770,27 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
 
 
     }
-
+    private void refund(FsStorePayment payment, String orderType, Long orderId) {
+        V2TradePaymentScanpayRefundRequest request = new V2TradePaymentScanpayRefundRequest();
+        request.setOrdAmt(payment.getPayMoney().toString());
+        request.setOrgReqDate(new SimpleDateFormat("yyyyMMdd").format(payment.getCreateTime()));
+        request.setReqSeqId("refund-" + payment.getPayCode());
+        Map<String, Object> extendInfoMap = new HashMap<>();
+        extendInfoMap.put("org_req_seq_id", orderType + "-" + payment.getPayCode());
+        request.setExtendInfo(extendInfoMap);
+        HuiFuRefundResult refund = huiFuService.refund(request);
+        logger.info("订单退款返回结果:退款订单id:" + orderId + refund);
+        if ((refund.getResp_code().equals("00000000") || refund.getResp_code().equals("00000100")) && (refund.getTrans_stat().equals("S") || refund.getTrans_stat().equals("P"))) {
+            FsStorePayment paymentMap = new FsStorePayment();
+            paymentMap.setPaymentId(payment.getPaymentId());
+            paymentMap.setStatus(-1);
+            paymentMap.setRefundTime(DateUtils.getNowDate());
+            paymentMap.setRefundMoney(payment.getPayMoney());
+            fsStorePaymentMapper.updateFsStorePayment(paymentMap);
+        } else {
+            throw new CustomException("退款请求失败" + refund.getResp_desc());
+        }
+    }
     @Override
     public FsUserInformationCollectionVO getCollectionByUserId(Long userId) {
         FsUserInformationCollectionVO vo = new FsUserInformationCollectionVO();

+ 2 - 0
fs-service/src/main/java/com/fs/hisStore/vo/FsUserInformationCollectionListDVO.java

@@ -18,4 +18,6 @@ public class FsUserInformationCollectionListDVO {
 
     //用户补充说明
     private String userAdvice;
+
+    private String doctorAdvice;
 }

+ 19 - 0
fs-service/src/main/java/com/fs/huifuPay/domain/HuifuConfirmrefundResult.java

@@ -0,0 +1,19 @@
+package com.fs.huifuPay.domain;
+
+import lombok.Data;
+
+@Data
+public class HuifuConfirmrefundResult {
+    private String resp_code;
+    // 响应描述
+    private String resp_desc;
+
+    // 交易状态
+    private String trans_stat; //P:处理中、S:成功、F:失败;示例值:S
+    // 未确认金额
+    private String unconfirm_amt;
+    // 已确认金额
+    private String confirmed_amt;
+
+
+}

+ 5 - 0
fs-service/src/main/java/com/fs/huifuPay/domain/HuifuOrderConfirm.java

@@ -2,6 +2,8 @@ package com.fs.huifuPay.domain;
 
 import lombok.Data;
 
+import java.math.BigDecimal;
+
 @Data
 public class HuifuOrderConfirm {
     String reqSeqId;
@@ -30,4 +32,7 @@ public class HuifuOrderConfirm {
     String orgReqDate;
 
     String appId;
+
+    //分账总额
+    BigDecimal totalAmount;
 }

+ 12 - 0
fs-service/src/main/java/com/fs/huifuPay/domain/HuifuOrderConfirmResult.java

@@ -2,6 +2,8 @@ package com.fs.huifuPay.domain;
 
 import lombok.Data;
 
+import java.math.BigDecimal;
+
 @Data
 public class HuifuOrderConfirmResult {
     // 响应码
@@ -21,4 +23,14 @@ public class HuifuOrderConfirmResult {
 
     private String org_req_seq_id;
 
+    private String req_date;
+
+    private String req_seq_id;
+
+    private String zyzHuifuId;
+    private String otherHuifuId;
+    private BigDecimal ysyAmount;
+
+    private BigDecimal otherAmount;
+
 }

+ 1 - 0
fs-service/src/main/java/com/fs/huifuPay/sdk/opps/core/request/V2TradePaymentDelaytransConfirmrefundRequest.java

@@ -37,6 +37,7 @@ public class V2TradePaymentDelaytransConfirmrefundRequest extends BaseRequest {
     @JSONField(name = "org_req_seq_id")
     private String orgReqSeqId;
 
+
     @Override
     public FunctionCodeEnum getFunctionCode() {
         return FunctionCodeEnum.V2_TRADE_PAYMENT_DELAYTRANS_CONFIRMREFUND;

+ 2 - 0
fs-service/src/main/java/com/fs/huifuPay/service/HuiFuService.java

@@ -41,4 +41,6 @@ public interface HuiFuService {
 
     /**交易确认**/
     HuifuOrderConfirmResult confirmOrder(HuifuOrderConfirm request);
+
+    HuifuConfirmrefundResult confirmRefund(V2TradePaymentDelaytransConfirmrefundRequest request,String appId);
 }

+ 95 - 22
fs-service/src/main/java/com/fs/huifuPay/service/impl/HuiFuServiceImpl.java

@@ -18,6 +18,7 @@ import com.fs.huifuPay.service.HuiFuService;
 import com.fs.huifuPay.sdk.opps.core.utils.DateTools;
 import com.fs.system.domain.SysConfig;
 import com.fs.system.mapper.SysConfigMapper;
+import com.google.common.collect.Lists;
 import com.google.gson.Gson;
 import io.lettuce.core.ScriptOutputType;
 import org.slf4j.Logger;
@@ -26,8 +27,10 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
+import java.text.DecimalFormat;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -341,25 +344,57 @@ public class HuiFuServiceImpl implements HuiFuService {
             JSONObject acct_split_bunch = new JSONObject();
             //其它三个分账信息(随机获取一个)
             JSONArray acct_infos = new JSONArray();
-            JSONObject acct_other = new JSONObject();
-            acct_other.put("huifu_id",confirm.getDivHuifuId());
-            acct_other.put("div_amt",confirm.getDivAmt());
-
-            JSONObject acct_ysy = new JSONObject();
-            acct_ysy.put("huifu_id",confirm.getYsyHuifuId());
-            acct_ysy.put("div_amt",confirm.getYsyDivAmt());
-            acct_infos.add(acct_other);
-            acct_infos.add(acct_ysy);
-            acct_split_bunch.put("acct_infos",acct_infos);
 
-            extendInfoMap.put("acct_split_bunch",acct_split_bunch);
-            logger.info("交易确认传参:"+request);
+            //配置商户号
+            String configHuifuId = config.getHuifuId();
+
+            String zyyHuifuId;
+            String otherHuifuId = null;
+            BigDecimal ysyAmount;
+            BigDecimal otherAmount = null;
+            DecimalFormat df = new DecimalFormat("#0.00");
+            //TODO 中医院商户暂时不分账到其它商户 后续需要判断是否推ERP类型分账
+            if("6666000175632107".equals(configHuifuId)){
+                //中医院分账信息
+                JSONObject acct_ysy = new JSONObject();
+                acct_ysy.put("huifu_id",configHuifuId);
+                acct_ysy.put("div_amt",df.format(confirm.getTotalAmount()));
+                acct_infos.add(acct_ysy);
+                ysyAmount = confirm.getTotalAmount();
+                zyyHuifuId = configHuifuId;
+            } else {
+                //TODO 商城订单分账 暂时分账20%到中医院 80%随机到广珍堂或者久运
+                ArrayList<String> huifuIds = Lists.newArrayList("6666000177633376", "6666000179192557");
+                int i = (int) (Math.random() * huifuIds.size());
+                otherHuifuId = huifuIds.get(i);
+                zyyHuifuId = "6666000175632107";
+                ysyAmount = confirm.getTotalAmount().multiply(new BigDecimal("0.2"));
+                otherAmount = confirm.getTotalAmount().subtract(ysyAmount);
+                //其他分账信息
+                JSONObject acct_other = new JSONObject();
+                acct_other.put("huifu_id",otherHuifuId);
+                acct_other.put("div_amt",df.format(otherAmount));
+                acct_infos.add(acct_other);
+
+                //中医院分账信息
+                JSONObject acct_ysy = new JSONObject();
+                acct_ysy.put("huifu_id",zyyHuifuId);
+                acct_ysy.put("div_amt",df.format(ysyAmount));
+                acct_infos.add(acct_ysy);
+            }
+            acct_split_bunch.put("acct_infos",acct_infos);
+            extendInfoMap.put("acct_split_bunch",JSON.toJSONString(acct_split_bunch));
             request.setExtendInfo(extendInfoMap);
+            logger.info("交易确认传参:"+request);
             Map<String, Object> response = doExecute(request);
             logger.info("交易确认返回:"+response);
             String jsonString = JSONObject.toJSONString(response);
             logger.info("交易确认返回:"+jsonString);
             huifuOrderConfirmResult = JSON.parseObject(jsonString, HuifuOrderConfirmResult.class);
+            huifuOrderConfirmResult.setOtherHuifuId(otherHuifuId);
+            huifuOrderConfirmResult.setOtherAmount(otherAmount);
+            huifuOrderConfirmResult.setZyzHuifuId(zyyHuifuId);
+            huifuOrderConfirmResult.setYsyAmount(ysyAmount);
         }catch (Exception e){
             logger.info("交易确认失败 :"+e);
             throw  new CustomException("交易确认失败");
@@ -367,25 +402,61 @@ public class HuiFuServiceImpl implements HuiFuService {
         return huifuOrderConfirmResult;
     }
 
+    @Override
+    public HuifuConfirmrefundResult confirmRefund(V2TradePaymentDelaytransConfirmrefundRequest request,String appId) {
+        logger.info("交易确认退款传参:{}", request);
+        HuifuConfirmrefundResult huifuConfirmrefundResult = null;
+        try {
+            if (appId != null) {
+                FsHfpayConfigMapper fsHfpayConfigMapper = SpringUtils.getBean(FsHfpayConfigMapper.class);
+                FsHfpayConfig fsHfpayConfig = fsHfpayConfigMapper.selectByAppId(appId);
+                if (fsHfpayConfig != null) {
+                    //多汇付支付获取配置
+                    doInit(getMerConfig(fsHfpayConfig));
+                } else {
+                    //多小程序
+                    doInit(getMerConfig());
+                }
+            } else {
+                doInit(getMerConfig());
+            }
+
+            request.setReqDate(DateTools.getCurrentDateYYYYMMDD());
+            Map<String, Object> response = doExecute(request);
+            String jsonString = JSONObject.toJSONString(response);
+            huifuConfirmrefundResult = JSON.parseObject(jsonString, HuifuConfirmrefundResult.class);
+        } catch (Exception e) {
+            throw new RuntimeException("创建交易确认退款失败");
+        }
+        return huifuConfirmrefundResult;
+    }
+
 
     public MerConfig getMerConfig(){
         SysConfigMapper sysConfigMapper= SpringUtils.getBean(SysConfigMapper.class);
         SysConfig sysConfig = sysConfigMapper.selectConfigByConfigKey("his.pay");
         FsPayConfig fsPayConfig = new Gson().fromJson(sysConfig.getConfigValue(), FsPayConfig.class);
 
-//        FsPayConfig fsPayConfig = new FsPayConfig();
-//        fsPayConfig.setAppId("wx646836bf3f7d4227");
-//        fsPayConfig.setHfProductId("KAZX");
-//        fsPayConfig.setHfSysId("6666000175632107");
-//        fsPayConfig.setHuifuId("6666000175632107");
-        //fsPayConfig.setHfRsaPrivateKey("MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCijLcYLMJEe16TS6BtEG9hUezZyYvp2qgpPVGWaaBbb6lud89ILMUC7jyTWufCo2fUQ0nJzYhVlNeMzmGFtg/zFwhkjJIkuCOW+/Koy1ow66Rom8/sNQLb82szHoeklbv17AnD7WJis7cGyy1+3E6jzfaPOB7PTzidK6KyfCWDByOt0JcGe3+6+9+loQFbFRXJ2RpWPQeN72n9FVtSKSvgkGtJNUzh/qBwMPN6ol6xcU/Z2o1sYrRfKC4tcMqccRi/DvvZFJPVlN+YqkJ6lhgAmJg7eZ2fhIgrmzqc96UKp2YUNm+1v8XHCflD9Wv94E6D2JgL4VbF4Zyf+fKYuR7pAgMBAAECggEAfy5UL6ENmuFgHSVF7y+1xdKA2+IbC60ed63XgTVB12jli15Im3MT7ngSg0TUIvERUv4W5MNgkX10rWHo4eKSViPGWE24JuzAQ+j7cuAwwCgPKh4HMAxGIWwyivuvK7JQL1kwRtEccpekc7dS8HhVO0rySBqj2JZmeGrk0HvcKciSWuMjhjT4dJUwSntD07REV6rVjrpQXuvmY40vH88uvHLdH1IcjmJs2yJRNawUNtd+8FvpOCjami7zpB+er+AQ6S2fvpljNqfE5Kadm3MvzBngDdMS3xRvMHfjCifVwFpLP0rLDP6cSn6PJWbkNYQVZi12w8+wb5f7AVlaKXnfdQKBgQDh7VC5+MOqfcUr9h/n2vhFFhQOaGAZCOBc65n8VBj9aRht8ViXFvRrIRmM+QvUbV9/7taFbtAnZXIzu+12T4vnlZv9DTsy6kKloV5923xZ4CpzIVG8crlwJz1wdALeO6M485RtRLjz6nlNKn2m2VJ1d5XFBDhIz5rWUzagPwwpwwKBgQC4L8Eyu6Yn/zQmv8l6rfAsEfUJzfYtojf1PerPYilARtgFuD20cppcOP5oAk2TTX3qaz0Y9atCfL2z2qxtrgKtw2etfhDBmT6l6+pg04SLuyTrVeZ5dxXHt+LRLJnvBbGgnvAM6rSRKdHXT0gfqiRIMw2qIUtndgRr4RK5hqcd4wKBgBYBFh620t/VFhIdC6h6VDnuV4+7rLhje+6w57OCwVhVFxMGMZmtm6qfc6yeSP+sk2OTcINYcp+TqtbNE+i1AKxSjvnLgxuHY2xcViat7OOYCKpj8WEIT3VT7RD5y5m3d0NBvhASZG0lRiE05T4N5pEYT5b7vTuiNLNxMV3UJiwfAoGBAIb2/1QEqwmN+RIX4TSTNnWkpvELSkRAJU8Akwpp/J5MC0mNqzGJ9NB1Nv7SCTRSSV04PaoHgvoSXBPpvgYUx4O6t0MrKG4ktAJzL+jJtcuKU9Bavqrs9znE5mCulRHQE0wGixJ7/dqNUWW7g7coPrPlLTMoeI+UrEK8x7LJF7ZPAoGALHvtu6zzWVeCdELIPUTersVQrH1R3yZuf6rgubg4XFw3meFcd4W8BvXm4EKGRZxdiyZvCtKlkV9u110Rx3RNSbZCOb3MClmkcow8vPIhmyGWIGymAIxr9JcD0p6HogzPvbjRsLh1nFg/+95OL2E353Bp4/oPIgYIfnYNUfD+0gA=");
-        //fsPayConfig.setHfRsaPublicKey("MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjbkiiy2ewzuPsM5uZbAFMJOBWCRRQ2RtH7Dbr9Evbow6IEyvGoen8XKpiuXzapeps3b2eogETHVFQtLooqRHpVRppFKtU1AHZXA7C6wPocfMldJbTykDCowyJwOSYEaFPBjr9cw6dQcBJMIEHj0YWjBPR1dPVzf+y4sUohbrkS/FANBpp24j+Mu0qEqh8TuVuKlvig7jbmXJiJkAmUJ+Tb3Caj20fFTen6juPd3zR/KM3twki06wZZbb4KyCiM/NwozEqJ9PkWSs6rG7aW+BEfzlo3m1a7MlL0vpKNR3f0lbywq09rFAwtA7R2lssWwLMma4LOqtMMqo3yZdv4vObQIDAQAB");
-        //fsPayConfig.setHfRsaPrivateKey("MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCijLcYLMJEe16TS6BtEG9hUezZyYvp2qgpPVGWaaBbb6lud89ILMUC7jyTWufCo2fUQ0nJzYhVlNeMzmGFtg/zFwhkjJIkuCOW+/Koy1ow66Rom8/sNQLb82szHoeklbv17AnD7WJis7cGyy1+3E6jzfaPOB7PTzidK6KyfCWDByOt0JcGe3+6+9+loQFbFRXJ2RpWPQeN72n9FVtSKSvgkGtJNUzh/qBwMPN6ol6xcU/Z2o1sYrRfKC4tcMqccRi/DvvZFJPVlN+YqkJ6lhgAmJg7eZ2fhIgrmzqc96UKp2YUNm+1v8XHCflD9Wv94E6D2JgL4VbF4Zyf+fKYuR7pAgMBAAECggEAfy5UL6ENmuFgHSVF7y+1xdKA2+IbC60ed63XgTVB12jli15Im3MT7ngSg0TUIvERUv4W5MNgkX10rWHo4eKSViPGWE24JuzAQ+j7cuAwwCgPKh4HMAxGIWwyivuvK7JQL1kwRtEccpekc7dS8HhVO0rySBqj2JZmeGrk0HvcKciSWuMjhjT4dJUwSntD07REV6rVjrpQXuvmY40vH88uvHLdH1IcjmJs2yJRNawUNtd+8FvpOCjami7zpB+er+AQ6S2fvpljNqfE5Kadm3MvzBngDdMS3xRvMHfjCifVwFpLP0rLDP6cSn6PJWbkNYQVZi12w8+wb5f7AVlaKXnfdQKBgQDh7VC5+MOqfcUr9h/n2vhFFhQOaGAZCOBc65n8VBj9aRht8ViXFvRrIRmM+QvUbV9/7taFbtAnZXIzu+12T4vnlZv9DTsy6kKloV5923xZ4CpzIVG8crlwJz1wdALeO6M485RtRLjz6nlNKn2m2VJ1d5XFBDhIz5rWUzagPwwpwwKBgQC4L8Eyu6Yn/zQmv8l6rfAsEfUJzfYtojf1PerPYilARtgFuD20cppcOP5oAk2TTX3qaz0Y9atCfL2z2qxtrgKtw2etfhDBmT6l6+pg04SLuyTrVeZ5dxXHt+LRLJnvBbGgnvAM6rSRKdHXT0gfqiRIMw2qIUtndgRr4RK5hqcd4wKBgBYBFh620t/VFhIdC6h6VDnuV4+7rLhje+6w57OCwVhVFxMGMZmtm6qfc6yeSP+sk2OTcINYcp+TqtbNE+i1AKxSjvnLgxuHY2xcViat7OOYCKpj8WEIT3VT7RD5y5m3d0NBvhASZG0lRiE05T4N5pEYT5b7vTuiNLNxMV3UJiwfAoGBAIb2/1QEqwmN+RIX4TSTNnWkpvELSkRAJU8Akwpp/J5MC0mNqzGJ9NB1Nv7SCTRSSV04PaoHgvoSXBPpvgYUx4O6t0MrKG4ktAJzL+jJtcuKU9Bavqrs9znE5mCulRHQE0wGixJ7/dqNUWW7g7coPrPlLTMoeI+UrEK8x7LJF7ZPAoGALHvtu6zzWVeCdELIPUTersVQrH1R3yZuf6rgubg4XFw3meFcd4W8BvXm4EKGRZxdiyZvCtKlkV9u110Rx3RNSbZCOb3MClmkcow8vPIhmyGWIGymAIxr9JcD0p6HogzPvbjRsLh1nFg/+95OL2E353Bp4/oPIgYIfnYNUfD+0gA=");
-        //fsPayConfig.setHfRsaPublicKey("MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjbkiiy2ewzuPsM5uZbAFMJOBWCRRQ2RtH7Dbr9Evbow6IEyvGoen8XKpiuXzapeps3b2eogETHVFQtLooqRHpVRppFKtU1AHZXA7C6wPocfMldJbTykDCowyJwOSYEaFPBjr9cw6dQcBJMIEHj0YWjBPR1dPVzf+y4sUohbrkS/FANBpp24j+Mu0qEqh8TuVuKlvig7jbmXJiJkAmUJ+Tb3Caj20fFTen6juPd3zR/KM3twki06wZZbb4KyCiM/NwozEqJ9PkWSs6rG7aW+BEfzlo3m1a7MlL0vpKNR3f0lbywq09rFAwtA7R2lssWwLMma4LOqtMMqo3yZdv4vObQIDAQAB");
-        //fsPayConfig.setHfPayNotifyUrl("https://userapp.ysya.top/ceshiname/app/hfPay/payNotifyUrl");
+        //FsPayConfig fsPayConfig = new FsPayConfig();
+        //fsPayConfig.setHfPayNotifyUrl("https://userapp.ysya.top/ceshi/app/hfPay/payNotifyUrl");
+
+
+        //互联网医院
+        //fsPayConfig.setAppId("wx646836bf3f7d4227");
+        //fsPayConfig.setHfProductId("KAZX");
+        //fsPayConfig.setHfSysId("6666000175632107");
+        //fsPayConfig.setHuifuId("6666000175632107");
         //fsPayConfig.setHfRsaPrivateKey("MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCOLOsfdbmB5qe7HTwbpxNQW0+5O6+im/7x+ZOBCf30FftYYRvnzbcsbvdBZa7745d7OgMB9Drd6vWah5Xp4uGf+tZOwGMHm6C8lphswJp3d1vPARuZulw4WSaIm+b8M2zEg+IMZiGhFC+H6fjtQm2jBz+Szvfa+MPwOzdJNcczpv56dujjz3G8Pf5aizZWjz5ovuWSSwdnmP8OAPBYhQaaBF4JyrIv5s89Vm+xIVlvvMcTo8uNf7HbKgUR27fjxyTtcJAlZUc/7XuBxNXTknxP1taiJU4XXeNpsPnLq31KwCsacPFZ5/QHvgkaDFjmImWaHUESMAFT/bkZvbV+PJvXAgMBAAECggEAYenRa3MZ9Loy3Yw+rxSbGoYoG3tdc/FW3LJywTVubcENvknye+uSsMkjAyjSH6sX0ceb9qaKO/bqeifSOKcFl7WaDdY03TJyui5EfvEN8CSFV8R9i5tqk2viO8aShzGrQJNLBBr6IgLS0RlzU4KiGtqND7/1thoIZtOBOawNqiXarFQo7i5DpsV6cZhw5Pk/JP5eQMhcVnyDmjYSKIcbCtkOmYHgxjXt79JnJBrwhHQ3gmdFO43XtuH+LPtg7tsvLetwIX1s5KdGJqXuDwFa/grFpTVa/oHZ0vebdHyNKn2WFbXEuGZP+GsudOEMRYIpyyPIJEzHmlXJs5SbYeLgUQKBgQDHEPUfOiqFg2APYtSFH751tPRRpqI0RZf9D3c/OEUXBCAEbVFocIPVexk+HNS3MXkzxTHS+ULRSCnmaSMKIcjJgX8ekatwNKzUbnXT9R4w2hSqp0vI1o9pNASe5dLQAKnp9WzyXAYeRxflQ+wb/d4xfwn4oqxti66TMBkhYpPY7QKBgQC21pYNZVADjQWKMVvbqqvHec22iTCpqmwJtD90Ze3DLI0SjJnPSeSRkMb71wNQYITH6pdFqw5KpdgxuQlefA6is3mSQ+Ovk+bCG84Ii5b2SAVUfUnknJA4OnPKn9TJs0C8BtpN7wQDKI2wTw5GGqdsDu2ly9ZpZRv/b/oM0/yDUwKBgAIINUhdUqPMRIXDr4GwYkRXVYsj1VINR9DogIIfs+zZOO5yozsasu3R9N8CclVwZtlVcP3DV6BFSVA10IrA74jHDqIkQIjDsOP2QLOqM+WxxDY9wPNK5Wnggw+QLwe6igF+ZN9QeyuB9Ed92wIqJEODFXn5RyNTIrQT8J27oOC9AoGBAIdedRZR7l3SqUlZphMLV8eGrQH6rObRYNAGffymAtVAROp44uAQa4RC1rBazv9Rlr2VOI7CSQCHrXuS7hbgbs2TZ+0dCpRSQsVwZKj7ALgzNo8JfA4gxL58uIJKt/bmGoWb5UFSN3xHKDBjN8Q7s71TiCv6sTKzQ3lp5I5e3VQ1AoGANS1iuylO0EAm5EmbzOLgHDa+qptG9pkG3eiEFO0IDXKc1Kd6haJkQJH6phePg1L6X7X/zEPuVW9EuUUWmICxRcVLlqGfuj4CAq/x8JEbpizMyD8hM+8DgnwWOHc3OY8OxgooNwlvf+zn5rLY3LkpTnPJL/AdRyQRlKaO7Jqqpc0=");
         //fsPayConfig.setHfRsaPublicKey("MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnv5W7Fwgxe6VIEAmT0scdRAv7ZjzmaRLIcsUuwwI1/1HDDfBk3oyYsPHTpsP5BpdceKfcNkowmLE4RDnTHjdGe6qWFCp/R18oKiASp/4kqeA1NYycP3Vu4AQZKMJCpqmWEwYBUl6Js033MQd575C10zdzTexvA0lggMFoM5toI13cvPD58dYqGFzmNUsv5IfUfdRmj0ul4etFpgWYSpHPWlWMV2TpR+HhrDf8/hqqYgUn1lsvFlLzeC7LyhpahgXmXv6FdJFEAQ95EsvD8OpgzRyPxpkBwHh5ogsldi+9sWYDnT2/w/fuGVELpXO3otJ1JuROyuOPx23A2aoTBnTTQIDAQAB");
 
+
+        //广珍堂
+        //fsPayConfig.setAppId("wx0d1a3dd485268521");
+        //fsPayConfig.setHfProductId("KAZX");
+        //fsPayConfig.setHfSysId("6666000177633376");
+        //fsPayConfig.setHuifuId("6666000177633376");
+        //fsPayConfig.setHfRsaPrivateKey("MIIEwAIBADANBgkqhkiG9w0BAQEFAASCBKowggSmAgEAAoIBAQDY4Qufgdlwpp/LnSP3r/3ZQpKLliKuzMGxtwECc65W+gEarFRqgMXY5hWLnJYOBnTfZf2xJB/qVZkrGV2oQMQPd5ZtjLGaLR6hUFw6SP8SXtYXIWodPKrON96+oXy9yEIxuMRGhLMDAF2dEVwQvG1i4nnPrsBwjAmBU0RKGQytOfcVvhn5imOK8aJRyfAgkITdTDV7S50soMi3uZm0oOSX4wp1VvM2yrBfdqvb1egTtWG2Arhj8FwQ0HECPN2UIWlMB0TTgU+upx/Srpvs8ETAv1DEmSslX7fOEJm5XtGdMJMFngj9b+bhEbGTqBWY3o0p8PjhSPxRsU9IT8O1F5+ZAgMBAAECggEBAKPD83HjrBxbRYiLxRAQDaATm/LZUKErrgsSxClkzr2QlGreu/Ob/0mUG6rLd6dpirDyI8myHINnVXxs8ALPvPxs8eMQ/T8NWPa4ZpwAaNMnV4Qp0CX5nISRPZo2+KmZ4RoIifUx2LaofQfQhvOARR0JJLAFJf0WUUsdZBCLr73RBmxbBS1/AQ2jc2TpislB55MuEp203mXmYX26ClPcFhgcOqxKHq7LXKn03UrxRO+vW3BDvL/1/85CR3raxiZSemUquTqZhCnN/NlaFRe3lYPoWkJzzytkMuCBaf78BfbIYZbz3L50DGNrGysvznJwpipCZ33HXhI9fmoMO2oAGAECgYEA8H5pz3yk98E7g7OzEPkwO6H1tZk+UN3ixhDWKRyUauCPk5IIvGTxUlGeRZ251y78LzsKeKDBHTGREwtd5unq1mXPEz4LFHncNuJ1s8Vsqfky8ZS/kSELTg89gjo0mUJPq8PY4S9YHnpT/li+MoXCaxGchTAD+TflvuJ9HZXp/wECgYEA5tzZEhqWCuNCNNGJMWwaHoxdl8dR9bN+g5XIk2TMA5Uum3wX6EcA5c3l75//MMUqiJFFGvpvLkvTJHmqalg/aoPSYrCvEwJ/yyEdBt+EUozq2MqaKok9WvOyc8b07ruXsn1khiURo1V128u+jdYrqjBUe/frQ+Pwxpky0GJ2OJkCgYEA30iPFtwkEf8vMW0zMOwbExKhHXTk/ZG1Da3uGId3aO+LfjiUsc2KnKI4r2vsclQmQfewFiUyhtdRWXwxN8YwidRGeRgek2k8wxxoqXsAE6PR36f6YFVsuJG/ytwdn7mIXPJdt10MlGeA+mIMXL4BrwTP7HyTA90ZCqwf+8sHUQECgYEArcARb1qrCk64CWCaTKP7lHo4Bn9w4+bPlOEqMCRwl1Gz3jmrFJo7xrkMESjtuxrpRBdxVzicbM+MfatD4v2/3L6RnM01Nq1u2MZ3PjEDOc3tAnSZSuI3VziKWjCnLvXo2eEdwwgrGi67oUzagY1rF4+ARjz0yAfJsu6iG8u/BiECgYEApgb3PAmZ+Lqep516wmtT4FtjrYaOqSeLqelIqIj9k4JT0Qzd7x4i1VVuG/fl6KAAGeVKATyb34kbLexr71owBPomvGup9EP4MwPRudIr9krEOW6Xbg0wYUs7KuMCRe6fxUViVXrrcfjovD5IEMcFPG92QhYSHMIPPRAu+lvHr+s=");
+        //fsPayConfig.setHfRsaPublicKey("MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlU1KnE5PJXCmhOIF15ioq2jOoC62lyodlPjy4ekbyKHD9H2GydvK085BUbAqYO4Iv67YIxtsSK8D6LgEQ9YvYBAF5S/bsGj+eNSLGNsOohwmRusehuhNS05+LgXGaPzVMR7KqPW0cmGl1qnV6kMDKaCBhUppI24wB9cr7+Il0sM8hVdZyC62GnY5jhoZng+dhF11pZDhK/XsaxbfBSTx6/5AVD/CtUogDMr/Bz20MvVUOrS0SnXu5KxwvvapjM59Q+gtNxbTCmcNlD++e3hkgKFCe6N8WVE9X8a1aqAm+pkyy2NRy/5mF5tbHAo8J87zgSW0dVPsXHDC5KZrCGq6IwIDAQAB");
         config=fsPayConfig;
         MerConfig merConfig = new MerConfig();
         merConfig.setProcutId(fsPayConfig.getHfProductId());
@@ -406,6 +477,8 @@ public class HuiFuServiceImpl implements HuiFuService {
 
         FsPayConfig fsPayConfig = new FsPayConfig();
         BeanUtils.copyProperties(fsHfpayConfig,fsPayConfig);
+        // 测试使用
+        //fsPayConfig.setHfPayNotifyUrl("https://userapp.ysya.top/ceshi/store/app/pay/hfPayNotify");
 
         config = fsPayConfig;
         return merConfig;

+ 4 - 0
fs-service/src/main/java/com/fs/sop/mapper/QwSopMapper.java

@@ -427,4 +427,8 @@ public interface QwSopMapper extends BaseMapper<QwSop> {
 
     @DataSource(DataSourceType.SOP)
     List<QwSop> selectAllQwSopInfo(QwSop qwSop);
+
+    @DataSource(DataSourceType.SOP)
+    @Select("SELECT DISTINCT tags FROM qw_sop")
+    List<String> selectSopTagIds();
 }

+ 16 - 0
fs-service/src/main/resources/mapper/his/FsStoreOrderMapper.xml

@@ -93,6 +93,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="orderKey"    column="order_key"    />
         <result property="isMerge"    column="is_merge"    />
         <result property="isConfirm"    column="is_confirm"    />
+        <result property="divAmount"    column="div_amount"    />
+        <result property="divHuifuId"    column="div_huifu_id"    />
+        <result property="zyyDivAmount"    column="zyy_div_amount"    />
+        <result property="zyyHuifuId"    column="zyy_huifu_id"    />
     </resultMap>
 
     <sql id="selectFsStoreOrderVo">
@@ -238,6 +242,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="orderKey != null">order_key,</if>
             <if test="isMerge != null">is_merge,</if>
             <if test="isConfirm != null">is_confirm,</if>
+            <if test="divHuifuId != null">div_huifu_id,</if>
+            <if test="divAmount != null">div_amount,</if>
+            <if test="zyyDivAmount != null">zyy_div_amount,</if>
+            <if test="zyyHuifuId != null">zyy_huifu_id,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="storeId != null">#{storeId},</if>
@@ -326,6 +334,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="orderKey != null">#{orderKey},</if>
             <if test="isMerge != null">#{isMerge},</if>
             <if test="isConfirm != null">#{isConfirm},</if>
+            <if test="divHuifuId != null">#{divHuifuId},</if>
+            <if test="zyyHuifuId != null">#{zyyHuifuId},</if>
+            <if test="divAmount != null">#{divAmount},</if>
+            <if test="zyyDivAmount != null">#{zyyDivAmount},</if>
          </trim>
     </insert>
 
@@ -419,6 +431,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="orderKey != null and orderKey != ''">order_key = #{orderKey},</if>
             <if test="isMerge != null and isMerge != ''">is_merge = #{isMerge},</if>
             <if test="isConfirm != null and isConfirm != ''">is_confirm = #{isConfirm},</if>
+            <if test="divHuifuId != null and divHuifuId != ''">div_huifu_id = #{divHuifuId},</if>
+            <if test="zyyHuifuId != null and zyyHuifuId != ''">zyy_huifu_id = #{zyyHuifuId},</if>
+            <if test="divAmount != null and divAmount != ''">div_amount = #{divAmount},</if>
+            <if test="zyyDivAmount != null and zyyDivAmount != ''">zyy_div_amount = #{zyyDivAmount},</if>
         </trim>
         where order_id = #{orderId}
     </update>

+ 5 - 1
fs-service/src/main/resources/mapper/his/FsStorePaymentMapper.xml

@@ -29,13 +29,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="payMode"    column="pay_mode"    />
         <result property="shareStatus"    column="share_status"    />
         <result property="shareCode"    column="share_code"    />
+        <result property="shareDate"    column="share_date"    />
         <result property="shareMoney"    column="share_money"    />
         <result property="isShare"    column="is_share"    />
         <result property="appId"    column="app_id"    />
     </resultMap>
 
     <sql id="selectFsStorePaymentVo">
-        select payment_id, pay_code,is_share,share_status,share_code,share_money,business_code,pay_mode, pay_type_code,company_id,company_user_id, pay_money, pay_time, create_time, trade_no, user_id, open_id, business_type, business_id, status, remark, bank_transaction_id, bank_serial_no, refund_money, refund_time, store_id,app_id from fs_store_payment
+        select payment_id, pay_code,is_share,share_status,share_code,share_date,share_money,business_code,pay_mode, pay_type_code,company_id,company_user_id, pay_money, pay_time, create_time, trade_no, user_id, open_id, business_type, business_id, status, remark, bank_transaction_id, bank_serial_no, refund_money, refund_time, store_id,app_id from fs_store_payment
     </sql>
 
     <select id="selectFsStorePaymentList" parameterType="FsStorePayment" resultMap="FsStorePaymentResult">
@@ -92,6 +93,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="payMode != null">pay_mode,</if>
             <if test="shareStatus != null">share_status,</if>
             <if test="shareCode != null">share_code,</if>
+            <if test="shareDate != null">share_date,</if>
             <if test="shareMoney != null">share_money,</if>
             <if test="isShare != null">is_share,</if>
             <if test="appId != null">app_id,</if>
@@ -120,6 +122,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="payMode != null">#{payMode},</if>
             <if test="shareStatus != null">#{shareStatus},</if>
             <if test="shareCode != null">#{shareCode},</if>
+            <if test="shareDate != null">#{shareDate},</if>
             <if test="shareMoney != null">#{shareMoney},</if>
             <if test="isShare != null">#{isShare},</if>
             <if test="appId != null">#{appId},</if>
@@ -153,6 +156,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="shareStatus != null">share_status = #{shareStatus},</if>
             <if test="shareCode != null">share_code = #{shareCode},</if>
             <if test="shareMoney != null">share_money = #{shareMoney},</if>
+            <if test="shareDate != null">share_date = #{shareDate},</if>
             <if test="isShare != null">is_share = #{isShare},</if>
             <if test="appId != null">app_id = #{appId},</if>
         </trim>

+ 28 - 1
fs-service/src/main/resources/mapper/hisStore/FsStoreOrderScrmMapper.xml

@@ -88,11 +88,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="scheduleId"    column="schedule_id"    />
         <result property="orderVisit"    column="order_visit"    />
         <result property="serviceFee"    column="service_fee"    />
+        <result property="divAmount"    column="div_amount"    />
+        <result property="divHuifuId"    column="div_huifu_id"    />
+        <result property="zyyDivAmount"    column="zyy_div_amount"    />
+        <result property="zyyHuifuId"    column="zyy_huifu_id"    />
         <!--<result property="orderMedium"    column="order_medium"    />-->
     </resultMap>
 
     <sql id="selectFsStoreOrderVo">
-        select id, order_code,service_fee, extend_order_id,pay_order_id,bank_order_id, user_id,order_visit, real_name, user_phone, user_address, cart_id, freight_price, total_num, total_price, total_postage, pay_price, pay_postage,pay_delivery,pay_money, deduction_price, coupon_id, coupon_price, paid, pay_time, pay_type, create_time, update_time, status, refund_status, refund_reason_wap_img, refund_reason_wap_explain, refund_reason_time, refund_reason_wap, refund_reason, refund_price, delivery_sn, delivery_name, delivery_type, delivery_id, gain_integral, use_integral, pay_integral, back_integral, mark, is_del, remark, cost, verify_code, store_id, shipping_type, is_channel, is_remind, is_sys_del,is_prescribe,prescribe_id ,company_id,company_user_id,is_package,package_json,item_json,order_type,package_id,finish_time,delivery_status,delivery_pay_status,delivery_time,delivery_pay_time,delivery_pay_money,tui_money,tui_money_status,delivery_import_time,tui_user_id,tui_user_money_status,order_create_type,store_house_code,dept_id,is_edit_money,customer_id,is_pay_remain,delivery_send_time,certificates,schedule_id from fs_store_order_scrm
+        select id, order_code,service_fee, extend_order_id,pay_order_id,bank_order_id,
+               user_id,order_visit, real_name, user_phone, user_address, cart_id, freight_price,
+               total_num, total_price, total_postage, pay_price, pay_postage,pay_delivery,pay_money,
+               deduction_price, coupon_id, coupon_price, paid, pay_time, pay_type, create_time, update_time,
+               status, refund_status, refund_reason_wap_img, refund_reason_wap_explain, refund_reason_time,
+               refund_reason_wap, refund_reason, refund_price, delivery_sn, delivery_name, delivery_type,
+               delivery_id, gain_integral, use_integral, pay_integral, back_integral, mark, is_del, remark, cost,
+               verify_code, store_id, shipping_type, is_channel, is_remind, is_sys_del,is_prescribe,prescribe_id ,
+               company_id,company_user_id,is_package,package_json,item_json,order_type,package_id,finish_time,delivery_status,
+               delivery_pay_status,delivery_time,delivery_pay_time,delivery_pay_money,tui_money,tui_money_status,delivery_import_time,
+               tui_user_id,tui_user_money_status,order_create_type,store_house_code,dept_id,is_edit_money,customer_id,is_pay_remain,
+               delivery_send_time,certificates,schedule_id,div_amount, div_huifu_id,zyy_div_amount,zyy_huifu_id from fs_store_order_scrm
     </sql>
 
     <select id="selectFsStoreOrderList" parameterType="FsStoreOrderScrm" resultMap="FsStoreOrderResult">
@@ -248,6 +263,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="followTime != null">follow_time,</if>
             <if test="followDoctorId != null">follow_doctor_id,</if>
             <if test="cycle != null">cycle,</if>
+            <if test="divHuifuId != null">div_huifu_id,</if>
+            <if test="divAmount != null">div_amount,</if>
+            <if test="zyyDivAmount != null">zyy_div_amount,</if>
+            <if test="zyyHuifuId != null">zyy_huifu_id,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="orderCode != null and orderCode != ''">#{orderCode},</if>
@@ -333,6 +352,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="prescribePrice != null">#{prescribePrice},</if>
             <if test="followTime != null">#{followTime},</if>
             <if test="followDoctorId != null">#{followDoctorId},</if>
+            <if test="divHuifuId != null">#{divHuifuId},</if>
+            <if test="zyyHuifuId != null">#{zyyHuifuId},</if>
+            <if test="divAmount != null">#{divAmount},</if>
+            <if test="zyyDivAmount != null">#{zyyDivAmount},</if>
             <if test="cycle != null">#{cycle},</if>
          </trim>
     </insert>
@@ -427,6 +450,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="followDoctorId != null">follow_doctor_id = #{followDoctorId},</if>
             <if test="cycle != null">cycle = #{cycle},</if>
             <if test="isMerge != null and isMerge != ''">is_merge = #{isMerge},</if>
+            <if test="divHuifuId != null and divHuifuId != ''">div_huifu_id = #{divHuifuId},</if>
+            <if test="zyyHuifuId != null and zyyHuifuId != ''">zyy_huifu_id = #{zyyHuifuId},</if>
+            <if test="divAmount != null and divAmount != ''">div_amount = #{divAmount},</if>
+            <if test="zyyDivAmount != null and zyyDivAmount != ''">zyy_div_amount = #{zyyDivAmount},</if>
         </trim>
         where id = #{id}
     </update>

+ 21 - 1
fs-service/src/main/resources/mapper/hisStore/FsStorePaymentScrmMapper.xml

@@ -28,10 +28,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="orderId"    column="order_id"    />
         <result property="isPayRemain"    column="is_pay_remain"    />
         <result property="payMode"    column="pay_mode"    />
+        <result property="shareStatus"    column="share_status"    />
+        <result property="shareCode"    column="share_code"    />
+        <result property="shareDate"    column="share_date"    />
+        <result property="shareMoney"    column="share_money"    />
+        <result property="isShare"    column="is_share"    />
     </resultMap>
 
     <sql id="selectFsStorePaymentVo">
-        select payment_id,pay_mode, pay_code, pay_type_code, pay_money, pay_time, create_time, trade_no, user_id, open_id, business_type, business_order_id, status,remark,company_id,company_user_id,dept_id,bank_transaction_id,bank_serial_no,refund_money,refund_time,order_id,is_pay_remain from fs_store_payment_scrm
+        select payment_id,pay_mode, pay_code,is_share,share_status,share_code,share_date,share_money,pay_type_code, pay_money, pay_time, create_time, trade_no, user_id, open_id, business_type, business_order_id, status,remark,company_id,company_user_id,dept_id,bank_transaction_id,bank_serial_no,refund_money,refund_time,order_id,is_pay_remain from fs_store_payment_scrm
 
     </sql>
 
@@ -87,6 +92,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="refundTime != null">refund_time,</if>
             <if test="orderId != null">order_id,</if>
             <if test="isPayRemain != null">is_pay_remain,</if>
+            <if test="shareStatus != null">share_status,</if>
+            <if test="shareCode != null">share_code,</if>
+            <if test="shareDate != null">share_date,</if>
+            <if test="shareMoney != null">share_money,</if>
+            <if test="isShare != null">is_share,</if>
             <if test="payMode != null">pay_mode,</if>
             <if test="appId != null">app_id,</if>
         </trim>
@@ -112,6 +122,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="refundTime != null">#{refundTime},</if>
             <if test="orderId != null">#{orderId},</if>
             <if test="isPayRemain != null">#{isPayRemain},</if>
+            <if test="shareStatus != null">#{shareStatus},</if>
+            <if test="shareCode != null">#{shareCode},</if>
+            <if test="shareDate != null">#{shareDate},</if>
+            <if test="shareMoney != null">#{shareMoney},</if>
+            <if test="isShare != null">#{isShare},</if>
             <if test="payMode != null">#{payMode},</if>
             <if test="appId != null">#{appId},</if>
         </trim>
@@ -141,6 +156,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="refundTime != null">refund_time = #{refundTime},</if>
             <if test="orderId != null">order_id = #{orderId},</if>
             <if test="isPayRemain != null">is_pay_remain = #{isPayRemain},</if>
+            <if test="shareStatus != null">share_status = #{shareStatus},</if>
+            <if test="shareCode != null">share_code = #{shareCode},</if>
+            <if test="shareMoney != null">share_money = #{shareMoney},</if>
+            <if test="shareDate != null">share_date = #{shareDate},</if>
+            <if test="isShare != null">is_share = #{isShare},</if>
             <if test="payMode != null">pay_mode = #{payMode},</if>
             <if test="appId != null">app_id = #{appId},</if>
         </trim>

+ 42 - 42
fs-user-app/src/main/java/com/fs/app/controller/HuifuPayController.java

@@ -105,48 +105,48 @@ public class HuifuPayController {
         return "ok";
     }
 
-    @GetMapping("/confirm")
-    public R confirm (@RequestParam("data") String data){
-        HuiFuResult huiFuResult = JSON.parseObject(data, HuiFuResult.class);
-        if(huiFuResult == null) {
-            return R.error("参数错误");
-        }
-        HuifuOrderConfirm confirm = new HuifuOrderConfirm();
-        confirm.setOrgReqDate(huiFuResult.getReq_date());
-        confirm.setOrgReqSeqId(huiFuResult.getReq_seq_id());
-
-        //获取缓存中已分账的商户号
-        String alOtherHuifuId  = redisCache.getCacheObject("huifuId");
-
-        //获取其它商户号数据
-        List<String> huifuIDs;
-        if (StringUtils.isNotEmpty(alOtherHuifuId)) {
-            huifuIDs = hfpayConfigMapper.selectByHuifuId(alOtherHuifuId);
-        } else {
-            huifuIDs = hfpayConfigMapper.selectHuifuId();
-        }
-        //随机分账商户号
-        String[] huifuIds = huifuIDs.toArray(new String[0]);
-        int i = (int) (Math.random() * huifuIDs.size());
-        String otherHuifuId = huifuIds[i];
-        //存入或覆盖已分账的商户
-        redisCache.setCacheObject("huifuId",otherHuifuId);
-
-        //益寿缘分账金额数据(益寿缘主体分账20%)
-        BigDecimal ysyAmount = new BigDecimal(huiFuResult.getTrans_amt()).multiply(new BigDecimal("0.2"));
-        //6666000175632107(益寿缘互联网商户号)
-        confirm.setYsyHuifuId("6666000175632107");
-        confirm.setYsyDivAmt(ysyAmount.toString());
-
-        //其它商户分账数据
-        confirm.setDivHuifuId(otherHuifuId);
-        //其它分账金额 = 交易金额 - 益寿缘账金额
-        confirm.setDivAmt((new BigDecimal(huiFuResult.getTrans_amt()).subtract(ysyAmount)).toString());
-
-
-        HuifuOrderConfirmResult result = huiFuService.confirmOrder(confirm);
-        return R.ok().put("result", result);
-    }
+//    @GetMapping("/confirm")
+//    public R confirm (@RequestParam("data") String data){
+//        HuiFuResult huiFuResult = JSON.parseObject(data, HuiFuResult.class);
+//        if(huiFuResult == null) {
+//            return R.error("参数错误");
+//        }
+//        HuifuOrderConfirm confirm = new HuifuOrderConfirm();
+//        confirm.setOrgReqDate(huiFuResult.getReq_date());
+//        confirm.setOrgReqSeqId(huiFuResult.getReq_seq_id());
+//
+//        //获取缓存中已分账的商户号
+//        String alOtherHuifuId  = redisCache.getCacheObject("huifuId");
+//
+//        //获取其它商户号数据
+//        List<String> huifuIDs;
+//        if (StringUtils.isNotEmpty(alOtherHuifuId)) {
+//            huifuIDs = hfpayConfigMapper.selectByHuifuId(alOtherHuifuId);
+//        } else {
+//            huifuIDs = hfpayConfigMapper.selectHuifuId();
+//        }
+//        //随机分账商户号
+//        String[] huifuIds = huifuIDs.toArray(new String[0]);
+//        int i = (int) (Math.random() * huifuIDs.size());
+//        String otherHuifuId = huifuIds[i];
+//        //存入或覆盖已分账的商户
+//        redisCache.setCacheObject("huifuId",otherHuifuId);
+//
+//        //益寿缘分账金额数据(益寿缘主体分账20%)
+//        BigDecimal ysyAmount = new BigDecimal(huiFuResult.getTrans_amt()).multiply(new BigDecimal("0.2"));
+//        //6666000175632107(益寿缘互联网商户号)
+//        confirm.setYsyHuifuId("6666000175632107");
+//        confirm.setYsyDivAmt(ysyAmount.toString());
+//
+//        //其它商户分账数据
+//        confirm.setDivHuifuId(otherHuifuId);
+//        //其它分账金额 = 交易金额 - 益寿缘账金额
+//        confirm.setDivAmt((new BigDecimal(huiFuResult.getTrans_amt()).subtract(ysyAmount)).toString());
+//
+//
+//        HuifuOrderConfirmResult result = huiFuService.confirmOrder(confirm);
+//        return R.ok().put("result", result);
+//    }
 
     public static void main(String[] args) {
         List<String> list = new ArrayList<>();