From db3c1f464e80458a1b6ccbe31b0355775df8e574 Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期三, 23 八月 2023 20:45:34 +0800
Subject: [PATCH] bug

---
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java |  175 +++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 137 insertions(+), 38 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 d1cce04..9ca1fb0 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
@@ -734,6 +734,9 @@
         order.setOrderRemark(appPlaceOrderDto.getOrderRemark());
         order.setGoodsNum(goodsNum);
         order.setCreateTime(new Date());
+        if(appPlaceOrderDto.getNewMemberFlag()!=null&&appPlaceOrderDto.getNewMemberFlag()==1){
+            order.setNewMemberFlag(1);
+        }
         // 保存订单
         this.save(order);
         // 更新用户商品类型
@@ -1073,6 +1076,9 @@
         order.setOrderRemark(appPlaceActivityDto.getOrderRemark());
         order.setGoodsNum(goodsNum);
         order.setCreateTime(new Date());
+        if(appPlaceActivityDto.getNewMemberFlag()!=null&&appPlaceActivityDto.getNewMemberFlag()==1){
+            order.setNewMemberFlag(1);
+        }
         // 保存订单
         this.save(order);
         // 更新用户商品类型
@@ -1294,9 +1300,15 @@
     @Override
     public MerHomeShopTotalVo getMerHomeTotal(MerHomeShopTotalVo merHomeShopTotalVo) {
         Long shopId = merHomeShopTotalVo.getShopId();
+        //获取今日到店
         Integer todayShop = userServiceRecordService.countShopServicePerson(shopId);
+        //获取待处理订单和营业额
         merHomeShopTotalVo = orderMapper.getMerHomeShopTotalVo(shopId);
+        //获取服务统计
+        MerHomeShopTotalVo serviceTotalVo = orderMapper.getMerHomeShopServiceTotalVo(shopId);
         merHomeShopTotalVo.setTodayShop(todayShop);
+        merHomeShopTotalVo.setCycleSurp(serviceTotalVo.getCycleSurp());
+        merHomeShopTotalVo.setExplorationSurp(serviceTotalVo.getExplorationSurp());
         return merHomeShopTotalVo;
     }
 
@@ -1623,20 +1635,21 @@
         // 调用remoteMemberService的getMember方法获取Member对象
         Member member = remoteMemberService.getMember(userId).getData();
         //如果是商户优惠券,验证商户一致
-        if (memberCoupon.getCouponFrom() == 2 && !memberCoupon.getShopId().equals(shopId)) {
+        if (memberCoupon.getCouponFrom() == 2) {
             if(!memberCoupon.getShopId().equals(member.getRelationShopId())){
-                throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
+                throw new ServiceException(AppErrorConstant.BLINDING_VERIFY_SHOP_ERROR);
             }
-            if(memberCoupon.getShopId().equals(shopId)){
+            if(!memberCoupon.getShopId().equals(shopId)){
                 throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
             }
         }
         //如果是平台优惠券,当用户绑定商户时验证商户一致
         if (memberCoupon.getCouponFrom() == 1 && member.getBindingFlag() == 1) {
-            if(!memberCoupon.getShopId().equals(member.getRelationShopId())){
+            /*if(!memberCoupon.getShopId().equals(member.getRelationShopId())){
                 throw new ServiceException(AppErrorConstant.BLINDING_VERIFY_SHOP_ERROR);
-            }
-            if(memberCoupon.getShopId().equals(shopId)){
+            }*/
+            //判断绑定商户是否和核销商户一致
+            if(!member.getRelationShopId().equals(shopId)){
                 throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
             }
         }
@@ -2180,14 +2193,6 @@
         } else {
             order.setCloseFlag(0);
         }
-        //保存订单和服务
-        this.save(order);
-        orderGoodsService.saveBatch(orderGoodsList);
-        consumerGoodsService.saveBatchConsumerGoods(consumerGoodsList);
-        //减去优惠券
-        if (StringUtils.isNotBlank(memberCouponSJ.toString())) {
-            remoteCouponService.useMemberCoupon(memberCouponSJ.toString());
-        }
         //用户未绑定则绑定商户
         Member member = remoteMemberService.getMember(userId).getData();
         if (member != null && member.getBindingFlag() != 1) {
@@ -2199,16 +2204,26 @@
             appMemberBindingDto.setBindingFlag(1);
             appMemberBindingDto.setBindingType(3);
             remoteMemberService.updateMemberBinding(appMemberBindingDto);
+            order.setNewMemberFlag(1);
         }
+        //保存订单和服务
+        this.save(order);
+        orderGoodsService.saveBatch(orderGoodsList);
+        consumerGoodsService.saveBatchConsumerGoods(consumerGoodsList);
+        //减去优惠券
+        if (StringUtils.isNotBlank(memberCouponSJ.toString())) {
+            remoteCouponService.useMemberCoupon(memberCouponSJ.toString());
+        }
+
         //更新商户统计
-        ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto();
+        /*ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto();
         shopTotalChangeDto.setShopId(order.getShopId());
         shopTotalChangeDto.setOrderType(1);
         shopTotalChangeDto.setCycleMoney(cycleMoney);
         shopTotalChangeDto.setServiceMoney(serviceMoney);
         shopTotalChangeDto.setExperienceMoney(experienceMoney);
         shopTotalChangeDto.setGoodsMoney(goodsMoney);
-        remoteShopService.changeShopTotal(shopTotalChangeDto);
+        remoteShopService.changeShopTotal(shopTotalChangeDto);*/
         //创建支付记录
         PayRecord payRecord = new PayRecord();
         payRecord.setDelFlag(0);
@@ -2910,9 +2925,21 @@
      */
     @Override
     public MgtTotalDataTotalVo getTotalDataTotal(MgtBaseShopDto mgtBaseShopDto) {
+
         //获取人数统计
-        MgtTotalDataTotalVo mgtTotalDataTotalVo = orderMapper.getTotalDataTotal(mgtBaseShopDto);
         BigDecimal salesTotal = orderMapper.shopSalesTotal(mgtBaseShopDto);
+        // 获取当月时间
+        LocalDate currentDate = LocalDate.now();
+        LocalDate firstDayOfMonth = currentDate.withDayOfMonth(1);
+        LocalDate lastDayOfMonth = currentDate.withDayOfMonth(currentDate.lengthOfMonth());
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        String firstDayOfMonthStr = firstDayOfMonth.format(formatter);
+        String lastDayOfMonthStr = lastDayOfMonth.format(formatter);
+        mgtBaseShopDto.setStartDate(firstDayOfMonthStr);
+        mgtBaseShopDto.setEndDate(lastDayOfMonthStr);
+        //
+        MgtTotalDataTotalVo mgtTotalDataTotalVo = orderMapper.getTotalDataTotal(mgtBaseShopDto);
+
         mgtTotalDataTotalVo.setSalesTotal(salesTotal);
         Integer reorderPerson = orderMapper.getReorderPerson(mgtBaseShopDto);
         mgtTotalDataTotalVo.setReorderPerson(reorderPerson);
@@ -3259,20 +3286,21 @@
         Long userId = verifyCouponGetVo.getUserId();
         Member member = remoteMemberService.getMember(userId).getData();
         //如果是商户优惠券,验证商户一致
-        if (memberCoupon.getCouponFrom() == 2 && !memberCoupon.getShopId().equals(shopId)) {
+        if (memberCoupon.getCouponFrom() == 2) {
             if(!memberCoupon.getShopId().equals(member.getRelationShopId())){
-                throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
+                throw new ServiceException(AppErrorConstant.BLINDING_VERIFY_SHOP_ERROR);
             }
-            if(memberCoupon.getShopId().equals(shopId)){
+            if(!memberCoupon.getShopId().equals(shopId)){
                 throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
             }
         }
         //如果是平台优惠券,当用户绑定商户时验证商户一致
         if (memberCoupon.getCouponFrom() == 1 && member.getBindingFlag() == 1) {
-            if(!memberCoupon.getShopId().equals(member.getRelationShopId())){
+            /*if(!memberCoupon.getShopId().equals(member.getRelationShopId())){
                 throw new ServiceException(AppErrorConstant.BLINDING_VERIFY_SHOP_ERROR);
-            }
-            if(memberCoupon.getShopId().equals(shopId)){
+            }*/
+            //判断绑定商户是否和核销商户一致
+            if(!member.getRelationShopId().equals(shopId)){
                 throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
             }
         }
@@ -3428,7 +3456,9 @@
             merTotalDto.setShopIdList(shopIdList);
             merTotalDto.setShopId(null);
         }
+        //线上线下活动订单
         MerOrderTotalVo orderTotalVo = orderMapper.getMerOrderTotalOrderFrom(merTotalDto);
+        //分类型订单
         MerOrderTotalVo goodsTypeVo = orderMapper.getMerTotalOrderTotalGoodsType(merTotalDto);
         orderTotalVo.setCycleTotal(goodsTypeVo.getCycleTotal());
         orderTotalVo.setCycleMoney(goodsTypeVo.getCycleMoney());
@@ -3512,9 +3542,7 @@
                 orderTotalValue[i] = mgtMapTotalPlusVo.getMapValueFirst();
                 orderMoneyValue[i] = mgtMapTotalPlusVo.getMapValueSecond();
             }
-            orderDistributionTotalVo.setOrderTotalKey(orderTotalKey);
-            orderDistributionTotalVo.setOrderTotalValue(orderTotalValue);
-            orderDistributionTotalVo.setOrderMoneyValue(orderMoneyValue);
+            orderDistributionTotalVo = fillOrderTotalKeyAndValuesToRecentFiveDays(orderTotalKey,orderTotalValue,orderMoneyValue);
         }
         // 返回订单分布总数对象
         return orderDistributionTotalVo;
@@ -3835,14 +3863,14 @@
         //更新商品统计
         remoteGoodsService.changeGoodsTotal(goodsTotalChangeDtoList);
         // 更新商户统计信息
-        ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto();
+        /*ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto();
         shopTotalChangeDto.setShopId(order.getShopId());
         shopTotalChangeDto.setOrderType(1);
         shopTotalChangeDto.setCycleMoney(cycleMoney);
         shopTotalChangeDto.setServiceMoney(serviceMoney);
         shopTotalChangeDto.setExperienceMoney(experienceMoney);
         shopTotalChangeDto.setGoodsMoney(goodsMoney);
-        remoteShopService.changeShopTotal(shopTotalChangeDto);
+        remoteShopService.changeShopTotal(shopTotalChangeDto);*/
         // 初始化会员统计信息
         MemberTotalChangeDto memberTotalChangeDto = new MemberTotalChangeDto();
         memberTotalChangeDto.setUserId(order.getUserId());
@@ -4011,14 +4039,14 @@
             }
         }
         // 更新商户统计信息
-        ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto();
+        /*ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto();
         shopTotalChangeDto.setOrderType(2);
         shopTotalChangeDto.setShopId(order.getShopId());
         shopTotalChangeDto.setCycleMoney(cycleMoney);
         shopTotalChangeDto.setServiceMoney(serviceMoney);
         shopTotalChangeDto.setExperienceMoney(experienceMoney);
         shopTotalChangeDto.setGoodsMoney(goodsMoney);
-        remoteShopService.changeShopTotal(shopTotalChangeDto);
+        remoteShopService.changeShopTotal(shopTotalChangeDto);*/
         // 初始化会员统计信息
         MemberTotalChangeDto memberTotalChangeDto = new MemberTotalChangeDto();
         memberTotalChangeDto.setUserId(order.getUserId());
@@ -4131,6 +4159,10 @@
     @Override
     public StaffActivityOrderTotalVo getStaffActivityOrderTotal(StaffTotalDto staffTotalDto) {
         StaffActivityOrderTotalVo staffActivityOrderTotalVo = orderMapper.getStaffActivityOrderTotal(staffTotalDto);
+        StaffActivityOrderTotalVo staffActivityOrderGoodsTotalVo = orderMapper.getStaffActivityOrderGoodsTotal(staffTotalDto);
+        staffActivityOrderTotalVo.setCycleTotal(staffActivityOrderGoodsTotalVo.getCycleTotal());
+        staffActivityOrderTotalVo.setServiceTotal(staffActivityOrderGoodsTotalVo.getServiceTotal());
+        staffActivityOrderTotalVo.setExperienceTotal(staffActivityOrderGoodsTotalVo.getExperienceTotal());
         return staffActivityOrderTotalVo;
     }
 
@@ -4158,11 +4190,11 @@
     public MerOrderDistributionTotalVo getStaffOrderDistributionTotal(StaffTotalDto staffTotalDto) {
         MerOrderDistributionTotalVo orderDistributionTotalVo = new MerOrderDistributionTotalVo();
         // 获取订单年龄用户列表
-        MerTotalDto merTotalDto = new MerTotalDto();
-        merTotalDto.setShopId(staffTotalDto.getShopId());
-        List<MerOrderAgeUserVo> orderAgeUserVoList = remoteMemberService.listOrderAgeUser(merTotalDto).getData();
+        //MerTotalDto merTotalDto = new MerTotalDto();
+        //merTotalDto.setShopId(staffTotalDto.getShopId());
+        //List<MerOrderAgeUserVo> orderAgeUserVoList = remoteMemberService.listOrderAgeUser(merTotalDto).getData();
         // 如果订单年龄用户列表不为空
-        if (orderAgeUserVoList != null && !orderAgeUserVoList.isEmpty()) {
+        /*if (orderAgeUserVoList != null && !orderAgeUserVoList.isEmpty()) {
             // 定义变量
             Integer ageType;
             List<Long> userIdList;
@@ -4208,9 +4240,74 @@
             orderDistributionTotalVo.setOrderTotalKey(orderTotalKey);
             orderDistributionTotalVo.setOrderTotalValue(orderTotalValue);
             orderDistributionTotalVo.setOrderMoneyValue(orderMoneyValue);
+        }*/
+        List<MgtMapTotalPlusVo> mgtMapTotalPlusVoList = orderMapper.listStaffActivityOrderDistributionTotal(staffTotalDto);
+        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 = fillOrderTotalKeyAndValuesToRecentFiveDays(orderTotalKey,orderTotalValue,orderMoneyValue);
         }
         // 返回订单分布总数对象
         return orderDistributionTotalVo;
+    }
+
+    public MerOrderDistributionTotalVo fillOrderTotalKeyAndValuesToRecentFiveDays(String[] orderTotalKey,Integer[] orderTotalValue,BigDecimal[] orderMoneyValue) {
+        MerOrderDistributionTotalVo orderDistributionTotalVo = new MerOrderDistributionTotalVo();
+        // 获取当前日期
+        LocalDate currentDate = LocalDate.now();
+
+        // 创建最近五天日期列表
+        List<String> recentFiveDays = new ArrayList<>();
+        for (int i = 0; i < 5; i++) {
+            LocalDate date = currentDate.minusDays(i);
+            recentFiveDays.add(date.toString());
+        }
+
+        // 创建新的数组
+        String[] newOrderTotalKey = new String[5];
+        Integer[] newOrderTotalValue = new Integer[5];
+        BigDecimal[] newOrderMoneyValue = new BigDecimal[5];
+
+        // 遍历最近五天日期列表,并补充数据
+        for (int i = 0; i < 5; i++) {
+            String day = recentFiveDays.get(i);
+            int index = getIndexInOrderTotalKey(day,orderTotalKey);
+            if (index != -1) {
+                newOrderTotalKey[i] = orderTotalKey[index];
+                newOrderTotalValue[i] = orderTotalValue[index];
+                newOrderMoneyValue[i] = orderMoneyValue[index];
+            } else {
+                newOrderTotalKey[i] = day;
+                newOrderTotalValue[i] = 0;
+                newOrderMoneyValue[i] = BigDecimal.ZERO;
+            }
+        }
+
+        // 更新属性
+        orderTotalKey = newOrderTotalKey;
+        orderTotalValue = newOrderTotalValue;
+        orderMoneyValue = newOrderMoneyValue;
+        orderDistributionTotalVo.setOrderTotalKey(orderTotalKey);
+        orderDistributionTotalVo.setOrderTotalValue(orderTotalValue);
+        orderDistributionTotalVo.setOrderMoneyValue(orderMoneyValue);
+        return orderDistributionTotalVo;
+    }
+
+    private int getIndexInOrderTotalKey(String day,String[] orderTotalKey) {
+        for (int i = 0; i < orderTotalKey.length; i++) {
+            if (orderTotalKey[i].equals(day)) {
+                return i;
+            }
+        }
+        return -1;
     }
 
 
@@ -4309,6 +4406,12 @@
      */
     @Override
     public StaffActivityDateMemberTotalVo getStaffActivityMemberTotal(StaffTotalDto staffTotalDto) {
+        MerTotalDto merTotalDto = new MerTotalDto();
+        merTotalDto.setAgeType(staffTotalDto.getAgeType());
+        if(staffTotalDto.getAgeType()!=null){
+            List<Long> userIdList = remoteMemberService.listUserIdByAgeType(staffTotalDto.getAgeType()).getData();
+            staffTotalDto.setUserIdList(userIdList);
+        }
         // 创建返回对象
         StaffActivityDateMemberTotalVo staffActivityDateMemberTotalVo = new StaffActivityDateMemberTotalVo();
         // 查询数据库获取数据
@@ -4522,10 +4625,6 @@
                     orderFromDesc = "商城订单";
                 }
                 merOrderPageVo.setOrderFromDesc(orderFromDesc);
-                merOrderPageVo.setUnPaidMoney(merOrderPageVo.getPayMoney().subtract(merOrderPageVo.getReceiveMoney()));
-                if (merOrderPageVo.getUnPaidMoney() == null) {
-                    merOrderPageVo.setUnPaidMoney(zeroBig);
-                }
                 if(merOrderPageVo.getUnPaidMoney().compareTo(zeroBig)<0){
                     merOrderPageVo.setUnPaidMoney(zeroBig);
                 }

--
Gitblit v1.7.1