张天森
2022-10-12 3c884ccd7b51edf3b36840bf99de5edaa41a38a7
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityOrderBargainServiceImpl.java
@@ -202,7 +202,7 @@
            return R.fail("该商品库存不足,无法下单");
        }
        //查询用户信息
        SysUser user = userMapper.selectById(orderDto.getUserId());
        SysUser user = userMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId,orderDto.getUserId()));
        if(user == null){
            return R.fail("未查询到用户信息");
        }
@@ -216,13 +216,18 @@
        Integer count = commodityOrderMapper.selectCount(new QueryWrapper<ComBatteryCommodityOrder>()
                .lambda().eq(ComBatteryCommodityOrder::getStatus,ComBatteryCommodityOrder.Status.DKJ)
                .eq(ComBatteryCommodityOrder::getBargainStatus,ComBatteryCommodityOrder.BargainStatus.KJZ)
                .eq(ComBatteryCommodityOrder::getIsDel,ComBatteryCommodityOrder.IsDel.NO));
                .eq(ComBatteryCommodityOrder::getIsDel,ComBatteryCommodityOrder.IsDel.NO)
                .eq(ComBatteryCommodityOrder::getActivityId,orderDto.getActivityId())
                .eq(ComBatteryCommodityOrder::getUserId,orderDto.getUserId()));
        if(count > 0){
            return R.fail("您已存在正在砍价中的订单,不可再发起砍价订单");
        }
        ComBatteryCommodityOrder commodityOrder = getCreateOrder(commodity,userAddress,user,commoditySpecs,orderDto,nowDate,commodityActivity);
        Map<String,Object> resultMap = new HashMap<>(2);
        if(commodityOrderMapper.insert(commodityOrder) > 0){
            //更新活动商品库存
            commodityActivity.setCommoditySaleNum(commodityActivity.getCommoditySaleNum() + orderDto.getCount());
            commodityActivityMapper.updateById(commodityActivity);
            //更新商品库存
            commoditySpecs.setStock(commoditySpecs.getStock() - orderDto.getCount());
            commoditySpecsMapper.updateById(commoditySpecs);
@@ -262,7 +267,7 @@
        commodityOrder.setActivityId(commodityActivity.getId());
        commodityOrder.setCommodityId(commodity.getId());
        commodityOrder.setSpecsId(commoditySpecs.getId());
        commodityOrder.setOrderNo("PT" + Snowflake.getId());
        commodityOrder.setOrderNo("KJ" + Snowflake.getId());
        commodityOrder.setActivityType(commodityActivity.getType());
        commodityOrder.setStatus(ComBatteryCommodityOrder.Status.DFK);
        commodityOrder.setPayStatus(ComBatteryCommodityOrder.PayStatus.WZF);
@@ -346,6 +351,12 @@
                return R.fail("该砍价活动已结束");
            }
        }
        Integer count = orderBargainRecordMapper.selectCount(new QueryWrapper<ComBatteryCommodityOrderBargainRecord>().lambda()
                .eq(ComBatteryCommodityOrderBargainRecord::getBargainId,orderDto.getBargainId())
                .eq(ComBatteryCommodityOrderBargainRecord::getUserId,orderDto.getUserId()));
        if(count > 0){
            return R.fail("您已经参加此砍价,不可重复参加");
        }
        //商品原价
        BigDecimal originalPrice = orderBargain.getOriginalPrice();
        //商品目标价格
@@ -360,7 +371,7 @@
        BigDecimal minPrice = originalPrice.subtract(targetPrice).multiply(BigDecimal.valueOf(0.05));
        BigDecimal randomNumber = MathUtils.getRandomNumber(maxPrice,minPrice);
        if(randomNumber.compareTo(surplusPrice) > 0){
            randomNumber = currentPrice;
            randomNumber = surplusPrice;
        }
        //初始化用户帮砍价记录
        ComBatteryCommodityOrderBargainRecord orderBargainRecord = getOrderBargainRecord(orderBargain.getId()