|
@@ -2139,6 +2139,108 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ @Transactional
|
|
|
|
|
+ public R addAppPackageOrder(FsPackageOrderAddRewardsParam param) {
|
|
|
|
|
+ Long doctorId = null;
|
|
|
|
|
+ FsPackage fsPackage=fsPackageMapper.selectFsPackageByPackageId(param.getPackageId());
|
|
|
|
|
+ if(fsPackage.getStatus().equals(0)){
|
|
|
|
|
+ return R.error("套餐包已下架");
|
|
|
|
|
+ }
|
|
|
|
|
+ if (fsPackage.getIsShow()==0){
|
|
|
|
|
+ return R.error("商品信息过期");
|
|
|
|
|
+ }
|
|
|
|
|
+ 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.setOrderSn(orderSn);
|
|
|
|
|
+ order.setStoreId(fsPackage.getStoreId());
|
|
|
|
|
+ order.setUserId(param.getUserId());
|
|
|
|
|
+ order.setPackageId(param.getPackageId());
|
|
|
|
|
+ order.setPackageName(fsPackage.getPackageName());
|
|
|
|
|
+ order.setTotalPrice(fsPackage.getTotalPrice());
|
|
|
|
|
+ order.setIcdCode(fsPackage.getIcdCode());
|
|
|
|
|
+ order.setPayPrice(fsPackage.getTotalPrice());
|
|
|
|
|
+ order.setPayMoney(new BigDecimal(0));//0元订单
|
|
|
|
|
+ order.setIsPay(0);
|
|
|
|
|
+ order.setSource(param.getOrderResource());//订单来源
|
|
|
|
|
+ order.setPackageSecondName(fsPackage.getSecondName());
|
|
|
|
|
+ order.setDoctorRemark(fsPackage.getDoctorRemark());
|
|
|
|
|
+ order.setFollowTempId(fsPackage.getFollowTempId());
|
|
|
|
|
+ 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());
|
|
|
|
|
+ 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("[{\"title\":\"您是否已在线下就诊,且对所购买的药品无过敏或不良反应?\",\"options\":[{\"name\":\"是,我线下就诊过\",\"value\":1,\"color\":\"green\"},{\"name\":\"无,从未就诊\",\"value\":0,\"color\":\"red\"}],\"option\":\"是,我线下就诊过\"},{\"title\":\"您是否已详细阅读药物说明,确认自己符合药物适用人群,并了解用药方法、用药禁忌等信息?\",\"options\":[{\"name\":\"是,我已充分了解\",\"value\":1,\"color\":\"green\"},{\"name\":\"否,未阅读\",\"value\":0,\"color\":\"red\"}],\"option\":\"是,我已充分了解\"}]");
|
|
|
|
|
+ order.setPackageJson(JSONUtil.toJsonStr(fsPackage));
|
|
|
|
|
+ order.setCreateTime(new Date());
|
|
|
|
|
+ order.setInquiryCostPrice(fsPackage.getInquiryCostPrice());
|
|
|
|
|
+ order.setProductCostPrice(fsPackage.getProductCostPrice());
|
|
|
|
|
+ order.setTotalCostPrice(fsPackage.getTotalCostPrice());
|
|
|
|
|
+ order.setCycle(fsPackage.getCycle());
|
|
|
|
|
+ order.setCostDiscountMoney(fsPackage.getTotalCostPrice().subtract(fsPackage.getTotalPrice()));
|
|
|
|
|
+
|
|
|
|
|
+ FsUserAddress address=userAddressService.selectFsUserAddressByAddressId(param.getAddressId());
|
|
|
|
|
+ if(address!=null){
|
|
|
|
|
+ Map<String, String> myMap = new HashMap<>();
|
|
|
|
|
+ myMap.put("userName", address.getRealName().trim());
|
|
|
|
|
+ myMap.put("userPhone", address.getPhone().trim());
|
|
|
|
|
+ myMap.put("userAddress", address.getProvince()+" "+address.getCity()+" "+address.getDistrict()+" "+address.getDetail());
|
|
|
|
|
+ String addressString = JSON.toJSONString(myMap);
|
|
|
|
|
+ order.setAddressJson(addressString);
|
|
|
|
|
+ }else {
|
|
|
|
|
+ return R.error("地址错误");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ FsPackageOrderComputeParam computeParam=new FsPackageOrderComputeParam();
|
|
|
|
|
+ computeParam.setCompanyUserId(param.getCompanyUserId());
|
|
|
|
|
+ computeParam.setCompanyId(param.getCompanyId());
|
|
|
|
|
+ computeParam.setPayType(param.getPayType());
|
|
|
|
|
+ computeParam.setSalesType(1);
|
|
|
|
|
+ if(order.getStoreId() != null){
|
|
|
|
|
+ computeParam.setStoreId(order.getStoreId());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ Map<String,Object> moneys=computeOrderMoney(order.getTotalPrice(),computeParam);
|
|
|
|
|
+ order.setPayMoney((BigDecimal)moneys.get("payMoney"));
|
|
|
|
|
+ order.setPayPrice((BigDecimal)moneys.get("payPrice"));
|
|
|
|
|
+ order.setPayDelivery((BigDecimal)moneys.get("payDelivery"));
|
|
|
|
|
+ order.setDiscountMoney((BigDecimal)moneys.get("discountMoney"));
|
|
|
|
|
+ order.setPayRemain((BigDecimal)moneys.get("payRemain"));
|
|
|
|
|
+ order.setPayType(param.getPayType());
|
|
|
|
|
+ if(fsPackageOrderMapper.insertFsPackageOrder(order)>0){
|
|
|
|
|
+ this.payConfirm(order.getOrderSn(),"","","",2,null,null);
|
|
|
|
|
+ return R.ok().put("order",order);
|
|
|
|
|
+ }
|
|
|
|
|
+ else{
|
|
|
|
|
+ return R.error("创建失败");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public R getWxaCodePackageOrderUnLimit(Long orderId) {
|
|
public R getWxaCodePackageOrderUnLimit(Long orderId) {
|
|
|
FsSysConfig sysConfig = configUtil.getSysConfig();
|
|
FsSysConfig sysConfig = configUtil.getSysConfig();
|