gongfuzhu 1 年間 前
コミット
f4a4e483a8

+ 45 - 5
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/controller/OrderController.java

@@ -13,6 +13,8 @@ import com.zhongshu.payment.client.model.payment.CreateResponseModel;
 import com.zhongshu.payment.client.type.JobFlowMap;
 import com.zhongshu.payment.client.type.TransferOwner;
 import com.zhongshu.payment.client.type.TransferType;
+import com.zswl.cloud.shop.client.service.GoodsService;
+import com.zswl.cloud.shop.client.vo.life.GoodsInfoVo;
 import com.zswl.cloud.springBtach.server.core.service.OrderServiceImp;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.log4j.Log4j2;
@@ -38,21 +40,59 @@ public class OrderController {
     @Autowired
     OrderServiceImp orderServiceImp;
 
+    @Autowired
+    GoodsService goodsService;
+
 
     @ApiOperation("创建订单")
     @ResourceAuth(value = AuthConstant.User, type = AuthType.User)
     @RequestMapping(value = "creat", method = RequestMethod.POST)
     public ResultContent creat(@RequestBody @Valid AddOrderParamModel orderParamModel) {
-        String goods = orderParamModel.getGoodsList().get(0);
         String userId = authHelper.getCurrentUser().getUserId();
+
+
         CreateOrder2Model createOrder2Model = new CreateOrder2Model();
         createOrder2Model.setUserId(userId);
         createOrder2Model.setShopId(orderParamModel.getShopId());
 
-        CreateOrder2Model.Goods goods1 = new CreateOrder2Model.Goods();
-        goods1.setGoodsId(goods);
-        goods1.setJobFlowMap(JobFlowMap.P81);
-        createOrder2Model.setGoodsList(List.of(goods1));
+        for (String goodsId : orderParamModel.getGoodsList()) {
+            com.zswl.cloud.shop.client.ret.ResultContent<GoodsInfoVo> detail = goodsService.detail(goodsId, 1, userId);
+            String goodsType = detail.getContent().getGoodsType();
+
+            CreateOrder2Model.Goods goods1 = new CreateOrder2Model.Goods();
+            goods1.setGoodsId(goodsId);
+            switch (goodsType) {
+                case "801":
+                    goods1.setJobFlowMap(JobFlowMap.P801);
+                    break;
+                case "802":
+                    goods1.setJobFlowMap(JobFlowMap.P802);
+                    break;
+                case "803":
+                    goods1.setJobFlowMap(JobFlowMap.P803);
+                    break;
+                case "804":
+                    goods1.setJobFlowMap(JobFlowMap.P804);
+                    break;
+                case "805":
+                    goods1.setJobFlowMap(JobFlowMap.P805);
+                    break;
+                case "806":
+                    goods1.setJobFlowMap(JobFlowMap.P806);
+                    break;
+                case "807":
+                    goods1.setJobFlowMap(JobFlowMap.P807);
+                    break;
+                case "808":
+                    goods1.setJobFlowMap(JobFlowMap.P808);
+                    break;
+
+
+            }
+
+
+            createOrder2Model.setGoodsList(List.of(goods1));
+        }
 
         return orderServiceImp.creat(createOrder2Model);
     }

+ 96 - 87
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/job/standard/StandarOrderJob.java

@@ -65,103 +65,112 @@ public class StandarOrderJob {
 
                     CreateOrder2Model createOrder2Model = getParameter().get();
 
-                    OperateStockDto operateStockDto = new OperateStockDto();
-                    operateStockDto.setUserId(createOrder2Model.getUserId());
-                    operateStockDto.setOperate(1);// 暂用库存
-                    operateStockDto.setShopId(createOrder2Model.getShopId());
-                    operateStockDto.setGoodsId(createOrder2Model.getGoodsList().get(0).getGoodsId());
-                    String goodsId = createOrder2Model.getGoodsList().get(0).getGoodsId();
+                    for (CreateOrder2Model.Goods goods : createOrder2Model.getGoodsList()) {
 
-                    try {
 
-
-                        // 暂用库存
-                        com.zswl.cloud.shop.client.ret.ResultContent resultContent1 = goodsService.operateStock(operateStockDto);
-
-                        log.info("锁定商品结果:{}",JSONUtil.toJsonStr(resultContent1));
-
-                        if (resultContent1.getState().equals(ResultState.Success)) {
-                            CreateOrder2Model.Goods goods = createOrder2Model.getGoodsList().get(0);
-
-                            // 计算价格
-                            CalculateCouponDto calculateCouponDto = new CalculateCouponDto();
-                            calculateCouponDto.setUserId(createOrder2Model.getUserId());
-                            calculateCouponDto.setShopId(createOrder2Model.getShopId());
-                            calculateCouponDto.setGoodsId(goods.getGoodsId());
-
-
-                            com.zswl.cloud.shop.client.ret.ResultContent<CalculateVo> calculate = goodsService.calculate(calculateCouponDto);
-                            log.info("计算价格:{}",JSONUtil.toJsonStr(calculate));
-                            CalculateVo calculateVo = calculate.getContent();
-                            // 设置订单价格 todo 价格处理
-                            createOrder2Model.setTotalAmount(calculateVo.getPrice());
-                            createOrder2Model.setPayAmount(calculateVo.getPrice());
-                            createOrder2Model.setDiscountAmount(calculateVo.getOffset());
-
-                            goods.setPayAmount(calculateVo.getPrice());
-
-                            // 店铺详情
-                            com.zswl.cloud.shop.client.ret.ResultContent<ShopDetailVo> detail1 = shopService.detail(createOrder2Model.getShopId());
-                            log.info("店铺详情:{}",JSONUtil.toJsonStr(detail1));
-                            ShopDetailVo shopDetailVo = detail1.getContent();
-                            createOrder2Model.setShopInfo(JSONUtil.parseObj(shopDetailVo));
-                            if (ObjectUtil.isEmpty(shopDetailVo.getAuthAccount())){
-                               resultContent.set( ResultContent.build(com.github.microservice.auth.client.content.ResultState.Fail,"分账账户未设置"));
-                               stop.set(true);
+                        OperateStockDto operateStockDto = new OperateStockDto();
+                        operateStockDto.setUserId(createOrder2Model.getUserId());
+                        operateStockDto.setOperate(1);// 暂用库存
+                        operateStockDto.setShopId(createOrder2Model.getShopId());
+                        operateStockDto.setGoodsId(goods.getGoodsId());
+
+                        try {
+
+                            // 暂用库存
+                            com.zswl.cloud.shop.client.ret.ResultContent resultContent1 = goodsService.operateStock(operateStockDto);
+
+                            log.info("锁定商品结果:{}", JSONUtil.toJsonStr(resultContent1));
+                            if (resultContent1.getState().equals(ResultState.Success)) {
+
+                                // 计算价格
+                                CalculateCouponDto calculateCouponDto = new CalculateCouponDto();
+                                calculateCouponDto.setUserId(createOrder2Model.getUserId());
+                                calculateCouponDto.setShopId(createOrder2Model.getShopId());
+                                calculateCouponDto.setGoodsId(goods.getGoodsId());
+
+
+                                com.zswl.cloud.shop.client.ret.ResultContent<CalculateVo> calculate = goodsService.calculate(calculateCouponDto);
+                                log.info("计算价格:{}", JSONUtil.toJsonStr(calculate));
+                                CalculateVo calculateVo = calculate.getContent();
+                                // 设置订单价格
+                                createOrder2Model.setTotalAmount(calculateVo.getPrice());
+                                createOrder2Model.setPayAmount(calculateVo.getPrice());
+                                createOrder2Model.setDiscountAmount(calculateVo.getOffset());
+
+                                goods.setPayAmount(calculateVo.getPrice());
+
+                                // 店铺详情
+                                com.zswl.cloud.shop.client.ret.ResultContent<ShopDetailVo> detail1 = shopService.detail(createOrder2Model.getShopId());
+                                log.info("店铺详情:{}", JSONUtil.toJsonStr(detail1));
+                                ShopDetailVo shopDetailVo = detail1.getContent();
+                                createOrder2Model.setShopInfo(JSONUtil.parseObj(shopDetailVo));
+                                if (ObjectUtil.isEmpty(shopDetailVo.getAuthAccount())) {
+                                    resultContent.set(ResultContent.build(com.github.microservice.auth.client.content.ResultState.Fail, "分账账户未设置"));
+                                    stop.set(true);
+                                    return RepeatStatus.FINISHED;
+                                }
+
+
+                                    // 设置分账账户
+                                createOrder2Model.setAccesserUserId(shopDetailVo.getAuthAccount());
+
+                                // 商品详情
+                                com.zswl.cloud.shop.client.ret.ResultContent<GoodsInfoVo> detail = goodsService.detail(goods.getGoodsId(), 1, createOrder2Model.getUserId());
+                                log.info("商品详情:{}", JSONUtil.toJsonStr(detail));
+                                GoodsInfoVo goodsInfoVo = detail.getContent();
+                                SharePlatformVo sharePlatformVo = goodsInfoVo.getSharePlatformVo();
+                                if (ObjectUtil.isEmpty(sharePlatformVo)) {
+                                    stop.set(true);
+                                    getResultContent().set(ResultContent.build(com.github.microservice.auth.client.content.ResultState.Fail, "分账规则未配置"));
+                                    return RepeatStatus.FINISHED;
+                                }
+
+                                // 设置有效期
+                                createOrder2Model.setValidDay(goodsInfoVo.getValidDay());
+
+
+                                // 设置分账规则
+                                goods.setTransferType(sharePlatformVo.getShareType() == 1 ? TransferType.RATIO : TransferType.FIXED);
+                                    // 平台
+                                CreateOrder2Model.Owner platform = new CreateOrder2Model.Owner();
+                                platform.setOwner(TransferOwner.PLATFORM);
+                                platform.setValue(sharePlatformVo.getPlatformRate());
+
+                                    // 购买店铺
+                                CreateOrder2Model.Owner byShop = new CreateOrder2Model.Owner();
+                                byShop.setOwner(TransferOwner.BUY_SHOP);
+                                byShop.setValue(sharePlatformVo.getBuyShopRate());
+
+                                    // 使用店铺
+                                CreateOrder2Model.Owner useShop = new CreateOrder2Model.Owner();
+                                useShop.setOwner(TransferOwner.USE_SHOP);
+                                useShop.setValue(sharePlatformVo.getCheckShopRate());
+
+                                ArrayList<CreateOrder2Model.Owner> rule = new ArrayList<>();
+                                rule.add(platform);
+                                rule.add(byShop);
+                                rule.add(useShop);
+                                goods.setTransferRrule(rule);
+
+                                // 设置商品详情
+                                goods.setGoodsInfo(JSONUtil.parseObj(goodsInfoVo));
                                 return RepeatStatus.FINISHED;
-                            }
 
-
-                            createOrder2Model.setAccesserUserId(shopDetailVo.getAuthAccount());
-                            // 商品详情
-                            com.zswl.cloud.shop.client.ret.ResultContent<GoodsInfoVo> detail = goodsService.detail(goodsId, 1, createOrder2Model.getUserId());
-                            log.info("商品详情:{}",JSONUtil.toJsonStr(detail));
-                            GoodsInfoVo goodsInfoVo = detail.getContent();
-                            SharePlatformVo sharePlatformVo = goodsInfoVo.getSharePlatformVo();
-                            if (ObjectUtil.isEmpty(sharePlatformVo)){
-                                stop.set(true);
-                                getResultContent().set(ResultContent.build(com.github.microservice.auth.client.content.ResultState.Fail,"分账规则未配置"));
-                                return RepeatStatus.FINISHED;
                             }
 
-                            // 设置有效期
-                            createOrder2Model.setValidDay(goodsInfoVo.getValidDay());
-
-
-                            goods.setTransferType(sharePlatformVo.getShareType() == 1 ? TransferType.RATIO : TransferType.FIXED);
-                            CreateOrder2Model.Owner platform = new CreateOrder2Model.Owner();
-                            platform.setOwner(TransferOwner.PLATFORM);
-                            platform.setValue(sharePlatformVo.getPlatformRate());
-
-                            CreateOrder2Model.Owner byShop = new CreateOrder2Model.Owner();
-                            byShop.setOwner(TransferOwner.BUY_SHOP);
-                            byShop.setValue(sharePlatformVo.getBuyShopRate());
-
-                            CreateOrder2Model.Owner useShop = new CreateOrder2Model.Owner();
-                            useShop.setOwner(TransferOwner.USE_SHOP);
-                            useShop.setValue(sharePlatformVo.getCheckShopRate());
-
-                            ArrayList<CreateOrder2Model.Owner> rule = new ArrayList<>();
-                            rule.add(platform);
-                            rule.add(byShop);
-                            rule.add(useShop);
-
-                            goods.setTransferRrule(rule);
-                            goods.setGoodsInfo(JSONUtil.parseObj(goodsInfoVo));
-                            goods.setJobFlowMap(JobFlowMap.P81);
+                            stop.set(true);
+                            resultContent.set(ResultContent.build(com.github.microservice.auth.client.content.ResultState.Fail, resultContent1.getMsg()));
                             return RepeatStatus.FINISHED;
 
+
+                        } catch (Exception e) {
+                            stop.set(true);
+                            e.printStackTrace();
+                            resultContent.set(ResultContent.build(com.github.microservice.auth.client.content.ResultState.Fail, e.getMessage()));
+                            operateStockDto.setOperate(2);
+                            goodsService.operateStock(operateStockDto);
                         }
 
-                        stop.set(true);
-                        resultContent.set(ResultContent.build(com.github.microservice.auth.client.content.ResultState.Fail,resultContent1.getMsg()));
-                        return RepeatStatus.FINISHED;
-                    } catch (Exception e) {
-                        stop.set(true);
-                        e.printStackTrace();
-                        resultContent.set(ResultContent.build(com.github.microservice.auth.client.content.ResultState.Fail, e.getMessage()));
-                        operateStockDto.setOperate(2);
-                        goodsService.operateStock(operateStockDto);
                     }
 
                     return RepeatStatus.FINISHED;