From db6083bc5e2446a62c208e1d9c93671c111da8ba Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期日, 27 八月 2023 15:22:26 +0800
Subject: [PATCH] bug

---
 ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml                             |  204 ++++++++++++--------
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtTotalActivityTotalVo.java        |   16 
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java          |    2 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtTotalOrderTotalVo.java           |   14 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java               |    4 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java      |  208 +++++++++++++-------
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MgtBaseShopDto.java          |    7 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtTotalController.java |   34 ++-
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtPlTotalActivityTotalVo.java      |   20 +-
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java                 |    3 
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtTotalController.java   |    2 
 ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml                                |   11 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtTotalDataTotalVo.java            |   18 +
 13 files changed, 341 insertions(+), 202 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MgtBaseShopDto.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MgtBaseShopDto.java
index 3d76f5b..b13416a 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MgtBaseShopDto.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MgtBaseShopDto.java
@@ -3,6 +3,8 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.List;
+
 /**
  * @ClassName MgtBaseShopDto
  * @Description TODO
@@ -16,6 +18,11 @@
     @ApiModelProperty(value = "商户id")
     private Long shopId;
 
+    @ApiModelProperty(value = "年龄层 1 <20,2 21-30,3 31-40,4 41-50,5 >50")
+    private Integer ageType;
+
+    @ApiModelProperty(value = "员工list",hidden = true)
+    private List<Long> userIdList;
 
 
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtTotalController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtTotalController.java
index cdef597..e364ec0 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtTotalController.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtTotalController.java
@@ -1,16 +1,15 @@
 package com.ruoyi.order.controller.management;
 
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
 import com.ruoyi.common.security.utils.SecurityUtils;
 import com.ruoyi.order.domain.vo.MgtPlTotalActivityTotalVo;
 import com.ruoyi.order.domain.vo.MgtTotalActivityTotalVo;
 import com.ruoyi.order.domain.vo.MgtTotalDataTotalVo;
 import com.ruoyi.order.domain.vo.MgtTotalOrderTotalVo;
 import com.ruoyi.order.service.order.OrderService;
-import com.ruoyi.system.api.domain.dto.MgtActivityAgeDto;
 import com.ruoyi.system.api.domain.dto.MgtBasePlatformDto;
 import com.ruoyi.system.api.domain.dto.MgtBaseShopDto;
-import com.ruoyi.system.api.domain.dto.MgtPlActivityAgeDto;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -19,6 +18,7 @@
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
 import java.util.List;
 
 /**
@@ -38,7 +38,7 @@
     private OrderService orderService;
 
     @RequestMapping(value = "/getTotalOrderTotal", method = RequestMethod.POST)
-    @ApiOperation(value = "获取商户订单统计")
+    @ApiOperation(value = "获取商户订单统计(商户管理-统计经营-经营统计)")
     public R<MgtTotalOrderTotalVo> getTotalOrderTotal(@RequestBody MgtBaseShopDto mgtBaseShopDto) {
 
         Long userId = SecurityUtils.getUserId();
@@ -48,7 +48,7 @@
     }
 
     @RequestMapping(value = "/getTotalActivityTotal", method = RequestMethod.POST)
-    @ApiOperation(value = "获取商户活动统计")
+    @ApiOperation(value = "获取商户活动统计(商户管理-统计经营-活动统计)")
     public R<MgtTotalActivityTotalVo> getTotalActivityTotal(@RequestBody MgtBaseShopDto mgtBaseShopDto) {
         Long userId = SecurityUtils.getUserId();
         mgtBaseShopDto.setUserId(userId);
@@ -56,17 +56,17 @@
         return R.ok(totalActivityTotal);
     }
 
-    @RequestMapping(value = "/getTotalActivityAgeRank", method = RequestMethod.POST)
+    /*@RequestMapping(value = "/getTotalActivityAgeRank", method = RequestMethod.POST)
     @ApiOperation(value = "获取商户活动年龄分布")
     public R<MgtTotalActivityTotalVo> getTotalActivityAgeRank(@RequestBody MgtActivityAgeDto mgtActivityAgeDto) {
         Long userId = SecurityUtils.getUserId();
         mgtActivityAgeDto.setUserId(userId);
         MgtTotalActivityTotalVo totalActivityTotal = orderService.getTotalActivityAgeRank(mgtActivityAgeDto);
         return R.ok(totalActivityTotal);
-    }
+    }*/
 
     @RequestMapping(value = "/getTotalDataTotal", method = RequestMethod.POST)
-    @ApiOperation(value = "获取商户数据统计(数据统计)")
+    @ApiOperation(value = "获取商户数据统计(商户管理-统计经营-数据统计)")
     public R<MgtTotalDataTotalVo> getTotalDataTotal(@RequestBody MgtBaseShopDto mgtBaseShopDto) {
         Long userId = SecurityUtils.getUserId();
         mgtBaseShopDto.setUserId(userId);
@@ -75,7 +75,7 @@
     }
 
     @RequestMapping(value = "/getPlTotalDataTotal", method = RequestMethod.POST)
-    @ApiOperation(value = "获取平台商户数据统计")
+    @ApiOperation(value = "获取平台商户数据统计(统计-店铺数据统计)")
     public R<List<MgtTotalDataTotalVo>> getPlTotalDataTotal(@RequestBody MgtBasePlatformDto mgtBasePlatformDto) {
         Long userId = SecurityUtils.getUserId();
         mgtBasePlatformDto.setUserId(userId);
@@ -83,8 +83,18 @@
         return R.ok(totalDataTotalVoList);
     }
 
+    @RequestMapping(value = "/getPlTotalDataTotal", method = RequestMethod.POST)
+    @ApiOperation(value = "导出平台商户数据统计(统计-店铺数据统计)")
+    public void exportPlTotalDataTotal(MgtBasePlatformDto mgtBasePlatformDto, HttpServletResponse response) {
+        Long userId = SecurityUtils.getUserId();
+        mgtBasePlatformDto.setUserId(userId);
+        List<MgtTotalDataTotalVo> totalDataTotalVoList = orderService.getPlTotalDataTotal(mgtBasePlatformDto);
+        ExcelUtil<MgtTotalDataTotalVo> util = new ExcelUtil<MgtTotalDataTotalVo>(MgtTotalDataTotalVo.class);
+        util.exportExcel(response, totalDataTotalVoList, "店铺数据统计列表");
+    }
+
     @RequestMapping(value = "/getPlTotalOrderTotal", method = RequestMethod.POST)
-    @ApiOperation(value = "获取平台商户订单统计")
+    @ApiOperation(value = "获取平台商户订单统计(统计-经营统计)")
     public R<MgtTotalOrderTotalVo> getPlTotalOrderTotal(@RequestBody MgtBasePlatformDto mgtBasePlatformDto) {
         Long userId = SecurityUtils.getUserId();
         mgtBasePlatformDto.setUserId(userId);
@@ -93,7 +103,7 @@
     }
 
     @RequestMapping(value = "/getPlTotalActivityTotal", method = RequestMethod.POST)
-    @ApiOperation(value = "获取平台商户活动统计")
+    @ApiOperation(value = "获取平台商户活动统计(统计-活动统计)")
     public R<MgtPlTotalActivityTotalVo> getPlTotalActivityTotal(@RequestBody MgtBasePlatformDto mgtBasePlatformDto) {
         Long userId = SecurityUtils.getUserId();
         mgtBasePlatformDto.setUserId(userId);
@@ -101,12 +111,12 @@
         return R.ok(totalActivityTotal);
     }
 
-    @RequestMapping(value = "/getPlTotalActivityAgeRank", method = RequestMethod.POST)
+    /*@RequestMapping(value = "/getPlTotalActivityAgeRank", method = RequestMethod.POST)
     @ApiOperation(value = "获取平台商户活动年龄分布")
     public R<MgtPlTotalActivityTotalVo> getPlTotalActivityAgeRank(@RequestBody MgtPlActivityAgeDto mgtPlActivityAgeDto) {
         Long userId = SecurityUtils.getUserId();
         mgtPlActivityAgeDto.setUserId(userId);
         MgtPlTotalActivityTotalVo plTotalActivityTotalVo = orderService.getPlTotalActivityAgeRank(mgtPlActivityAgeDto);
         return R.ok(plTotalActivityTotalVo);
-    }
+    }*/
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtPlTotalActivityTotalVo.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtPlTotalActivityTotalVo.java
index ea0df7f..ddf8b54 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtPlTotalActivityTotalVo.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtPlTotalActivityTotalVo.java
@@ -63,37 +63,37 @@
     @ApiModelProperty(value = "服务获客人数")
     private Integer servicePerson;
 
-    @ApiModelProperty(value = "订单数量key")
+    @ApiModelProperty(value = "订单分布日期")
     private String[] orderTotalKey;
 
-    @ApiModelProperty(value = "订单数量value")
+    @ApiModelProperty(value = "订单分布数量")
     private Integer[] orderTotalValue;
 
-    @ApiModelProperty(value = "订单数量value")
+    @ApiModelProperty(value = "订单分布金额")
     @JsonSerialize(using = ToStringSerializer.class)
     private BigDecimal[] orderMoneyValue;
 
-    @ApiModelProperty(value = "商品类型数量")
+    @ApiModelProperty(value = "销售占比数量")
     private List<MgtMapIntTotalVo> goodsTypeTotalList;
 
-    @ApiModelProperty(value = "商品类型金额")
+    @ApiModelProperty(value = "销售占比金额")
     private List<MgtMapBigTotalVo> goodsTypeMoneyList;
 
-    @ApiModelProperty(value = "活动次数排行")
+    @ApiModelProperty(value = "店铺活动次数排行")
     private List<MgtMapIntTotalVo> activityRankList;
 
-    @ApiModelProperty(value = "商户活动销售额排名")
+    @ApiModelProperty(value = "店铺活动销售额排名")
     private List<MgtMapBigTotalVo> shopSalesRankList;
 
-    @ApiModelProperty(value = "活动销售额排名")
+    @ApiModelProperty(value = "店铺活动销售额排名")
     private List<MgtMapBigTotalVo> activitySalesRankList;
 
-    @ApiModelProperty(value = "活动年龄分布key")
+    /*@ApiModelProperty(value = "活动年龄分布key")
     private String[] activityAgeKey;
 
     @ApiModelProperty(value = "活动年龄分布value")
     private Integer[] activityAgeValue;
-
+*/
     @ApiModelProperty(value = "参与人数key")
     private String[] joinMemberTotalKey;
 
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtTotalActivityTotalVo.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtTotalActivityTotalVo.java
index f8c4813..3f7ce2e 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtTotalActivityTotalVo.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtTotalActivityTotalVo.java
@@ -63,31 +63,31 @@
     @ApiModelProperty(value = "服务获客人数")
     private Integer servicePerson;
 
-    @ApiModelProperty(value = "订单数量key")
+    @ApiModelProperty(value = "订单分布日期")
     private String[] orderTotalKey;
 
-    @ApiModelProperty(value = "订单数量value")
+    @ApiModelProperty(value = "订单分布数量")
     private Integer[] orderTotalValue;
 
-    @ApiModelProperty(value = "订单金额value")
+    @ApiModelProperty(value = "订单分布金额")
     @JsonSerialize(using = ToStringSerializer.class)
     private BigDecimal[] orderMoneyValue;
 
-    @ApiModelProperty(value = "商品类型数量")
+    @ApiModelProperty(value = "销售占比数量")
     private List<MgtMapIntTotalVo> goodsTypeTotalList;
 
-    @ApiModelProperty(value = "商品类型金额")
+    @ApiModelProperty(value = "销售占比金额")
     private List<MgtMapBigTotalVo> goodsTypeMoneyList;
 
-    @ApiModelProperty(value = "活动年龄分布key")
+   /* @ApiModelProperty(value = "活动年龄分布key")
     private String[] activityAgeKey;
 
     @ApiModelProperty(value = "活动年龄分布value")
-    private Integer[] activityAgeValue;
+    private Integer[] activityAgeValue;*/
 
     @ApiModelProperty(value = "参与人数key")
     private String[] joinMemberTotalKey;
 
-    @ApiModelProperty(value = "参与人数key")
+    @ApiModelProperty(value = "参与人数value")
     private Integer[] joinMemberTotalValue;
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtTotalDataTotalVo.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtTotalDataTotalVo.java
index 2c0c1dc..9ef98bd 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtTotalDataTotalVo.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtTotalDataTotalVo.java
@@ -2,6 +2,7 @@
 
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.ruoyi.common.core.annotation.Excel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -17,37 +18,48 @@
 @Data
 public class MgtTotalDataTotalVo {
 
+    @Excel(name = "店铺名称", width = 30, sort = 1)
     @ApiModelProperty(value = "商户名称")
     private String shopName;
 
+    @Excel(name = "营业额", width = 30, sort = 2)
     @ApiModelProperty(value = "营业额")
     @JsonSerialize(using = ToStringSerializer.class)
     private BigDecimal salesTotal;
 
-    @ApiModelProperty(value = "总人数")
+    @Excel(name = "进店总人数", width = 30, sort = 3)
+    @ApiModelProperty(value = "进店总人数")
     private Integer orderPerson;
 
-    @ApiModelProperty(value = "体验人数")
+    @Excel(name = "3次体验人数", width = 30, sort = 4)
+    @ApiModelProperty(value = "3次体验人数")
     private Integer onlyExperiencePerson;
 
-    @ApiModelProperty(value = "体验开单人数")
+    @Excel(name = "3次体验开单人数", width = 30, sort = 5)
+    @ApiModelProperty(value = "3次体验开单人数")
     private Integer experienceCyclePerson;
 
+    @Excel(name = "没体验开单人数", width = 30, sort = 6)
     @ApiModelProperty(value = "没体验开单人数")
     private Integer onlyCyclePerson;
 
+    @Excel(name = "续单人数", width = 30, sort = 7)
     @ApiModelProperty(value = "续单人数")
     private Integer reorderPerson;
 
+    @Excel(name = "老客户回店人数", width = 30, sort = 9)
     @ApiModelProperty(value = "老客户回店人数")
     private Integer returnedPerson;
 
+    @Excel(name = "整体调理人数", width = 30, sort = 8)
     @ApiModelProperty(value = "整体调理人数")
     private Integer cyclePerson;
 
+    @Excel(name = "单品人数", width = 30, sort = 10)
     @ApiModelProperty(value = "单品人数")
     private Integer goodsPerson;
 
+    @Excel(name = "单品数量", width = 30, sort = 11)
     @ApiModelProperty(value = "单品数量")
     private Integer goodsNumber;
 
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtTotalOrderTotalVo.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtTotalOrderTotalVo.java
index bea7fa1..1a7cd0c 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtTotalOrderTotalVo.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtTotalOrderTotalVo.java
@@ -69,25 +69,25 @@
     @JsonSerialize(using = ToStringSerializer.class)
     private BigDecimal serviceMoney;
 
-    @ApiModelProperty(value = "订单数量key")
+    @ApiModelProperty(value = "订单分布日期")
     private String[] orderTotalKey;
 
-    @ApiModelProperty(value = "订单数量value")
+    @ApiModelProperty(value = "订单分布数量")
     private Integer[] orderTotalValue;
 
-    @ApiModelProperty(value = "订单金额value")
+    @ApiModelProperty(value = "订单分布金额")
     @JsonSerialize(using = ToStringSerializer.class)
     private BigDecimal[] orderMoneyValue;
 
-    @ApiModelProperty(value = "商品类型数量")
+    @ApiModelProperty(value = "销售占比数量")
     private List<MgtMapIntTotalVo> goodsTypeTotalList;
 
-    @ApiModelProperty(value = "商品类型金额")
+    @ApiModelProperty(value = "销售占比金额")
     private List<MgtMapBigTotalVo> goodsTypeMoneyList;
 
-    @ApiModelProperty(value = "商品排行")
+    @ApiModelProperty(value = "销售排行")
     private List<MgtMapBigTotalVo> goodsRankList;
 
-    @ApiModelProperty(value = "来源排行")
+    @ApiModelProperty(value = "订单渠道排行")
     private List<MgtMapBigTotalVo> orderFromRankList;
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java
index 0beef6a..ecfdb44 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java
@@ -655,6 +655,9 @@
 
     List<MgtMapIntTotalVo> getMgtActivityMemberTotal(@Param("param")MgtBasePlatformDto mgtBasePlatformDto);
 
+
+    List<MgtMapIntTotalVo> getActivityMemberTotal(@Param("param")MgtBaseShopDto mgtBaseShopDto);
+
     /**
      * @description  获取用户商品购买数量
      * @author  jqs
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 a6e83da..7d059dd 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
@@ -751,13 +751,16 @@
         }
         appPlaceOrderVo.setOrderId(orderId);
         appPlaceOrderVo.setOrderNo(orderNo);
-
+        //商品数据
         String goodsName = "";
         if (null != goodsNameList) {
             goodsName = String.join(",", goodsNameList);
         }
-
-        if(appPlaceOrderVo.getPayMoney().compareTo(BigDecimal.TEN)<0){
+        //减去优惠券
+        if (StringUtils.isNotBlank(memberCouponSJ.toString())) {
+            remoteCouponService.useMemberCoupon(memberCouponSJ.toString());
+        }
+        if(appPlaceOrderVo.getPayMoney().compareTo(BigDecimal.ZERO)>0){
             String outTradeNo = IdUtils.simpleUUID();
 
             // 保存订单 交易流水
@@ -768,25 +771,23 @@
             createWxPayInfo(appPlaceOrderVo, userId, order.getShopId(), goodsName, outTradeNo,
                     orderId, order.getPayMoney(), appPlaceOrderDto.getOpenid(),
                     appPlaceOrderDto.getSpbillCreateIp(), goodsNameList,1);
+            //生成自动取消订单延时任务
+            Integer delayTime = 30;
+            if (redisService.hasKey(SecurityConstant.AUTO_CANCEL_ORDER_TIME)) {
+                delayTime = redisService.getCacheObject(SecurityConstant.AUTO_CANCEL_ORDER_TIME);
+            }
+            redisService.setCacheObject(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode() + "-" + orderId, orderId, delayTime.longValue(), TimeUnit.MINUTES);
+            DelayTask delayTask = new DelayTask();
+            delayTask.setDelFlag(0);
+            delayTask.setCreateTime(new Date());
+            delayTask.setEndTime(DateUtils.addMinutes(new Date(), delayTime));
+            delayTask.setRedisKey(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode() + "-" + orderId);
+            remoteConfigService.addDelayTask(delayTask);
+            appPlaceOrderVo.setEndTime(DateUtils.addMinutes(order.getCreateTime(), delayTime));
+        }else{
+            order.setOrderStatus(2);
+            this.saveOrUpdate(order);
         }
-
-        //减去优惠券
-        if (StringUtils.isNotBlank(memberCouponSJ.toString())) {
-            remoteCouponService.useMemberCoupon(memberCouponSJ.toString());
-        }
-        //生成自动取消订单延时任务
-        Integer delayTime = 30;
-        if (redisService.hasKey(SecurityConstant.AUTO_CANCEL_ORDER_TIME)) {
-            delayTime = redisService.getCacheObject(SecurityConstant.AUTO_CANCEL_ORDER_TIME);
-        }
-        redisService.setCacheObject(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode() + "-" + orderId, orderId, delayTime.longValue(), TimeUnit.MINUTES);
-        DelayTask delayTask = new DelayTask();
-        delayTask.setDelFlag(0);
-        delayTask.setCreateTime(new Date());
-        delayTask.setEndTime(DateUtils.addMinutes(new Date(), delayTime));
-        delayTask.setRedisKey(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode() + "-" + orderId);
-        remoteConfigService.addDelayTask(delayTask);
-        appPlaceOrderVo.setEndTime(DateUtils.addMinutes(order.getCreateTime(), delayTime));
 
         return appPlaceOrderVo;
     }
@@ -1156,18 +1157,32 @@
         goodsNameList.add(orderGoods.getGoodsName());
 
 
-        if(appPlaceOrderVo.getPayMoney().compareTo(BigDecimal.TEN)<0){
+        if(appPlaceOrderVo.getPayMoney().compareTo(BigDecimal.ZERO)>0){
 
             String outTradeNo = IdUtils.simpleUUID();
-
             // 保存订单 交易流水
             order.setOutTradeNo(outTradeNo);
             this.saveOrUpdate(order);
-
             // 小程序微信下单支付
             createWxPayInfo(appPlaceOrderVo, userId, order.getShopId(), orderGoods.getGoodsName(), orderNo,
                     orderId, order.getPayMoney(), appPlaceActivityDto.getOpenid(),
                     appPlaceActivityDto.getSpbillCreateIp(), goodsNameList,2);
+            //生成自动取消订单延时任务
+            Integer delayTime = 30;
+            if (redisService.hasKey(SecurityConstant.AUTO_CANCEL_ORDER_TIME)) {
+                delayTime = redisService.getCacheObject(SecurityConstant.AUTO_CANCEL_ORDER_TIME);
+            }
+            redisService.setCacheObject(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode() + "-" + orderId, orderId, delayTime.longValue(), TimeUnit.MINUTES);
+            DelayTask delayTask = new DelayTask();
+            delayTask.setDelFlag(0);
+            delayTask.setCreateTime(new Date());
+            delayTask.setEndTime(DateUtils.addMinutes(new Date(), delayTime));
+            delayTask.setRedisKey(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode() + "-" + orderId);
+            remoteConfigService.addDelayTask(delayTask);
+            appPlaceOrderVo.setEndTime(DateUtils.addMinutes(order.getCreateTime(), delayTime));
+        }else{
+            order.setOrderStatus(2);
+            this.saveOrUpdate(order);
         }
         //生成活动参加记录
         ActivityRecord activityRecord = new ActivityRecord();
@@ -1182,19 +1197,6 @@
         activityRecord.setGoodsId(orderGoods.getGoodsId());
         activityRecord.setActivityMoney(activityGoodsGetVo.getActivityPrice());
         remoteActivityService.addActivityRecord(activityRecord);
-        //生成自动取消订单延时任务
-        Integer delayTime = 30;
-        if (redisService.hasKey(SecurityConstant.AUTO_CANCEL_ORDER_TIME)) {
-            delayTime = redisService.getCacheObject(SecurityConstant.AUTO_CANCEL_ORDER_TIME);
-        }
-        redisService.setCacheObject(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode() + "-" + orderId, orderId, delayTime.longValue(), TimeUnit.MINUTES);
-        DelayTask delayTask = new DelayTask();
-        delayTask.setDelFlag(0);
-        delayTask.setCreateTime(new Date());
-        delayTask.setEndTime(DateUtils.addMinutes(new Date(), delayTime));
-        delayTask.setRedisKey(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode() + "-" + orderId);
-        remoteConfigService.addDelayTask(delayTask);
-        appPlaceOrderVo.setEndTime(DateUtils.addMinutes(order.getCreateTime(), delayTime));
         return appPlaceOrderVo;
     }
 
@@ -2745,22 +2747,10 @@
      */
     @Override
     public MgtTotalOrderTotalVo getTotalOrderTotal(MgtBaseShopDto mgtBaseShopDto) {
+        //订单数量 订单金额
         MgtTotalOrderTotalVo mgtTotalOrderTotalVo = orderMapper.getTotalOrderTotalOrderFrom(mgtBaseShopDto);
         //MgtTotalOrderTotalVo mgtTotalOrderTotalVoGoodsType = orderMapper.getTotalOrderTotalGoodsType(mgtBaseShopDto);
-        List<MgtMapTotalPlusVo> MgtMapIntTotalVos = orderMapper.listTotalOrderTotal(mgtBaseShopDto);
-        if (MgtMapIntTotalVos != null && MgtMapIntTotalVos.size() > 0) {
-            String[] orderTotalKey = new String[MgtMapIntTotalVos.size()];
-            Integer[] orderTotalValue = new Integer[MgtMapIntTotalVos.size()];
-            BigDecimal[] orderMoneyValue = new BigDecimal[MgtMapIntTotalVos.size()];
-            for (int i = 0; i < MgtMapIntTotalVos.size(); i++) {
-                orderTotalKey[i] = MgtMapIntTotalVos.get(i).getMapKey();
-                orderTotalValue[i] = MgtMapIntTotalVos.get(i).getMapValueFirst();
-                orderMoneyValue[i] = MgtMapIntTotalVos.get(i).getMapValueSecond();
-            }
-            mgtTotalOrderTotalVo.setOrderTotalKey(orderTotalKey);
-            mgtTotalOrderTotalVo.setOrderTotalValue(orderTotalValue);
-            mgtTotalOrderTotalVo.setOrderMoneyValue(orderMoneyValue);
-        }
+
         //获取商品分类销售数据
         List<MgtMapTotalPlusVo> MgtMapIntTotalVoGoodsType = orderMapper.listTotalOrderTotalGoodsType(mgtBaseShopDto);
         List<MgtMapIntTotalVo> goodsTypeTotalList = new ArrayList<>();
@@ -2811,6 +2801,26 @@
             orderFromList = bigListRemoveNull(orderFromList);
             mgtTotalOrderTotalVo.setOrderFromRankList(orderFromList);
         }
+        //订单分布
+        //日期全部时固定为5天
+        if(StringUtils.isBlank(mgtBaseShopDto.getStartDate())){
+            mgtBaseShopDto.setStartDate(DateUtils.getDate());
+            mgtBaseShopDto.setEndDate(DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.addDays(new Date(),-4)));
+        }
+        List<MgtMapTotalPlusVo> MgtMapIntTotalVos = orderMapper.listTotalOrderTotal(mgtBaseShopDto);
+        if (MgtMapIntTotalVos != null && MgtMapIntTotalVos.size() > 0) {
+            String[] orderTotalKey = new String[MgtMapIntTotalVos.size()];
+            Integer[] orderTotalValue = new Integer[MgtMapIntTotalVos.size()];
+            BigDecimal[] orderMoneyValue = new BigDecimal[MgtMapIntTotalVos.size()];
+            for (int i = 0; i < MgtMapIntTotalVos.size(); i++) {
+                orderTotalKey[i] = MgtMapIntTotalVos.get(i).getMapKey();
+                orderTotalValue[i] = MgtMapIntTotalVos.get(i).getMapValueFirst();
+                orderMoneyValue[i] = MgtMapIntTotalVos.get(i).getMapValueSecond();
+            }
+            mgtTotalOrderTotalVo.setOrderTotalKey(orderTotalKey);
+            mgtTotalOrderTotalVo.setOrderTotalValue(orderTotalValue);
+            mgtTotalOrderTotalVo.setOrderMoneyValue(orderMoneyValue);
+        }
         return mgtTotalOrderTotalVo;
     }
 
@@ -2855,7 +2865,7 @@
      */
     @Override
     public MgtTotalActivityTotalVo getTotalActivityTotal(MgtBaseShopDto mgtBaseShopDto) {
-        //获取基础统计
+        //获取基础统计 总订单数 订单金额 参与人数
         MgtTotalActivityTotalVo totalActivityTotalVo = orderMapper.getTotalActivityTotal(mgtBaseShopDto);
         //获客人数
         MgtTotalActivityTotalVo totalActivityMemberTotalVo = orderMapper.getTotalActivityMemberTotal(mgtBaseShopDto);
@@ -2908,7 +2918,13 @@
             totalActivityTotalVo.setGoodsTypeTotalList(goodsTypeTotalList);
             totalActivityTotalVo.setGoodsTypeMoneyList(goodsTypeMoneyList);
         }
+
         //获取订单分布
+        //日期全部时固定为5天
+        if(StringUtils.isBlank(mgtBaseShopDto.getStartDate())){
+            mgtBaseShopDto.setStartDate(DateUtils.getDate());
+            mgtBaseShopDto.setEndDate(DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.addDays(new Date(),-4)));
+        }
         List<MgtMapTotalPlusVo> MgtMapIntTotalVos = orderMapper.listTotalActivityTotal(mgtBaseShopDto);
         if (MgtMapIntTotalVos != null && MgtMapIntTotalVos.size() > 0) {
             String[] orderTotalKey = new String[MgtMapIntTotalVos.size()];
@@ -2924,7 +2940,30 @@
             totalActivityTotalVo.setOrderMoneyValue(orderMoneyValue);
         }
         //参与人数
-
+        List<MgtMapIntTotalVo> joinList = orderMapper.getActivityMemberTotal(mgtBaseShopDto);
+        // 将查询结果转为Map
+        Map<String, Integer> mgtMapIntTotalVoMap = new HashMap<>();
+        if (joinList != null && !joinList.isEmpty()) {
+            mgtMapIntTotalVoMap = joinList.stream()
+                    .collect(Collectors.toMap(MgtMapIntTotalVo::getMapKey, MgtMapIntTotalVo::getMapValue));
+        }
+        // 获取日期范围
+        List<String> dateList = getDateRange(mgtBaseShopDto.getStartDate(), mgtBaseShopDto.getEndDate());
+        int size = dateList.size();
+        // 创建日期和成员总数的数组
+        String[] joinMemberTotalKey = new String[size];
+        Integer[] joinMemberTotalValue = new Integer[size];
+        // 遍历日期列表,设置日期和成员总数的数组
+        String str;
+        Integer value;
+        for (int i = 0; i < size; i++) {
+            str = dateList.get(i);
+            joinMemberTotalKey[i] = str;
+            value = mgtMapIntTotalVoMap.get(str);
+            joinMemberTotalValue[i] = (value != null) ? value : 0;
+        }
+        totalActivityTotalVo.setJoinMemberTotalKey(joinMemberTotalKey);
+        totalActivityTotalVo.setJoinMemberTotalValue(joinMemberTotalValue);
         return totalActivityTotalVo;
     }
 
@@ -2935,7 +2974,7 @@
      * @author jqs
      * @date 2023/6/20 9:56
      */
-    @Override
+    /*@Override
     public MgtTotalActivityTotalVo getTotalActivityAgeRank(MgtActivityAgeDto mgtActivityAgeDto) {
         List<Long> userIds = orderMapper.getUserIdAgeRank(mgtActivityAgeDto);
         mgtActivityAgeDto.setUserIds(userIds);
@@ -2957,7 +2996,7 @@
         totalActivityTotalVo.setActivityAgeKey(activityAgeKey);
         totalActivityTotalVo.setActivityAgeValue(activityAgeValue);
         return totalActivityTotalVo;
-    }
+    }*/
 
     /**
      * @param mgtBaseShopDto
@@ -3080,20 +3119,6 @@
         mgtBasePlatformDto.setShopIdList(shopIdList);
         //获取基础统计
         MgtTotalOrderTotalVo mgtTotalOrderTotalVo = orderMapper.getPlTotalOrderTotalOrderFrom(mgtBasePlatformDto);
-        List<MgtMapTotalPlusVo> MgtMapIntTotalVos = orderMapper.listPlTotalOrderTotal(mgtBasePlatformDto);
-        if (MgtMapIntTotalVos != null && MgtMapIntTotalVos.size() > 0) {
-            String[] orderTotalKey = new String[MgtMapIntTotalVos.size()];
-            Integer[] orderTotalValue = new Integer[MgtMapIntTotalVos.size()];
-            BigDecimal[] orderMoneyValue = new BigDecimal[MgtMapIntTotalVos.size()];
-            for (int i = 0; i < MgtMapIntTotalVos.size(); i++) {
-                orderTotalKey[i] = MgtMapIntTotalVos.get(i).getMapKey();
-                orderTotalValue[i] = MgtMapIntTotalVos.get(i).getMapValueFirst();
-                orderMoneyValue[i] = MgtMapIntTotalVos.get(i).getMapValueSecond();
-            }
-            mgtTotalOrderTotalVo.setOrderTotalKey(orderTotalKey);
-            mgtTotalOrderTotalVo.setOrderTotalValue(orderTotalValue);
-            mgtTotalOrderTotalVo.setOrderMoneyValue(orderMoneyValue);
-        }
         //获取商品分类销售数据
         List<MgtMapTotalPlusVo> MgtMapIntTotalVoGoodsType = orderMapper.listPlTotalOrderTotalGoodsType(mgtBasePlatformDto);
         List<MgtMapIntTotalVo> goodsTypeTotalList = new ArrayList<>();
@@ -3150,6 +3175,27 @@
             orderFromList = bigListRemoveNull(orderFromList);
             mgtTotalOrderTotalVo.setOrderFromRankList(orderFromList);
         }
+        //订单分布
+        //日期全部时固定为5天
+        if(StringUtils.isBlank(mgtBasePlatformDto.getStartDate())){
+            mgtBasePlatformDto.setStartDate(DateUtils.getDate());
+            mgtBasePlatformDto.setEndDate(DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.addDays(new Date(),-4)));
+        }
+        List<MgtMapTotalPlusVo> MgtMapIntTotalVos = orderMapper.listPlTotalOrderTotal(mgtBasePlatformDto);
+        if (MgtMapIntTotalVos != null && MgtMapIntTotalVos.size() > 0) {
+            String[] orderTotalKey = new String[MgtMapIntTotalVos.size()];
+            Integer[] orderTotalValue = new Integer[MgtMapIntTotalVos.size()];
+            BigDecimal[] orderMoneyValue = new BigDecimal[MgtMapIntTotalVos.size()];
+            for (int i = 0; i < MgtMapIntTotalVos.size(); i++) {
+                orderTotalKey[i] = MgtMapIntTotalVos.get(i).getMapKey();
+                orderTotalValue[i] = MgtMapIntTotalVos.get(i).getMapValueFirst();
+                orderMoneyValue[i] = MgtMapIntTotalVos.get(i).getMapValueSecond();
+            }
+            MerOrderDistributionTotalVo merOrderDistributionTotalVo = fillOrderTotalKeyAndValuesToRecentFiveDays(orderTotalKey,orderTotalValue,orderMoneyValue);
+            mgtTotalOrderTotalVo.setOrderTotalKey(merOrderDistributionTotalVo.getOrderTotalKey());
+            mgtTotalOrderTotalVo.setOrderTotalValue(merOrderDistributionTotalVo.getOrderTotalValue());
+            mgtTotalOrderTotalVo.setOrderMoneyValue(merOrderDistributionTotalVo.getOrderMoneyValue());
+        }
         return mgtTotalOrderTotalVo;
     }
 
@@ -3162,6 +3208,9 @@
      */
     @Override
     public MgtPlTotalActivityTotalVo getPlTotalActivityTotal(MgtBasePlatformDto mgtBasePlatformDto) {
+        if(mgtBasePlatformDto.getActivityFrom()!=null&&mgtBasePlatformDto.getActivityFrom() == 2){
+            return new MgtPlTotalActivityTotalVo();
+        }
         //获取需要关联的用户id集合
         if (mgtBasePlatformDto.getDeptId() != null) {
             List<Long> userIdList = new ArrayList<>();
@@ -3229,6 +3278,11 @@
             totalActivityTotalVo.setGoodsTypeTotalList(goodsTypeTotalList);
             totalActivityTotalVo.setGoodsTypeMoneyList(goodsTypeMoneyList);
         }
+        //日期全部时固定为5天
+        if(StringUtils.isBlank(mgtBasePlatformDto.getStartDate())){
+            mgtBasePlatformDto.setStartDate(DateUtils.getDate());
+            mgtBasePlatformDto.setEndDate(DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.addDays(new Date(),-4)));
+        }
         //获取订单分布
         List<MgtMapTotalPlusVo> MgtMapIntTotalVos = orderMapper.listPlTotalActivityTotal(mgtBasePlatformDto);
         if (MgtMapIntTotalVos != null && MgtMapIntTotalVos.size() > 0) {
@@ -3256,18 +3310,28 @@
         mgtBaseBathDto.setIds(joinedString);
         List<MgtSimpleShopVo> simpleShopVoList = remoteShopService.listShopSimpleVoByIds(mgtBaseBathDto).getData();
         // 将MgtSimpleShopVoList转换为Map<Long, MgtSimpleShopVo>,以便后续根据shopId获取对应的MgtSimpleShopVo
-        Map<Long, MgtSimpleShopVo> map = simpleShopVoList.stream()
+        Map<Long, MgtSimpleShopVo> shopMap = simpleShopVoList.stream()
                 .collect(Collectors.toMap(MgtSimpleShopVo::getShopId, Function.identity()));
         //商户活动次数排名
         List<MgtMapBigTotalVo> shopActivityRank = orderMapper.listPlTotalShopActivityRank(mgtBasePlatformDto);
         if (shopActivityRank != null && shopActivityRank.size() > 0) {
             shopActivityRank = bigListRemoveNull(shopActivityRank);
+            for(MgtMapBigTotalVo mgtMapBigTotalVo : shopActivityRank){
+                if(shopMap.get(mgtMapBigTotalVo.getMapKey())!=null){
+                    mgtMapBigTotalVo.setMapKey(shopMap.get(mgtMapBigTotalVo.getMapKey()).getShopName());
+                }
+            }
             totalActivityTotalVo.setShopSalesRankList(shopActivityRank);
         }
         //商户活动销售额排名
         List<MgtMapBigTotalVo> shopActivitySalesRank = orderMapper.listPlTotalShopActivitySalesRank(mgtBasePlatformDto);
         if (shopActivitySalesRank != null && shopActivitySalesRank.size() > 0) {
             shopActivitySalesRank = bigListRemoveNull(shopActivitySalesRank);
+            for(MgtMapBigTotalVo mgtMapBigTotalVo : shopActivitySalesRank){
+                if(shopMap.get(mgtMapBigTotalVo.getMapKey())!=null){
+                    mgtMapBigTotalVo.setMapKey(shopMap.get(mgtMapBigTotalVo.getMapKey()).getShopName());
+                }
+            }
             totalActivityTotalVo.setShopSalesRankList(shopActivitySalesRank);
         }
         //活动销售额排名
@@ -3337,7 +3401,7 @@
      * @author jqs
      * @date 2023/6/20 9:56
      */
-    @Override
+    /*@Override
     public MgtPlTotalActivityTotalVo getPlTotalActivityAgeRank(MgtPlActivityAgeDto mgtPlActivityAgeDto) {
         List<Long> userIds = orderMapper.getPlUserIdAgeRank(mgtPlActivityAgeDto);
         MgtActivityAgeDto mgtActivityAgeDto = new MgtActivityAgeDto();
@@ -3361,7 +3425,7 @@
         plTotalActivityTotalVo.setActivityAgeKey(activityAgeKey);
         plTotalActivityTotalVo.setActivityAgeValue(activityAgeValue);
         return plTotalActivityTotalVo;
-    }
+    }*/
 
     /**
      * @param verifyCode
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java
index 273d3e9..95fb5a5 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java
@@ -252,7 +252,7 @@
      * @param mgtActivityAgeDto
      * @return  MgtTotalActivityTotalVo
      */
-    MgtTotalActivityTotalVo getTotalActivityAgeRank(MgtActivityAgeDto mgtActivityAgeDto);
+    //MgtTotalActivityTotalVo getTotalActivityAgeRank(MgtActivityAgeDto mgtActivityAgeDto);
 
     /**
      * @description 获取商户数据统计
@@ -306,7 +306,7 @@
      * @param mgtPLActivityAgeDto
      * @return  MgtTotalActivityTotalVo
      */
-    MgtPlTotalActivityTotalVo getPlTotalActivityAgeRank(MgtPlActivityAgeDto mgtPLActivityAgeDto);
+    //MgtPlTotalActivityTotalVo getPlTotalActivityAgeRank(MgtPlActivityAgeDto mgtPLActivityAgeDto);
 
     /**
      * @description  获取优惠券核销信息
diff --git a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
index 1945c3b..ed04016 100644
--- a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
+++ b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
@@ -748,11 +748,11 @@
         IFNULL(SUM(CASE WHEN order_from = 1 THEN 1 ELSE 0 END),0) onlineTotal,
         IFNULL(SUM(CASE WHEN order_from = 3 THEN 1 ELSE 0 END),0) offlineTotal,
         IFNULL(SUM(CASE WHEN order_from = 2 THEN 1 ELSE 0 END),0) activityTotal,
-        IFNULL(SUM(order_money),0) orderMoney,
-        IFNULL(SUM(CASE WHEN order_from = 1 THEN order_money ELSE 0 END),0) onlineMoney,
-        IFNULL(SUM(CASE WHEN order_from = 3 THEN order_money ELSE 0 END),0) offlineMoney,
-        IFNULL(SUM(CASE WHEN order_from = 2 THEN order_money ELSE 0 END),0) activityMoney
-        FROM t_order WHERE del_flag = 0
+        IFNULL(SUM(change_receivable_money),0) orderMoney,
+        IFNULL(SUM(CASE WHEN order_from = 1 THEN change_receivable_money ELSE 0 END),0) onlineMoney,
+        IFNULL(SUM(CASE WHEN order_from = 3 THEN change_receivable_money ELSE 0 END),0) offlineMoney,
+        IFNULL(SUM(CASE WHEN order_from = 2 THEN change_receivable_money ELSE 0 END),0) activityMoney
+        FROM t_order WHERE del_flag = 0 AND order_status = 3
         <if test="param.shopId != null and param.shopId != ''">
             AND shop_id = #{param.shopId}
         </if>
@@ -818,43 +818,49 @@
         SELECT
             DATE_FORMAT(create_time, '%Y-%m-%d') AS mapKey,
             COUNT(order_id) AS mapValueFirst,
-            IFNULL(SUM(order_money),0) AS mapValueSecond
-        FROM
-            t_order
-        WHERE
-            del_flag = 0
-          AND Date(create_time) >= DATE_SUB(CURDATE(), INTERVAL 6 DAY)
+            IFNULL(SUM(CASE WHEN pay_type = 1 THEN change_receivable_money WHEN pay_type = 2 THEN change_receivable_money + online_pay_money ELSE 0 END),0) AS mapValueSecond
+        FROM t_order
+        WHERE del_flag = 0 AND order_status IN (2,3)
         <if test="param.shopId != null and param.shopId != ''">
             AND shop_id = #{param.shopId}
         </if>
-        GROUP BY
-        DATE_FORMAT(create_time, '%Y-%m-%d')
-        ORDER BY
-        DATE_FORMAT(create_time, '%Y-%m-%d') ASC
+        <if test="param.startDate!=null and param.startDate!=''">
+            AND Date(create_time) &gt;= #{param.startDate}
+        </if>
+        <if test="param.endDate!=null and param.endDate!=''">
+            AND Date(create_time) &lt;= #{param.endDate}
+        </if>
+        GROUP BY mapKey
+        ORDER BY mapKey ASC
     </select>
 
     <select id="listTotalOrderTotalGoodsType" resultType="com.ruoyi.order.domain.vo.MgtMapTotalPlusVo">
         SELECT
         tog.goods_type mapKey,
         COUNT(DISTINCT toc.order_id) AS mapValueFirst,
-        IFNULL(SUM(tog.goods_total_money),0) AS mapValueSecond
-        FROM
-        t_order toc
+        IFNULL(SUM(tog.goods_receivable_money),0) AS mapValueSecond
+        FROM t_order toc
         INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id
-        WHERE toc.del_flag = 0
+        WHERE toc.del_flag = 0 AND toc.order_status IN (2,3)
         <if test="param.shopId != null and param.shopId != ''">
             AND toc.shop_id = #{param.shopId}
         </if>
-        GROUP BY tog.goods_type
+        <if test="param.startDate!=null and param.startDate!=''">
+            AND Date(toc.create_time) &gt;= #{param.startDate}
+        </if>
+        <if test="param.endDate!=null and param.endDate!=''">
+            AND Date(toc.create_time) &lt;= #{param.endDate}
+        </if>
+        GROUP BY mapKey
     </select>
 
     <select id="listTotalOrderTotalGoodsRank" resultType="com.ruoyi.system.api.domain.vo.MgtMapBigTotalVo">
         SELECT
         tog.goods_name mapKey,
-        IFNULL(SUM(tog.goods_total_money),0) mapValue
+        IFNULL(SUM(tog.goods_receivable_money),0) mapValue
         FROM t_order toc
         INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id
-        WHERE toc.del_flag = 0
+        WHERE toc.del_flag = 0 AND toc.order_status = 3
         <if test="param.shopId != null and param.shopId != ''">
             AND toc.shop_id = #{param.shopId}
         </if>
@@ -875,9 +881,9 @@
         WHEN 2 THEN "秒杀活动订单"
         WHEN 3 THEN "线下创建订单"
         END mapKey,
-        IFNULL(SUM(toc.order_money),0) mapValue
+        IFNULL(SUM(CASE WHEN toc.pay_type = 1 THEN toc.change_receivable_money WHEN toc.pay_type = 2 THEN toc.change_receivable_money + toc.online_pay_money ELSE 0 END),0) mapValue
         FROM t_order toc
-        WHERE toc.del_flag = 0
+        WHERE toc.del_flag = 0 AND toc.order_status IN (2,3)
         <if test="param.shopId != null and param.shopId != ''">
             AND toc.shop_id = #{param.shopId}
         </if>
@@ -919,6 +925,12 @@
         WHERE toc.del_flag = 0 AND order_from = 2
         <if test="param.shopId != null and param.shopId != ''">
             AND toc.shop_id = #{param.shopId}
+        </if>
+        <if test="param.startDate!=null and param.startDate!=''">
+            AND Date(toc.create_time) &gt;= #{param.startDate}
+        </if>
+        <if test="param.endDate!=null and param.endDate!=''">
+            AND Date(toc.create_time) &lt;= #{param.endDate}
         </if>
         GROUP BY tog.goods_type
     </select>
@@ -1129,11 +1141,11 @@
         IFNULL(SUM(CASE WHEN order_from = 1 THEN 1 ELSE 0 END),0) onlineTotal,
         IFNULL(SUM(CASE WHEN order_from = 3 THEN 1 ELSE 0 END),0) offlineTotal,
         IFNULL(SUM(CASE WHEN order_from = 2 THEN 1 ELSE 0 END),0) activityTotal,
-        IFNULL(SUM(order_money),0) orderMoney,
-        IFNULL(SUM(CASE WHEN order_from = 1 THEN order_money ELSE 0 END),0) onlineMoney,
-        IFNULL(SUM(CASE WHEN order_from = 3 THEN order_money ELSE 0 END),0) offlineMoney,
-        IFNULL(SUM(CASE WHEN order_from = 2 THEN order_money ELSE 0 END),0) activityMoney
-        FROM t_order WHERE del_flag = 0
+        IFNULL(SUM(change_receivable_money),0) orderMoney,
+        IFNULL(SUM(CASE WHEN order_from = 1 THEN change_receivable_money ELSE 0 END),0) onlineMoney,
+        IFNULL(SUM(CASE WHEN order_from = 3 THEN change_receivable_money ELSE 0 END),0) offlineMoney,
+        IFNULL(SUM(CASE WHEN order_from = 2 THEN change_receivable_money ELSE 0 END),0) activityMoney
+        FROM t_order WHERE del_flag = 0 AND order_status = 3
         <if test="param.shopIdList != null and param.shopIdList.size() > 0">
             AND shop_id IN
             <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")">
@@ -1177,22 +1189,24 @@
         SELECT
         DATE_FORMAT(create_time, '%Y-%m-%d') AS mapKey,
         COUNT(order_id) AS mapValueFirst,
-        IFNULL(SUM(order_money),0) AS mapValueSecond
+        IFNULL(SUM(receivable_money),0) AS mapValueSecond
         FROM
         t_order
-        WHERE
-        del_flag = 0
-        AND Date(create_time) >= DATE_SUB(CURDATE(), INTERVAL 6 DAY)
+        WHERE del_flag = 0 AND order_status = 3
+        <if test="param.startDate!=null and param.startDate!=''">
+            AND Date(create_time) &gt;= #{param.startDate}
+        </if>
+        <if test="param.endDate!=null and param.endDate!=''">
+            AND Date(create_time) &lt;= #{param.endDate}
+        </if>
         <if test="param.shopIdList != null and param.shopIdList.size() > 0">
             AND shop_id IN
             <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")">
                 #{item}
             </foreach>
         </if>
-        GROUP BY
-        DATE_FORMAT(create_time, '%Y-%m-%d')
-        ORDER BY
-        DATE_FORMAT(create_time, '%Y-%m-%d') ASC
+        GROUP BY mapKey
+        ORDER BY mapKey ASC
     </select>
 
     <select id="listPlTotalOrderTotalGoodsType" resultType="com.ruoyi.order.domain.vo.MgtMapTotalPlusVo">
@@ -1203,7 +1217,7 @@
         FROM
         t_order toc
         INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id
-        WHERE toc.del_flag = 0
+        WHERE toc.del_flag = 0 AND toc.order_status IN (2,3)
         <if test="param.shopIdList != null and param.shopIdList.size() > 0">
             AND toc.shop_id IN
             <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")">
@@ -1216,11 +1230,10 @@
     <select id="listPlTotalOrderTotalGoodsRank" resultType="com.ruoyi.system.api.domain.vo.MgtMapBigTotalVo">
         SELECT
         tog.goods_name mapKey,
-        IFNULL(SUM(tog.goods_receivable_money),0) mapValue,
-        COUNT(DISTINCT toc.order_id) mapTotalValue
+        IFNULL(SUM(tog.goods_receivable_money),0) mapValue
         FROM t_order toc
         INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id
-        WHERE toc.del_flag = 0
+        WHERE toc.del_flag = 0 AND order_status = 3
         <if test="param.shopIdList != null and param.shopIdList.size() > 0">
             AND toc.shop_id IN
             <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")">
@@ -1233,8 +1246,8 @@
         <if test="param.endDate!=null and param.endDate!=''">
             AND Date(toc.create_time) &lt;= #{param.endDate}
         </if>
-        GROUP BY tog.goods_name
-        ORDER BY SUM(tog.goods_total_money) DESC LIMIT 10
+        GROUP BY mapKey
+        ORDER BY mapValue DESC LIMIT 15
     </select>
 
     <select id="listPlTotalOrderTotalOrderFrom" resultType="com.ruoyi.system.api.domain.vo.MgtMapBigTotalVo">
@@ -1246,7 +1259,7 @@
         END mapKey,
         IFNULL(SUM(toc.order_money),0) mapValue
         FROM t_order toc
-        WHERE toc.del_flag = 0
+        WHERE toc.del_flag = 0 AND order_status = 3
         <if test="param.shopIdList != null and param.shopIdList.size() > 0">
             AND toc.shop_id IN
             <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")">
@@ -1260,7 +1273,7 @@
             AND Date(toc.create_time) &lt;= #{param.endDate}
         </if>
         GROUP BY toc.order_from
-        ORDER BY SUM(toc.order_money) DESC LIMIT 10
+        ORDER BY SUM(toc.order_money) DESC LIMIT 15
     </select>
 
     <select id="getPlTotalActivityTotal" resultType="com.ruoyi.order.domain.vo.MgtPlTotalActivityTotalVo">
@@ -1274,6 +1287,9 @@
             <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")">
                 #{item}
             </foreach>
+        </if>
+        <if test="param.activityId!=null and param.activityId!=''">
+            AND toc.activity_id = #{param.activityId}
         </if>
         <if test="param.startDate!=null and param.startDate!=''">
             AND Date(create_time) &gt;= #{param.startDate}
@@ -1291,7 +1307,7 @@
         COUNT(DISTINCT CASE WHEN tog.goods_type = 3 THEN toc.user_id ELSE NULL END) servicePerson
         FROM t_order toc
         INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id
-        WHERE toc.del_flag = 0 AND toc.order_from = 2 AND toc.order_status = 3 AND toc.new_member_flag = 1
+        WHERE toc.del_flag = 0 AND toc.order_from = 2 AND toc.order_status IN (2,3) AND toc.new_member_flag = 1
         <if test="param.shopIdList != null and param.shopIdList.size() > 0">
             AND toc.shop_id IN
             <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")">
@@ -1345,10 +1361,10 @@
             </foreach>
         </if>
         <if test="param.startDate!=null and param.startDate!=''">
-            AND Date(create_time) &gt;= #{param.startDate}
+            AND Date(toc.create_time) &gt;= #{param.startDate}
         </if>
         <if test="param.endDate!=null and param.endDate!=''">
-            AND Date(create_time) &lt;= #{param.endDate}
+            AND Date(toc.create_time) &lt;= #{param.endDate}
         </if>
         GROUP BY tog.goods_type
     </select>
@@ -1360,17 +1376,20 @@
         IFNULL(SUM(CASE WHEN pay_type = 1 THEN change_receivable_money WHEN pay_type = 2 THEN change_receivable_money + online_pay_money ELSE 0 END),0) AS mapValueSecond
         FROM t_order
         WHERE del_flag = 0 AND order_from = 2 AND order_status = 3
-        AND Date(create_time) >= DATE_SUB(CURDATE(), INTERVAL 6 DAY)
+        <if test="param.startDate!=null and param.startDate!=''">
+            AND Date(create_time) &gt;= #{param.startDate}
+        </if>
+        <if test="param.endDate!=null and param.endDate!=''">
+            AND Date(create_time) &lt;= #{param.endDate}
+        </if>
         <if test="param.shopIdList != null and param.shopIdList.size() > 0">
             AND shop_id IN
             <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")">
                 #{item}
             </foreach>
         </if>
-        GROUP BY
-        DATE_FORMAT(create_time, '%Y-%m-%d')
-        ORDER BY
-        DATE_FORMAT(create_time, '%Y-%m-%d') ASC
+        GROUP BY mapKey
+        ORDER BY mapKey ASC
     </select>
 
     <select id="getPlUserIdAgeRank" resultType="java.lang.Long">
@@ -1407,9 +1426,9 @@
             </foreach>
         </if>
         GROUP BY
-        DATE_FORMAT(create_time, '%Y-%m-%d')
+        mapKey
         ORDER BY
-        DATE_FORMAT(create_time, '%Y-%m-%d') ASC
+        mapValue ASC
     </select>
 
     <select id="listPlTotalShopActivityRank" resultType="com.ruoyi.system.api.domain.vo.MgtMapBigTotalVo">
@@ -1430,32 +1449,16 @@
         <if test="param.endDate!=null and param.endDate!=''">
             AND Date(create_time) &lt;= #{param.endDate}
         </if>
-        GROUP BY shop_id
-        ORDER BY COUNT(order_id) DESC LIMIT 15
+        GROUP BY mapKey
+        ORDER BY mapValue DESC LIMIT 15
     </select>
 
     <select id="listPlTotalShopActivitySalesRank" resultType="com.ruoyi.system.api.domain.vo.MgtMapBigTotalVo">
         SELECT
-            shop_id AS mapKey,
-            IFNULL(SUM(order_money),0) AS mapValue
+        shop_id AS mapKey,
+        IFNULL(SUM(CASE WHEN pay_type = 1 THEN change_receivable_money WHEN pay_type = 2 THEN change_receivable_money+online_pay_money ELSE 0 END),0) AS mapValue
         FROM t_order
-        WHERE del_flag = 0 AND order_from = 2
-        <if test="param.shopIdList != null and param.shopIdList.size() > 0">
-            AND shop_id IN
-            <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")">
-                #{item}
-            </foreach>
-        </if>
-        GROUP BY shop_id
-        ORDER BY SUM(order_money) DESC LIMIT 15
-    </select>
-
-    <select id="listPlTotalActivitySalesRank" resultType="com.ruoyi.system.api.domain.vo.MgtMapBigTotalVo">
-        SELECT
-        activity_name AS mapKey,
-        IFNULL(SUM(order_money),0) AS mapValue
-        FROM t_order
-        WHERE del_flag = 0 AND order_from = 2
+        WHERE del_flag = 0 AND order_from = 2 AND order_status IN (2,3)
         <if test="param.shopIdList != null and param.shopIdList.size() > 0">
             AND shop_id IN
             <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")">
@@ -1468,8 +1471,30 @@
         <if test="param.endDate!=null and param.endDate!=''">
             AND Date(create_time) &lt;= #{param.endDate}
         </if>
-        GROUP BY activity_name
-        ORDER BY SUM(order_money) DESC LIMIT 15
+        GROUP BY mapKey
+        ORDER BY mapValue DESC LIMIT 15
+    </select>
+
+    <select id="listPlTotalActivitySalesRank" resultType="com.ruoyi.system.api.domain.vo.MgtMapBigTotalVo">
+        SELECT
+        activity_name AS mapKey,
+        IFNULL(SUM(CASE WHEN pay_type = 1 THEN change_receivable_money WHEN pay_type = 2 THEN change_receivable_money+online_pay_money ELSE 0 END),0) AS mapValue
+        FROM t_order
+        WHERE del_flag = 0 AND order_from = 2 AND order_status IN (2,3)
+        <if test="param.shopIdList != null and param.shopIdList.size() > 0">
+            AND shop_id IN
+            <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="param.startDate!=null and param.startDate!=''">
+            AND Date(create_time) &gt;= #{param.startDate}
+        </if>
+        <if test="param.endDate!=null and param.endDate!=''">
+            AND Date(create_time) &lt;= #{param.endDate}
+        </if>
+        GROUP BY mapKey
+        ORDER BY mapValue DESC LIMIT 15
     </select>
 
     <select id="getMerHomeShopTotalVo" resultType="com.ruoyi.system.api.domain.vo.MerHomeShopTotalVo">
@@ -1558,7 +1583,7 @@
                 #{item}
             </foreach>
         </if>
-        AND toc.create_time >= DATE_SUB(CURDATE(), INTERVAL 5 DAY)
+        AND toc.create_time >= DATE_SUB(CURDATE(), INTERVAL 4 DAY)
         GROUP BY mapKey
     </select>
 
@@ -1812,7 +1837,7 @@
         <if test="param.activityId !=null and param.activityId != ''">
             AND toc.activity_id = #{param.activityId}
         </if>
-        AND toc.create_time >= DATE_SUB(CURDATE(), INTERVAL 5 DAY)
+        AND toc.create_time >= DATE_SUB(CURDATE(), INTERVAL 4 DAY)
         GROUP BY mapKey
     </select>
 
@@ -1937,6 +1962,25 @@
         GROUP BY mapKey
     </select>
 
+    <select id="getActivityMemberTotal" resultType="com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo">
+        SELECT
+        DATE(toc.create_time) AS mapKey,
+        COUNT(DISTINCT toc.user_id) AS mapValue
+        FROM t_order toc
+        INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id
+        WHERE toc.del_flag = 0  AND toc.order_from = 2 AND toc.order_status IN (2,3)
+        <if test="param.shopId != null and param.shopId != ''">
+            AND toc.shop_id = #{param.shopId}
+        </if>
+        <if test="param.startDate!=null and param.startDate!=''">
+            AND Date(toc.create_time) &gt;= #{param.startDate}
+        </if>
+        <if test="param.endDate!=null and param.endDate!=''">
+            AND Date(toc.create_time) &lt;= #{param.endDate}
+        </if>
+        GROUP BY mapKey
+    </select>
+
     <select id="countUserBuyGoodsNum" resultType="java.lang.Integer">
         SELECT SUM(tog.buy_num)
         FROM t_order toc
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtTotalController.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtTotalController.java
index a6df601..e612dc5 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtTotalController.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtTotalController.java
@@ -31,7 +31,7 @@
     private ShopService shopService;
 
     @RequestMapping(value = "/getPlTotalShopTotal", method = RequestMethod.POST)
-    @ApiOperation(value = "获取平台商户统计")
+    @ApiOperation(value = "获取平台商户统计(统计-合作商统计)")
     public R<MgtPlTotalShopTotalVo> getPlTotalShopTotal(@RequestBody MgtBasePlatformDto mgtBasePlatformDto) {
         Long userId = SecurityUtils.getUserId();
         mgtBasePlatformDto.setUserId(userId);
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
index 5ca75f3..c4a0f43 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
@@ -210,7 +210,7 @@
 
         }
         //验证商户名唯一
-        Shop shopSame = this.getOne(new LambdaQueryWrapper<Shop>().eq(Shop::getDelFlag,0).eq(Shop::getShopName,mgtEditShopDto.getShopName()));
+        //Shop shopSame = this.getOne(new LambdaQueryWrapper<Shop>().eq(Shop::getDelFlag,0).eq(Shop::getShopName,mgtEditShopDto.getShopName()));
         if(mgtEditShopDto.getShopId()!=null){
             //取消验重
             /*if(shopSame!=null&&!Objects.equals(shopSame.getShopId(),mgtEditShopDto.getShopId())){
diff --git a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml
index 5bd8805..6534a3d 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml
+++ b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml
@@ -434,10 +434,9 @@
 
     <select id="getNearbyShop"  resultType="com.ruoyi.shop.domain.vo.AppNearShopVo">
         SELECT ts.shop_id shopId,
-               6378.138 * 2 * ASIN(SQRT(POW(SIN((
-               #{param.latitude} * PI() / 180 - ts.shop_latitude * PI() / 180) / 2), 2)
-                + COS(#{param.latitude} * PI() / 180) * COS(ts.shop_latitude * PI() / 180) * POW(
-               SIN((#{param.longitude} * PI() / 180 - ts.shop_longitude * PI() / 180) / 2), 2
+               6378.138 * 2 * ASIN(SQRT(POW(SIN((28.837917676710354 * PI() / 180 - ts.shop_latitude * PI() / 180) / 2), 2)
+                + COS(28.837917676710354 * PI() / 180) * COS(ts.shop_latitude * PI() / 180) * POW(
+               SIN((105.43587830688473 * PI() / 180 - ts.shop_longitude * PI() / 180) / 2), 2
                ))) AS distance
         FROM t_shop ts
         ORDER BY distance ASC LIMIT 1
@@ -707,7 +706,7 @@
 
     <select id="listShopAreaRank" resultType="com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo">
         SELECT
-        ts.shop_city_code mapKey,
+        SUBSTRING_INDEX(SUBSTRING_INDEX(ts.shop_area_name, ',', 2), ',', -1) mapKey,
         COUNT(ts.shop_id) mapValue
         FROM t_shop ts
         WHERE ts.del_flag = 0
@@ -732,7 +731,7 @@
         <if test="param.endDate!=null and param.endDate!=''">
             AND Date(ts.create_time) &lt;= #{param.endDate}
         </if>
-        GROUP BY ts.shop_city_code
+        GROUP BY mapKey
         ORDER BY COUNT(ts.shop_id) DESC LIMIT 15
     </select>
 

--
Gitblit v1.7.1