Browse Source

Merge branch 'openIm' of http://1.14.104.71:10880/root/ylrz_his_scrm_java into openIm

# Conflicts:
#	fs-service/src/main/java/com/fs/his/service/impl/FsStoreOrderServiceImpl.java
15376779826 3 tuần trước cách đây
mục cha
commit
bfc56fea28

+ 10 - 0
fs-service/src/main/java/com/fs/erp/dto/OrderItemDTO.java

@@ -65,4 +65,14 @@ public class OrderItemDTO implements Serializable {
      * 款式编码
      * **/
     private String shopIId;
+
+    /**
+     * 商品图片
+     */
+    private String  pic;
+
+    /**
+     * 商品单价
+     */
+    private BigDecimal price;
 }

+ 12 - 7
fs-service/src/main/java/com/fs/erp/service/impl/JSTErpOrderServiceImpl.java

@@ -38,6 +38,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -137,8 +138,9 @@ public class JSTErpOrderServiceImpl implements IErpOrderService {
 
             FsStoreProduct fsStoreProduct = fsStoreProductService.selectFsStoreProductById(item.getProductId());
 
-            orderItemDTO.setAmount(fsStoreProduct.getPrice());
-
+            orderItemDTO.setAmount(fsStoreProduct.getPrice().multiply(new BigDecimal(item.getNum())));
+            orderItemDTO.setPic(fsStoreProduct.getImgUrl());
+            orderItemDTO.setPrice(fsStoreProduct.getPrice());
             orderItemDTO.setQty(item.getNum().intValue());
             orderItemDTO.setOuterOiId(String.format("%s%s",fsStoreOrder.getOrderCode(),item.getItemId()));
             itemDTOList.add(orderItemDTO);
@@ -261,8 +263,9 @@ public class JSTErpOrderServiceImpl implements IErpOrderService {
 
             FsStoreProductScrm fsStoreProduct = fsStoreProductScrmService.selectFsStoreProductById(item.getProductId());
 
-            orderItemDTO.setAmount(fsStoreProduct.getPrice());
-
+            orderItemDTO.setAmount(fsStoreProduct.getPrice().multiply(new BigDecimal(item.getNum())));
+            orderItemDTO.setPic(fsStoreProduct.getImage());
+            orderItemDTO.setPrice(fsStoreProduct.getPrice());
             orderItemDTO.setQty(item.getNum().intValue());
             orderItemDTO.setOuterOiId(String.format("%s%s",fsStoreOrder.getOrderCode(),item.getItemId()));
             itemDTOList.add(orderItemDTO);
@@ -283,13 +286,15 @@ public class JSTErpOrderServiceImpl implements IErpOrderService {
         if("2".equals(fsStoreOrder.getPayType()) || "3".equals(fsStoreOrder.getPayType())){
             shopOrderDTO.setIsCod(true);
             // 货到付款金额 = 物流代收金额-优惠金额
-            shopOrderDTO.setBuyerPaidAmount(fsStoreOrder.getPayDelivery());
-            shopOrderDTO.setPayAmount(fsStoreOrder.getPayPrice().doubleValue());
+            //注释掉总买家实付
+            //shopOrderDTO.setBuyerPaidAmount(fsStoreOrder.getPayDelivery());
+            //应付金额(货到付款= 订单总金额 - 已付金额)
+            shopOrderDTO.setPayAmount(fsStoreOrder.getTotalPrice().subtract(fsStoreOrder.getPayPrice()).doubleValue());
 
             // 货到付款要推两次
             PaymentDTO paymentDTO2 = new PaymentDTO();
             // 物流代收金额
-            paymentDTO2.setAmount(fsStoreOrder.getPayDelivery().doubleValue());
+            paymentDTO2.setAmount(fsStoreOrder.getTotalPrice().subtract(fsStoreOrder.getPayPrice()).doubleValue());
             paymentDTO2.setOuterPayId(String.format("%s%d",order.getPlatform_code(),1));
             paymentDTO2.setPayDate(order.getDeal_datetime());
             paymentDTO2.setPayment("货到付款");

+ 1 - 0
fs-service/src/main/java/com/fs/his/enums/FsStoreOrderLogEnum.java

@@ -18,6 +18,7 @@ public enum FsStoreOrderLogEnum {
     UPDATE_ORDER_DF("update_order_df","代服取消订单,需要重新发货"),
     TAKE_ORDER_DELIVERY("user_take_delivery","用户已收货"),
     PAY_ORDER_SUCCESS("pay_success","用户付款成功"),
+    UN_PAY_ORDER("un_pay","用户待付款付款"),
     PAY_REMAIN_ORDER_SUCCESS("pay_remain_success","用户付款尾款成功"),
 
     CREATE_ORDER("create_order","订单生成"),

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

@@ -14,6 +14,7 @@ public class FsPackageOrderComputeParam implements Serializable {
     Integer type=1;
     Long companyId;
     Long companyUserId;
+    private String createPackageOrderKey;
 
 
 }

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

@@ -19,6 +19,8 @@ public class FsPackageOrderCreateParam implements Serializable {
     private String formJson;
     private String patientJson;
     private Integer source;//订单来源 1:小程序 2:app  3:H5
+    private String createPackageOrderKey;
+    private Integer payType;
 
 
 

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

@@ -12,4 +12,5 @@ public class FsPackageOrderDoPayParam implements Serializable {
     Long userId;
 
     private String appId;//小程序id
+    private String createPackageOrderKey;
 }

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

@@ -16,4 +16,5 @@ public class FsPackageOrderPayParam implements Serializable {
     Integer payType;
 
     Long userId;
+    private String createPackageOrderKey;
 }

+ 18 - 0
fs-service/src/main/java/com/fs/his/service/IFsPackageOrderService.java

@@ -1,8 +1,10 @@
 package com.fs.his.service;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 import com.fs.common.core.domain.R;
+import com.fs.company.domain.CompanyUser;
 import com.fs.his.domain.FsPackage;
 import com.fs.his.domain.FsPackageOrder;
 import com.fs.his.domain.FsStorePayment;
@@ -124,4 +126,20 @@ public interface IFsPackageOrderService
 
     R getWxaCodePackageOrderUnLimit(Long orderId);
 
+    /**
+     * 套餐包制单
+     */
+    R createPackageOrder(CompanyUser companyUser,Long packageId);
+
+    /**
+     * 更新套餐订单金额
+     * @param createOrderKey 键
+     * @param money 订单金额
+     * @param payAmount 支付金额
+     * @param payType 支付类型 1-全款 2-物流代收
+     */
+    R updatePackageOrderMoney(String createOrderKey, BigDecimal money, BigDecimal payAmount, Integer payType);
+
+
+    R getPackageOrder(String createOrderKey);
 }

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

@@ -272,4 +272,6 @@ public interface IFsStoreOrderService
     void deliveryOrderScrm(String orderCode, String mailNo, String expressCode, String expressName);
 
     FsStoreOrderScrm selectFsStoreOrderScrmByOrderCode(String soId);
+
+    FsStoreOrder confirmOrder(FsPackageOrder packageOrder,Long doctorId);
 }

+ 100 - 8
fs-service/src/main/java/com/fs/his/service/impl/FsPackageOrderServiceImpl.java

@@ -28,6 +28,7 @@ import com.fs.common.utils.ip.IpUtils;
 import com.fs.common.utils.poi.ExcelUtil;
 import com.fs.company.domain.CompanyUser;
 import com.fs.company.mapper.CompanyUserMapper;
+import com.fs.config.cloud.CloudHostProper;
 import com.fs.core.config.WxMaConfiguration;
 import com.fs.core.config.WxPayProperties;
 import com.fs.core.utils.OrderCodeUtils;
@@ -163,6 +164,9 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
     @Autowired
     private IFsUserWxService userWxService;
 
+    @Autowired
+    private CloudHostProper cloudHostProper;
+
     /**
      * 查询套餐订单
      *
@@ -428,21 +432,34 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
 //                if (payRemain.compareTo(new BigDecimal(0)) == 0) {
 //                    throw new CustomException("代收金额应大于0");
 //                }
-                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 (("益善缘".equals(cloudHostProper.getCompanyName()))){
+                    String key = redisCache.getCacheObject("createPackageOrderKey:" + param.getCreatePackageOrderKey());
+                    if (StringUtils.isEmpty(key)) {
+                        throw new CustomException("订单已过期", 501);
                     }
-                    //有最低定金金额和提成比率
-                    if (payPrice.compareTo(new BigDecimal(1000)) < 0) {
+                    payMoney = redisCache.getCacheObject("createPackageOrderAmount:" + param.getCreatePackageOrderKey());
+                    if (payMoney == null) {
                         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());
                 }
+//                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) {
@@ -542,6 +559,7 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
         if(StringUtils.isEmpty(orderSn)){
             return R.error("订单生成失败,请重试");
         }
+        order.setPayType(param.getPayType());
         order.setOrderSn(orderSn);
         order.setStoreId(fsPackage.getStoreId());
         order.setUserId(param.getUserId());
@@ -678,6 +696,12 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
             userCoupon.setStatus(1);
             userCouponService.updateFsUserCoupon(userCoupon);
         }
+        if (StringUtils.isNotEmpty(param.getCreatePackageOrderKey())) {
+            redisCache.deleteObject("createPackageOrderKey:" + param.getCreatePackageOrderKey());
+            redisCache.deleteObject("createPackageOrderPayType:" + param.getCreatePackageOrderKey());
+            redisCache.deleteObject("createPackageOrderAmount:" + param.getCreatePackageOrderKey());
+            redisCache.deleteObject("createPackageOrderMoney:" + param.getCreatePackageOrderKey());
+        }
 
         return R.ok();
 
@@ -1725,4 +1749,72 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
             return R.error("微信接口调用失败: " + e.getMessage());
         }
     }
+
+    @Override
+    public R createPackageOrder(CompanyUser companyUser, Long packageId) {
+        FsPackage fsPackage=fsPackageMapper.selectFsPackageByPackageId(packageId);
+        if(fsPackage==null){
+            return R.error("套餐不存在");
+        }
+        if(fsPackage.getStatus()!=1){
+            return R.error("套餐不可用");
+        }
+
+        String uuid = IdUtil.randomUUID();
+        redisCache.setCacheObject("createPackageOrderKey:" + uuid, companyUser.getCompanyId() + "-" + companyUser.getUserId(), 24, TimeUnit.HOURS);
+        redisCache.setCacheObject("package:" + uuid, fsPackage, 24, TimeUnit.HOURS);
+        BigDecimal price = fsPackage.getTotalPrice();
+        if (price == null){
+            price = BigDecimal.ZERO;
+        }
+        redisCache.setCacheObject("createPackageOrderMoney:" + uuid,price,24,TimeUnit.HOURS);
+        return R.ok().put("packageOrderKey", uuid).put("price", price);
+    }
+
+    @Override
+    public R updatePackageOrderMoney(String createPackageOrderKey, BigDecimal money, BigDecimal payAmount, Integer payType) {
+        if (money == null) {
+            return R.error("请输入应付价格");
+        }
+        if (payType != null && payType != 1) {
+            if (payAmount == null) {
+                return R.error("请输入代收金额");
+            }
+            if (payAmount.compareTo(new BigDecimal(100)) < 0) {
+                throw new CustomException("物流代收金额应大于等于100");
+            }
+        }
+        String key = redisCache.getCacheObject("createPackageOrderKey:" + createPackageOrderKey);
+        if (StringUtils.isEmpty(key)) {
+            throw new CustomException("订单已过期", 501);
+        }
+        FsPackage fsPackage = redisCache.getCacheObject("package:"+createPackageOrderKey);
+        BigDecimal totalMoney = BigDecimal.ZERO;
+        if (fsPackage != null && fsPackage.getTotalPrice() != null) {
+            totalMoney = fsPackage.getTotalPrice();
+        }
+        logger.info("商品总价===========>{}",totalMoney);
+        if (money.compareTo(totalMoney) == 1) {
+            throw new CustomException("价格不能大于套餐包总价", 501);
+        }
+        redisCache.setCacheObject("createPackageOrderMoney:" + createPackageOrderKey, money, 24, TimeUnit.HOURS);
+        redisCache.setCacheObject("createPackageOrderAmount:" + createPackageOrderKey, payAmount, 24, TimeUnit.HOURS);//物流代收自定义金额
+        redisCache.setCacheObject("createPackageOrderPayType:" + createPackageOrderKey, payType, 24, TimeUnit.HOURS);//支付类型 1-全付款 2-物流代收(货到付款)
+        return R.ok();
+    }
+
+    @Override
+    public R getPackageOrder(String createPackageOrderKey) {
+        String key = redisCache.getCacheObject("createPackageOrderKey:" + createPackageOrderKey);
+        if (StringUtils.isEmpty(key)) {
+            throw new CustomException("套餐包订单已过期", 501);
+        }
+        FsPackage fsPackage = redisCache.getCacheObject("package:" + createPackageOrderKey);
+        BigDecimal money = redisCache.getCacheObject("createPackageOrderMoney:" + createPackageOrderKey);
+        Integer payType = redisCache.getCacheObject("createPackageOrderPayType:" + createPackageOrderKey);
+        if (payType != null && payType == 2) {
+            money = redisCache.getCacheObject("createPackageOrderAmount:" + createPackageOrderKey);
+        }
+        return R.ok().put("package", fsPackage).put("money", money).put("payType", payType);
+    }
 }

+ 296 - 148
fs-service/src/main/java/com/fs/his/service/impl/FsStoreOrderServiceImpl.java

@@ -49,8 +49,8 @@ import com.fs.hisStore.domain.FsStoreOrderScrm;
 import com.fs.hisStore.domain.FsStorePaymentScrm;
 import com.fs.hisStore.mapper.FsStoreOrderScrmMapper;
 import com.fs.hisStore.mapper.FsStorePaymentScrmMapper;
-import com.fs.hisStore.param.FsStoreOrderRefundByProductParam;
 import com.fs.hisStore.service.IFsStoreOrderLogsScrmService;
+import com.fs.hisStore.service.IFsStoreOrderScrmService;
 import com.fs.hisapi.domain.ApiResponse;
 import com.fs.hisapi.param.CreateOrderParam;
 import com.fs.hisapi.param.RecipeDetailParam;
@@ -666,28 +666,38 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
 
     @Override
     public R createOrderByPackageOrder(FsPackageOrder packageOrder) {
-        if (packageOrder.getDoctorId() == null) {
-            Long doctorID = iFsDoctorService.selectFsDoctorDoctorByPackage();
-            packageOrder.setDoctorId(doctorID);
-        }
+        logger.info("111111111111111");
+
+        logger.info("2222222222222");
         FsPackage fsPackage = fsPackageMapper.selectFsPackageByPackageId(packageOrder.getPackageId());
         JSONArray objects = JSONUtil.parseArray(fsPackage.getProductJson());
         List<FsPackagePruductDTO> products = JSONUtil.toList(objects, FsPackagePruductDTO.class);
-
+        logger.info("3333333333333333333");
         Map<String, Object> packageJson = (Map) JSON.parse(packageOrder.getPackageJson());
+        logger.info("55555555555555555555");
         Integer packageSubType = (Integer) packageJson.get("packageSubType");
-        if (packageSubType == 3) {
-            inquiryOrderService.createOrderByPackageOrderStatus4(packageOrder);
+        Integer productType = (Integer) packageJson.get("productType");
+        FsStoreOrder order = new FsStoreOrder();
+        Long prescribeId =null;
+        if (productType==1 || packageSubType==2){
+            if (packageOrder.getDoctorId() == null) {
+                Long doctorID = iFsDoctorService.selectFsDoctorDoctorByPackage();
+                packageOrder.setDoctorId(doctorID);
+            }
+            if (packageSubType == 3 ) {
+                inquiryOrderService.createOrderByPackageOrderStatus4(packageOrder);
+            }
+            prescribeId = fsPrescribeService.insertFsPrescribeByPackageOrder(packageOrder);
+            order.setPrescribeId(prescribeId);
         }
-        Long prescribeId = fsPrescribeService.insertFsPrescribeByPackageOrder(packageOrder);
 
-        FsStoreOrder order = new FsStoreOrder();
+
         List<FsStoreOrderItem> items = new ArrayList<>();
         log.info("套餐包生成药品订单:{}", packageOrder.getOrderSn());
         order.setOrderCode(packageOrder.getOrderSn());
         order.setUserId(packageOrder.getUserId());
         order.setStoreId(fsPackage.getStoreId());
-        order.setPrescribeId(prescribeId);
+
         order.setStatus(2);
         order.setPayDelivery(packageOrder.getPayDelivery());
         order.setPayRemain(packageOrder.getPayRemain());
@@ -864,7 +874,6 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
             order.setFollowEndTime(calendar2.getTime());
             order.setFollowStatus(0);
         }
-
         if (fsStoreOrderMapper.insertFsStoreOrder(order) > 0) {
             if (packageOrder.getCycle() >= followRate) {
                 FsFollow fsFollow = new FsFollow();
@@ -908,7 +917,6 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
                     FsStoreOrderLogEnum.CREATE_ORDER.getDesc());
             fsStoreOrderLogsService.create(order.getOrderId(), FsStoreOrderLogEnum.PAY_ORDER_SUCCESS.getValue(),
                     FsStoreOrderLogEnum.PAY_ORDER_SUCCESS.getDesc());
-
             fsPackageOrder.setOrderId(packageOrder.getOrderId());
             fsPackageOrder.setStoreOrderId(order.getOrderId());
             fsPackageOrder.setDoctorId(packageOrder.getDoctorId());
@@ -939,14 +947,12 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
                 fsUserService.updateFsUser(u);
             }
 
-
             try {
                 storeSubOrderService.insertFsStoreSubOrderByStoreOrder(order.getOrderId());
             } catch (Exception e) {
                 log.info("拆分订单错误:{}", order.getOrderId());
             }
         }
-
         return R.ok();
     }
 
@@ -1212,7 +1218,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
 
         FsUser user = userService.selectFsUserByUserId(order.getUserId());
         Map<String, BigDecimal> data = new HashMap<>();
-        if (user != null && StringUtils.isNotEmpty(user.getMaOpenId())) {
+        if (user != null ) {
             if (param.getUserCouponId() != null && param.getUserCouponId() > 0l) {
                 FsUserCoupon userCoupon = userCouponService.selectFsUserCouponById(param.getUserCouponId());
                 if (userCoupon == null) {
@@ -1559,7 +1565,6 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
         }
 
     }
-
     @Autowired
     FsStoreOrderScrmMapper storeOrderScrmMapper;
 
@@ -1603,10 +1608,254 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
         }
 
     }
+
     @Override
     public FsStoreOrderScrm selectFsStoreOrderScrmByOrderCode(String soId) {
         return fsStoreOrderMapper.selectFsStoreOrderScrmByOrderCode(soId);
     }
+
+    @Override
+    public FsStoreOrder confirmOrder(FsPackageOrder packageOrder, Long doctorId) {
+
+        FsPackage fsPackage = fsPackageMapper.selectFsPackageByPackageId(packageOrder.getPackageId());
+        JSONArray objects = JSONUtil.parseArray(fsPackage.getProductJson());
+        List<FsPackagePruductDTO> products = JSONUtil.toList(objects, FsPackagePruductDTO.class);
+        Map<String, Object> packageJson = (Map) JSON.parse(packageOrder.getPackageJson());
+        Integer packageSubType = (Integer) packageJson.get("packageSubType");
+        Integer productType = (Integer) packageJson.get("productType");
+        FsStoreOrder order = new FsStoreOrder();
+        Long prescribeId =null;
+        if (productType==1 || packageSubType==2){
+            if (packageOrder.getDoctorId() == null) {
+                Long doctorID = iFsDoctorService.selectFsDoctorDoctorByPackage();
+                packageOrder.setDoctorId(doctorID);
+            }
+            if (packageSubType == 3 ) {
+                inquiryOrderService.createOrderByPackageOrderStatus4(packageOrder);
+            }
+            prescribeId = fsPrescribeService.insertFsPrescribeByPackageOrder(packageOrder);
+            order.setPrescribeId(prescribeId);
+        }
+
+
+        List<FsStoreOrderItem> items = new ArrayList<>();
+        log.info("套餐包生成药品订单:{}", packageOrder.getOrderSn());
+        order.setOrderCode(packageOrder.getOrderSn());
+        order.setUserId(packageOrder.getUserId());
+        order.setStoreId(fsPackage.getStoreId());
+
+        order.setStatus(1);
+        order.setPayDelivery(packageOrder.getPayDelivery());
+        order.setPayRemain(packageOrder.getPayRemain());
+        order.setPayType(packageOrder.getPayType());
+        order.setPackageSecondName(packageOrder.getPackageSecondName());
+        order.setDoctorId(packageOrder.getDoctorId());
+
+        order.setPackageId(packageOrder.getPackageId());
+        order.setPackageName(packageOrder.getPackageName());
+        order.setPrescribePrice(packageOrder.getTotalPrice());
+        order.setDiscountMoney(packageOrder.getDiscountMoney());
+        order.setDeptId(packageOrder.getDeptId());
+        order.setCompanyId(packageOrder.getCompanyId());
+        order.setCompanyUserId(packageOrder.getCompanyUserId());
+        order.setPackageOrderId(packageOrder.getOrderId());
+        order.setCreateTime(new Date());
+        if (packageOrder.getSource() != null) {
+            order.setSource(packageOrder.getSource());
+        }
+        String addressJson = packageOrder.getAddressJson();
+        if (addressJson != null && addressJson != "") {
+            Map<String, String> parse = (Map) JSON.parse(addressJson);
+            order.setUserName(parse.get("userName"));
+            order.setUserPhone(parse.get("userPhone"));
+            order.setUserAddress(parse.get("userAddress"));
+        }
+
+
+        Long totalNum = 0L;
+        BigDecimal totalPrice = new BigDecimal(0);
+        boolean noTui = false;
+        for (FsPackagePruductDTO product : products) {
+            if (product.getBarCode().equals("106013")) {
+                noTui = true;
+            }
+            totalPrice = totalPrice.add(product.getPrice().multiply(BigDecimal.valueOf(product.getCount())));
+            totalNum = totalNum + product.getCount();
+            FsStoreOrderItem item = new FsStoreOrderItem();
+            item.setProductId(product.getProductId());
+            item.setStoreId(fsPackage.getStoreId());
+            item.setProductAttrValueId(product.getId());
+            item.setNum(Long.parseLong(product.getCount().toString()));
+            item.setIsDrug(product.getIsDrug());
+            FsStoreOrderItemDTO dto = new FsStoreOrderItemDTO();
+            dto.setImage(product.getImage());
+            dto.setNum(Long.parseLong(product.getCount().toString()));
+            dto.setProductName(product.getProductName());
+            dto.setProductId(product.getProductId());
+            dto.setSku(product.getSku());
+            dto.setBarCode(product.getBarCode());
+            dto.setPrice(product.getPrice());
+            dto.setNum(Long.parseLong(product.getCount().toString()));
+            dto.setImage(product.getImage());
+            item.setIsPrescribe(0);
+            item.setJsonInfo(JSON.toJSONString(dto));
+            item.setIsGift(0);
+            items.add(item);
+        }
+        String json = configService.selectConfigByKey("his.package");
+        PackageConfigDTO configDTO = JSONUtil.toBean(json, PackageConfigDTO.class);
+        FsPackageOrder fsPackageOrder = new FsPackageOrder();
+        //赠品处理
+        if (configDTO.getGiftStoreId() != null && configDTO.getGiftStoreId() == packageOrder.getStoreId() && packageOrder.getCompanyId() != null && packageOrder.getCompanyId() > 0 && packageOrder.getPayType().equals(1) && packageOrder.getPayMoney().compareTo(configDTO.getGiftPrice()) >= 0) {
+            if (configDTO.getGift() != null && !configDTO.getGift().isEmpty()) {
+                for (StoreOrderProductDTO product : configDTO.getGift()) {
+                    totalNum = totalNum + product.getCount();
+                    FsStoreOrderItem item = new FsStoreOrderItem();
+                    item.setProductId(product.getProductId());
+                    item.setStoreId(fsPackage.getStoreId());
+                    item.setProductAttrValueId(product.getId());
+                    item.setNum(Long.parseLong(product.getCount().toString()));
+                    FsStoreOrderItemDTO dto = new FsStoreOrderItemDTO();
+                    dto.setImage(product.getImage());
+                    dto.setNum(Long.parseLong(product.getCount().toString()));
+                    dto.setProductName(product.getProductName());
+                    dto.setProductId(product.getProductId());
+                    dto.setSku(product.getSku());
+                    dto.setBarCode(product.getBarCode());
+                    dto.setPrice(product.getPrice());
+                    if (product.getCount() != null) {
+                        dto.setNum(Long.parseLong(product.getCount().toString()));
+                    }
+                    dto.setImage(product.getImage());
+                    item.setIsPrescribe(0);
+                    item.setJsonInfo(JSON.toJSONString(dto));
+                    item.setIsGift(1);
+                    items.add(item);
+                    fsPackageOrder.setProductCostPrice(packageOrder.getProductCostPrice().add(product.getCostPrice()));
+                    fsPackageOrder.setTotalCostPrice(packageOrder.getTotalCostPrice().add(product.getCostPrice()));
+                    fsPackageOrder.setCostDiscountMoney(packageOrder.getCostDiscountMoney().subtract(product.getCostPrice()));
+                }
+            }
+        }
+        //物流代收赠品
+        if (configDTO.getGiftStoreId() != null && configDTO.getGiftStoreId() == packageOrder.getStoreId() && packageOrder.getCompanyId() != null && packageOrder.getCompanyId() > 0 && packageOrder.getPayType().equals(2) && packageOrder.getPayPrice().compareTo(configDTO.getGiftPrice()) >= 0) {
+            if (configDTO.getDeliveryGift() != null && !configDTO.getDeliveryGift().isEmpty()) {
+                for (StoreOrderProductDTO product : configDTO.getDeliveryGift()) {
+                    totalNum = totalNum + product.getCount();
+                    FsStoreOrderItem item = new FsStoreOrderItem();
+                    item.setProductId(product.getProductId());
+                    item.setStoreId(fsPackage.getStoreId());
+                    item.setProductAttrValueId(product.getId());
+                    item.setNum(Long.parseLong(product.getCount().toString()));
+                    FsStoreOrderItemDTO dto = new FsStoreOrderItemDTO();
+                    dto.setImage(product.getImage());
+                    dto.setNum(Long.parseLong(product.getCount().toString()));
+                    dto.setProductName(product.getProductName());
+                    dto.setProductId(product.getProductId());
+                    dto.setSku(product.getSku());
+                    dto.setBarCode(product.getBarCode());
+                    dto.setPrice(product.getPrice());
+                    if (product.getCount() != null) {
+                        dto.setNum(Long.parseLong(product.getCount().toString()));
+                    }
+                    dto.setImage(product.getImage());
+                    item.setIsPrescribe(0);
+                    item.setJsonInfo(JSON.toJSONString(dto));
+                    item.setIsGift(1);
+                    items.add(item);
+                    fsPackageOrder.setProductCostPrice(packageOrder.getProductCostPrice().add(product.getCostPrice()));
+                    fsPackageOrder.setTotalCostPrice(packageOrder.getTotalCostPrice().add(product.getCostPrice()));
+                    fsPackageOrder.setCostDiscountMoney(packageOrder.getCostDiscountMoney().subtract(product.getCostPrice()));
+                }
+            }
+        }
+        SysConfig sysConfig = sysConfigMapper.selectConfigByConfigKey("his.store");
+        Map<String, Object> config = (Map<String, Object>) JSON.parse(sysConfig.getConfigValue());
+        Integer followRate = (Integer) config.get("followRate");
+        Long followDoctorId = fsPackageOrderMapper.selectFsPackageOrderByUserId(order.getUserId());
+        if (followDoctorId != null && followDoctorId > 0) {
+            order.setFollowDoctorId(followDoctorId);
+        } else {
+            if (packageOrder.getCompanyId() != null) {
+                Company company = companyService.selectCompanyById(packageOrder.getCompanyId());
+                if (company != null) {
+                    String followDoctorIdsJson = company.getFollowDoctorIds();
+                    if (followDoctorIdsJson != null && followDoctorIdsJson != "") {
+                        long[] ids = JSON.parseObject(followDoctorIdsJson, long[].class);
+                        if (ids.length > 0) {
+                            Random random = new Random();
+                            // 从数组中随机选择一个数字
+                            int randomIndex = random.nextInt(ids.length);
+                            long randomId = ids[randomIndex];
+                            order.setFollowDoctorId(randomId);
+                        }
+                    }
+                }
+            }
+            if (order.getFollowDoctorId() == null) {
+                order.setFollowDoctorId(iFsDoctorService.selectFollowDoctorDoctorByPackage());
+            }
+        }
+
+        order.setOrderType(fsPackage.getProductType());
+        order.setTotalNum(totalNum);
+        order.setTotalPrice(totalPrice);
+        order.setPayPrice(packageOrder.getPayPrice());
+        order.setPayMoney(packageOrder.getPayMoney());
+        order.setIsPay(0);
+        order.setItemJson(JSONUtil.toJsonStr(items));
+
+        if (packageOrder.getCycle() >= followRate) {
+            Calendar calendar = Calendar.getInstance();
+            calendar.setTime(new Date());
+            calendar.add(Calendar.DAY_OF_MONTH, followRate);
+            order.setFollowTime(calendar.getTime());
+            order.setCycle(packageOrder.getCycle());
+            Calendar calendar2 = Calendar.getInstance();
+            calendar2.setTime(new Date());
+            calendar2.add(Calendar.DAY_OF_MONTH, 30 + packageOrder.getCycle());
+            order.setFollowEndTime(calendar2.getTime());
+            order.setFollowStatus(0);
+        }
+        if (fsStoreOrderMapper.insertFsStoreOrder(order) > 0) {
+
+            if (order.getOrderId() == null) {
+                throw new CustomException("订单id为空" + order);
+            }
+            fsStoreOrderLogsService.create(order.getOrderId(), FsStoreOrderLogEnum.CREATE_ORDER.getValue(),
+                    FsStoreOrderLogEnum.CREATE_ORDER.getDesc());
+            fsStoreOrderLogsService.create(order.getOrderId(), FsStoreOrderLogEnum.UN_PAY_ORDER.getValue(),
+                    FsStoreOrderLogEnum.UN_PAY_ORDER.getDesc());
+
+            if (prescribeId != null) {
+                FsPrescribe fsPrescribe = new FsPrescribe();
+                fsPrescribe.setPrescribeId(prescribeId);
+                fsPrescribe.setStoreOrderId(order.getOrderId());
+                fsPrescribeService.updateFsPrescribe(fsPrescribe);
+            }
+
+            for (FsStoreOrderItem item : items) {
+                item.setOrderId(order.getOrderId());
+                fsStoreOrderItemMapper.insertFsStoreOrderItem(item);
+            }
+            if (noTui) {
+                FsStoreOrder fsStoreOrder = new FsStoreOrder();
+                fsStoreOrder.setOrderId(order.getOrderId());
+                fsStoreOrder.setExtendOrderId("XN");
+                fsStoreOrderMapper.updateFsStoreOrder(fsStoreOrder);
+            }
+            FsUser fsUser = fsUserService.selectFsUserByUserId(order.getUserId());
+            if (fsUser.getIsBuy() == null || fsUser.getIsBuy() == 0) {
+                FsUser u = new FsUser();
+                u.setUserId(order.getUserId());
+                u.setIsBuy(1);
+                fsUserService.updateFsUser(u);
+            }
+        }
+        return order;
+    }
+
+
     @Override
     @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
     public int afterSales(FsStoreOrderSalesParam fsStoreOrderSalesParam) {
@@ -1928,8 +2177,11 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
         erpOrder.setReceiver_address(erpOrder.getReceiver_address().replace("\n", ""));
 
         // 处方图片生成
-        String s = fsPrescribeService.PrescribeImg(order.getPrescribeId());
-        erpOrder.setSeller_memo(erpOrder.getSeller_memo() + "||" + s + "||");
+        String PrescribeImg=null;
+        if (order.getPrescribeId()!=null){
+            PrescribeImg = fsPrescribeService.PrescribeImg(order.getPrescribeId());
+        }
+        erpOrder.setSeller_memo(erpOrder.getSeller_memo() + "||" + PrescribeImg + "||");
         ErpOrderResponse response = erpOrderService.addOrder(erpOrder);
         log.info("ErpCreate:" + order.getOrderCode() + ":" + JSONUtil.toJsonStr(response));
         if (Boolean.TRUE.equals(response.getSuccess())) {
@@ -1946,7 +2198,8 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
         //写入日志
 
     }
-
+    @Autowired
+    IFsStoreOrderScrmService orderService;
     @Override
     public ExpressResultDTO updateDeliveryItem(ExpressNotifyDTO notifyDTO) {
         String data = URLDecoder.decode(notifyDTO.getRequestData(), Charset.forName("UTF-8"));
@@ -2030,6 +2283,27 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
 
                     }
                 }
+
+                List<FsStoreOrderScrm> orders2 = orderService.selectFsStoreOrderListByDeliveryId(dto.getLogisticCode());
+                if (orders != null) {
+                    for (FsStoreOrderScrm order : orders2) {
+                        logger.info("订单信息:" + JSONUtil.toJsonStr(order));
+                        logger.info("运单号:" + dto.getLogisticCode());
+                        if (order != null && order.getDeliveryStatus() != 3) {
+                            FsStoreOrderScrm map = new FsStoreOrderScrm();
+                            map.setDeliveryStatus(Integer.parseInt(dto.getState()));
+                            map.setId(order.getId());
+                            map.setDeliveryType(dto.getStateEx());
+                            orderService.updateFsStoreOrder(map);
+                            //如果是正常签收,更新订单状态
+                            if (dto.getState().equals("3") && (dto.getStateEx().equals("301") || dto.getStateEx().equals("302") || dto.getStateEx().equals("304") || dto.getStateEx().equals("311"))) {
+                                orderService.finishOrder(order.getId());
+                            }
+
+                        }
+                    }
+                }
+
             }
             return ExpressResultDTO.success(sysConfig.getKdnId().trim());
         }
@@ -2856,6 +3130,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());
@@ -2975,6 +3250,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());
@@ -3811,132 +4087,4 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
         return fsStoreOrderMapper.selectFsStoreOrderProductStatistics(fsStoreOrder);
     }
 
-    @Override
-    public int afterSalesByProduct(FsStoreOrderSalesParam param) {
-        FsStoreOrder order = fsStoreOrderMapper.selectFsStoreOrderByOrderId(param.getOrderId());
-        if (order.getStatus() < 0) {
-            throw new CustomException("订单不可提交售后");
-        }
-        //判断总退款金额是否小于等于实付金额
-        BigDecimal refundAmount = param.getRefundAmount();
-        if (refundAmount.compareTo(order.getPayMoney())>0){
-            throw new CustomException("退款金额不能大于实付金额");
-        }
-        List<FsStoreOrderRefundByProductParam> refundList = param.getRefundList();
-        List<Long> itemIds = refundList.stream().filter(item->item.getNum()>0).map(FsStoreOrderRefundByProductParam::getItemId).collect(Collectors.toList());
-        if (itemIds.isEmpty()){
-            throw new CustomException("没有选择需要退款的商品/选择退款商品数量不能为0");
-        }
-        List<FsStoreOrderItem> fsStoreOrderItems = fsStoreOrderItemMapper.selectFsStoreOrderItemListByItemIds(itemIds);
-        if (fsStoreOrderItems.size() != itemIds.size()){
-            throw new CustomException("所退商品明细不存在");
-        }
-        FsStoreAfterSales fsStoreAfterSales = new FsStoreAfterSales();
-        fsStoreAfterSales.setOrderId(order.getOrderId());
-        fsStoreAfterSales.setStoreId(order.getStoreId());
-        fsStoreAfterSales.setRefundAmount(refundAmount);
-        fsStoreAfterSales.setCreateTime(DateUtils.getNowDate());
-        if (order.getStatus() == 2 || order.getStatus() == 3) {
-            fsStoreAfterSales.setRefundType(0);
-        }
-        if (order.getStatus() == 4) {
-            FsStore fsStore = fsStoreMapper.selectFsStoreByStoreId(order.getStoreId());
-            fsStoreAfterSales.setRefundType(1);
-            fsStoreAfterSales.setPhoneNumber(fsStore.getRefundPhone());
-            fsStoreAfterSales.setAddress(fsStore.getRefundAddress());
-            fsStoreAfterSales.setConsignee(fsStore.getRefundConsignee());
-        }
-        fsStoreAfterSales.setStatus(0);
-        fsStoreAfterSales.setDeptId(order.getDeptId());
-        fsStoreAfterSales.setSalesStatus(0);
-        fsStoreAfterSales.setOrderStatus(order.getStatus());
-        fsStoreAfterSales.setUserId(order.getUserId());
-        fsStoreAfterSales.setCompanyId(order.getCompanyId());
-        fsStoreAfterSales.setCompanyUserId(order.getCompanyUserId());
-        fsStoreAfterSales.setIsDel(0);
-        fsStoreAfterSalesService.insertFsStoreAfterSales(fsStoreAfterSales);
-
-        for (FsStoreOrderItem fsStoreOrderItem : fsStoreOrderItems) {
-            for (FsStoreOrderRefundByProductParam fsStoreOrderRefundByProductParam : refundList) {
-                if (Objects.equals(fsStoreOrderRefundByProductParam.getItemId(), fsStoreOrderItem.getItemId())) {
-                    FsStoreAfterSalesItem item = new FsStoreAfterSalesItem();
-                    item.setAfterSalesId(fsStoreAfterSales.getId());
-                    item.setProductId(fsStoreOrderItem.getProductId());
-                    String jsonInfo = fsStoreOrderItem.getJsonInfo();
-                    FsProdItemDTO fsProdItemDTO = JSON.parseObject(jsonInfo, FsProdItemDTO.class);
-                    fsProdItemDTO.setPrice(fsStoreOrderRefundByProductParam.getMoney());
-                    fsProdItemDTO.setNum(fsStoreOrderRefundByProductParam.getNum());
-                    item.setJsonInfo(JSONUtil.toJsonStr(fsProdItemDTO));
-                    fsStoreAfterSalesItemMapper.insertFsStoreAfterSalesItem(item);
-                    break;
-                }
-            }
-        }
-        //增加操作日志
-        FsStoreAfterSalesLogs logs = new FsStoreAfterSalesLogs();
-        logs.setChangeTime(new DateTime());
-        logs.setChangeType(0);
-        logs.setStoreAfterSalesId(fsStoreAfterSales.getId());
-        logs.setOperator(param.getOperator());
-        logs.setCompanyId(param.getCompanyId());
-        logs.setChangeMessage("平台提交售后");
-        fsStoreAfterSalesLogsMapper.insertFsStoreAfterSalesLogs(logs);
-        //添加订单日志
-        fsStoreOrderLogsService.create(order.getOrderId(), FsStoreOrderLogEnum.REFUND_ORDER_PLATFORM.getValue(),
-                param.getOperator() + " " +FsStoreOrderLogEnum.REFUND_ORDER_PLATFORM.getDesc());
-        //判断是否开启erp
-        FsSysConfig sysConfig = configUtil.getSysConfig();
-        Integer erpOpen = sysConfig.getErpOpen();
-        if (erpOpen != null && erpOpen == 1) {
-            //判断erp类型
-            Integer erpType = sysConfig.getErpType();
-            if (erpType != null) {
-
-                IErpOrderService erpOrderService = null;
-                if (erpType == 1) {
-                    //管易
-                    erpOrderService = gyOrderService;
-                } else if (erpType == 2) {
-                    //旺店通
-                    erpOrderService = wdtOrderService;
-                } else if (erpType == 3) {
-                    //瀚智
-                    erpOrderService = hzOMSOrderService;
-                } else if (erpType == 4) {
-                    //瀚智
-                    erpOrderService = dfOrderService;
-                } else if (erpType == 5) {
-                    erpOrderService = jSTOrderService;
-                }else if (erpType == 6) {
-                    erpOrderService = k9OrderService;
-                }
-                if (erpOrderService != null && StringUtils.isNotEmpty(order.getExtendOrderId())) {
-                    if (!order.getExtendOrderId().equals("HIS")) {
-                        if (erpType != 3) {
-                            ErpRefundUpdateRequest request = new ErpRefundUpdateRequest();
-                            request.setTid(order.getOrderCode());
-                            request.setOid(order.getOrderCode());
-                            request.setRefund_state(1);
-                            erpOrderService.refundUpdate(request);
-                        } else {
-                            ErpRefundOrder erpRefundOrder = new ErpRefundOrder();
-                            erpRefundOrder.setOrderCode(order.getOrderCode());
-                            erpRefundOrder.setAfterSalesId(fsStoreAfterSales.getId());
-                            erpOrderService.refundOrder(erpRefundOrder);
-                        }
-                    }
-                }
-            }
-        }
-        order.setStatus(-1);
-        order.setRefundStatus(1 + "");
-        fsStoreOrderMapper.updateFsStoreOrder(order);
-        if (order.getPackageOrderId() != null) {
-            FsPackageOrder fsPackageOrder = fsPackageOrderMapper.selectFsPackageOrderByOrderId(order.getPackageOrderId());
-            fsPackageOrder.setRefundStatus(1);
-            fsPackageOrderMapper.updateFsPackageOrder(fsPackageOrder);
-        }
-        return 1;
-    }
-
 }

+ 4 - 0
fs-service/src/main/resources/application-config-druid-jzzx.yml

@@ -46,6 +46,10 @@ wx:
         secret: 1afa05f0c71beff0d52fb849c62e479a # 公众号的appsecret
         token: PPKOdAlCoMO # 接口配置里的Token值
         aesKey: Eswa6VjwtVMCcw03qZy6fWllgrv5aytIA1SZPEU0kU2 # 接口配置里的EncodingAESKey值
+  # 开放平台app微信授权配置
+  open:
+    app-id: wxe4d352ea8ddbcf3c
+    secret: be6c179d79fcf97cbfb0b36c08877220
 aifabu:  #爱链接
   appKey: 7b471be905ab17e00f3b858c6710dd117601d008
 watch:

+ 53 - 0
fs-user-app/src/main/java/com/fs/app/controller/PackageOrderController.java

@@ -8,6 +8,8 @@ import com.fs.common.annotation.RepeatSubmit;
 import com.fs.common.core.domain.R;
 import com.fs.common.utils.ParseUtils;
 import com.fs.common.utils.StringUtils;
+import com.fs.company.domain.CompanyUser;
+import com.fs.company.service.ICompanyUserService;
 import com.fs.his.domain.*;
 import com.fs.his.dto.FsInquiryOrderPatientDTO;
 import com.fs.his.dto.FsStoreOrderAddressDTO;
@@ -25,6 +27,7 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
+import java.math.BigDecimal;
 import java.util.*;
 import java.util.concurrent.ThreadLocalRandom;
 
@@ -37,6 +40,9 @@ public class PackageOrderController extends  AppBaseController {
     @Autowired
     private IFsPackageOrderService packageOrderService;
 
+    @Autowired
+    private ICompanyUserService companyUserService;
+
 
     @Login
     @ApiOperation("创建订单")
@@ -234,4 +240,51 @@ public class PackageOrderController extends  AppBaseController {
         return R.ok().put("data", newOrderByPackageId);
     }
 
+    @Login
+    @ApiOperation("套餐包分享制单")
+    @GetMapping("/createPackageOrder")
+    public R createSalesOrder(@RequestParam("token")String token,
+                              @RequestParam("packageId")Long packageId,
+                              HttpServletRequest request){
+        Long userId=redisCache.getCacheObject("company-user-token:"+token);
+        if(userId==null){
+            return R.error(403,"用户失效");
+        }
+        CompanyUser companyUser=companyUserService.selectCompanyUserById(userId);
+        if(companyUser==null||companyUser.getDelFlag().equals("1")){
+            return R.error("用户不存在");
+        }
+        if(!companyUser.getStatus().equals("0")){
+            return R.error("用户已禁用");
+        }
+        return packageOrderService.createPackageOrder(companyUser,packageId);
+    }
+
+    @ApiOperation("改价")
+    @GetMapping("/updatePackageOrderMoney")
+    public R updatePackageOrderMoney(@RequestParam("token")String token,
+                                   @RequestParam("createPackageOrderKey")String createPackageOrderKey,
+                                   @RequestParam(value = "money",required = false) BigDecimal money,
+                                   @RequestParam(value = "payAmount",required = false) BigDecimal payAmount,
+                                   @RequestParam(value = "payType",required = false) Integer payType,
+                                   HttpServletRequest request){
+        Long userId = redisCache.getCacheObject("company-user-token:"+token);
+        if(userId==null){
+            return R.error(403,"用户失效");
+        }
+        if (money == null){
+            money = BigDecimal.ZERO;
+        }
+        if (payAmount == null){
+            payAmount = BigDecimal.ZERO;
+        }
+        return packageOrderService.updatePackageOrderMoney(createPackageOrderKey,money,payAmount,payType);
+    }
+
+    @ApiOperation("获取订单")
+    @GetMapping("/getPackageOrder")
+    public R getPackageOrder(@RequestParam("createPackageOrderKey")String createPackageOrderKey, HttpServletRequest request){
+        return packageOrderService.getPackageOrder(createPackageOrderKey);
+    }
+
 }