Procházet zdrojové kódy

1.生成初诊单 2.修改汇付支付 3.修改汇付支付传参

wjj před 3 dny
rodič
revize
c8954954fc

+ 1 - 0
fs-service/src/main/java/com/fs/course/param/FsUserCourseOrderDoPayParam.java

@@ -10,4 +10,5 @@ public class FsUserCourseOrderDoPayParam implements Serializable {
     @NotNull(message = "订单号不能为空")
     Long orderId;
     Long userId;
+    private String appId;
 }

+ 1 - 0
fs-service/src/main/java/com/fs/course/param/FsUserVipOrderPayUParam.java

@@ -11,4 +11,5 @@ public class FsUserVipOrderPayUParam implements Serializable {
    private Long userId;
    @NotNull(message = "orderId不能为空")
    private Long orderId;
+   private String appId;
 }

+ 1 - 0
fs-service/src/main/java/com/fs/course/service/impl/FsCourseProductOrderServiceImpl.java

@@ -424,6 +424,7 @@ public class FsCourseProductOrderServiceImpl extends ServiceImpl<FsCourseProduct
                         o.setOpenid(fsUserWx.getOpenId());
                         o.setReqSeqId("product-"+storePayment.getPayCode());
                         o.setTransAmt(storePayment.getPayMoney().toString());
+                        o.setAppId(param.getAppId());
                         o.setGoodsDesc("拍商品订单支付");
                         HuifuCreateOrderResult result = huiFuService.createOrder(o);
                         logger.info("创建汇付支付:"+result);

+ 1 - 0
fs-service/src/main/java/com/fs/course/service/impl/FsUserCourseOrderServiceImpl.java

@@ -487,6 +487,7 @@ public class FsUserCourseOrderServiceImpl implements IFsUserCourseOrderService
                         o.setReqSeqId("course-" + storePayment.getPayCode());
                         o.setTransAmt(storePayment.getPayMoney().toString());
                         o.setGoodsDesc("课程订单支付");
+                        o.setAppId(param.getAppId());
                         HuifuCreateOrderResult result = huiFuService.createOrder(o);
                         FsStorePayment mt = new FsStorePayment();
                         mt.setPaymentId(storePayment.getPaymentId());

+ 1 - 0
fs-service/src/main/java/com/fs/course/service/impl/FsUserVipOrderServiceImpl.java

@@ -346,6 +346,7 @@ public class FsUserVipOrderServiceImpl implements IFsUserVipOrderService
                         o.setReqSeqId("appvip-" + storePayment.getPayCode());
                         o.setTransAmt(storePayment.getPayMoney().toString());
                         o.setGoodsDesc("会员开通订单支付");
+                        o.setAppId(param.getAppId());
                         HuifuCreateOrderResult result = huiFuService.createOrder(o);
                         FsStorePayment mt = new FsStorePayment();
                         mt.setPaymentId(storePayment.getPaymentId());

+ 4 - 0
fs-service/src/main/java/com/fs/his/mapper/FsHfpayConfigMapper.java

@@ -3,6 +3,7 @@ package com.fs.his.mapper;
 import java.util.List;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.fs.his.domain.FsHfpayConfig;
+import org.apache.ibatis.annotations.Select;
 
 /**
  * 汇付多支付配置Mapper接口
@@ -58,4 +59,7 @@ public interface FsHfpayConfigMapper extends BaseMapper<FsHfpayConfig>{
      * @return 结果
      */
     int deleteFsHfpayConfigByIds(Long[] ids);
+
+    @Select("select * from fs_hfpay_config where app_id = #{appId} limit 1")
+    FsHfpayConfig selectByAppId(String appId);
 }

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

@@ -1248,6 +1248,7 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
                         o.setReqSeqId("package-"+storePayment.getPayCode());
                         o.setTransAmt(storePayment.getPayMoney().toString());
                         o.setGoodsDesc("套餐包订单支付");
+                        o.setAppId(param.getAppId());
                         HuifuCreateOrderResult result = huiFuService.createOrder(o);
                         logger.info("创建汇付支付:"+result);
                         FsStorePayment mt=new FsStorePayment();

+ 2 - 0
fs-service/src/main/java/com/fs/his/service/impl/FsStoreOrderServiceImpl.java

@@ -2798,6 +2798,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
                         o.setReqSeqId("store-" + storePayment.getPayCode());
                         o.setTransAmt(storePayment.getPayMoney().toString());
                         o.setGoodsDesc("药品订单支付");
+                        o.setAppId(param.getAppId());
                         HuifuCreateOrderResult result = huiFuService.createOrder(o);
                         FsStorePayment mt = new FsStorePayment();
                         mt.setPaymentId(storePayment.getPaymentId());
@@ -2886,6 +2887,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
                         o.setReqSeqId("store-" + storePayment.getPayCode());
                         o.setTransAmt(storePayment.getPayMoney().toString());
                         o.setGoodsDesc("药品订单支付");
+                        o.setAppId(param.getAppId());
                         HuifuCreateOrderResult result = huiFuService.createOrder(o);
                         FsStorePayment mt = new FsStorePayment();
                         mt.setPaymentId(storePayment.getPaymentId());

+ 2 - 0
fs-service/src/main/java/com/fs/hisStore/param/FsStoreOrderPayParam.java

@@ -16,4 +16,6 @@ public class FsStoreOrderPayParam implements Serializable
     @ApiModelProperty(value = "payType")
     @NotNull(message = "支付类型不能为空")
     private Integer payType;
+
+    private String appId;
 }

+ 33 - 1
fs-service/src/main/java/com/fs/huifuPay/service/impl/HuiFuServiceImpl.java

@@ -5,7 +5,9 @@ import com.alibaba.fastjson.JSONObject;
 import com.fs.common.exception.CustomException;
 import com.fs.common.utils.StringUtils;
 import com.fs.common.utils.spring.SpringUtils;
+import com.fs.his.domain.FsHfpayConfig;
 import com.fs.his.domain.FsPayConfig;
+import com.fs.his.mapper.FsHfpayConfigMapper;
 import com.fs.huifuPay.domain.*;
 import com.fs.huifuPay.sdk.opps.core.config.MerConfig;
 import com.fs.huifuPay.sdk.opps.core.request.*;
@@ -19,6 +21,7 @@ import com.google.gson.Gson;
 import io.lettuce.core.ScriptOutputType;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
@@ -37,9 +40,23 @@ public class HuiFuServiceImpl implements HuiFuService {
 
     @Override
     public HuifuCreateOrderResult createOrder(HuiFuCreateOrder order) {
+        logger.info("汇付传参HuiFuCreateOrder==============>{}",order);
         HuifuCreateOrderResult huifuCreateOrderResult =null;
         try {
-            doInit(getMerConfig());
+
+            if (order.getAppId() != null) {
+                FsHfpayConfigMapper fsHfpayConfigMapper = SpringUtils.getBean(FsHfpayConfigMapper.class);
+                FsHfpayConfig fsHfpayConfig = fsHfpayConfigMapper.selectByAppId(order.getAppId());
+                if (fsHfpayConfig != null) {
+                    //多汇付支付获取配置
+                    doInit(getMerConfig(fsHfpayConfig));
+                } else {
+                    //多小程序
+                    doInit(getMerConfig());
+                }
+            } else {
+                doInit(getMerConfig());
+            }
             V2TradePaymentJspayRequest request = new V2TradePaymentJspayRequest();
             request.setReqDate(DateTools.getCurrentDateYYYYMMDD());
             request.setReqSeqId(order.getReqSeqId());
@@ -290,4 +307,19 @@ public class HuiFuServiceImpl implements HuiFuService {
         merConfig.setHuifuId(fsPayConfig.getHuifuId());
         return merConfig;
     }
+
+    public MerConfig getMerConfig(FsHfpayConfig fsHfpayConfig) {
+        MerConfig merConfig = new MerConfig();
+        merConfig.setProcutId(fsHfpayConfig.getHfProductId());
+        merConfig.setSysId(fsHfpayConfig.getHfSysId());
+        merConfig.setRsaPrivateKey(fsHfpayConfig.getHfRsaPrivateKey());
+        merConfig.setRsaPublicKey(fsHfpayConfig.getHfRsaPublicKey());
+        merConfig.setHuifuId(fsHfpayConfig.getHuifuId());
+
+        FsPayConfig fsPayConfig = new FsPayConfig();
+        BeanUtils.copyProperties(fsHfpayConfig,fsPayConfig);
+
+        config = fsPayConfig;
+        return merConfig;
+    }
 }

+ 2 - 0
fs-service/src/main/java/com/fs/qw/domain/QwExternalContactInfo.java

@@ -147,4 +147,6 @@ public class QwExternalContactInfo extends BaseEntity
     private String diseaseTalk;
     @Excel(name = "渠道类型")
     private String channelType;
+    @Excel(name = "手机号")
+    private String phone;
 }

+ 9 - 0
fs-service/src/main/java/com/fs/qw/service/IQwExternalContactInfoService.java

@@ -69,4 +69,13 @@ public interface IQwExternalContactInfoService
     int updateQwExternalContactInfoByQwUserId(Long id);
 
     void updateQwExternalContactInfoByExternalContactId(QwExternalContactInfo qwExternalContactInfo);
+
+    /**
+     * 生成初诊单
+     * @param exId 外部联系人id
+     * @param companyUserId 销售id
+     * @param userId 用户id
+     * @return 是否生成初诊单
+     */
+    Boolean generateDiagnosis(Long exId,Long companyUserId,Long userId);
 }

+ 60 - 0
fs-service/src/main/java/com/fs/qw/service/impl/QwExternalContactInfoServiceImpl.java

@@ -1,10 +1,19 @@
 package com.fs.qw.service.impl;
 
+import com.fs.common.exception.CustomException;
 import com.fs.common.utils.DateUtils;
+import com.fs.company.domain.CompanyUser;
+import com.fs.company.service.ICompanyUserService;
+import com.fs.his.domain.FsFirstDiagnosis;
+import com.fs.his.domain.FsUser;
+import com.fs.his.mapper.FsFirstDiagnosisMapper;
+import com.fs.his.service.IFsUserService;
 import com.fs.qw.domain.QwExternalContactInfo;
 import com.fs.qw.mapper.QwExternalContactInfoMapper;
 import com.fs.qw.mapper.QwExternalContactMapper;
 import com.fs.qw.service.IQwExternalContactInfoService;
+import lombok.extern.slf4j.Slf4j;
+import org.jetbrains.annotations.NotNull;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
@@ -18,6 +27,7 @@ import java.util.List;
  * @author fs
  * @date 2024-11-22
  */
+@Slf4j
 @Service
 public class QwExternalContactInfoServiceImpl implements IQwExternalContactInfoService
 {
@@ -25,6 +35,12 @@ public class QwExternalContactInfoServiceImpl implements IQwExternalContactInfoS
     private QwExternalContactInfoMapper qwExternalContactInfoMapper;
     @Autowired
     QwExternalContactMapper qwExternalContactMapper;
+    @Autowired
+    private ICompanyUserService companyUserService;
+    @Autowired
+    private IFsUserService userService;
+    @Autowired
+    private FsFirstDiagnosisMapper diagnosisMapper;
     /**
      * 查询外部联系人信息表
      *
@@ -141,4 +157,48 @@ public class QwExternalContactInfoServiceImpl implements IQwExternalContactInfoS
     public void updateQwExternalContactInfoByExternalContactId(QwExternalContactInfo qwExternalContactInfo) {
         qwExternalContactInfoMapper.updateQwExternalContactInfoByExternalContactId(qwExternalContactInfo);
     }
+
+    @Override
+    public Boolean generateDiagnosis(Long exId, Long companyUserId, Long userId) {
+        log.info("生成初诊单参数=============>exId:{},companyUserId:{},userId:{}", exId, companyUserId, userId);
+        if (exId == null || companyUserId == null || userId == null) {
+            throw new CustomException("参数异常");
+        }
+        QwExternalContactInfo qwExternalContactInfo = qwExternalContactInfoMapper.selectQwExternalContactInfoByExternalContactId(exId);
+        if (qwExternalContactInfo == null) {
+            throw new CustomException("外部联系人信息不存在");
+        }
+        log.info("外部联系人信息:{}", qwExternalContactInfo);
+        CompanyUser companyUser = companyUserService.selectCompanyUserById(companyUserId);
+        if (companyUser == null) {
+            throw new CustomException("公司用户信息不存在");
+        }
+        log.info("销售信息:{}", companyUser);
+        FsUser fsUser = userService.selectFsUserByUserId(userId);
+        if (fsUser == null) {
+            throw new CustomException("用户信息不存在");
+        }
+        log.info("用户信息:{}", fsUser);
+        FsFirstDiagnosis diagnosis = getFsFirstDiagnosis(companyUserId, userId, qwExternalContactInfo);
+        int i = diagnosisMapper.insertFsFirstDiagnosis(diagnosis);
+        return i > 0;
+    }
+
+    private static @NotNull FsFirstDiagnosis getFsFirstDiagnosis(Long companyUserId, Long userId, QwExternalContactInfo qwExternalContactInfo) {
+        FsFirstDiagnosis diagnosis = new FsFirstDiagnosis();
+        diagnosis.setUserId(userId);
+        diagnosis.setQwUserId(companyUserId);
+        diagnosis.setAge(qwExternalContactInfo.getAge());
+        long sex = 0L;
+        if ("男".equals(qwExternalContactInfo.getSex())) {
+            sex = 1L;
+        } else if ("女".equals(qwExternalContactInfo.getSex())) {
+            sex = 2L;
+        }
+        diagnosis.setGender(sex);
+        diagnosis.setPhone(qwExternalContactInfo.getPhone());
+        diagnosis.setPatientName(qwExternalContactInfo.getName());
+        diagnosis.setPhysicalCondition(qwExternalContactInfo.getBody());
+        return diagnosis;
+    }
 }

+ 1 - 0
fs-user-app/src/main/java/com/fs/app/controller/InquiryOrderController.java

@@ -397,6 +397,7 @@ public class InquiryOrderController extends  AppBaseController {
                     o.setOpenid(openId);
                     o.setReqSeqId("inquiry-"+storePayment.getPayCode());
                     o.setTransAmt(storePayment.getPayMoney().toString());
+                    o.setAppId(param.getAppId());
                     o.setGoodsDesc("问诊订单支付");
                     HuifuCreateOrderResult result = huiFuService.createOrder(o);
                     FsStorePayment mt=new FsStorePayment();

+ 1 - 0
fs-user-app/src/main/java/com/fs/app/controller/store/StoreOrderScrmController.java

@@ -360,6 +360,7 @@ public class StoreOrderScrmController extends AppBaseController {
                     o.setReqSeqId("store-"+storePayment.getPayCode());
                     o.setTransAmt(storePayment.getPayMoney().toString());
                     o.setGoodsDesc("商城订单支付");
+                    o.setAppId(param.getAppId());
                     HuifuCreateOrderResult result = huiFuService.createOrder(o);
                     if(result.getResp_code()!=null&&(result.getResp_code().equals("00000000")||result.getResp_code().equals("00000100"))){
                         FsStorePaymentScrm mt=new FsStorePaymentScrm();