张天森
2022-10-12 3c884ccd7b51edf3b36840bf99de5edaa41a38a7
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityOrderServiceImpl.java
@@ -283,7 +283,7 @@
            return R.fail("未查询到用户收货地址");
        }
        //查询用户信息
        SysUser user = userMapper.selectById(createOrderDto.getUserId());
        SysUser user = userMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId,createOrderDto.getUserId()));
        if (user == null) {
            return R.fail("未查询到用户信息");
        }
@@ -382,7 +382,7 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R syncCloseOrder() {
        log.info("定时器定时关闭超过30分钟未支付订单,并返回商品库存");
        log.info("定时器定时关闭超过5分钟未支付订单,并返回商品库存");
        Date nowDate = new Date();
        //获取当前时间减30分钟时间
        Date oldDate = DateUtils.addMinutes(nowDate, -5);
@@ -401,6 +401,13 @@
                commoditySpecs.setStock(commoditySpecs.getStock() + commodityOrder.getCount());
                commoditySpecs.setUpdateAt(nowDate);
                commoditySpecsMapper.updateById(commoditySpecs);
            }
            if(commodityOrder.getActivityId() != null){
                ComBatteryCommodityActivity commodityActivity = commodityActivityMapper.selectById(commodityOrder.getActivityId());
                if(!commodityActivity.getType().equals(ComBatteryCommodityActivity.Type.PT)){
                    commodityActivity.setCommoditySaleNum(commodityActivity.getCommoditySaleNum() - commodityOrder.getCount());
                    commodityActivityMapper.updateById(commodityActivity);
                }
            }
        });
        return R.ok();
@@ -501,6 +508,7 @@
                        //用户开团,创建团队信息
                        orderCollageTeam = getOrderCollageTeam(commodityOrder,nowDate);
                        orderCollageTeamMapper.insert(orderCollageTeam);
                        commodityOrder.setTeamId(orderCollageTeam.getId());
                    }else{
                        //用户参团,查询参加的团队信息
                        orderCollageTeam = orderCollageTeamMapper.selectById(commodityOrder.getTeamId());
@@ -510,11 +518,7 @@
                        ComBatteryCommodityOrderCollageTeamPeople orderCollageTeamPeople = getOrderCollageTeamPeople(commodityOrder.getUserId()
                                ,nowDate,orderCollageTeam,notifyOrderDTO.getAttach());
                        orderCollageTeamPeopleMapper.insert(orderCollageTeamPeople);
                        //判断当前拼团人员是否已足够成团
                        syncAssortedDoughStatus(orderCollageTeam.getId(),nowDate);
                    }
                    //判断当前拼团活动是否已完成
                    syncAssortedDoughActivityStatus(commodityOrder.getActivityId(),nowDate);
                    break;
                case ComBatteryCommodityOrder.ActivityType.KJ:
                    //砍价订单成功支付处理
@@ -540,6 +544,15 @@
        commodityOrder.setUpdateAt(nowDate);
        commodityOrder.setPayTime(payTime);
        this.baseMapper.updateById(commodityOrder);
        if(commodityOrder.getTeamId() != null){
            //判断当前拼团人员是否已足够成团
            syncAssortedDoughStatus(commodityOrder.getTeamId(),nowDate);
        }
        if(commodityOrder.getActivityId() != null && commodityOrder.getActivityType().equals(ComBatteryCommodityOrder.ActivityType.PT)){
            //判断当前拼团活动是否已完成
            syncAssortedDoughActivityStatus(commodityOrder.getActivityId(),nowDate);
        }
        return R.ok();
    }
@@ -613,7 +626,7 @@
            if(commodityActivity != null){
                Integer count = orderCollageTeamPeopleMapper.selectCount(new QueryWrapper<ComBatteryCommodityOrderCollageTeamPeople>()
                        .lambda().eq(ComBatteryCommodityOrderCollageTeamPeople::getTeamId,teamId));
                if(count >= commodityActivity.getCollageNum()){
                if(count >= commodityActivity.getCollagePeopleNum()){
                    //拼团条件满足,将所有已拼单的用户的订单更新为待发货状态
                    //更新拼团团队记录
                    orderCollageTeam.setStatus(ComBatteryCommodityOrderCollageTeam.Status.PTCG);
@@ -651,7 +664,7 @@
        //查询商品信息
        ComBatteryCommodity commodity = commodityMapper.selectById(commodityOrder.getCommodityId());
        if(commodity != null){
            orderBargain.setCurrentPrice(commodity.getPrice());
            orderBargain.setOriginalPrice(commodity.getPrice());
            orderBargain.setCurrentPrice(commodity.getPrice());
        }
        //查询活动信息
@@ -662,6 +675,11 @@
        return orderBargain;
    }
    /**
     * 创建秒杀订单
     * @param orderDto  请求参数
     * @return  创建订单结果
     */
    @Override
    public R startSeckill(StartSeckillOrderDto orderDto) {
        ComBatteryCommodityActivity commodityActivity = commodityActivityMapper.selectById(orderDto.getActivityId());
@@ -696,7 +714,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("未查询到用户信息");
        }
@@ -709,6 +727,9 @@
        ComBatteryCommodityOrder commodityOrder = getCreateActivityOrder(commodity,userAddress,user,commoditySpecs,orderDto,nowDate,commodityActivity);
        Map<String,Object> resultMap = new HashMap<>(2);
        if(this.baseMapper.insert(commodityOrder) > 0){
            //更新活动商品库存
            commodityActivity.setCommoditySaleNum(commodityActivity.getCommoditySaleNum() + orderDto.getCount());
            commodityActivityMapper.updateById(commodityActivity);
            //更新商品库存
            commoditySpecs.setStock(commoditySpecs.getStock() - orderDto.getCount());
            commoditySpecsMapper.updateById(commoditySpecs);