From 981aacc8d5de2638a0f5b3eb2585e64cfaf2807d Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期六, 12 七月 2025 18:01:19 +0800 Subject: [PATCH] 修改bug --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java | 231 ++++++++++++++++++++++++++++++++------------------------- 1 files changed, 131 insertions(+), 100 deletions(-) diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java index bc08919..2962360 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java @@ -72,7 +72,6 @@ import com.ruoyi.system.api.model.QwH5LoginVo; import com.ruoyi.system.api.model.QwUserDetailDto; import com.ruoyi.system.api.service.*; -import io.seata.spring.annotation.GlobalTransactional; import lombok.extern.log4j.Log4j2; import org.redisson.api.RLock; import org.redisson.api.RedissonClient; @@ -1515,6 +1514,7 @@ delayTime = redisService.getCacheObject(SecurityConstant.AUTO_CANCEL_ORDER_TIME); } appUserOrderGetVo.setEndTime(DateUtils.addMinutes(order.getCreateTime(), delayTime)); + appUserOrderGetVo.setCancelType(order.getCancelType()); return appUserOrderGetVo; } @@ -1533,10 +1533,10 @@ //删除待支付超时取消延时任务 redisService.deleteObject(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode() + "-" + orderId); remoteConfigService.deleteDelayTask(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode()+"-"+orderId); - this.autoCancelOrder(orderId); + this.autoCancelOrder(orderId, 3); } else if (order.getOrderStatus() == 2) { // 2.待核销 -> 订单退款 - this.refundOrder(orderId); + this.refundOrder(orderId, 3); } else { throw new ServiceException(AppErrorConstant.CANCEL_ERROR_ORDER); } @@ -1691,12 +1691,12 @@ shopId = merHomeShopTotalVo.getShopId(); //获取今日到店 - Integer todayShop = userServiceRecordService.countShopServicePerson(shopId); + List<Integer> todayShop = userServiceRecordService.countShopServicePerson(shopId); //获取待处理订单和营业额 merHomeShopTotalVo = orderMapper.getMerHomeShopTotalVo(shopId); //获取服务统计 MerHomeShopTotalVo serviceTotalVo = orderMapper.getMerHomeShopServiceTotalVo(shopId); - merHomeShopTotalVo.setTodayShop(todayShop); + merHomeShopTotalVo.setTodayShop(todayShop.size()); merHomeShopTotalVo.setCycleSurp(serviceTotalVo.getCycleSurp()); merHomeShopTotalVo.setExplorationSurp(serviceTotalVo.getExplorationSurp()); return merHomeShopTotalVo; @@ -3256,7 +3256,7 @@ Long userId; Member member; Integer orderFrom; - String orderFromDesc; + String orderFromDesc = ""; BigDecimal zeroBig = new BigDecimal("0.00"); StringJoiner userIdSj = new StringJoiner(","); // 遍历订单列表 @@ -3270,8 +3270,16 @@ orderFromDesc = "商城订单"; } else if (orderFrom == 2) { orderFromDesc = "平台秒杀活动(" + merOrderPageVo.getActivityName() + ")"; - } else { + } else if(orderFrom == 3) { orderFromDesc = "线下创建"; + }else if(orderFrom == 4) { + orderFromDesc = "抽奖"; + }else if(orderFrom == 5) { + orderFromDesc = "美团"; + }else if(orderFrom == 6) { + orderFromDesc = "抖音"; + }else if(orderFrom == 7) { + orderFromDesc = "快手"; } } else { orderFromDesc = "商城订单"; @@ -4387,6 +4395,12 @@ mgtTotalOrderTotalVo.setExperienceTotal(0); mgtTotalOrderTotalVo.setServiceTotal(0); mgtTotalOrderTotalVo.setItemTotal(0); + mgtTotalOrderTotalVo.setMeituan(0); + mgtTotalOrderTotalVo.setDouyin(0); + mgtTotalOrderTotalVo.setKuaishou(0); + mgtTotalOrderTotalVo.setMeituanAmount(new BigDecimal("0")); + mgtTotalOrderTotalVo.setDouyinAmount(new BigDecimal("0")); + mgtTotalOrderTotalVo.setKuaishouAmount(new BigDecimal("0")); mgtTotalOrderTotalVo.setOrderMoney(new BigDecimal("0")); mgtTotalOrderTotalVo.setOnlineMoney(new BigDecimal("0")); mgtTotalOrderTotalVo.setOfflineMoney(new BigDecimal("0")); @@ -4424,6 +4438,12 @@ mgtTotalOrderTotalVo.setOnlineMoney(totalOrderTotalVo.getOnlineMoney()); mgtTotalOrderTotalVo.setOfflineMoney(totalOrderTotalVo.getOfflineMoney()); mgtTotalOrderTotalVo.setActivityMoney(totalOrderTotalVo.getActivityMoney()); + mgtTotalOrderTotalVo.setMeituan(totalOrderTotalVo.getMeituan()); + mgtTotalOrderTotalVo.setDouyin(totalOrderTotalVo.getDouyin()); + mgtTotalOrderTotalVo.setKuaishou(totalOrderTotalVo.getKuaishou()); + mgtTotalOrderTotalVo.setMeituanAmount(totalOrderTotalVo.getMeituanAmount()); + mgtTotalOrderTotalVo.setDouyinAmount(totalOrderTotalVo.getDouyinAmount()); + mgtTotalOrderTotalVo.setKuaishouAmount(totalOrderTotalVo.getKuaishouAmount()); //获取商品分类销售数据 List<MgtMapTotalPlusVo> MgtMapIntTotalVoGoodsType = orderMapper.listPlTotalOrderTotalGoodsType(mgtBasePlatformDto); List<MgtMapIntTotalVo> goodsTypeTotalList = new ArrayList<>(); @@ -5564,11 +5584,12 @@ @Override @Transactional // @GlobalTransactional(rollbackFor = Exception.class) todo 放开分布式事务注解 - public void autoCancelOrder(String orderId) { + public void autoCancelOrder(String orderId, Integer cancelType) { //更新订单信息 Order order = this.getById(orderId); order.setOrderStatus(0); order.setCancelTime(new Date()); + order.setCancelType(cancelType); this.saveOrUpdate(order); //活动订单回退库存 if (order.getOrderFrom() == 2) { @@ -5780,11 +5801,12 @@ @Override @Transactional // @GlobalTransactional(rollbackFor = Exception.class) todo 放开分布式事务注解 - public void refundOrder(String orderId) { + public void refundOrder(String orderId, Integer cancelType) { // 更新订单信息 Order order = this.getById(orderId); order.setOrderStatus(0); order.setCancelTime(new Date()); + order.setCancelType(cancelType); this.saveOrUpdate(order); OrderRefund orderRefund = new OrderRefund(); String refundId = IdUtils.simpleUUID(); @@ -6523,64 +6545,39 @@ } } -// @GlobalTransactional(rollbackFor = Exception.class) todo 放开分布式事务注解 - private void autoTimeCancelOrder(Order order) { - String orderId = order.getOrderId(); - order.setOrderStatus(0); - order.setCancelTime(new Date()); - this.saveOrUpdate(order); - //活动订单回退库存 - if (order.getOrderFrom() == 2) { - List<OrderGoods> orderGoodsList = orderGoodsService.listByOrderId(orderId); - if (orderGoodsList != null && !orderGoodsList.isEmpty()) { - for (OrderGoods orderGoods : orderGoodsList) { - //redis库存控制极简版 - String goodsLock = "goods_lock_" + order.getActivityId() + "_" + orderGoods.getGoodsId(); - RLock redissonLock = redissonClient.getLock(goodsLock); - try { - redissonLock.lock(30, TimeUnit.SECONDS); - Integer surpNum = redisService.getCacheObject(SecurityConstant.ACTIVITY_GOODS + "-" + order.getActivityId() + "-" + orderGoods.getGoodsId()); - if(null == surpNum){ - surpNum = 0; - } - redisService.setCacheObject(SecurityConstant.ACTIVITY_GOODS + "-" + order.getActivityId() + "-" + orderGoods.getGoodsId(), surpNum + orderGoods.getBuyNum()); - } finally { - redissonLock.unlock(); - } - //改变活动库存 - AGStockChangeDto agStockChangeDto = new AGStockChangeDto(); - agStockChangeDto.setActivityId(order.getActivityId()); - agStockChangeDto.setGoodsId(orderGoods.getGoodsId()); - agStockChangeDto.setChangeType(1); - agStockChangeDto.setChangeNum(orderGoods.getBuyNum()); - agStockChangeDto.setShopId(order.getShopId()); - agStockChangeDto.setUserId(order.getUserId()); - remoteActivityService.changeActivityStock(agStockChangeDto); - //删除活动记录 - ActivityRecord activityRecord = new ActivityRecord(); - activityRecord.setActivityId(order.getActivityId()); - activityRecord.setGoodsId(orderGoods.getGoodsId()); - activityRecord.setUserId(order.getUserId()); - activityRecord.setOrderTime(order.getCreateTime()); - remoteActivityService.delActivityRecord(activityRecord); - } - } - } else { - if (order.getCouponMoney().compareTo(BigDecimal.ZERO) > 0) { - //回退优惠券 - List<OrderGoods> orderGoodsList = orderGoodsService.listByOrderId(orderId); - if (orderGoodsList != null && !orderGoodsList.isEmpty()) { - StringJoiner memberCouponSJ = new StringJoiner(","); - for (OrderGoods orderGoods : orderGoodsList) { - memberCouponSJ.add(orderGoods.getCouponId()); - } - if (memberCouponSJ != null) { - remoteCouponService.backMemberCoupon(memberCouponSJ.toString()); - - } - } - } + /** + * 后台取消订单 + * 订单状态变为已取消 不退款 + * @param dto + */ + @Override + public R cancelOrderBySys(CancelOrderDTO dto) { + Order order = this.getById(dto.getOrderId()); + // 订单状态-1.删除 0.已取消 1.待支付 2.待核销 3.已完成 + if(null == order || order.getDelFlag() == -1){ + return R.fail("订单不存在"); } + + if (order.getOrderStatus() == 0) { + return R.fail(AppErrorConstant.CANCEL_CANCEL_ORDER); + } else if (order.getOrderStatus() == 1) { + //删除待支付超时取消延时任务 + redisService.deleteObject(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode() + "-" + order.getOrderId()); + remoteConfigService.deleteDelayTask(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode()+"-"+order.getOrderId()); + order.setOrderStatus(0); + order.setCancelTime(new Date()); + order.setCancelType(1); + this.saveOrUpdate(order); + } else if (order.getOrderStatus() == 2) { + // 2.待核销 + order.setOrderStatus(0); + order.setCancelTime(new Date()); + order.setCancelType(1); + this.saveOrUpdate(order); + } else { + return R.fail(AppErrorConstant.CANCEL_ERROR_ORDER); + } + return R.ok(); } /** @@ -6721,38 +6718,6 @@ } return new ArrayList<>(); } - /** - * 后台取消订单 - * 订单状态变为已取消 不退款 - * @param dto - */ - @Override - public R cancelOrderBySys(CancelOrderDTO dto) { - Order order = this.getById(dto.getOrderId()); - // 订单状态-1.删除 0.已取消 1.待支付 2.待核销 3.已完成 - if(null == order || order.getDelFlag() == -1){ - return R.fail("订单不存在"); - } - - if (order.getOrderStatus() == 0) { - return R.fail(AppErrorConstant.CANCEL_CANCEL_ORDER); - } else if (order.getOrderStatus() == 1) { - //删除待支付超时取消延时任务 - redisService.deleteObject(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode() + "-" + order.getOrderId()); - remoteConfigService.deleteDelayTask(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode()+"-"+order.getOrderId()); - order.setOrderStatus(0); - order.setCancelTime(new Date()); - this.saveOrUpdate(order); - } else if (order.getOrderStatus() == 2) { - // 2.待核销 - order.setOrderStatus(0); - order.setCancelTime(new Date()); - this.saveOrUpdate(order); - } else { - return R.fail(AppErrorConstant.CANCEL_ERROR_ORDER); - } - return R.ok(); - } @Override public R refundOrderBySys(CancelOrderDTO dto) { @@ -6767,15 +6732,76 @@ //删除待支付超时取消延时任务 redisService.deleteObject(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode() + "-" + order.getOrderId()); remoteConfigService.deleteDelayTask(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode()+"-"+ order.getOrderId()); - this.autoCancelOrder( order.getOrderId()); + this.autoCancelOrder( order.getOrderId(), 1); } else if (order.getOrderStatus() == 2) { // 2.待核销 -> 订单退款 - this.refundOrder( order.getOrderId()); + this.refundOrder( order.getOrderId(), 1); } else { return R.fail("已核销订单不能退款"); } return R.ok(); + } + +// @GlobalTransactional(rollbackFor = Exception.class) todo 放开分布式事务注解 + private void autoTimeCancelOrder(Order order) { + String orderId = order.getOrderId(); + order.setOrderStatus(0); + order.setCancelTime(new Date()); + order.setCancelType(1); + this.saveOrUpdate(order); + //活动订单回退库存 + if (order.getOrderFrom() == 2) { + List<OrderGoods> orderGoodsList = orderGoodsService.listByOrderId(orderId); + if (orderGoodsList != null && !orderGoodsList.isEmpty()) { + for (OrderGoods orderGoods : orderGoodsList) { + //redis库存控制极简版 + String goodsLock = "goods_lock_" + order.getActivityId() + "_" + orderGoods.getGoodsId(); + RLock redissonLock = redissonClient.getLock(goodsLock); + try { + redissonLock.lock(30, TimeUnit.SECONDS); + Integer surpNum = redisService.getCacheObject(SecurityConstant.ACTIVITY_GOODS + "-" + order.getActivityId() + "-" + orderGoods.getGoodsId()); + if(null == surpNum){ + surpNum = 0; + } + redisService.setCacheObject(SecurityConstant.ACTIVITY_GOODS + "-" + order.getActivityId() + "-" + orderGoods.getGoodsId(), surpNum + orderGoods.getBuyNum()); + } finally { + redissonLock.unlock(); + } + //改变活动库存 + AGStockChangeDto agStockChangeDto = new AGStockChangeDto(); + agStockChangeDto.setActivityId(order.getActivityId()); + agStockChangeDto.setGoodsId(orderGoods.getGoodsId()); + agStockChangeDto.setChangeType(1); + agStockChangeDto.setChangeNum(orderGoods.getBuyNum()); + agStockChangeDto.setShopId(order.getShopId()); + agStockChangeDto.setUserId(order.getUserId()); + remoteActivityService.changeActivityStock(agStockChangeDto); + //删除活动记录 + ActivityRecord activityRecord = new ActivityRecord(); + activityRecord.setActivityId(order.getActivityId()); + activityRecord.setGoodsId(orderGoods.getGoodsId()); + activityRecord.setUserId(order.getUserId()); + activityRecord.setOrderTime(order.getCreateTime()); + remoteActivityService.delActivityRecord(activityRecord); + } + } + } else { + if (order.getCouponMoney().compareTo(BigDecimal.ZERO) > 0) { + //回退优惠券 + List<OrderGoods> orderGoodsList = orderGoodsService.listByOrderId(orderId); + if (orderGoodsList != null && !orderGoodsList.isEmpty()) { + StringJoiner memberCouponSJ = new StringJoiner(","); + for (OrderGoods orderGoods : orderGoodsList) { + memberCouponSJ.add(orderGoods.getCouponId()); + } + if (memberCouponSJ != null) { + remoteCouponService.backMemberCoupon(memberCouponSJ.toString()); + + } + } + } + } } @Override @@ -6881,4 +6907,9 @@ vo = orderMapper.getPlTotalThirdOrderStatics(mgtBasePlatformDto); return vo; } + + @Override + public StaticsShopMgtGoodsVO getGoodsSellStatic(List<String> goodsIdList) { + return orderGoodsService.getGoodsSellStatic(goodsIdList); + } } -- Gitblit v1.7.1