From 3c884ccd7b51edf3b36840bf99de5edaa41a38a7 Mon Sep 17 00:00:00 2001 From: 张天森 <1292933220@qq.com> Date: 星期三, 12 十月 2022 19:05:28 +0800 Subject: [PATCH] 三说会堂事件流程处理 --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityOrderServiceImpl.java | 39 ++++++++++++++++++++++++++++++--------- 1 files changed, 30 insertions(+), 9 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityOrderServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityOrderServiceImpl.java index 4f9c737..09249ea 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityOrderServiceImpl.java +++ b/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); -- Gitblit v1.7.1