Forráskód Böngészése

疗法制单兼容线上版本

wjj 3 hete
szülő
commit
3b6b9128f6

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

@@ -81,6 +81,7 @@ public interface IFsPackageOrderService
     R confirmOrder(FsPackageOrderConfirmParam param);
 
     R createOrder(FsPackageOrderCreateParam param);
+    R createOrder1(FsPackageOrderCreateParam param);
 
     R computeOrder(FsPackageOrderComputeParam param);
 

+ 139 - 3
fs-service/src/main/java/com/fs/his/service/impl/FsPackageOrderServiceImpl.java

@@ -549,6 +549,142 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
         }
 
 
+        Integer num = fsPackage.getNum();
+        if (num!=0){
+            int i = fsPackageMapper.selectFsPackageListByUser(param.getUserId(), fsPackage.getPackageId());
+            if (i>=num){
+                return R.error("超过限购次数");
+            }
+        }
+
+        FsPackageOrder  order=new FsPackageOrder();
+        String orderSn =  OrderCodeUtils.getOrderSn();
+        if(StringUtils.isEmpty(orderSn)){
+            return R.error("订单生成失败,请重试");
+        }
+        order.setPayType(param.getPayType());
+        order.setOrderSn(orderSn);
+        order.setStoreId(fsPackage.getStoreId());
+        order.setUserId(param.getUserId());
+        if (doctor != null) {
+            order.setDoctorId(doctor.getDoctorId());
+        } else {
+            order.setDoctorId(param.getDoctorId());
+        }
+        order.setPackageId(param.getPackageId());
+        order.setPackageName(fsPackage.getPackageName());
+        order.setTotalPrice(fsPackage.getTotalPrice());
+        order.setIcdCode(fsPackage.getIcdCode());
+        order.setPayPrice(fsPackage.getTotalPrice());
+        order.setPayMoney(fsPackage.getTotalPrice());
+        order.setIsPay(0);
+        order.setPackageSecondName(fsPackage.getSecondName());
+        order.setDoctorRemark(fsPackage.getDoctorRemark());
+        order.setFollowTempId(fsPackage.getFollowTempId());
+        if (param.getSource()!=null){
+            order.setSource(param.getSource());
+        }
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(new Date());
+        SysConfig sysConfig = sysConfigMapper.selectConfigByConfigKey("his.package");
+        Map<String, Object> config = (Map<String, Object>) JSON.parse(sysConfig.getConfigValue());
+        Integer followRate = (Integer)config.get("followRate");
+        calendar.add(Calendar.DAY_OF_MONTH, followRate);
+        order.setFollowTime(calendar.getTime());
+        order.setFollowRate(followRate);
+        order.setPackageSubType(fsPackage.getPackageSubType());
+        order.setDays(fsPackage.getCycle());
+        order.setStatus(1);
+        order.setStartTime(new Date());
+        order.setCompanyUserId(param.getCompanyUserId());
+        if (param.getCompanyUserId()!=null){
+            CompanyUser companyUser = companyUserMapper.selectCompanyUserById(param.getCompanyUserId());
+            if (companyUser!=null){
+                order.setDeptId(companyUser.getDeptId());
+            }
+        }
+        order.setCompanyId(param.getCompanyId());
+        Calendar c = Calendar.getInstance();
+        c.setTime(order.getStartTime());
+        c.add(Calendar.DAY_OF_MONTH, fsPackage.getCycle());
+        order.setFinishTime(c.getTime());
+        order.setFormJson(param.getFormJson());
+        order.setPackageJson(JSONUtil.toJsonStr(fsPackage));
+        order.setCreateTime(new Date());
+        if(patient!=null){
+            order.setPatientJson(JSONUtil.toJsonStr(patient));
+        }
+        order.setInquiryCostPrice(fsPackage.getInquiryCostPrice());
+        order.setProductCostPrice(fsPackage.getProductCostPrice());
+        order.setTotalCostPrice(fsPackage.getTotalCostPrice());
+        order.setCycle(fsPackage.getCycle());
+        order.setCostDiscountMoney(fsPackage.getTotalCostPrice().subtract(fsPackage.getTotalPrice()));
+        if(fsPackageOrderMapper.insertFsPackageOrder(order)>0){
+            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);
+        }
+        else{
+            return R.error("创建失败");
+        }
+    }
+
+    @Override
+    public R createOrder1(FsPackageOrderCreateParam param) {
+        FsUser user=userService.selectFsUserByUserId(param.getUserId());
+        if(user.getStatus()!=1){
+            return R.error("非法用户操作");
+        }
+        FsPatient patient=null;
+        FsDoctor doctor=null;
+        FsPackage fsPackage=fsPackageMapper.selectFsPackageByPackageId(param.getPackageId());
+        if(fsPackage.getProductType()==1 || fsPackage.getProductType()==2){
+            if(param.getPatientId()!=null){
+                patient=fsPatientMapper.selectFsPatientByPatientId(param.getPatientId());
+                if (patient==null){
+                    return R.error("请提交患者信息");
+                }
+            }else {
+                return R.error("请提交患者信息");
+            }
+            logger.info("是否是中药或者西药{},{}",fsPackage.getProductType(),fsPackage.getProductType() == 1 || fsPackage.getProductType() == 2);
+            if (fsPackage.getProductType() == 1 || fsPackage.getProductType() == 2) {
+                if (StringUtils.isEmpty(patient.getIdCard())) {
+                    return R.error("请完善患者身份证信息");
+                }
+            }
+
+            if(param.getDoctorId()!=null){
+                doctor=doctorMapper.selectFsDoctorByDoctorId(param.getDoctorId());
+                if(doctor==null||doctor.getStatus().equals(0)){
+                    return R.error("此医生已停用");
+                }
+                Integer orderCount=inquiryOrderMapper.checkAcceptOrder(param.getDoctorId(),param.getUserId());
+                if(orderCount>0){
+                    return R.error("您正在咨询此医生,请先结束当前订单");
+                }
+            }
+        }
+        if(fsPackage.getStatus().equals(0)){
+            return R.error("套餐名已下架");
+        }
+        //私域下套餐包(可覆盖医生信息 使用销售绑定的医生信息)
+        if (fsPackage.getIsShow()==0){
+            if (param.getCompanyId()==null||param.getCompanyUserId()==null){
+                return R.error("商品信息过期");
+            }
+            CompanyUser companyUser = companyUserMapper.selectCompanyUserById(param.getCompanyUserId());
+            if (companyUser==null){
+                return R.error("商品信息过期");
+            }
+            //获取销售绑定医生
+            if (companyUser.getDoctorId() != null) {
+                doctor = doctorMapper.selectFsDoctorByDoctorId(companyUser.getDoctorId());
+
+            }
+        }
+
+
         Integer num = fsPackage.getNum();
         if (num!=0){
             int i = fsPackageMapper.selectFsPackageListByUser(param.getUserId(), fsPackage.getPackageId());
@@ -1801,9 +1937,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)) {

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

@@ -53,6 +53,14 @@ public class PackageOrderController extends  AppBaseController {
         return packageOrderService.createOrder(param);
     }
 
+    @Login
+    @ApiOperation("创建订单(疗法版本)")
+    @PostMapping("/create1")
+    public R create1(@Validated @RequestBody FsPackageOrderCreateParam param, HttpServletRequest request){
+        param.setUserId(Long.parseLong(getUserId()));
+        return packageOrderService.createOrder1(param);
+    }
+
     @Login
     @ApiOperation("计算订单")
     @PostMapping("/compute")
@@ -242,7 +250,7 @@ public class PackageOrderController extends  AppBaseController {
     }
 
     @Login
-    @ApiOperation("套餐包分享制单")
+    @ApiOperation("套餐包分享制单(疗法版本)")
     @PostMapping("/createPackageOrder1")
     public R createPackageOrder(@RequestBody CreatePackageOrderParam param,
                               HttpServletRequest request){
@@ -260,6 +268,26 @@ public class PackageOrderController extends  AppBaseController {
         return packageOrderService.createPackageOrder(companyUser,param.getPackageId(),param.getPatient(),param.getJsonInfo());
     }
 
+    @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,null,null);
+    }
+
     @ApiOperation("改价")
     @GetMapping("/updatePackageOrderMoney")
     public R updatePackageOrderMoney(@RequestParam("token")String token,