Browse Source

疗法制单

wjj 3 tuần trước cách đây
mục cha
commit
be7ce30d03

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

@@ -265,5 +265,6 @@ public class FsStoreOrder extends BaseEntity
     private Integer source;
     private BigDecimal billPrice;
     private String erpPhone;
+    private String orderKey;
 
 }

+ 1 - 1
fs-service/src/main/java/com/fs/his/mapper/FsStoreOrderMapper.java

@@ -190,7 +190,7 @@ public interface FsStoreOrderMapper
     List<FsStoreOrderLogs> selectFsFsStoreOrderLogsList(String orderId);
 
     @Select({"<script> " +
-            "select o.order_id,o.bill_price,o.create_time,o.order_code,o.pay_price,o.status,o.delivery_sn,o.finish_time,o.item_json  from fs_store_order o    " +
+            "select o.order_id,o.bill_price,o.create_time,o.order_code,o.pay_price,o.status,o.delivery_sn,o.finish_time,o.item_json ,o.order_key from fs_store_order o    " +
             "where 1=1  " +
             "<if test = ' maps.userId != null '> " +
             "and o.user_id = #{maps.userId} " +

+ 1 - 0
fs-service/src/main/java/com/fs/his/param/CreatePackageOrderParam.java

@@ -10,4 +10,5 @@ public class CreatePackageOrderParam {
     private FsPatient patient;
     private Long packageId;
     private String jsonInfo;
+    private String createPackageOrderKey;
 }

+ 2 - 0
fs-service/src/main/java/com/fs/his/param/FsStoreOrderComputeParam.java

@@ -9,4 +9,6 @@ public class FsStoreOrderComputeParam implements Serializable {
     Long orderId;
     Long userCouponId;
 
+    private String orderKey;
+
 }

+ 1 - 0
fs-service/src/main/java/com/fs/his/param/FsStoreOrderPayParam.java

@@ -13,4 +13,5 @@ public class FsStoreOrderPayParam   implements Serializable {
     Long userCouponId;
     String remark;
     Long userId;
+    String orderKey;
 }

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

@@ -271,5 +271,5 @@ public interface IFsStoreOrderService
 
     FsStoreOrderScrm selectFsStoreOrderScrmByOrderCode(String soId);
 
-    FsStoreOrder confirmOrder(FsPackageOrder packageOrder,Long doctorId);
+    FsStoreOrder confirmOrder(FsPackageOrder packageOrder,String createOrderKey);
 }

+ 48 - 5
fs-service/src/main/java/com/fs/his/service/impl/FsPackageOrderServiceImpl.java

@@ -167,6 +167,8 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
     @Autowired
     private CloudHostProper cloudHostProper;
 
+    @Autowired
+    private IFsPrescribeService prescribeService;
     /**
      * 查询套餐订单
      *
@@ -491,6 +493,7 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
         return moneys;
     }
     @Override
+    @Transactional
     public R createOrder(FsPackageOrderCreateParam param) {
         FsUser user=userService.selectFsUserByUserId(param.getUserId());
         if(user.getStatus()!=1){
@@ -617,9 +620,23 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
         order.setCycle(fsPackage.getCycle());
         order.setCostDiscountMoney(fsPackage.getTotalCostPrice().subtract(fsPackage.getTotalPrice()));
         if(fsPackageOrderMapper.insertFsPackageOrder(order)>0){
+            FsStoreOrder fsStoreOrder = null;
+            String key = redisCache.getCacheObject("createPackageOrderKey:" + param.getCreatePackageOrderKey());
+            if (StringUtils.isNotEmpty(key) && (fsPackage.getProductType()==1 || fsPackage.getProductType()==2)) {
+                //中药西药创建处方订单
+                fsStoreOrder = storeOrderService.confirmOrder(order,  param.getCreatePackageOrderKey());
+                //修改患者所属会员
+                FsPatient map = new FsPatient();
+                map.setPatientId(param.getPatientId());
+                map.setUserId(param.getUserId());
+                fsPatientMapper.updateFsPatient(map);
+                redisCache.setCacheObject("storeOrder:" + param.getCreatePackageOrderKey(), fsStoreOrder, 24, TimeUnit.HOURS);
+                redisCache.setCacheObject("userStatus:" + param.getCreatePackageOrderKey(), true, 24, TimeUnit.HOURS);
+            }
+
             String redisKey = String.valueOf(StrUtil.format("{}{}", FsConstants.REDIS_PACKAGE_ORDER_UNPAY, order.getOrderId()));
             redisCache.setCacheObject(redisKey,order.getOrderId(),30, TimeUnit.MINUTES);
-            return R.ok().put("order",order);
+            return R.ok().put("order",order).put("storeOrder",fsStoreOrder);
         }
         else{
             return R.error("创建失败");
@@ -1765,6 +1782,8 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
         redisCache.setCacheObject("package:" + uuid, fsPackage, 24, TimeUnit.HOURS);
         redisCache.setCacheObject("json:" + uuid, json, 24, TimeUnit.HOURS);
         redisCache.setCacheObject("patient:" + uuid, patient, 24, TimeUnit.HOURS);
+        redisCache.setCacheObject("userStatus:" + uuid, false, 24, TimeUnit.HOURS);
+        redisCache.setCacheObject("storeOrder:" + uuid, null, 24, TimeUnit.HOURS);
         BigDecimal price = fsPackage.getTotalPrice();
         if (price == null){
             price = BigDecimal.ZERO;
@@ -1782,9 +1801,9 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
             if (payAmount == null) {
                 return R.error("请输入代收金额");
             }
-            if (payAmount.compareTo(new BigDecimal(100)) < 0) {
-                throw new CustomException("物流代收金额应大于等于100");
-            }
+//            if (payAmount.compareTo(new BigDecimal(100)) < 0) {
+//                throw new CustomException("物流代收金额应大于等于100");
+//            }
         }
         String key = redisCache.getCacheObject("createPackageOrderKey:" + createPackageOrderKey);
         if (StringUtils.isEmpty(key)) {
@@ -1816,9 +1835,33 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
         FsPatient fsPatient = redisCache.getCacheObject("patient:" + createPackageOrderKey);
         BigDecimal money = redisCache.getCacheObject("createPackageOrderMoney:" + createPackageOrderKey);
         Integer payType = redisCache.getCacheObject("createPackageOrderPayType:" + createPackageOrderKey);
+        FsStoreOrder storeOrder = redisCache.getCacheObject("storeOrder:" + createPackageOrderKey);
+        boolean userStatus = redisCache.getCacheObject("userStatus:" + createPackageOrderKey);
         if (payType != null && payType == 2) {
             money = redisCache.getCacheObject("createPackageOrderAmount:" + createPackageOrderKey);
         }
-        return R.ok().put("package", fsPackage).put("money", money).put("payType", payType).put("jsonInfo",json).put("fsPatient",fsPatient);
+        boolean doctorStatus = false;
+        String signUrl = null;
+        if (storeOrder != null) {
+            if (storeOrder.getPrescribeId() != null) {
+                FsPrescribe fsPrescribe = prescribeService.selectFsPrescribeByPrescribeId(storeOrder.getPrescribeId());
+                if (fsPrescribe != null) {
+                    if (fsPrescribe.getDoctorConfirm() == 1) {
+                        doctorStatus =  true;
+                    }
+                    signUrl = fsPrescribe.getPrescribeImgUrl();
+                }
+            }
+        }
+        return R.ok()
+                .put("package", fsPackage)
+                .put("money", money)
+                .put("payType", payType)
+                .put("jsonInfo",json)
+                .put("fsPatient",fsPatient)
+                .put("userStatus",userStatus)
+                .put("storeOrder",storeOrder)
+                .put("doctorStatus",doctorStatus)
+                .put("signUrl",signUrl);
     }
 }

+ 200 - 14
fs-service/src/main/java/com/fs/his/service/impl/FsStoreOrderServiceImpl.java

@@ -288,6 +288,9 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
     @Autowired
     private com.fs.gtPush.service.uniPush2Service uniPush2Service;
 
+    @Autowired
+    private IFsPackageOrderService packageOrderService;
+
     /**
      * 查询订单
      *
@@ -1255,6 +1258,10 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
                 data.put("payMoney", order.getPayPrice());
                 data.put("discountMoney", new BigDecimal(0));
             }
+            if (StringUtils.isNotEmpty(param.getOrderKey())) {
+                data.put("payMoney", order.getPayMoney());
+                data.put("discountMoney", order.getDiscountMoney());
+            }
             return R.ok().put("data", data);
 
         } else {
@@ -1275,6 +1282,8 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
             return R.error("订单状态不正确");
         }
         FsStoreOrder storeOrder = new FsStoreOrder();
+        FsStoreOrder map = new FsStoreOrder();
+        map.setOrderId(param.getOrderId());
         storeOrder.setOrderId(param.getOrderId());
         if (StringUtils.isEmpty(order.getUserName())) {
             if (param.getAddressId() != null && param.getAddressId() > 0) {
@@ -1283,6 +1292,9 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
                     storeOrder.setUserName(address.getRealName().trim());
                     storeOrder.setUserPhone(address.getPhone().trim());
                     storeOrder.setUserAddress(address.getProvince() + " " + address.getCity() + " " + address.getDistrict() + " " + address.getDetail());
+                    map.setUserAddress(address.getProvince() + " " + address.getCity() + " " + address.getDistrict() + " " + address.getDetail());
+                    map.setUserName(address.getRealName().trim());
+                    map.setUserPhone(address.getPhone().trim());
                 }
             } else {
                 return R.error("收货地址不能为空");
@@ -1295,7 +1307,9 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
                     storeOrder.setUserName(address.getRealName().trim());
                     storeOrder.setUserPhone(address.getPhone().trim());
                     storeOrder.setUserAddress(address.getProvince() + address.getCity() + address.getDistrict() + address.getDetail());
-
+                    map.setUserAddress(address.getProvince() + " " + address.getCity() + " " + address.getDistrict() + " " + address.getDetail());
+                    map.setUserName(address.getRealName().trim());
+                    map.setUserPhone(address.getPhone().trim());
                 }
             }
         }
@@ -1354,8 +1368,11 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
             storeOrder.setDiscountMoney(discountMoney);
 
         }
-        fsStoreOrderMapper.updateFsStoreOrder(storeOrder);
-
+        if (StringUtils.isEmpty(param.getOrderKey())) {
+            fsStoreOrderMapper.updateFsStoreOrder(storeOrder);
+        } else {
+            fsStoreOrderMapper.updateFsStoreOrder(map);
+        }
         return R.ok();
 
     }
@@ -1508,6 +1525,20 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
                     userCouponService.updateFsUserCoupon(userCoupon);
                 }
             }
+            logger.info("进入处方单支付回调,处理更新套餐包关联数据");
+            //更新关联套餐包订单
+            FsPackageOrder packageOrder = fsPackageOrderMapper.selectFsPackageOrderByOrderId(order.getPackageOrderId());
+            logger.info("套餐包关联数据{}",packageOrder);
+            if (packageOrder != null) {
+                if (packageOrder.getIsPay() == 0) {
+                    FsPackageOrder map = new FsPackageOrder();
+                    map.setOrderId(packageOrder.getOrderId());
+                    map.setIsPay(1);
+                    map.setStatus(FsPackageOrderStatusEnum.STATUS_2.getValue());
+                    map.setPayTime(new Date());
+                    fsPackageOrderMapper.updateFsPackageOrder(map);
+                }
+            }
             return R.ok();
         } catch (Exception e) {
             log.info(payCode + "异常了" + e.getMessage());
@@ -1615,7 +1646,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
     }
 
     @Override
-    public FsStoreOrder confirmOrder(FsPackageOrder packageOrder, Long doctorId) {
+    public FsStoreOrder confirmOrder(FsPackageOrder packageOrder, String createOrderKey) {
 
         FsPackage fsPackage = fsPackageMapper.selectFsPackageByPackageId(packageOrder.getPackageId());
         JSONArray objects = JSONUtil.parseArray(fsPackage.getProductJson());
@@ -1630,14 +1661,21 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
                 Long doctorID = iFsDoctorService.selectFsDoctorDoctorByPackage();
                 packageOrder.setDoctorId(doctorID);
             }
-//            if (packageSubType == 3 ) {
-//                inquiryOrderService.createOrderByPackageOrderStatus4(packageOrder);
-//            }
+            if (packageSubType == 3 ) {
+                inquiryOrderService.createOrderByPackageOrderStatus4(packageOrder);
+            }
             prescribeId = fsPrescribeService.insertFsPrescribeByPackageOrder(packageOrder);
             order.setPrescribeId(prescribeId);
         }
-
-
+        FsPackageOrderComputeParam param = new FsPackageOrderComputeParam();
+        param.setOrderId(packageOrder.getOrderId());
+        param.setStoreId(packageOrder.getStoreId());
+        param.setCreatePackageOrderKey(createOrderKey);
+        param.setUserCouponId(packageOrder.getUserCouponId());
+        param.setPayType(packageOrder.getPayType());
+        param.setCompanyUserId(packageOrder.getCompanyUserId());
+        param.setCompanyId(packageOrder.getCompanyId());
+        Map<String, Object> moneys = computeOrderMoney(packageOrder.getTotalPrice(), param);
         List<FsStoreOrderItem> items = new ArrayList<>();
         log.info("套餐包生成药品订单:{}", packageOrder.getOrderSn());
         order.setOrderCode(packageOrder.getOrderSn());
@@ -1645,8 +1683,8 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
         order.setStoreId(fsPackage.getStoreId());
 
         order.setStatus(1);
-        order.setPayDelivery(packageOrder.getPayDelivery());
-        order.setPayRemain(packageOrder.getPayRemain());
+        order.setPayDelivery((BigDecimal)moneys.get("payDelivery"));
+        order.setPayRemain((BigDecimal)moneys.get("payRemain"));
         order.setPayType(packageOrder.getPayType());
         order.setPackageSecondName(packageOrder.getPackageSecondName());
         order.setDoctorId(packageOrder.getDoctorId());
@@ -1799,11 +1837,12 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
 
         order.setOrderType(fsPackage.getProductType());
         order.setTotalNum(totalNum);
-        order.setTotalPrice(totalPrice);
-        order.setPayPrice(packageOrder.getPayPrice());
-        order.setPayMoney(packageOrder.getPayMoney());
+        order.setTotalPrice(packageOrder.getTotalPrice());
+        order.setPayPrice((BigDecimal)moneys.get("payPrice"));
+        order.setPayMoney((BigDecimal)moneys.get("payMoney"));
         order.setIsPay(0);
         order.setItemJson(JSONUtil.toJsonStr(items));
+        order.setOrderKey(createOrderKey);
 
         if (packageOrder.getCycle() >= followRate) {
             Calendar calendar = Calendar.getInstance();
@@ -4088,4 +4127,151 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
         return fsStoreOrderMapper.selectFsStoreOrderProductStatistics(fsStoreOrder);
     }
 
+    public Map<String, Object> computeOrderMoney(BigDecimal orderPrice, FsPackageOrderComputeParam param) {
+        Map<String, Object> moneys = new HashMap<>();
+        BigDecimal payPrice = orderPrice;
+        BigDecimal payMoney = new BigDecimal(0);
+        BigDecimal payRemain = new BigDecimal(0);
+        BigDecimal payDelivery = new BigDecimal(0);
+        BigDecimal discountMoney = new BigDecimal(0);
+        String json = configService.selectConfigByKey("his.package");
+        FsSysConfig sysConfig = configUtil.getSysConfig();
+        PackageConfigDTO configDTO = JSONUtil.toBean(json, PackageConfigDTO.class);
+        if (param.getUserCouponId() != null && param.getUserCouponId() > 0l) {
+            FsUserCoupon userCoupon = userCouponService.selectFsUserCouponById(param.getUserCouponId());
+            if (userCoupon != null) {
+                if (userCoupon.getStatus() == 0) {
+                    FsCoupon coupon = couponService.selectFsCouponByCouponId(userCoupon.getCouponId());
+                    if (coupon.getCouponType().equals(1)) {
+                        if (coupon.getMinPrice().compareTo(orderPrice) <=0) {
+                            if (coupon.getPrice().compareTo(orderPrice) >= 0) {
+                                payPrice = new BigDecimal(0);
+                                discountMoney = coupon.getPrice();
+                            } else {
+                                payPrice = orderPrice.subtract(coupon.getPrice());
+                                discountMoney = coupon.getPrice();
+                            }
+                        }
+                        //中药免单券
+                    } else if (coupon.getCouponType().equals(2)) {
+                        payPrice = new BigDecimal(0);
+                        discountMoney = orderPrice;
+                        //问诊免单券
+                    } else if (coupon.getCouponType().equals(3)) {
+
+                        //中药打折券
+                    } else if (coupon.getCouponType().equals(4)) {
+                        payPrice = orderPrice.multiply(coupon.getRate()).divide(new BigDecimal(100));
+                        discountMoney = coupon.getPrice().subtract(orderPrice);
+                        //私域疗法券
+                    } else if (coupon.getCouponType().equals(5)) {
+                        if (coupon.getMinPrice().compareTo(orderPrice) <=0) {
+                            if (coupon.getPrice().compareTo(orderPrice) >= 0) {
+                                payPrice = new BigDecimal(0);
+                                discountMoney = coupon.getPrice();
+                            } else {
+                                payPrice = orderPrice.subtract(coupon.getPrice());
+                                discountMoney = coupon.getPrice();
+
+
+                            }
+                        }
+                        //公域疗法券
+                    }else if (coupon.getCouponType().equals(6)){
+                        if (coupon.getMinPrice().compareTo(orderPrice) >=0) {
+                            //throw  new ServiceException("优惠劵最低金额大于订单金额");
+
+                        }
+                        if (coupon.getPrice().compareTo(orderPrice) >= 0) {
+                            payPrice = new BigDecimal(0);
+                            discountMoney = coupon.getPrice();
+                        } else {
+                            payPrice = orderPrice.subtract(coupon.getPrice());
+                            discountMoney = coupon.getPrice();
+                        }
+                    }
+                }
+            }
+
+
+        } else {
+            payPrice = orderPrice;
+            discountMoney = new BigDecimal(0);
+        }
+        //payRemain-代收金额 payDelivery-邮费 payPrice-实际支付金额 payMoney-支付金额
+        if (payPrice.compareTo(new BigDecimal(0)) == 1) {
+            if (param.getPayType().equals(1)) {
+                //全款
+                payMoney = payPrice;
+                payRemain = new BigDecimal(0);
+                payDelivery = new BigDecimal(0);
+
+            } else if (param.getPayType().equals(2)) {
+                //代收
+//                payMoney = payPrice.multiply(new BigDecimal((100 - configDTO.getPayRate()))).divide(new BigDecimal(100));
+//                payMoney = new BigDecimal(payMoney.setScale(0, BigDecimal.ROUND_HALF_UP).longValue());
+//                payRemain = payPrice.subtract(payMoney);
+//                payDelivery = new BigDecimal(0);
+//                if (payRemain.compareTo(new BigDecimal(0)) == 0) {
+//                    throw new CustomException("代收金额应大于0");
+//                }
+                if (("益善缘".equals(cloudHostProper.getCompanyName()))){
+                    String key = redisCache.getCacheObject("createPackageOrderKey:" + param.getCreatePackageOrderKey());
+                    if (StringUtils.isEmpty(key)) {
+                        throw new CustomException("订单已过期", 501);
+                    }
+                    payMoney = redisCache.getCacheObject("createPackageOrderAmount:" + param.getCreatePackageOrderKey());
+                    if (payMoney == null) {
+                        payMoney = new BigDecimal(100);
+                    }
+                } else {
+                    payMoney = payPrice.multiply(new BigDecimal((100 - configDTO.getPayRate()))).divide(new BigDecimal(100));
+                    payMoney = new BigDecimal(payMoney.setScale(0, BigDecimal.ROUND_HALF_UP).longValue());
+                }
+//                if (sysConfig.getRetainer() != null && sysConfig.getRate() != null && sysConfig.getRate().compareTo(new BigDecimal(0)) > 0) {
+//                    if (payPrice.compareTo(new BigDecimal(100)) < 0) {
+//                        throw new CustomException("订单金额应大于等于100");
+//                    }
+//                    //有最低定金金额和提成比率
+//                    if (payPrice.compareTo(new BigDecimal(1000)) < 0) {
+//                        payMoney = new BigDecimal(100);
+//                    } else {
+//                        payMoney = payPrice.multiply(sysConfig.getRate()).divide(new BigDecimal(100));
+//                        payMoney = new BigDecimal(payMoney.setScale(0, BigDecimal.ROUND_HALF_UP).longValue());
+//                    }
+//                } else {
+//                    payMoney = payPrice.multiply(new BigDecimal((100 - configDTO.getPayRate()))).divide(new BigDecimal(100));
+//                    payMoney = new BigDecimal(payMoney.setScale(0, BigDecimal.ROUND_HALF_UP).longValue());
+//                }
+                payRemain = payPrice.subtract(payMoney);
+                payDelivery = new BigDecimal(0);
+                if (payRemain.compareTo(new BigDecimal(0)) == 0) {
+                    throw new CustomException("代收金额应大于0");
+                }
+
+
+            } else if (param.getPayType().equals(3)) {
+                //货到付款
+                payMoney = configDTO.getPayDelivery();
+                payPrice = payPrice.add(configDTO.getPayDelivery());
+                payRemain = payPrice.subtract(configDTO.getPayDelivery());
+                payDelivery = configDTO.getPayDelivery();
+            }
+        }
+        moneys.put("payPrice", payPrice);
+        moneys.put("payMoney", payMoney);
+        moneys.put("payRemain", payRemain);
+        moneys.put("payDelivery", payDelivery);
+        moneys.put("discountMoney", discountMoney);
+        List<StoreOrderProductDTO> gifts=new ArrayList<>();
+        if(configDTO.getGiftStoreId()!=null&&param.getStoreId()!=null&&configDTO.getGiftStoreId().equals(param.getStoreId())&&param.getPayType()==1&&param.getCompanyId()!=null&&param.getCompanyUserId()!=null&&param.getCompanyId()>0&&payPrice.compareTo(configDTO.getGiftPrice())>=0){
+            gifts=configDTO.getGift();
+        }
+        if(configDTO.getGiftStoreId()!=null&&param.getStoreId()!=null&&configDTO.getGiftStoreId().equals(param.getStoreId())&&param.getPayType()==2&&param.getCompanyId()!=null&&param.getCompanyUserId()!=null&&param.getCompanyId()>0&&payPrice.compareTo(configDTO.getGiftPrice())>=0){
+            gifts=configDTO.getDeliveryGift();
+        }
+        moneys.put("gifts",gifts);
+        return moneys;
+    }
+
 }

+ 2 - 0
fs-service/src/main/java/com/fs/his/vo/FsStoreOrderListUVO.java

@@ -36,6 +36,8 @@ public class FsStoreOrderListUVO implements Serializable {
     private String itemJson;
     private BigDecimal billPrice;
 
+    private String orderKey;
+
 
 
 }

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

@@ -90,6 +90,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="source"    column="source"    />
         <result property="billPrice"    column="bill_price"    />
         <result property="erpPhone"    column="erp_phone"    />
+        <result property="orderKey"    column="order_key"    />
     </resultMap>
 
     <sql id="selectFsStoreOrderVo">
@@ -232,6 +233,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="customerId != null">customer_id,</if>
             <if test="source != null">source,</if>
             <if test="erpPhone != null">erp_phone,</if>
+            <if test="orderKey != null">order_key,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="storeId != null">#{storeId},</if>
@@ -317,6 +319,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="customerId != null">#{customerId},</if>
             <if test="source != null">#{source},</if>
             <if test="erpPhone != null">#{erpPhone},</if>
+            <if test="orderKey != null">#{orderKey},</if>
          </trim>
     </insert>
 
@@ -407,6 +410,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="source != null">source = #{source},</if>
             <if test="billPrice != null">bill_price = #{billPrice},</if>
             <if test="erpPhone != null and erpPhone != ''">erp_phone = #{erpPhone},</if>
+            <if test="orderKey != null and orderKey != ''">order_key = #{orderKey},</if>
         </trim>
         where order_id = #{orderId}
     </update>

+ 9 - 1
fs-user-app/src/main/java/com/fs/app/controller/PackageOrderController.java

@@ -30,6 +30,7 @@ import javax.servlet.http.HttpServletRequest;
 import java.math.BigDecimal;
 import java.util.*;
 import java.util.concurrent.ThreadLocalRandom;
+import java.util.concurrent.TimeUnit;
 
 
 @Api("套餐订单接口")
@@ -242,7 +243,7 @@ public class PackageOrderController extends  AppBaseController {
 
     @Login
     @ApiOperation("套餐包分享制单")
-    @PostMapping("/createPackageOrder")
+    @PostMapping("/createPackageOrder1")
     public R createPackageOrder(@RequestBody CreatePackageOrderParam param,
                               HttpServletRequest request){
         Long userId=redisCache.getCacheObject("company-user-token:"+param.getToken());
@@ -286,4 +287,11 @@ public class PackageOrderController extends  AppBaseController {
         return packageOrderService.getPackageOrder(createPackageOrderKey);
     }
 
+    @ApiOperation("修改疗法患者信息")
+    @PostMapping("/updatePatientInfo")
+    public R updatePatientInfo(@RequestBody CreatePackageOrderParam param, HttpServletRequest request){
+        redisCache.setCacheObject("patient:" + param.getCreatePackageOrderKey(), param.getPatient(), 24, TimeUnit.HOURS);
+        return R.ok();
+    }
+
 }

+ 11 - 2
fs-user-app/src/main/java/com/fs/app/controller/StoreOrderController.java

@@ -58,6 +58,9 @@ public class StoreOrderController extends  AppBaseController {
     private IFsCouponService couponService;
     @Autowired
     private IFsStoreOrderBillLogService orderBillLogService;
+
+    @Autowired
+    private IFsPrescribeService prescribeService;
     @Login
     @ApiOperation("获取我的订单列表")
     @GetMapping("/getMyStoreOrderList")
@@ -118,7 +121,13 @@ public class StoreOrderController extends  AppBaseController {
         order.setUserPhone(ParseUtils.parsePhone(order.getUserPhone()));
         order.setUserAddress(ParseUtils.parseIdCard(order.getUserAddress()));
         List<FsStoreOrderItemListUVO> list=orderItemService.selectFsStoreOrderItemListUVOByOrderId(orderId);
-
+        String signUrl = null;
+        if (order.getPrescribeId() != null) {
+            FsPrescribe fsPrescribe = prescribeService.selectFsPrescribeByPrescribeId(order.getPrescribeId());
+            if (fsPrescribe != null) {
+                signUrl = fsPrescribe.getPrescribeImgUrl();
+            }
+        }
 //        String json=configService.selectConfigByKey("his.store");
 //        StoreConfig config=JSONUtil.toBean(json,StoreConfig.class);
         Calendar calendar = Calendar.getInstance();
@@ -126,7 +135,7 @@ public class StoreOrderController extends  AppBaseController {
 //        calendar.add(Calendar.MINUTE,config.getUnPayTime());
         SimpleDateFormat format = new   SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         String payLimitTime = format.format(calendar.getTime() );
-        return R.ok().put("order",order).put("payLimitTime",payLimitTime).put("items",list);
+        return R.ok().put("order",order).put("payLimitTime",payLimitTime).put("items",list).put("signUrl",signUrl);
     }