|
|
@@ -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)) {
|