mitao
2024-05-23 5fcab4f1d5c3c65ecef6970a3479bae6d479ff99
meiya-rest/src/main/java/com/sinata/rest/modular/mall/service/impl/MallOrderServiceImpl.java
@@ -182,6 +182,10 @@
            order.setIdCard(body.getIdCard());
            order.setNumber(body.getNumber());
            order.setState(EnumMallOrderState.WAIT_PAY.index);
            if (Objects.isNull(order.getCityCode())) {
                AreaCity city = areaCityMapper.getCityByMerchantId(body.getMerchantId());
                Optional.ofNullable(city).ifPresent(c ->order.setCityCode(c.getCityCode()));
            }
            // 生成订单编号
            String generateOrderNo = dailyIncrementIdGenerator.generateId();
            order.setOrderNo(generateOrderNo);
@@ -242,8 +246,9 @@
                        if(skuVo.getStock() < boSku.getGoodsNum()) {
                            return ApiUtils.returnNG(null, "商品:" + skuVo.getGoodsName() + ",库存不足");
                        }
                        log.info("商品:{},减去库存:{}",skuVo,boSku.getGoodsNum());
                        // 减去库存
                        goodsSkuService.updateStock(skuVo.getSkuId(), -boSku.getGoodsNum());
                        goodsSkuService.updateStock(skuVo.getId(), -1 * boSku.getGoodsNum());
                        // 商品价格
                        BigDecimal sellCost;
@@ -253,7 +258,7 @@
                                // 美天销售价
                                sellCost = skuVo.getPriceSale();
                            } else {
                                if (user != null && user.getMemberGradeId() != EnumMemberGrade.G_1.index) {
                                if (user != null && user.getMemberGradeId() != EnumMemberGrade.G_1.index && EnumMemberGrade.G_2.index != user.getMemberGradeId()) {
                                    // 会员价
                                    sellCost = skuVo.getPriceMember();
                                } else {
@@ -270,7 +275,6 @@
                                // 销售价
                                sellCost = skuVo.getPriceMerchant();
                            }
                            // 查询套餐规格组ID
                            MallGroupSpec mallGroupSpec = mallGroupSpecService.getById(skuVo.getSpecIds());
                            List<GroupSpecGoodsSkuJsonVo> groupSpecGoodsSkuJsonVoList = JSONUtil.parseArray(mallGroupSpec.getGoodsSkuJson()).toList(GroupSpecGoodsSkuJsonVo.class);
@@ -535,11 +539,13 @@
                    .select(MallOrderDetail::getSkuId, MallOrderDetail::getGoodsNum)
                    .eq(MallOrderDetail::getOrderNo, orderNo);
            List<MallOrderDetail> orderDetails = orderDetailService.list(orderDetailLambdaQueryWrapper);
            log.info("-----------------------开始退回库存--------------------");
            log.info("orderDetails:{}", JSON.toJSONString(orderDetails));
            for (MallOrderDetail od : orderDetails) {
                // 增加库存
                goodsSkuService.updateStock(od.getSkuId(), od.getGoodsNum());
            }
            log.info("-----------------------退回库存结束--------------------");
            if (order.getCouponId() != null && order.getCouponId() != 0) {
                // 退还优惠券
                myCouponService.updateUseCoupon(order.getUserId(), order.getCouponId(), 0);