From 122bb1142631e31ce50716495dba420102f58f56 Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期一, 31 七月 2023 20:05:05 +0800
Subject: [PATCH] bug

---
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java |  194 ++++++++++++++++++++++++++++++++++--------------
 1 files changed, 138 insertions(+), 56 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 14598a7..9d319da 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
@@ -415,8 +415,12 @@
         if (activityGoodsGetVo.getActivityStatus() == 2) {
             throw new ServiceException(AppErrorConstant.ACTIVITY_END);
         }
-        if (activityGoodsGetVo.getAvailableBuyNum() < 1) {
+        Integer surpNum = redisService.getCacheObject(SecurityConstant.ACTIVITY_GOODS+"-"+activityId+"-"+goodsId);
+        if(surpNum==null||surpNum<1){
             throw new ServiceException(AppErrorConstant.ACTIVITY_GOODS_NULL);
+        }
+        if (activityGoodsGetVo.getAvailableBuyNum() < 1) {
+            throw new ServiceException(AppErrorConstant.ACTIVITY_GOODS_BEYOND);
         }
         if (activityGoodsGetVo.getAvailableBuyNum() < buyNum) {
             throw new ServiceException(AppErrorConstant.ACTIVITY_GOODS_BEYOND);
@@ -1122,6 +1126,12 @@
         appUserOrderGetVo.setShopName(shop.getShopName());
         appUserOrderGetVo.setAppUserOrderGoodsPageVoList(appUserOrderGoodsPageVoList);
         appUserOrderGetVo.setVerifyCode("1-" + orderId);
+        //生成自动取消订单延时任务
+        Integer delayTime = 30;
+        if(redisService.hasKey(SecurityConstant.AUTO_CANCEL_ORDER_TIME)){
+            delayTime = redisService.getCacheObject(SecurityConstant.AUTO_CANCEL_ORDER_TIME);
+        }
+        appUserOrderGetVo.setEndTime(DateUtils.addMinutes(order.getCreateTime(),delayTime));
         return appUserOrderGetVo;
     }
 
@@ -1274,28 +1284,57 @@
         Goods goods;
         List<ConsumerGoods> consumerGoodsList = new ArrayList<>();
         for (AppUserOrderGoodsPageVo appUserOrderGoodsPageVo : appUserOrderGoodsPageVoList) {
-            consumerGoods = new ConsumerGoods();
-            goods = goodsMap.get(appUserOrderGoodsPageVo.getGoodsId());
-            consumerGoodsId = IdUtils.simpleUUID();
-            consumerGoods.setConsumerGoodsId(consumerGoodsId);
-            consumerGoods.setDelFlag(0);
-            consumerGoods.setServiceStatus(1);
-            consumerGoods.setShopId(order.getShopId());
-            consumerGoods.setUserId(order.getUserId());
-            consumerGoods.setOrderId(orderId);
-            consumerGoods.setOrderGoodsId(appUserOrderGoodsPageVo.getOrderGoodsId());
-            consumerGoods.setGoodsId(appUserOrderGoodsPageVo.getGoodsId());
-            consumerGoods.setGoodsName(appUserOrderGoodsPageVo.getGoodsName());
-            consumerGoods.setCycleNumFlag(appUserOrderGoodsPageVo.getCycleNumFlag());
-            consumerGoods.setServiceNum(appUserOrderGoodsPageVo.getServiceNum());
-            consumerGoods.setUsedNum(0);
-            consumerGoods.setGoodsType(appUserOrderGoodsPageVo.getGoodsType());
-            consumerGoods.setCreateTime(nowTime);
-            consumerGoods.setGoodsIntroduction(goods.getGoodsIntroduction());
-            consumerGoods.setGoodsPicture(appUserOrderGoodsPageVo.getGoodsPicture());
-            consumerGoods.setGoodsNurses(goods.getGoodsNurses());
-            consumerGoods.setSourceFrom(1);
-            consumerGoodsList.add(consumerGoods);
+            Integer buyNum = appUserOrderGoodsPageVo.getBuyNum();
+            if(appUserOrderGoodsPageVo.getCycleNumFlag()==0){
+                consumerGoods = new ConsumerGoods();
+                goods = goodsMap.get(appUserOrderGoodsPageVo.getGoodsId());
+                consumerGoodsId = IdUtils.simpleUUID();
+                consumerGoods.setConsumerGoodsId(consumerGoodsId);
+                consumerGoods.setDelFlag(0);
+                consumerGoods.setServiceStatus(1);
+                consumerGoods.setShopId(order.getShopId());
+                consumerGoods.setUserId(order.getUserId());
+                consumerGoods.setOrderId(orderId);
+                consumerGoods.setOrderGoodsId(appUserOrderGoodsPageVo.getOrderGoodsId());
+                consumerGoods.setGoodsId(appUserOrderGoodsPageVo.getGoodsId());
+                consumerGoods.setGoodsName(appUserOrderGoodsPageVo.getGoodsName());
+                consumerGoods.setCycleNumFlag(appUserOrderGoodsPageVo.getCycleNumFlag());
+                consumerGoods.setServiceNum(appUserOrderGoodsPageVo.getServiceNum());
+                consumerGoods.setUsedNum(0);
+                consumerGoods.setGoodsType(appUserOrderGoodsPageVo.getGoodsType());
+                consumerGoods.setCreateTime(nowTime);
+                consumerGoods.setGoodsIntroduction(goods.getGoodsIntroduction());
+                consumerGoods.setGoodsPicture(appUserOrderGoodsPageVo.getGoodsPicture());
+                consumerGoods.setGoodsNurses(goods.getGoodsNurses());
+                consumerGoods.setSourceFrom(1);
+                consumerGoods.setSureNum(buyNum);
+                consumerGoodsList.add(consumerGoods);
+            }else{
+                for(int i=0;i<buyNum;i++){
+                    consumerGoods = new ConsumerGoods();
+                    goods = goodsMap.get(appUserOrderGoodsPageVo.getGoodsId());
+                    consumerGoodsId = IdUtils.simpleUUID();
+                    consumerGoods.setConsumerGoodsId(consumerGoodsId);
+                    consumerGoods.setDelFlag(0);
+                    consumerGoods.setServiceStatus(1);
+                    consumerGoods.setShopId(order.getShopId());
+                    consumerGoods.setUserId(order.getUserId());
+                    consumerGoods.setOrderId(orderId);
+                    consumerGoods.setOrderGoodsId(appUserOrderGoodsPageVo.getOrderGoodsId());
+                    consumerGoods.setGoodsId(appUserOrderGoodsPageVo.getGoodsId());
+                    consumerGoods.setGoodsName(appUserOrderGoodsPageVo.getGoodsName());
+                    consumerGoods.setCycleNumFlag(appUserOrderGoodsPageVo.getCycleNumFlag());
+                    consumerGoods.setServiceNum(appUserOrderGoodsPageVo.getServiceNum());
+                    consumerGoods.setUsedNum(0);
+                    consumerGoods.setGoodsType(appUserOrderGoodsPageVo.getGoodsType());
+                    consumerGoods.setCreateTime(nowTime);
+                    consumerGoods.setGoodsIntroduction(goods.getGoodsIntroduction());
+                    consumerGoods.setGoodsPicture(appUserOrderGoodsPageVo.getGoodsPicture());
+                    consumerGoods.setGoodsNurses(goods.getGoodsNurses());
+                    consumerGoods.setSourceFrom(1);
+                    consumerGoodsList.add(consumerGoods);
+                }
+            }
         }
         consumerGoodsService.saveBatchConsumerGoods(consumerGoodsList);
         //生成返回
@@ -1792,29 +1831,61 @@
         List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listAppVoByOrderId(orderId);
         ConsumerGoods consumerGoods;
         String consumerGoodsId;
+        List<ConsumerGoods> consumerGoodsList = new ArrayList<>();
         for (AppUserOrderGoodsPageVo appUserOrderGoodsPageVo : appUserOrderGoodsPageVoList) {
-            consumerGoods = new ConsumerGoods();
-            goods = remoteGoodsService.getGoods(appUserOrderGoodsPageVo.getGoodsId()).getData();
-            consumerGoodsId = IdUtils.simpleUUID();
-            consumerGoods.setConsumerGoodsId(consumerGoodsId);
-            consumerGoods.setDelFlag(0);
-            consumerGoods.setServiceStatus(1);
-            consumerGoods.setShopId(order.getShopId());
-            consumerGoods.setUserId(order.getUserId());
-            consumerGoods.setOrderId(orderId);
-            consumerGoods.setOrderGoodsId(appUserOrderGoodsPageVo.getOrderGoodsId());
-            consumerGoods.setGoodsId(appUserOrderGoodsPageVo.getGoodsId());
-            consumerGoods.setGoodsName(appUserOrderGoodsPageVo.getGoodsName());
-            consumerGoods.setCycleNumFlag(appUserOrderGoodsPageVo.getCycleNumFlag());
-            consumerGoods.setServiceNum(appUserOrderGoodsPageVo.getServiceNum());
-            consumerGoods.setUsedNum(0);
-            consumerGoods.setGoodsType(appUserOrderGoodsPageVo.getGoodsType());
-            consumerGoods.setCreateTime(nowTime);
-            consumerGoods.setGoodsIntroduction(goods.getGoodsIntroduction());
-            consumerGoods.setGoodsPicture(appUserOrderGoodsPageVo.getGoodsPicture());
-            consumerGoods.setGoodsNurses(goods.getGoodsNurses());
-            consumerGoodsService.save(consumerGoods);
+            Integer buyGoodsNum = appUserOrderGoodsPageVo.getBuyNum();
+            if(appUserOrderGoodsPageVo.getCycleNumFlag()==0){
+                consumerGoods = new ConsumerGoods();
+                goods = remoteGoodsService.getGoods(appUserOrderGoodsPageVo.getGoodsId()).getData();
+                consumerGoodsId = IdUtils.simpleUUID();
+                consumerGoods.setConsumerGoodsId(consumerGoodsId);
+                consumerGoods.setDelFlag(0);
+                consumerGoods.setServiceStatus(1);
+                consumerGoods.setShopId(order.getShopId());
+                consumerGoods.setUserId(order.getUserId());
+                consumerGoods.setOrderId(orderId);
+                consumerGoods.setOrderGoodsId(appUserOrderGoodsPageVo.getOrderGoodsId());
+                consumerGoods.setGoodsId(appUserOrderGoodsPageVo.getGoodsId());
+                consumerGoods.setGoodsName(appUserOrderGoodsPageVo.getGoodsName());
+                consumerGoods.setCycleNumFlag(appUserOrderGoodsPageVo.getCycleNumFlag());
+                consumerGoods.setServiceNum(appUserOrderGoodsPageVo.getServiceNum());
+                consumerGoods.setUsedNum(0);
+                consumerGoods.setGoodsType(appUserOrderGoodsPageVo.getGoodsType());
+                consumerGoods.setCreateTime(nowTime);
+                consumerGoods.setGoodsIntroduction(goods.getGoodsIntroduction());
+                consumerGoods.setGoodsPicture(appUserOrderGoodsPageVo.getGoodsPicture());
+                consumerGoods.setGoodsNurses(goods.getGoodsNurses());
+                consumerGoods.setSourceFrom(1);
+                consumerGoods.setSureNum(buyGoodsNum);
+                consumerGoodsList.add(consumerGoods);
+            }else{
+                for(int i=0;i<buyGoodsNum;i++) {
+                    consumerGoods = new ConsumerGoods();
+                    goods = remoteGoodsService.getGoods(appUserOrderGoodsPageVo.getGoodsId()).getData();
+                    consumerGoodsId = IdUtils.simpleUUID();
+                    consumerGoods.setConsumerGoodsId(consumerGoodsId);
+                    consumerGoods.setDelFlag(0);
+                    consumerGoods.setServiceStatus(1);
+                    consumerGoods.setShopId(order.getShopId());
+                    consumerGoods.setUserId(order.getUserId());
+                    consumerGoods.setOrderId(orderId);
+                    consumerGoods.setOrderGoodsId(appUserOrderGoodsPageVo.getOrderGoodsId());
+                    consumerGoods.setGoodsId(appUserOrderGoodsPageVo.getGoodsId());
+                    consumerGoods.setGoodsName(appUserOrderGoodsPageVo.getGoodsName());
+                    consumerGoods.setCycleNumFlag(appUserOrderGoodsPageVo.getCycleNumFlag());
+                    consumerGoods.setServiceNum(appUserOrderGoodsPageVo.getServiceNum());
+                    consumerGoods.setUsedNum(0);
+                    consumerGoods.setGoodsType(appUserOrderGoodsPageVo.getGoodsType());
+                    consumerGoods.setCreateTime(nowTime);
+                    consumerGoods.setGoodsIntroduction(goods.getGoodsIntroduction());
+                    consumerGoods.setGoodsPicture(appUserOrderGoodsPageVo.getGoodsPicture());
+                    consumerGoods.setGoodsNurses(goods.getGoodsNurses());
+                    consumerGoods.setSourceFrom(1);
+                    consumerGoodsList.add(consumerGoods);
+                }
+            }
         }
+        consumerGoodsService.saveBatchConsumerGoods(consumerGoodsList);
         Member member = remoteMemberService.getMember(userId).getData();
         if (member != null && member.getBindingFlag() != 1) {
             //绑定商户
@@ -3004,9 +3075,9 @@
         }
         MerOrderDistributionTotalVo orderDistributionTotalVo = new MerOrderDistributionTotalVo();
         // 获取订单年龄用户列表
-        List<MerOrderAgeUserVo> orderAgeUserVoList = remoteMemberService.listOrderAgeUser(merTotalDto).getData();
+        //List<MerOrderAgeUserVo> orderAgeUserVoList = remoteMemberService.listOrderAgeUser(merTotalDto).getData();
         // 如果订单年龄用户列表不为空
-        if (orderAgeUserVoList != null && !orderAgeUserVoList.isEmpty()) {
+        /*if (orderAgeUserVoList != null && !orderAgeUserVoList.isEmpty()) {
             // 定义变量
             Integer ageType;
             List<Long> userIdList;
@@ -3047,12 +3118,23 @@
                     orderTotalValue[i] = 0;
                     orderMoneyValue[i] = BigDecimal.ZERO;
                 }
+            }*/
+            List<MgtMapTotalPlusVo> mgtMapTotalPlusVoList =  orderMapper.listMerOrderDistributionTotal(merTotalDto);
+            if(mgtMapTotalPlusVoList!=null&&!mgtMapTotalPlusVoList.isEmpty()) {
+                String[] orderTotalKey = new String[mgtMapTotalPlusVoList.size()];
+                Integer[] orderTotalValue = new Integer[mgtMapTotalPlusVoList.size()];
+                BigDecimal[] orderMoneyValue = new BigDecimal[mgtMapTotalPlusVoList.size()];
+                MgtMapTotalPlusVo mgtMapTotalPlusVo;
+                for (int i = 0; i < mgtMapTotalPlusVoList.size(); i++) {
+                    mgtMapTotalPlusVo = mgtMapTotalPlusVoList.get(i);
+                    orderTotalKey[i] = mgtMapTotalPlusVo.getMapKey();
+                    orderTotalValue[i] = mgtMapTotalPlusVo.getMapValueFirst();
+                    orderMoneyValue[i] = mgtMapTotalPlusVo.getMapValueSecond();
+                }
+                orderDistributionTotalVo.setOrderTotalKey(orderTotalKey);
+                orderDistributionTotalVo.setOrderTotalValue(orderTotalValue);
+                orderDistributionTotalVo.setOrderMoneyValue(orderMoneyValue);
             }
-            // 设置订单分布总数对象的属性值
-            orderDistributionTotalVo.setOrderTotalKey(orderTotalKey);
-            orderDistributionTotalVo.setOrderTotalValue(orderTotalValue);
-            orderDistributionTotalVo.setOrderMoneyValue(orderMoneyValue);
-        }
         // 返回订单分布总数对象
         return orderDistributionTotalVo;
     }
@@ -3157,11 +3239,11 @@
     }
 
     /**
-     * @param merBaseDto
-     * @return MerTotalOrderVo
-     * @description 商户端订单管理统计
-     * @author jqs
-     * @date 2023/7/4 16:27
+     * @description  商户端订单管理统计
+     * @author  jqs
+     * @date    2023/7/31 10:53
+     * @param merOrderPageDto
+     * @return  MerTotalOrderVo
      */
     @Override
     public MerTotalOrderVo totalMerOrder(MerOrderPageDto merOrderPageDto) {

--
Gitblit v1.7.1