Procházet zdrojové kódy

益寿缘-增加小程序端购买套餐包前的校验

cgp před 3 týdny
rodič
revize
f450886f2b

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

@@ -144,4 +144,11 @@ public interface IFsPackageOrderService
 
 
     R getPackageOrder(String createOrderKey);
+
+    /**
+     * 验证套餐订单购买条件
+     * @param param
+     * @return
+     */
+    R validateOrderPurchaseConditions(FsPackageOrderCreateParam param);
 }

+ 38 - 0
fs-service/src/main/java/com/fs/his/service/impl/FsPackageOrderServiceImpl.java

@@ -912,6 +912,44 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
         }
     }
 
+
+    @Override
+    public R validateOrderPurchaseConditions(FsPackageOrderCreateParam param) {
+        FsPackage fsPackage = fsPackageMapper.selectFsPackageByPackageId(param.getPackageId());
+        if (fsPackage == null) {
+            logger.error("未找到套餐包, 套餐包id: {}", param.getPackageId());
+            return R.error("未找到套餐包");
+        }
+
+        // 套餐已下架
+        if (fsPackage.getStatus().equals(0)) {
+            return R.error("套餐已下架");
+        }
+
+        // 私域套餐:需提供公司和销售用户信息
+        if (fsPackage.getIsShow() == 0) {
+            if (param.getCompanyId() == null || param.getCompanyUserId() == null) {
+                logger.error("入参信息缺失, 入参: {}", param);
+                return R.error("商品信息过期");
+            }
+            CompanyUser companyUser = companyUserMapper.selectCompanyUserById(param.getCompanyUserId());
+            if (companyUser == null) {
+                logger.error("未找到销售用户, 销售id: {}", param.getCompanyUserId());
+                return R.error("商品信息过期");
+            }
+        }
+
+        // 限购校验
+        Integer num = fsPackage.getNum();
+        if (num != null && num > 0) {
+            int purchasedCount = fsPackageMapper.selectFsPackageListByUser(param.getUserId(), fsPackage.getPackageId());
+            if (purchasedCount >= num) {
+                return R.error("超过限购次数");
+            }
+        }
+        //套餐包所有校验通过
+        return R.ok();
+    }
     @Override
     @Transactional
     public R payOrder(FsPackageOrderPayParam param) {

+ 1 - 0
fs-service/src/main/java/com/fs/hisStore/service/impl/FsUserInformationCollectionServiceImpl.java

@@ -228,6 +228,7 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
             fsUserInformationCollection.setPackageId(param.getPackageId());
             fsUserInformationCollection.setCompanyUserId(param.getCompanyUserId());
             fsUserInformationCollection.setCompanyId(param.getCompanyId());
+            //构建采集进度信息
             FsUserInformationCollectionSchedule fsUserInformationCollectionSchedule = assembleCreateSchedule(fsUserInformationCollection);
             fsUserInformationCollectionSchedule.setCompanyUserId(param.getCompanyUserId());
             scheduleMapper.insertFsUserInformationCollectionSchedule(fsUserInformationCollectionSchedule);

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

@@ -61,6 +61,18 @@ public class PackageOrderController extends  AppBaseController {
         return packageOrderService.createOrder1(param);
     }
 
+    @Login
+    @ApiOperation("校验订单是否符合购买条件")
+    @PostMapping("/validateOrderPurchaseConditions")
+    public R validateOrderPurchaseConditions(@Validated @RequestBody FsPackageOrderCreateParam param, HttpServletRequest request){
+        if (param!=null&&param.getPackageId()!=null){
+            param.setUserId(Long.parseLong(getUserId()));
+            return packageOrderService.validateOrderPurchaseConditions(param);
+        }else {
+            return R.error("商品信息过期");
+        }
+    }
+
     @Login
     @ApiOperation("计算订单")
     @PostMapping("/compute")