From 1ffb6c7910cfb4d55b4c169142b67ea872fcf614 Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期二, 27 六月 2023 19:55:50 +0800
Subject: [PATCH] BUG联调

---
 ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml                                  |   69 ++-
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtPlTotalMemberTotalVo.java       |   51 --
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberCouponServiceImpl.java |   26 +
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtActivityListDto.java                 |   22 +
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java         |   26 +
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtTotalOrderTotalVo.java                |   30 -
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java                    |   11 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java             |    8 
 ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml                               |   14 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MerVerifyCouponGetVo.java          |    4 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/member/MemberCoupon.java         |    2 
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/ShopTotal.java                           |    2 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java                      |   21 
 ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml                                     |   12 
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtPlTotalShopTotalVo.java                 |   31 -
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/CouponController.java         |   58 +++
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java     |    5 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtMapBigTotalVo.java              |   24 +
 ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberCouponMapper.xml                         |    8 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java      |    4 
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java                          |   14 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java       |    2 
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java               |   64 +--
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteCouponService.java             |   41 ++
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java       |  108 ++---
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java           |  206 +++++++----
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberCouponMapper.java            |    2 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtTotalController.java      |   13 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MerCouponGoodsListVo.java          |   26 +
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/business/MerOrderController.java        |    2 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerVerifyCouponVo.java                   |   15 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberCouponService.java          |    5 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteCouponFallbackFactory.java     |   47 ++
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtTotalDataTotalVo.java                 |    8 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java         |   23 -
 35 files changed, 630 insertions(+), 374 deletions(-)

diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberCoupon.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/member/MemberCoupon.java
similarity index 97%
rename from ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberCoupon.java
rename to ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/member/MemberCoupon.java
index c369065..166450e 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberCoupon.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/member/MemberCoupon.java
@@ -1,4 +1,4 @@
-package com.ruoyi.member.domain.pojo.member;
+package com.ruoyi.system.api.domain.poji.member;
 
 import com.baomidou.mybatisplus.activerecord.Model;
 import com.baomidou.mybatisplus.annotation.TableField;
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MerCouponGoodsListVo.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MerCouponGoodsListVo.java
new file mode 100644
index 0000000..4235ef0
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MerCouponGoodsListVo.java
@@ -0,0 +1,26 @@
+package com.ruoyi.system.api.domain.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @ClassName MerCouponGoodsListVo
+ * @Description TODO
+ * @Author jqs
+ * @Date 2023/6/27 14:02
+ * @Version 1.0
+ */
+@Data
+public class MerCouponGoodsListVo {
+
+    @ApiModelProperty(value = "商品id")
+    private String goodsId;
+
+    @ApiModelProperty(value = "商品名称")
+    private String goodsName;
+
+    @ApiModelProperty(value = "商品数量")
+    private String goodsNum;
+
+
+}
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MerVerifyCouponGetVo.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MerVerifyCouponGetVo.java
index 3acf9e2..1ec5b71 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MerVerifyCouponGetVo.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MerVerifyCouponGetVo.java
@@ -1,6 +1,7 @@
 package com.ruoyi.system.api.domain.vo;
 
 import com.ruoyi.system.api.domain.poji.goods.Goods;
+import com.ruoyi.system.api.domain.poji.member.MemberCoupon;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -20,6 +21,9 @@
     @ApiModelProperty(value = "用户id")
     private Long userId;
 
+    @ApiModelProperty(value = "优惠券")
+    private MemberCoupon memberCoupon;
+
     @ApiModelProperty(value = "商品列表")
     private List<Goods> goodsList;
 
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtMapBigTotalVo.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtMapBigTotalVo.java
new file mode 100644
index 0000000..5e4c711
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtMapBigTotalVo.java
@@ -0,0 +1,24 @@
+package com.ruoyi.system.api.domain.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @ClassName MgtNurseTotalVo
+ * @Description TODO
+ * @Author jqs
+ * @Date 2023/6/19 18:06
+ * @Version 1.0
+ */
+@Data
+public class MgtMapBigTotalVo {
+
+    @ApiModelProperty(value = "mapKey")
+    private String mapKey;
+
+    @ApiModelProperty(value = "mapValue")
+    private BigDecimal mapValue;
+
+}
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtPlTotalMemberTotalVo.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtPlTotalMemberTotalVo.java
index 2f788a9..3d09306 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtPlTotalMemberTotalVo.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtPlTotalMemberTotalVo.java
@@ -3,6 +3,8 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.List;
+
 /**
  * @ClassName MgtPlTotalMemberTotalVo
  * @Description TODO
@@ -34,47 +36,26 @@
     @ApiModelProperty(value = "会员年龄value")
     private Integer[] ageValue;
 
-    @ApiModelProperty(value = "会员调理key")
-    private String[] nurseKey;
+    @ApiModelProperty(value = "会员调理")
+    private List<MgtMapTotalVo> nurseTotalVos;
 
-    @ApiModelProperty(value = "会员调理value")
-    private Integer[] nurseValue;
+    @ApiModelProperty(value = "商品类型")
+    private List<MgtMapTotalVo> goodsTypeTotalVos;
 
-    @ApiModelProperty(value = "商品类型key")
-    private String[] goodsTypeKey;
+    @ApiModelProperty(value = "活跃度")
+    private List<MgtMapTotalVo> activenessList;
 
-    @ApiModelProperty(value = "商品类型value")
-    private Integer[] goodsTypeValue;
+    @ApiModelProperty(value = "来源渠道")
+    private List<MgtMapTotalVo> customerSourceList;
 
-    @ApiModelProperty(value = "活跃度key")
-    private String[] activenessKey;
+    @ApiModelProperty(value = "消费排行")
+    private List<MgtMapTotalVo> memberPayList;
 
-    @ApiModelProperty(value = "活跃度value")
-    private Integer[] activenessValue;
+    @ApiModelProperty(value = "商品排行")
+    private List<MgtMapTotalVo> memberGoodsRankList;
 
-    @ApiModelProperty(value = "来源渠道key")
-    private String[] customerSourceKey;
-
-    @ApiModelProperty(value = "来源渠道value")
-    private Integer[] customerSourceValue;
-
-    @ApiModelProperty(value = "消费排行key")
-    private String[] orderRankKey;
-
-    @ApiModelProperty(value = "消费排行value")
-    private Integer[] orderRankValue;
-
-    @ApiModelProperty(value = "商品排行key")
-    private String[] goodsRankKey;
-
-    @ApiModelProperty(value = "商品排行value")
-    private Integer[] goodsRankValue;
-
-    @ApiModelProperty(value = "店铺会员key")
-    private String[] memberRankKey;
-
-    @ApiModelProperty(value = "店铺会员value")
-    private Integer[] memberRankValue;
+    @ApiModelProperty(value = "店铺会员")
+    private List<MgtMapTotalVo> shopMemberRankList;
 
 
 }
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteCouponFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteCouponFallbackFactory.java
new file mode 100644
index 0000000..70b3465
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteCouponFallbackFactory.java
@@ -0,0 +1,47 @@
+package com.ruoyi.system.api.factory;
+
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.system.api.domain.vo.AppMemberCouponVo;
+import com.ruoyi.system.api.domain.vo.MerVerifyCouponGetVo;
+import com.ruoyi.system.api.service.RemoteCouponService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.cloud.openfeign.FallbackFactory;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @ClassName RemoteCouponFallbackFactory
+ * @Description TODO
+ * @Author jqs
+ * @Date 2023/6/27 14:58
+ * @Version 1.0
+ */
+@Component
+public class RemoteCouponFallbackFactory implements FallbackFactory<RemoteCouponService> {
+
+    private static final Logger log = LoggerFactory.getLogger(RemoteMemberFallbackFactory.class);
+
+    @Override
+    public RemoteCouponService create(Throwable throwable) {
+        log.error("优惠券服务调用失败:{}", throwable.getMessage());
+        return new RemoteCouponService() {
+
+
+            @Override
+            public R<List<AppMemberCouponVo>> listVoMemberCouponByUserId(Long userId) {
+                return R.fail("获取优惠券列表失败:" + throwable.getMessage());
+            }
+
+            @Override
+            public R<MerVerifyCouponGetVo> getVerifyCoupon(String verifyCoupon) {
+                return R.fail("获取核销优惠券失败:" + throwable.getMessage());
+            }
+
+
+        };
+    }
+
+
+}
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java
index 743325a..8d338c7 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java
@@ -45,12 +45,7 @@
             @Override
             public R<AppMiniRegisterVo> miniRegister(AppMiniRegisterDto appUserRegisterDto) {
                 return R.fail("注册用户失败:" + throwable.getMessage());            }
-                
 
-            @Override
-            public R<List<AppMemberCouponVo>> listVoMemberCouponByUserId(Long userId) {
-                return R.fail("获取用户优惠券失败:" + throwable.getMessage());
-            }
 
             @Override
             public R updateMemberBinding(AppMemberBindingDto appMemberBindingDto) {
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteCouponService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteCouponService.java
new file mode 100644
index 0000000..82f1dcf
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteCouponService.java
@@ -0,0 +1,41 @@
+package com.ruoyi.system.api.service;
+
+import com.ruoyi.common.core.constant.ServiceNameConstants;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.system.api.domain.vo.AppMemberCouponVo;
+import com.ruoyi.system.api.domain.vo.MerVerifyCouponGetVo;
+import com.ruoyi.system.api.factory.RemoteCouponFallbackFactory;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+
+/**
+ * @ClassName RemoteCouponService
+ * @Description TODO
+ * @Author jqs
+ * @Date 2023/6/27 14:56
+ * @Version 1.0
+ */
+@FeignClient(contextId = "remoteCouponService", value = ServiceNameConstants.MEMBER_SERVICE, fallbackFactory = RemoteCouponFallbackFactory.class)
+public interface RemoteCouponService {
+
+    /**
+     * 通过userid获取用户优惠
+     * @param userId
+     * @return
+     */
+    @PostMapping("/coupon/listVoMemberCouponByUserId")
+    public R<List<AppMemberCouponVo>> listVoMemberCouponByUserId(@RequestBody Long userId);
+
+    /**
+     * @description  获取核销优惠券
+     * @author  jqs
+     * @date    2023/6/27 14:54
+     * @param verifyCoupon
+     * @return  R<MerVerifyCouponGetVo>
+     */
+    @PostMapping("/coupon/getVerifyCoupon")
+    public R<MerVerifyCouponGetVo> getVerifyCoupon(@RequestBody String verifyCoupon);
+}
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java
index eea6331..d255a81 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java
@@ -36,13 +36,7 @@
     @PostMapping("/member/miniRegister")
     public R<AppMiniRegisterVo> miniRegister(@RequestBody AppMiniRegisterDto appUserRegisterDto);
 
-    /**
-     * 通过userid获取用户优惠
-     * @param userId
-     * @return
-     */
-    @PostMapping("/member/listVoMemberCouponByUserId")
-    public R<List<AppMemberCouponVo>> listVoMemberCouponByUserId(@RequestBody Long userId);
+
 
     /**
      * 更新绑定
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtActivityListDto.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtActivityListDto.java
new file mode 100644
index 0000000..944fff8
--- /dev/null
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtActivityListDto.java
@@ -0,0 +1,22 @@
+package com.ruoyi.goods.domain.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @ClassName MgtActivityListDto
+ * @Description TODO
+ * @Author jqs
+ * @Date 2023/6/27 19:45
+ * @Version 1.0
+ */
+@Data
+public class MgtActivityListDto {
+
+    @ApiModelProperty("活动来源1平台2商户")
+    private Integer activityFrom;
+
+    @ApiModelProperty("活动类型1秒杀")
+    private Integer activityType;
+
+}
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/CouponController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/CouponController.java
new file mode 100644
index 0000000..ab5e35b
--- /dev/null
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/CouponController.java
@@ -0,0 +1,58 @@
+package com.ruoyi.member.controller.console;
+
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.member.service.member.MemberCouponService;
+import com.ruoyi.system.api.domain.vo.AppMemberCouponVo;
+import com.ruoyi.system.api.domain.vo.MerVerifyCouponGetVo;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @ClassName CouponController
+ * @Description TODO
+ * @Author jqs
+ * @Date 2023/6/27 15:00
+ * @Version 1.0
+ */
+@RestController
+@RequestMapping("/coupon")
+public class CouponController extends BaseController {
+
+
+    @Resource
+    private MemberCouponService memberCouponService;
+
+
+    /**
+     * @description: 获取用户优惠券
+     * @author jqs34
+     * @date 2023/5/3 1:45
+     * @version 1.0
+     */
+    @PostMapping("/listVoMemberCouponByUserId")
+    public R<List<AppMemberCouponVo>> listVoMemberCouponByUserId(@RequestBody Long userId){
+        List<AppMemberCouponVo> appMemberCouponVoList = memberCouponService.listVoMemberCouponByUserId(userId);
+        return R.ok(appMemberCouponVoList);
+    }
+
+    /**
+     * @description  获取核销优惠券
+     * @author  jqs
+     * @date    2023/6/27 14:54
+     * @param verifyCoupon
+     * @return  R<MerVerifyCouponGetVo>
+     */
+    @PostMapping("/getVerifyCoupon")
+    public R<MerVerifyCouponGetVo> getVerifyCoupon(@RequestBody String verifyCoupon)
+    {
+        MerVerifyCouponGetVo verifyCouponGetVo = memberCouponService.getVerifyCoupon(verifyCoupon);
+        return R.ok(verifyCouponGetVo);
+    }
+
+}
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java
index 7f30beb..7c855ea 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java
@@ -2,7 +2,6 @@
 
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.web.controller.BaseController;
-import com.ruoyi.member.service.member.MemberCouponService;
 import com.ruoyi.member.service.member.MemberService;
 import com.ruoyi.member.service.member.MemberSuggestService;
 import com.ruoyi.system.api.domain.dto.*;
@@ -25,9 +24,6 @@
 
     @Resource
     private MemberService memberService;
-
-    @Resource
-    private MemberCouponService memberCouponService;
 
     @Resource
     private MemberSuggestService memberSuggestService;
@@ -75,17 +71,7 @@
         return R.ok(appUserRegisterVo);
     }
 
-    /**
-    * @description: 获取用户优惠券
-    * @author jqs34
-    * @date 2023/5/3 1:45
-    * @version 1.0
-    */
-    @PostMapping("/listVoMemberCouponByUserId")
-    public R<List<AppMemberCouponVo>> listVoMemberCouponByUserId(@RequestBody Long userId){
-        List<AppMemberCouponVo> appMemberCouponVoList = memberCouponService.listVoMemberCouponByUserId(userId);
-        return R.ok(appMemberCouponVoList);
-    }
+
 
     /**
      * 更新会员绑定商户
@@ -248,10 +234,5 @@
         return R.ok(shopTotalMemberVo);
     }
 
-    @PostMapping("/getVerifyCoupon")
-    public R getVerifyCoupon(@RequestBody String verifyCoupon)
-    {
-        memberCouponService.verifyCoupon(verifyCoupon);
-        return R.ok();
-    }
+
 }
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberCouponMapper.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberCouponMapper.java
index d64ae8a..f646096 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberCouponMapper.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberCouponMapper.java
@@ -1,6 +1,6 @@
 package com.ruoyi.member.mapper.member;
 
-import com.ruoyi.member.domain.pojo.member.MemberCoupon;
+import com.ruoyi.system.api.domain.poji.member.MemberCoupon;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ruoyi.system.api.domain.vo.AppMemberCouponVo;
 
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java
index 44c92d5..bf07ef6 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java
@@ -13,7 +13,7 @@
 import com.ruoyi.member.domain.pojo.coupon.CouponRelGoods;
 import com.ruoyi.member.domain.pojo.coupon.CouponRelUser;
 import com.ruoyi.member.domain.pojo.coupon.CouponTotal;
-import com.ruoyi.member.domain.pojo.member.MemberCoupon;
+import com.ruoyi.system.api.domain.poji.member.MemberCoupon;
 import com.ruoyi.member.domain.vo.*;
 import com.ruoyi.member.mapper.coupon.CouponMapper;
 import com.ruoyi.member.service.coupon.CouponRelGoodsService;
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberCouponServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberCouponServiceImpl.java
index 74ff39c..8265d12 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberCouponServiceImpl.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberCouponServiceImpl.java
@@ -1,16 +1,18 @@
 package com.ruoyi.member.service.impl.member;
 
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.core.exception.ServiceException;
-import com.ruoyi.member.domain.pojo.member.MemberCoupon;
 import com.ruoyi.member.mapper.member.MemberCouponMapper;
 import com.ruoyi.member.service.member.MemberCouponService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.system.api.constant.AppErrorConstant;
+import com.ruoyi.system.api.domain.poji.goods.Goods;
+import com.ruoyi.system.api.domain.poji.member.MemberCoupon;
 import com.ruoyi.system.api.domain.vo.AppMemberCouponVo;
+import com.ruoyi.system.api.domain.vo.MerVerifyCouponGetVo;
+import com.ruoyi.system.api.service.RemoteGoodsService;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
-import java.util.Date;
 import java.util.List;
 
 /**
@@ -26,6 +28,9 @@
 
     @Resource
     private MemberCouponMapper memberCouponMapper;
+
+    @Resource
+    private RemoteGoodsService remoteGoodsService;
 
     /**
      * @description: TODO
@@ -47,7 +52,7 @@
      * @return  void
      */
     @Override
-    public void verifyCoupon(String verifyCoupon){
+    public MerVerifyCouponGetVo getVerifyCoupon(String verifyCoupon){
         MemberCoupon memberCoupon = this.getById(verifyCoupon);
         if(memberCoupon==null){
             throw new ServiceException(AppErrorConstant.COUPON_NO_FIND);
@@ -62,9 +67,14 @@
         if(memberCoupon.getCouponType()!=4){
             throw new ServiceException(AppErrorConstant.COUPON_TYPE_ERROR);
         }
-        //更新优惠券为已使用
-        memberCoupon.setCouponStatus(2);
-        memberCoupon.setUseTime(new Date());
-        this.saveOrUpdate(memberCoupon);
+        MerVerifyCouponGetVo merVerifyCouponGetVo = new MerVerifyCouponGetVo();
+        merVerifyCouponGetVo.setUserId(memberCoupon.getUserId());
+        merVerifyCouponGetVo.setMemberCoupon(memberCoupon);
+        String relGoodsIds = memberCoupon.getRelGoodsIds();
+        List<Goods> goodsList = remoteGoodsService.listGoodsByGoodsId(relGoodsIds).getData();
+        if(goodsList!=null){
+            merVerifyCouponGetVo.setGoodsList(goodsList);
+        }
+        return merVerifyCouponGetVo;
     }
 }
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
index 87aab84..ff6b573 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
@@ -1096,8 +1096,14 @@
         //获取基础统计
         MgtPlTotalMemberTotalVo plTotalMemberTotalVo = memberMapper.getPlTotalMemberTotal(mgtBasePlatformDto);
         MgtAgeTotalVo mgtAgeTotalVo = memberMapper.getPlTotalMemberTotalAge(mgtBasePlatformDto);
-        plTotalMemberTotalVo.setManTotal(mgtAgeTotalVo.getManTotal());
-        plTotalMemberTotalVo.setWomenTotal(mgtAgeTotalVo.getWomenTotal());
+        if(mgtAgeTotalVo!=null){
+            plTotalMemberTotalVo.setManTotal(mgtAgeTotalVo.getManTotal());
+            plTotalMemberTotalVo.setWomenTotal(mgtAgeTotalVo.getWomenTotal());
+        }else{
+            plTotalMemberTotalVo.setManTotal(0);
+            plTotalMemberTotalVo.setWomenTotal(0);
+        }
+
         // 年龄段数组
         String[] ageKey = {"<20", "21-30", "31-40", "41-50", ">50"};
         // 不同年龄段的会员数数组
@@ -1105,109 +1111,85 @@
         // 设置年龄段数组和不同年龄段的会员数数组
         plTotalMemberTotalVo.setAgeKey(ageKey);
         plTotalMemberTotalVo.setAgeValue(ageValue);
-        // 获取不同护理类型的会员数
+        // 获取不同调理类型的会员数
         List<MgtMapTotalVo> nurseTotalVos = memberMapper.getPlTotalMemberTotalNurse(mgtBasePlatformDto);
         if (nurseTotalVos != null && nurseTotalVos.size() > 0) {
-            String[] nurseKey = new String[nurseTotalVos.size()];
-            Integer[] nurseValue = new Integer[nurseTotalVos.size()];
-            // 遍历不同护理类型的会员数列表,设置护理类型数组和对应的会员数数组
-            for (int i = 0; i < nurseTotalVos.size(); i++) {
-                nurseKey[i] = nurseTotalVos.get(i).getMapKey();
-                nurseValue[i] = nurseTotalVos.get(i).getMapValue();
-            }
-            plTotalMemberTotalVo.setNurseKey(nurseKey);
-            plTotalMemberTotalVo.setNurseValue(nurseValue);
+            nurseTotalVos = listRemoveNull(nurseTotalVos);
+            plTotalMemberTotalVo.setNurseTotalVos(nurseTotalVos);
         }
         // 获取不同商品类型的会员数
         List<MgtMapTotalVo> goodsTypeTotalVos = memberMapper.getPlTotalMemberTotalGoodsType(mgtBasePlatformDto);
         if (goodsTypeTotalVos != null && goodsTypeTotalVos.size() > 0) {
-            String[] goodsTypeKey = new String[goodsTypeTotalVos.size()];
-            Integer[] goodsTypeValue = new Integer[goodsTypeTotalVos.size()];
-            // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
-            for (int i = 0; i < goodsTypeTotalVos.size(); i++) {
-                goodsTypeKey[i] = goodsTypeTotalVos.get(i).getMapKey();
-                goodsTypeValue[i] = goodsTypeTotalVos.get(i).getMapValue();
-            }
-            plTotalMemberTotalVo.setGoodsTypeKey(goodsTypeKey);
-            plTotalMemberTotalVo.setGoodsTypeValue(goodsTypeValue);
+            goodsTypeTotalVos = listRemoveNull(goodsTypeTotalVos);
+            plTotalMemberTotalVo.setGoodsTypeTotalVos(goodsTypeTotalVos);
         }
         // 获取不同活跃度的会员数
         List<Long> shopIdList = mgtBasePlatformDto.getShopIdList();
         List<Activeness> activenessList = remoteConfigService.listActiveness().getData();
         if (activenessList != null && !activenessList.isEmpty()) {
-            String[] activenessKey = new String[activenessList.size()];
-            Integer[] activenessValue = new Integer[activenessList.size()];
             Activeness activeness;
             String actStartDate;
             String actEndDate;
             Integer count;
+            List<MgtMapTotalVo> mgtMapTotalVoList = new ArrayList<>();
+            MgtMapTotalVo mgtMapTotalVo;
             // 遍历不同活跃度列表,设置活跃度数组和对应的会员数数组
             for (int i = 0; i < activenessList.size(); i++) {
                 activeness = activenessList.get(i);
                 actStartDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getEndDay()));
                 actEndDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getStartDay()));
                 count = memberMapper.getPlTotalMemberTotalActiveness(shopIdList, actStartDate, actEndDate);
-                activenessKey[i] = activeness.getActivenessName();
-                activenessValue[i] = count;
+                if(StringUtils.isNotBlank(activeness.getActivenessName())){
+                    mgtMapTotalVo = new MgtMapTotalVo();
+                    mgtMapTotalVo.setMapKey(activeness.getActivenessName());
+                    mgtMapTotalVo.setMapValue(count);
+                }
             }
-            plTotalMemberTotalVo.setActivenessKey(activenessKey);
-            plTotalMemberTotalVo.setActivenessValue(activenessValue);
+            plTotalMemberTotalVo.setActivenessList(mgtMapTotalVoList);
         }
         //获取会员消费排名
         List<MgtMapTotalVo> memberPayList = memberMapper.getPlTotalMemberRankPay(mgtBasePlatformDto);
         if (memberPayList != null && memberPayList.size() > 0) {
-            String[] memberPayKey = new String[memberPayList.size()];
-            Integer[] memberPayValue = new Integer[memberPayList.size()];
-            // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
-            for (int i = 0; i < memberPayList.size(); i++) {
-                memberPayKey[i] = memberPayList.get(i).getMapKey();
-                memberPayValue[i] = memberPayList.get(i).getMapValue();
-            }
-            plTotalMemberTotalVo.setOrderRankKey(memberPayKey);
-            plTotalMemberTotalVo.setOrderRankValue(memberPayValue);
+            memberPayList = listRemoveNull(memberPayList);
+            plTotalMemberTotalVo.setMemberPayList(memberPayList);
         }
         //获取来源渠道排名
         List<MgtMapTotalVo> customerSourceList = memberMapper.getPlTotalMemberRankCustomerSource(mgtBasePlatformDto);
         if (customerSourceList != null && customerSourceList.size() > 0) {
-            String[] customerSourceKey = new String[customerSourceList.size()];
-            Integer[] customerSourceValue = new Integer[customerSourceList.size()];
-            // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
-            for (int i = 0; i < customerSourceList.size(); i++) {
-                customerSourceKey[i] = customerSourceList.get(i).getMapKey();
-                customerSourceValue[i] = customerSourceList.get(i).getMapValue();
-            }
-            plTotalMemberTotalVo.setCustomerSourceKey(customerSourceKey);
-            plTotalMemberTotalVo.setCustomerSourceValue(customerSourceValue);
+            customerSourceList = listRemoveNull(customerSourceList);
+            plTotalMemberTotalVo.setCustomerSourceList(customerSourceList);
         }
         //获取商铺会员排名
         List<MgtMapTotalVo> shopMemberRankList = memberMapper.getPlTotalMemberRank(mgtBasePlatformDto);
         if (shopMemberRankList != null && shopMemberRankList.size() > 0) {
-            String[] shopMemberRankKey = new String[shopMemberRankList.size()];
-            Integer[] shopMemberRankValue = new Integer[shopMemberRankList.size()];
-            // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
-            for (int i = 0; i < shopMemberRankList.size(); i++) {
-                shopMemberRankKey[i] = shopMemberRankList.get(i).getMapKey();
-                shopMemberRankValue[i] = shopMemberRankList.get(i).getMapValue();
-            }
-            plTotalMemberTotalVo.setMemberRankKey(shopMemberRankKey);
-            plTotalMemberTotalVo.setMemberRankValue(shopMemberRankValue);
+            shopMemberRankList = listRemoveNull(shopMemberRankList);
+            plTotalMemberTotalVo.setShopMemberRankList(shopMemberRankList);
         }
         List<MgtMapTotalVo> memberGoodsRankList = remoteOrderService.listMemberGoodsRank(mgtBasePlatformDto).getData();
         if (memberGoodsRankList != null && memberGoodsRankList.size() > 0) {
-            String[] shopMemberRankKey = new String[memberGoodsRankList.size()];
-            Integer[] shopMemberRankValue = new Integer[memberGoodsRankList.size()];
-            // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
-            for (int i = 0; i < memberGoodsRankList.size(); i++) {
-                shopMemberRankKey[i] = memberGoodsRankList.get(i).getMapKey();
-                shopMemberRankValue[i] = memberGoodsRankList.get(i).getMapValue();
-            }
-            plTotalMemberTotalVo.setGoodsRankKey(shopMemberRankKey);
-            plTotalMemberTotalVo.setGoodsRankValue(shopMemberRankValue);
+            memberGoodsRankList = listRemoveNull(memberGoodsRankList);
+            plTotalMemberTotalVo.setMemberGoodsRankList(memberGoodsRankList);
         }
         return plTotalMemberTotalVo;
     }
 
     /**
+     * @description  去除空字符串
+     * @author  jqs
+     * @date    2023/6/27 17:35
+     * @param mgtMapTotalVos
+     * @return  List<MgtMapTotalVo>
+     */
+    private List<MgtMapTotalVo> listRemoveNull(List<MgtMapTotalVo> mgtMapTotalVos){
+        for (int i = 0; i < mgtMapTotalVos.size(); i++) {
+            if(StringUtils.isBlank(mgtMapTotalVos.get(i).getMapKey())){
+                mgtMapTotalVos.remove(i);
+            }
+        }
+        return mgtMapTotalVos;
+    }
+
+    /**
      * @description  通过shopId获取userId
      * @author  jqs
      * @date    2023/6/21 17:11
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberCouponService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberCouponService.java
index 430d17e..c4d52d5 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberCouponService.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberCouponService.java
@@ -1,8 +1,9 @@
 package com.ruoyi.member.service.member;
 
-import com.ruoyi.member.domain.pojo.member.MemberCoupon;
+import com.ruoyi.system.api.domain.poji.member.MemberCoupon;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.system.api.domain.vo.AppMemberCouponVo;
+import com.ruoyi.system.api.domain.vo.MerVerifyCouponGetVo;
 
 import java.util.List;
 
@@ -31,5 +32,5 @@
      * @param verifyCoupon
      * @return  void
      */
-    void verifyCoupon(String verifyCoupon);
+    MerVerifyCouponGetVo getVerifyCoupon(String verifyCoupon);
 }
diff --git a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberCouponMapper.xml b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberCouponMapper.xml
index 78854f8..8d8b9ac 100644
--- a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberCouponMapper.xml
+++ b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberCouponMapper.xml
@@ -2,7 +2,7 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.member.mapper.member.MemberCouponMapper">
 
-    <resultMap type="MemberCoupon" id="MemberCouponResult">
+    <resultMap type="com.ruoyi.system.api.domain.poji.member.MemberCoupon" id="MemberCouponResult">
         <result property="id"    column="id"    />
         <result property="delFlag"    column="del_flag"    />
         <result property="couponId"    column="coupon_id"    />
@@ -31,7 +31,7 @@
         select id, del_flag, coupon_id, user_id, coupon_type, coupon_status, coupon_name, send_type, send_time_type, send_time, money_threshold, discount_money, discount_percent, use_scope, valid_time_type, valid_start_time, valid_end_time, valid_day, receive_time, use_time, deadline_time, rel_goods_ids from t_member_coupon
     </sql>
 
-    <select id="selectMemberCouponList" parameterType="MemberCoupon" resultMap="MemberCouponResult">
+    <select id="selectMemberCouponList" parameterType="com.ruoyi.system.api.domain.poji.member.MemberCoupon" resultMap="MemberCouponResult">
         <include refid="selectMemberCouponVo"/>
         <where>
             <if test="couponId != null  and couponId != ''"> and coupon_id = #{couponId}</if>
@@ -62,7 +62,7 @@
         where id = #{id}
     </select>
 
-    <insert id="insertMemberCoupon" parameterType="MemberCoupon" useGeneratedKeys="true" keyProperty="id">
+    <insert id="insertMemberCoupon" parameterType="com.ruoyi.system.api.domain.poji.member.MemberCoupon" useGeneratedKeys="true" keyProperty="id">
         insert into t_member_coupon
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="delFlag != null">del_flag,</if>
@@ -112,7 +112,7 @@
         </trim>
     </insert>
 
-    <update id="updateMemberCoupon" parameterType="MemberCoupon">
+    <update id="updateMemberCoupon" parameterType="com.ruoyi.system.api.domain.poji.member.MemberCoupon">
         update t_member_coupon
         <trim prefix="SET" suffixOverrides=",">
             <if test="delFlag != null">del_flag = #{delFlag},</if>
diff --git a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml
index 1a5171b..375cd30 100644
--- a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml
+++ b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml
@@ -442,8 +442,9 @@
         SELECT
         tm.nick_name mapKey,
         tmt.total_pay_count mapValue
-        FROM t_member tm WHERE tm.del_flag = 0
+        FROM t_member tm
         INNER JOIN t_member_total tmt ON tm.member_id = tmt.member_id
+        WHERE tm.del_flag = 0
         <if test="param.shopId != null and param.shopId != ''">
             AND tm.relation_shop_id = #{param.shopId}
         </if>
@@ -603,8 +604,9 @@
         SELECT
         tm.nick_name mapKey,
         tmt.total_pay_count mapValue
-        FROM t_member tm WHERE del_flag = 0
+        FROM t_member tm
         INNER JOIN t_member_total tmt ON tm.member_id = tmt.member_id
+        WHERE tm.del_flag = 0
         <if test="param.shopIdList != null and shopIdList != ''">
             AND tm.relation_shop_id IN
             <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")">
@@ -620,12 +622,12 @@
         ORDER BY tmt.total_pay_count DESC LIMIT 15
     </select>
 
-    <select id="getTotalMemberRankCustomerSource" resultType="com.ruoyi.system.api.domain.vo.MgtMapTotalVo">
+    <select id="getPlTotalMemberRankCustomerSource" resultType="com.ruoyi.system.api.domain.vo.MgtMapTotalVo">
         SELECT
         tm.customer_source mapKey,
         COUNT(tm.user_id) mapValue
         FROM t_member tm WHERE tm.del_flag = 0
-        <if test="shopIdList != null and shopIdList != ''">
+        <if test="param.shopIdList != null and param.shopIdList != ''">
             AND tm.relation_shop_id IN
             <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")">
                 #{item}
@@ -646,7 +648,7 @@
         tm.relation_shop_name mapKey,
         COUNT(tm.user_id) mapValue
         FROM t_member tm WHERE tm.del_flag = 0
-        <if test="shopIdList != null and shopIdList != ''">
+        <if test="param.shopIdList != null and param.shopIdList != ''">
             AND tm.relation_shop_id IN
             <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")">
                 #{item}
@@ -667,7 +669,7 @@
         SELECT user_id
         FROM t_member
         WHERE del_flag = 0
-        <if test="param.userIds != null">
+        <if test="shopIdList != null">
             AND relation_shop_id IN
             <foreach collection="shopIdList" item="item" open="(" separator="," close=")">
                 #{item}
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/business/MerOrderController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/business/MerOrderController.java
index d3e8a21..ad9ce8e 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/business/MerOrderController.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/business/MerOrderController.java
@@ -53,7 +53,7 @@
                 merVerifyCodeVo.setMerVerifyOrderVo(merVerifyOrderVo);
                 break;
             case 2:
-                MerVerifyCouponVo merVerifyCouponVo = null;
+                MerVerifyCouponVo merVerifyCouponVo = orderService.verifyCoupon(verifyCode);
                 merVerifyCodeVo.setMerVerifyCouponVo(merVerifyCouponVo);
                 break;
             case 3:
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 8797b8f..7706c67 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
@@ -2,10 +2,7 @@
 
 import com.ruoyi.common.core.domain.R;
 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.domain.vo.*;
 import com.ruoyi.order.service.order.OrderService;
 import com.ruoyi.system.api.domain.dto.MgtActivityAgeDto;
 import com.ruoyi.system.api.domain.dto.MgtBasePlatformDto;
@@ -100,11 +97,11 @@
     }
 
     @RequestMapping(value = "/getPlTotalActivityAgeRank", method = RequestMethod.POST)
-    @ApiOperation(value = "获取商户活动年龄分布")
-    public R<MgtPlTotalActivityTotalVo> getPlTotalActivityAgeRank(@RequestBody MgtPlActivityAgeDto mgtPlActivityAgeDto) {
+    @ApiOperation(value = "获取平台商户活动年龄分布")
+    public R<List<MgtMapTotalPlusVo>> getPlTotalActivityAgeRank(@RequestBody MgtPlActivityAgeDto mgtPlActivityAgeDto) {
         Long userId = SecurityUtils.getUserId();
         mgtPlActivityAgeDto.setUserId(userId);
-        MgtPlTotalActivityTotalVo totalActivityTotal = orderService.getPlTotalActivityAgeRank(mgtPlActivityAgeDto);
-        return R.ok(totalActivityTotal);
+        List<MgtMapTotalPlusVo> ageRankList = orderService.getPlTotalActivityAgeRank(mgtPlActivityAgeDto);
+        return R.ok(ageRankList);
     }
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java
index f569556..a4746a7 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java
@@ -1,12 +1,31 @@
 package com.ruoyi.order.controller.miniapp;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.security.utils.SecurityUtils;
+import com.ruoyi.order.domain.dto.AppPlaceOrderDto;
+import com.ruoyi.order.domain.dto.AppSureOrderDto;
+import com.ruoyi.order.domain.dto.AppUserOrderPageDto;
+import com.ruoyi.order.domain.pojo.order.Order;
+import com.ruoyi.order.domain.vo.AppPlaceOrderVo;
+import com.ruoyi.order.domain.vo.AppSureOrderVo;
+import com.ruoyi.order.domain.vo.AppUserOrderGetVo;
+import com.ruoyi.order.domain.vo.AppUserOrderPageVo;
 import com.ruoyi.order.service.order.OrderService;
+import com.ruoyi.system.api.domain.dto.AppBaseGetDto;
+import com.ruoyi.system.api.domain.dto.AppMemberBindingDto;
+import com.ruoyi.system.api.domain.poji.member.Member;
+import com.ruoyi.system.api.service.RemoteMemberService;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import java.util.List;
 
 /**
  * @author jqs34
@@ -20,13 +39,14 @@
 @RequestMapping("/app/order")
 public class AppOrderController extends BaseController {
 
-
+    @Resource
+    private RemoteMemberService memberService;
 
     @Resource
     private OrderService orderService;
 
 
-    /*@RequestMapping(value = "/buyGoods", method = RequestMethod.POST)
+    @RequestMapping(value = "/buyGoods", method = RequestMethod.POST)
     @ApiOperation(value = "购买商品")
     public R<AppSureOrderVo> buyGoods(@RequestBody AppSureOrderDto appSureOrderDto) {
         Long userId = SecurityUtils.getUserId();
@@ -123,6 +143,6 @@
         Long userId = SecurityUtils.getUserId();
         orderService.cancelOrder(appBaseGetDto.getId());
         return R.ok();
-    }*/
+    }
 
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerVerifyCouponVo.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerVerifyCouponVo.java
index e14aa3f..aec0f67 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerVerifyCouponVo.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerVerifyCouponVo.java
@@ -1,6 +1,10 @@
 package com.ruoyi.order.domain.vo;
 
+import com.ruoyi.system.api.domain.vo.MerCouponGoodsListVo;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+
+import java.util.List;
 
 /**
  * @author jqs34
@@ -12,4 +16,15 @@
 @Data
 public class MerVerifyCouponVo {
 
+    @ApiModelProperty(value = "用户姓名")
+    private String userName;
+
+    @ApiModelProperty(value = "用户电话")
+    private String userMobile;
+
+    @ApiModelProperty(value = "优惠券来源")
+    private String couponFrom;
+
+    @ApiModelProperty(value = "优惠券来源")
+    private List<MerCouponGoodsListVo> goodsList;
 }
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 507ad91..0e56bb6 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
@@ -3,6 +3,8 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.math.BigDecimal;
+
 /**
  * @ClassName MgtTotalDataTotalVo
  * @Description TODO
@@ -13,6 +15,12 @@
 @Data
 public class MgtTotalDataTotalVo {
 
+    @ApiModelProperty(value = "商户名称")
+    private String shopName;
+
+    @ApiModelProperty(value = "营业额")
+    private BigDecimal salesTotal;
+
     @ApiModelProperty(value = "总人数")
     private Integer orderPerson;
 
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 9395786..d7977f4 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
@@ -1,9 +1,12 @@
 package com.ruoyi.order.domain.vo;
 
+import com.ruoyi.system.api.domain.vo.MgtMapBigTotalVo;
+import com.ruoyi.system.api.domain.vo.MgtMapTotalVo;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.math.BigDecimal;
+import java.util.List;
 
 /**
  * @author jqs34
@@ -63,27 +66,18 @@
     @ApiModelProperty(value = "订单数量value")
     private Integer[] orderTotalValue;
 
-    @ApiModelProperty(value = "订单数量value")
+    @ApiModelProperty(value = "订单金额value")
     private BigDecimal[] orderMoneyValue;
 
-    @ApiModelProperty(value = "商品类型数量key")
-    private String[] goodsTypeKey;
+    @ApiModelProperty(value = "商品类型数量")
+    private List<MgtMapTotalVo> goodsTypeTotalList;
 
-    @ApiModelProperty(value = "商品类型数量value")
-    private Integer[] goodsTypeTotalValue;
+    @ApiModelProperty(value = "商品类型金额")
+    private List<MgtMapBigTotalVo> goodsTypeMoneyList;
 
-    @ApiModelProperty(value = "商品类型金额value")
-    private BigDecimal[] goodsTypeMoneyValue;
+    @ApiModelProperty(value = "商品排行")
+    private List<MgtMapBigTotalVo> goodsRankList;
 
-    @ApiModelProperty(value = "商品排行key")
-    private String[] goodsRankKey;
-
-    @ApiModelProperty(value = "商品排行value")
-    private BigDecimal[] goodsRankValue;
-
-    @ApiModelProperty(value = "来源排行key")
-    private String[] orderFromRankKey;
-
-    @ApiModelProperty(value = "来源排行value")
-    private BigDecimal[] orderFromRankValue;
+    @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 5892db8..a7d9589 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
@@ -11,9 +11,11 @@
 import com.ruoyi.system.api.domain.dto.MgtPlActivityAgeDto;
 import com.ruoyi.system.api.domain.vo.MerHomeShopTotalVo;
 import com.ruoyi.system.api.domain.vo.MgtBulletinBoardVo;
+import com.ruoyi.system.api.domain.vo.MgtMapBigTotalVo;
 import com.ruoyi.system.api.domain.vo.MgtMapTotalVo;
 import org.apache.ibatis.annotations.Param;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -187,7 +189,7 @@
      * @author jqs34
      * @date 2023/6/19 22:48
      */
-    List<MgtMapTotalPlusVo> listTotalOrderTotalGoodsRank(@Param("param") MgtBaseShopDto mgtBaseShopDto);
+    List<MgtMapBigTotalVo> listTotalOrderTotalGoodsRank(@Param("param") MgtBaseShopDto mgtBaseShopDto);
 
     /**
      * @description listTotalOrderTotalOrderFrom
@@ -196,7 +198,7 @@
      * @author jqs34
      * @date 2023/6/19 22:48
      */
-    List<MgtMapTotalPlusVo> listTotalOrderTotalOrderFrom(@Param("param") MgtBaseShopDto mgtBaseShopDto);
+    List<MgtMapBigTotalVo> listTotalOrderTotalOrderFrom(@Param("param") MgtBaseShopDto mgtBaseShopDto);
 
 
     /**
@@ -327,7 +329,7 @@
      * @author jqs34
      * @date 2023/6/19 22:48
      */
-    List<MgtMapTotalPlusVo> listPlTotalOrderTotalGoodsRank(@Param("param") MgtBasePlatformDto mgtBasePlatformDto);
+    List<MgtMapBigTotalVo> listPlTotalOrderTotalGoodsRank(@Param("param") MgtBasePlatformDto mgtBasePlatformDto);
 
     /**
      * @description listTotalOrderTotalOrderFrom
@@ -336,7 +338,7 @@
      * @author jqs34
      * @date 2023/6/19 22:48
      */
-    List<MgtMapTotalPlusVo> listPlTotalOrderTotalOrderFrom(@Param("param") MgtBasePlatformDto mgtBasePlatformDto);
+    List<MgtMapBigTotalVo> listPlTotalOrderTotalOrderFrom(@Param("param") MgtBasePlatformDto mgtBasePlatformDto);
 
     /**
      * @description getTotalActivityTotal
@@ -383,7 +385,7 @@
      * @param mgtActivityAgeDto
      * @return  MgtTotalActivityTotalVo
      */
-    MgtPlTotalActivityTotalVo getPlTotalActivityAgeRank(@Param("param")MgtPlActivityAgeDto mgtActivityAgeDto);
+    List<MgtMapTotalPlusVo> getPlTotalActivityAgeRank(@Param("param")MgtPlActivityAgeDto mgtActivityAgeDto);
 
     /**
      * @description listPlTotalShopActivityRank
@@ -420,4 +422,13 @@
      * @return  MerHomeShopTotalVo
      */
     MerHomeShopTotalVo getMerHomeShopTotalVo(Long shopId);
+
+    /**
+     * @description  统计商户营业额
+     * @author  jqs
+     * @date    2023/6/27 19:13
+     * @param mgtBaseShopDto
+     * @return  BigDecimal
+     */
+    BigDecimal shopSalesTotal(@Param("param")MgtBaseShopDto mgtBaseShopDto);
 }
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 1076ec6..fed90e8 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
@@ -80,6 +80,8 @@
     @Resource
     private UserServiceRecordService userServiceRecordService;
 
+    @Resource
+    private RemoteCouponService remoteCouponService;
 
 
     /**
@@ -104,7 +106,7 @@
         BigDecimal goodsPrice;
         BigDecimal goodsTotalPrice;
         BigDecimal goodsRealPrice;
-        List<AppMemberCouponVo> appMemberCouponVoList = remoteMemberService.listVoMemberCouponByUserId(userId).getData();
+        List<AppMemberCouponVo> appMemberCouponVoList = remoteCouponService.listVoMemberCouponByUserId(userId).getData();
         List<AppMemberCouponVo> appGoodsMemberCouponVoList;
         Map<String, AppMemberCouponVo> appMemberCouponVoMap = appMemberCouponVoList.stream().collect(Collectors.toMap(AppMemberCouponVo::getMemberCouponId, Function.identity()));
         AppMemberCouponVo appMemberCouponVo;
@@ -229,7 +231,7 @@
         BigDecimal goodsPrice;
         BigDecimal goodsTotalPrice;
         BigDecimal goodsRealPrice;
-        List<AppMemberCouponVo> appMemberCouponVoList = remoteMemberService.listVoMemberCouponByUserId(userId).getData();
+        List<AppMemberCouponVo> appMemberCouponVoList = remoteCouponService.listVoMemberCouponByUserId(userId).getData();
         Map<String, AppMemberCouponVo> appMemberCouponVoMap = appMemberCouponVoList.stream().collect(Collectors.toMap(AppMemberCouponVo::getMemberCouponId, Function.identity()));
         AppMemberCouponVo appMemberCouponVo;
         Integer couponType;
@@ -714,7 +716,7 @@
         BigDecimal goodsRealPrice;
         Long shopId = merNewOrderDto.getShopId();
         Shop shop = remoteShopService.getShop(shopId).getData();
-        List<AppMemberCouponVo> appMemberCouponVoList = remoteMemberService.listVoMemberCouponByUserId(userId).getData();
+        List<AppMemberCouponVo> appMemberCouponVoList = remoteCouponService.listVoMemberCouponByUserId(userId).getData();
         Map<String, AppMemberCouponVo> appMemberCouponVoMap = new HashMap<>();
         if (null != appMemberCouponVoList) {
             appMemberCouponVoMap = appMemberCouponVoList.stream().collect(Collectors.toMap(AppMemberCouponVo::getMemberCouponId, Function.identity()));
@@ -1315,63 +1317,86 @@
         }
         //获取商品分类销售数据
         List<MgtMapTotalPlusVo> mgtMapTotalVoGoodsType = orderMapper.listTotalOrderTotalGoodsType(mgtBaseShopDto);
+        List<MgtMapTotalVo> goodsTypeTotalList = new ArrayList<>();
+        List<MgtMapBigTotalVo> goodsTypeMoneyList = new ArrayList<>();
         if (mgtMapTotalVoGoodsType != null && mgtMapTotalVoGoodsType.size() > 0) {
-            String[] goodsTypeKey = new String[mgtMapTotalVoGoodsType.size()];
-            Integer[] goodsTypeTotalValue = new Integer[mgtMapTotalVoGoodsType.size()];
-            BigDecimal[] goodsTypeMoneyValue = new BigDecimal[mgtMapTotalVoGoodsType.size()];
+            MgtMapTotalVo mgtMapTotalVo;
+            MgtMapBigTotalVo mgtMapBigTotalVo;
             // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
             for (int i = 0; i < mgtMapTotalVoGoodsType.size(); i++) {
-                goodsTypeTotalValue[i] = mgtMapTotalVoGoodsType.get(i).getMapValueFirst();
-                goodsTypeMoneyValue[i] = mgtMapTotalVoGoodsType.get(i).getMapValueSecond();
+                mgtMapTotalVo = new MgtMapTotalVo();
+                mgtMapBigTotalVo = new MgtMapBigTotalVo();
+                mgtMapTotalVo.setMapValue(mgtMapTotalVoGoodsType.get(i).getMapValueFirst());
+                mgtMapBigTotalVo.setMapValue(mgtMapTotalVoGoodsType.get(i).getMapValueSecond());
                 if(mgtMapTotalVoGoodsType.get(i).getMapKey().equals("1")){
-                    goodsTypeKey[i] = "周期";
-                    mgtTotalOrderTotalVo.setCycleTotal(mgtMapTotalVoGoodsType.get(i).getMapValueFirst());
-                    mgtTotalOrderTotalVo.setCycleMoney(mgtMapTotalVoGoodsType.get(i).getMapValueSecond());
+                    mgtMapTotalVo.setMapKey("周期");
+                    mgtMapBigTotalVo.setMapKey("周期");
+                    mgtTotalOrderTotalVo.setCycleTotal(mgtTotalOrderTotalVo.getCycleTotal()+mgtMapTotalVoGoodsType.get(i).getMapValueFirst());
+                    mgtTotalOrderTotalVo.setCycleMoney(mgtTotalOrderTotalVo.getCycleMoney().add(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()));
                 }else if(mgtMapTotalVoGoodsType.get(i).getMapKey().equals("2")){
-                    goodsTypeKey[i] = "服务";
-                    mgtTotalOrderTotalVo.setServiceTotal(mgtMapTotalVoGoodsType.get(i).getMapValueFirst());
-                    mgtTotalOrderTotalVo.setServiceMoney(mgtMapTotalVoGoodsType.get(i).getMapValueSecond());
+                    mgtMapTotalVo.setMapKey("服务");
+                    mgtMapBigTotalVo.setMapKey("服务");
+                    mgtTotalOrderTotalVo.setServiceTotal(mgtTotalOrderTotalVo.getServiceTotal()+mgtMapTotalVoGoodsType.get(i).getMapValueFirst());
+                    mgtTotalOrderTotalVo.setServiceMoney(mgtTotalOrderTotalVo.getServiceMoney().add(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()));
                 }else if(mgtMapTotalVoGoodsType.get(i).getMapKey().equals("3")){
-                    goodsTypeKey[i] = "体验";
-                    mgtTotalOrderTotalVo.setExperienceTotal(mgtMapTotalVoGoodsType.get(i).getMapValueFirst());
-                    mgtTotalOrderTotalVo.setExperienceMoney(mgtMapTotalVoGoodsType.get(i).getMapValueSecond());
+                    mgtMapTotalVo.setMapKey("体验");
+                    mgtMapBigTotalVo.setMapKey("体验");
+                    mgtTotalOrderTotalVo.setExperienceTotal(mgtTotalOrderTotalVo.getExperienceTotal()+mgtMapTotalVoGoodsType.get(i).getMapValueFirst());
+                    mgtTotalOrderTotalVo.setExperienceMoney(mgtTotalOrderTotalVo.getExperienceMoney().add(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()));
                 }else if(mgtMapTotalVoGoodsType.get(i).getMapKey().equals("4")){
-                    goodsTypeKey[i] = "单品";
+                    mgtMapTotalVo.setMapKey("单品");
+                    mgtMapBigTotalVo.setMapKey("单品");
                 }
             }
-            mgtTotalOrderTotalVo.setGoodsTypeKey(goodsTypeKey);
-            mgtTotalOrderTotalVo.setGoodsTypeTotalValue(goodsTypeTotalValue);
-            mgtTotalOrderTotalVo.setGoodsTypeMoneyValue(goodsTypeMoneyValue);
+            mgtTotalOrderTotalVo.setGoodsTypeTotalList(goodsTypeTotalList);
+            mgtTotalOrderTotalVo.setGoodsTypeMoneyList(goodsTypeMoneyList);
         }
         //获取商品销售排名
-        List<MgtMapTotalPlusVo> goodsRankList = orderMapper.listTotalOrderTotalGoodsRank(mgtBaseShopDto);
+        List<MgtMapBigTotalVo> goodsRankList = orderMapper.listTotalOrderTotalGoodsRank(mgtBaseShopDto);
         if (goodsRankList != null && goodsRankList.size() > 0) {
-            String[] goodsRankKey = new String[goodsRankList.size()];
-            BigDecimal[] goodsRankValue = new BigDecimal[goodsRankList.size()];
-            // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
-            for (int i = 0; i < goodsRankList.size(); i++) {
-                goodsRankKey[i] = goodsRankList.get(i).getMapKey();
-                goodsRankValue[i] = goodsRankList.get(i).getMapValueSecond();
-            }
-            mgtTotalOrderTotalVo.setGoodsRankKey(goodsRankKey);
-            mgtTotalOrderTotalVo.setGoodsRankValue(goodsRankValue);
+            goodsRankList = bigListRemoveNull(goodsRankList);
+            mgtTotalOrderTotalVo.setGoodsRankList(goodsRankList);
         }
         //获取来源销售排名
-        List<MgtMapTotalPlusVo> orderFromList = orderMapper.listTotalOrderTotalOrderFrom(mgtBaseShopDto);
+        List<MgtMapBigTotalVo> orderFromList = orderMapper.listTotalOrderTotalOrderFrom(mgtBaseShopDto);
         if (orderFromList != null && orderFromList.size() > 0) {
-            String[] orderFromKey = new String[orderFromList.size()];
-            BigDecimal[] orderFromValue = new BigDecimal[orderFromList.size()];
-            // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
-            for (int i = 0; i < orderFromList.size(); i++) {
-                orderFromKey[i] = orderFromList.get(i).getMapKey();
-                orderFromValue[i] = orderFromList.get(i).getMapValueSecond();
-            }
-            mgtTotalOrderTotalVo.setOrderFromRankKey(orderFromKey);
-            mgtTotalOrderTotalVo.setOrderFromRankValue(orderFromValue);
+            orderFromList = bigListRemoveNull(orderFromList);
+            mgtTotalOrderTotalVo.setOrderFromRankList(orderFromList);
         }
         return mgtTotalOrderTotalVo;
     }
 
+    /**
+     * @description  去除空字符串
+     * @author  jqs
+     * @date    2023/6/27 17:35
+     * @param mgtMapTotalVos
+     * @return  List<MgtMapTotalVo>
+     */
+    private List<MgtMapTotalVo> listRemoveNull(List<MgtMapTotalVo> mgtMapTotalVos){
+        for (int i = 0; i < mgtMapTotalVos.size(); i++) {
+            if(StringUtils.isBlank(mgtMapTotalVos.get(i).getMapKey())){
+                mgtMapTotalVos.remove(i);
+            }
+        }
+        return mgtMapTotalVos;
+    }
+
+    /**
+     * @description  去除空字符串
+     * @author  jqs
+     * @date    2023/6/27 17:35
+     * @param mgtMapTotalVos
+     * @return  List<MgtMapTotalVo>
+     */
+    private List<MgtMapBigTotalVo> bigListRemoveNull(List<MgtMapBigTotalVo> mgtMapTotalVos){
+        for (int i = 0; i < mgtMapTotalVos.size(); i++) {
+            if(StringUtils.isBlank(mgtMapTotalVos.get(i).getMapKey())){
+                mgtMapTotalVos.remove(i);
+            }
+        }
+        return mgtMapTotalVos;
+    }
 
     /**
      * @description
@@ -1463,6 +1488,8 @@
     public MgtTotalDataTotalVo getTotalDataTotal(MgtBaseShopDto mgtBaseShopDto){
         //获取人数统计
         MgtTotalDataTotalVo mgtTotalDataTotalVo = orderMapper.getTotalDataTotal(mgtBaseShopDto);
+        BigDecimal salesTotal = orderMapper.shopSalesTotal(mgtBaseShopDto);
+        mgtTotalDataTotalVo.setSalesTotal(salesTotal);
         Integer reorderPerson = orderMapper.getReorderPerson(mgtBaseShopDto);
         mgtTotalDataTotalVo.setReorderPerson(reorderPerson);
         Integer returnedPerson = orderMapper.getReturnedPerson(mgtBaseShopDto);
@@ -1517,6 +1544,8 @@
                 mgtBaseShopDto.setEndDate(mgtBasePlatformDto.getEndDate());
                 mgtBaseShopDto.setShopId(shopId);
                 mgtTotalDataTotalVo = this.getTotalDataTotal(mgtBaseShopDto);
+                Shop shop = remoteShopService.getShop(shopId).getData();
+                mgtTotalDataTotalVo.setShopName(shop.getShopName());
                 mgtTotalDataTotalVoList.add(mgtTotalDataTotalVo);
             }
         }
@@ -1567,59 +1596,57 @@
         }
         //获取商品分类销售数据
         List<MgtMapTotalPlusVo> mgtMapTotalVoGoodsType = orderMapper.listPlTotalOrderTotalGoodsType(mgtBasePlatformDto);
+        List<MgtMapTotalVo> goodsTypeTotalList = new ArrayList<>();
+        List<MgtMapBigTotalVo> goodsTypeMoneyList = new ArrayList<>();
+        mgtTotalOrderTotalVo.setCycleTotal(0);
+        mgtTotalOrderTotalVo.setCycleMoney(BigDecimal.ZERO);
+        mgtTotalOrderTotalVo.setServiceTotal(0);
+        mgtTotalOrderTotalVo.setServiceMoney(BigDecimal.ZERO);
+        mgtTotalOrderTotalVo.setExperienceTotal(0);
+        mgtTotalOrderTotalVo.setExperienceMoney(BigDecimal.ZERO);
         if (mgtMapTotalVoGoodsType != null && mgtMapTotalVoGoodsType.size() > 0) {
-            String[] goodsTypeKey = new String[mgtMapTotalVoGoodsType.size()];
-            Integer[] goodsTypeTotalValue = new Integer[mgtMapTotalVoGoodsType.size()];
-            BigDecimal[] goodsTypeMoneyValue = new BigDecimal[mgtMapTotalVoGoodsType.size()];
+            MgtMapTotalVo mgtMapTotalVo;
+            MgtMapBigTotalVo mgtMapBigTotalVo;
             // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
             for (int i = 0; i < mgtMapTotalVoGoodsType.size(); i++) {
-                goodsTypeTotalValue[i] = mgtMapTotalVoGoodsType.get(i).getMapValueFirst();
-                goodsTypeMoneyValue[i] = mgtMapTotalVoGoodsType.get(i).getMapValueSecond();
+                mgtMapTotalVo = new MgtMapTotalVo();
+                mgtMapBigTotalVo = new MgtMapBigTotalVo();
+                mgtMapTotalVo.setMapValue(mgtMapTotalVoGoodsType.get(i).getMapValueFirst());
+                mgtMapBigTotalVo.setMapValue(mgtMapTotalVoGoodsType.get(i).getMapValueSecond());
                 if(mgtMapTotalVoGoodsType.get(i).getMapKey().equals("1")){
-                    goodsTypeKey[i] = "周期";
-                    mgtTotalOrderTotalVo.setCycleTotal(mgtMapTotalVoGoodsType.get(i).getMapValueFirst());
-                    mgtTotalOrderTotalVo.setCycleMoney(mgtMapTotalVoGoodsType.get(i).getMapValueSecond());
+                    mgtMapTotalVo.setMapKey("周期");
+                    mgtMapBigTotalVo.setMapKey("周期");
+                    mgtTotalOrderTotalVo.setCycleTotal(mgtTotalOrderTotalVo.getCycleTotal()+mgtMapTotalVoGoodsType.get(i).getMapValueFirst());
+                    mgtTotalOrderTotalVo.setCycleMoney(mgtTotalOrderTotalVo.getCycleMoney().add(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()));
                 }else if(mgtMapTotalVoGoodsType.get(i).getMapKey().equals("2")){
-                    goodsTypeKey[i] = "服务";
-                    mgtTotalOrderTotalVo.setServiceTotal(mgtMapTotalVoGoodsType.get(i).getMapValueFirst());
-                    mgtTotalOrderTotalVo.setServiceMoney(mgtMapTotalVoGoodsType.get(i).getMapValueSecond());
+                    mgtMapTotalVo.setMapKey("服务");
+                    mgtMapBigTotalVo.setMapKey("服务");
+                    mgtTotalOrderTotalVo.setServiceTotal(mgtTotalOrderTotalVo.getServiceTotal()+mgtMapTotalVoGoodsType.get(i).getMapValueFirst());
+                    mgtTotalOrderTotalVo.setServiceMoney(mgtTotalOrderTotalVo.getServiceMoney().add(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()));
                 }else if(mgtMapTotalVoGoodsType.get(i).getMapKey().equals("3")){
-                    goodsTypeKey[i] = "体验";
-                    mgtTotalOrderTotalVo.setExperienceTotal(mgtMapTotalVoGoodsType.get(i).getMapValueFirst());
-                    mgtTotalOrderTotalVo.setExperienceMoney(mgtMapTotalVoGoodsType.get(i).getMapValueSecond());
+                    mgtMapTotalVo.setMapKey("体验");
+                    mgtMapBigTotalVo.setMapKey("体验");
+                    mgtTotalOrderTotalVo.setExperienceTotal(mgtTotalOrderTotalVo.getExperienceTotal()+mgtMapTotalVoGoodsType.get(i).getMapValueFirst());
+                    mgtTotalOrderTotalVo.setExperienceMoney(mgtTotalOrderTotalVo.getExperienceMoney().add(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()));
                 }else if(mgtMapTotalVoGoodsType.get(i).getMapKey().equals("4")){
-                    goodsTypeKey[i] = "单品";
+                    mgtMapTotalVo.setMapKey("单品");
+                    mgtMapBigTotalVo.setMapKey("单品");
                 }
             }
-            mgtTotalOrderTotalVo.setGoodsTypeKey(goodsTypeKey);
-            mgtTotalOrderTotalVo.setGoodsTypeTotalValue(goodsTypeTotalValue);
-            mgtTotalOrderTotalVo.setGoodsTypeMoneyValue(goodsTypeMoneyValue);
+            mgtTotalOrderTotalVo.setGoodsTypeTotalList(goodsTypeTotalList);
+            mgtTotalOrderTotalVo.setGoodsTypeMoneyList(goodsTypeMoneyList);
         }
         //获取商品销售排名
-        List<MgtMapTotalPlusVo> goodsRankList = orderMapper.listPlTotalOrderTotalGoodsRank(mgtBasePlatformDto);
+        List<MgtMapBigTotalVo> goodsRankList = orderMapper.listPlTotalOrderTotalGoodsRank(mgtBasePlatformDto);
         if (goodsRankList != null && goodsRankList.size() > 0) {
-            String[] goodsRankKey = new String[goodsRankList.size()];
-            BigDecimal[] goodsRankValue = new BigDecimal[goodsRankList.size()];
-            // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
-            for (int i = 0; i < goodsRankList.size(); i++) {
-                goodsRankKey[i] = goodsRankList.get(i).getMapKey();
-                goodsRankValue[i] = goodsRankList.get(i).getMapValueSecond();
-            }
-            mgtTotalOrderTotalVo.setGoodsRankKey(goodsRankKey);
-            mgtTotalOrderTotalVo.setGoodsRankValue(goodsRankValue);
+            goodsRankList = bigListRemoveNull(goodsRankList);
+            mgtTotalOrderTotalVo.setGoodsRankList(goodsRankList);
         }
         //获取来源销售排名
-        List<MgtMapTotalPlusVo> orderFromList = orderMapper.listPlTotalOrderTotalOrderFrom(mgtBasePlatformDto);
+        List<MgtMapBigTotalVo> orderFromList = orderMapper.listPlTotalOrderTotalOrderFrom(mgtBasePlatformDto);
         if (orderFromList != null && orderFromList.size() > 0) {
-            String[] orderFromKey = new String[orderFromList.size()];
-            BigDecimal[] orderFromValue = new BigDecimal[orderFromList.size()];
-            // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
-            for (int i = 0; i < orderFromList.size(); i++) {
-                orderFromKey[i] = orderFromList.get(i).getMapKey();
-                orderFromValue[i] = orderFromList.get(i).getMapValueSecond();
-            }
-            mgtTotalOrderTotalVo.setOrderFromRankKey(orderFromKey);
-            mgtTotalOrderTotalVo.setOrderFromRankValue(orderFromValue);
+            orderFromList = bigListRemoveNull(orderFromList);
+            mgtTotalOrderTotalVo.setOrderFromRankList(orderFromList);
         }
         return mgtTotalOrderTotalVo;
     }
@@ -1761,14 +1788,29 @@
      * @return  MgtTotalActivityTotalVo
      */
     @Override
-    public MgtPlTotalActivityTotalVo getPlTotalActivityAgeRank(MgtPlActivityAgeDto mgtPlActivityAgeDto){
+    public List<MgtMapTotalPlusVo> getPlTotalActivityAgeRank(MgtPlActivityAgeDto mgtPlActivityAgeDto){
         List<Long> userIds = orderMapper.getPlUserIdAgeRank(mgtPlActivityAgeDto);
         MgtActivityAgeDto mgtActivityAgeDto = new MgtActivityAgeDto();
         mgtActivityAgeDto.setUserIds(userIds);
         mgtActivityAgeDto.setAgeType(mgtPlActivityAgeDto.getAgeType());
         userIds = remoteMemberService.listUserIdByAge(mgtActivityAgeDto).getData();
         mgtPlActivityAgeDto.setUserIds(userIds);
-        MgtPlTotalActivityTotalVo totalActivityTotalVo = orderMapper.getPlTotalActivityAgeRank(mgtPlActivityAgeDto);
-        return totalActivityTotalVo;
+        List<MgtMapTotalPlusVo> ageRankList = orderMapper.getPlTotalActivityAgeRank(mgtPlActivityAgeDto);
+        return ageRankList;
+    }
+
+    /**
+     * @description  获取优惠券核销信息
+     * @author  jqs
+     * @date    2023/6/27 11:10
+     * @param verifyCode
+     * @return  MerVerifyCouponVo
+     */
+    @Override
+    public MerVerifyCouponVo verifyCoupon(String verifyCode){
+        MerVerifyCouponVo merVerifyCouponVo = new MerVerifyCouponVo();
+        MerVerifyCouponGetVo verifyCouponGetVo = remoteCouponService.getVerifyCoupon(verifyCode).getData();
+
+        return merVerifyCouponVo;
     }
 }
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 d7987fe..18a368d 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
@@ -267,5 +267,14 @@
      * @param mgtPLActivityAgeDto
      * @return  MgtTotalActivityTotalVo
      */
-    MgtPlTotalActivityTotalVo getPlTotalActivityAgeRank(MgtPlActivityAgeDto mgtPLActivityAgeDto);
+    List<MgtMapTotalPlusVo> getPlTotalActivityAgeRank(MgtPlActivityAgeDto mgtPLActivityAgeDto);
+
+    /**
+     * @description  获取优惠券核销信息
+     * @author  jqs
+     * @date    2023/6/27 11:10
+     * @param verifyCode
+     * @return  MerVerifyCouponVo
+     */
+    MerVerifyCouponVo verifyCoupon(String verifyCode);
 }
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 2f2577a..587fdc9 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
@@ -675,9 +675,9 @@
             AND shop_id = #{param.shopId}
         </if>
         GROUP BY
-            order_date
+        DATE_FORMAT(create_time, '%Y-%m-%d')
         ORDER BY
-            order_date ASC
+        DATE_FORMAT(create_time, '%Y-%m-%d') ASC
     </select>
 
     <select id="listTotalOrderTotalGoodsType" resultType="com.ruoyi.order.domain.vo.MgtMapTotalPlusVo">
@@ -695,10 +695,10 @@
         GROUP BY tog.goods_type
     </select>
 
-    <select id="listTotalOrderTotalGoodsRank" resultType="com.ruoyi.order.domain.vo.MgtMapTotalPlusVo">
+    <select id="listTotalOrderTotalGoodsRank" resultType="com.ruoyi.system.api.domain.vo.MgtMapBigTotalVo">
         SELECT
         tog.goods_name mapKey,
-        IFNULL(SUM(tog.goods_total_money),0) mapValueSecond
+        IFNULL(SUM(tog.goods_total_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
@@ -715,14 +715,14 @@
         ORDER BY SUM(tog.goods_total_money) DESC LIMIT 10
     </select>
 
-    <select id="listTotalOrderTotalOrderFrom" resultType="com.ruoyi.order.domain.vo.MgtMapTotalPlusVo">
+    <select id="listTotalOrderTotalOrderFrom" resultType="com.ruoyi.system.api.domain.vo.MgtMapBigTotalVo">
         SELECT
         CASE toc.order_from
         WHEN 1 THEN "商城订单"
         WHEN 2 THEN "秒杀活动订单"
         WHEN 3 THEN "线下创建订单"
         END mapKey,
-        IFNULL(SUM(toc.order_money),0) mapValueSecond
+        IFNULL(SUM(toc.order_money),0) mapValue
         FROM t_order toc
         WHERE toc.del_flag = 0
         <if test="param.shopId != null and param.shopId != ''">
@@ -785,9 +785,9 @@
             AND shop_id = #{param.shopId}
         </if>
         GROUP BY
-        order_date
+        DATE_FORMAT(create_time, '%Y-%m-%d')
         ORDER BY
-        order_date ASC
+        DATE_FORMAT(create_time, '%Y-%m-%d') ASC
     </select>
 
     <select id="getUserIdAgeRank" resultType="java.lang.Long">
@@ -806,7 +806,7 @@
     <select id="getTotalActivityAgeRank" resultType="com.ruoyi.order.domain.vo.MgtMapTotalPlusVo">
         SELECT
         DATE_FORMAT(create_time, '%Y-%m-%d') AS mapKey,
-        COUNT(DISTINCT toc.user_id) AS mapValueFirst
+        COUNT(DISTINCT user_id) AS mapValueFirst
         FROM
         t_order
         WHERE
@@ -822,9 +822,9 @@
             </foreach>
         </if>
         GROUP BY
-        order_date
+        DATE_FORMAT(create_time, '%Y-%m-%d')
         ORDER BY
-        order_date ASC
+        DATE_FORMAT(create_time, '%Y-%m-%d') ASC
     </select>
 
     <select id="getTotalDataTotal" resultType="com.ruoyi.order.domain.vo.MgtTotalDataTotalVo">
@@ -857,6 +857,21 @@
                 </if>
                  GROUP BY o.user_id
              ) AS user_goods_type_counts
+    </select>
+
+    <select id="shopSalesTotal" resultType="java.math.BigDecimal">
+        SELECT IFNULL(SUM(pay_money),0)
+        FROM t_order
+        WHERE o.del_flag = 0
+        <if test="param.shopId != null and param.shopId != ''">
+            AND shop_id = #{param.shopId}
+        </if>
+        <if test="param.startDate!=null and param.startDate!=''">
+            AND create_time &gt;= #{param.startDate}
+        </if>
+        <if test="param.endDate!=null and param.endDate!=''">
+            AND create_time &lt;= #{param.endDate}
+        </if>
     </select>
 
     <select id="getReorderPerson" resultType="java.lang.Integer">
@@ -900,7 +915,7 @@
         FROM t_order toc
         INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id
         WHERE toc.del_flag = 0
-        <if test="shopIdList != null and shopIdList != ''">
+        <if test="param.shopIdList != null and param.shopIdList != ''">
             AND toc.shop_id IN
             <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")">
                 #{item}
@@ -929,7 +944,7 @@
         SUM(CASE WHEN order_from = 2 THEN order_money ELSE 0 END) activityMoney
         FROM t_order WHERE del_flag = 0
         <if test="param.shopIdList != null and param.shopIdList != ''">
-            AND toc.shop_id IN
+            AND shop_id IN
             <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")">
                 #{item}
             </foreach>
@@ -978,15 +993,15 @@
         del_flag = 0
         AND create_time >= DATE_SUB(CURDATE(), INTERVAL 6 DAY)
         <if test="param.shopIdList != null and param.shopIdList != ''">
-            AND toc.shop_id IN
+            AND shop_id IN
             <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")">
                 #{item}
             </foreach>
         </if>
         GROUP BY
-        order_date
+        DATE_FORMAT(create_time, '%Y-%m-%d')
         ORDER BY
-        order_date ASC
+        DATE_FORMAT(create_time, '%Y-%m-%d') ASC
     </select>
 
     <select id="listPlTotalOrderTotalGoodsType" resultType="com.ruoyi.order.domain.vo.MgtMapTotalPlusVo">
@@ -1007,10 +1022,10 @@
         GROUP BY tog.goods_type
     </select>
 
-    <select id="listPlTotalOrderTotalGoodsRank" resultType="com.ruoyi.order.domain.vo.MgtMapTotalPlusVo">
+    <select id="listPlTotalOrderTotalGoodsRank" resultType="com.ruoyi.system.api.domain.vo.MgtMapBigTotalVo">
         SELECT
         tog.goods_name mapKey,
-        IFNULL(SUM(tog.goods_total_money),0) mapValueSecond
+        IFNULL(SUM(tog.goods_total_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
@@ -1030,14 +1045,14 @@
         ORDER BY SUM(tog.goods_total_money) DESC LIMIT 10
     </select>
 
-    <select id="listPlTotalOrderTotalOrderFrom" resultType="com.ruoyi.order.domain.vo.MgtMapTotalPlusVo">
+    <select id="listPlTotalOrderTotalOrderFrom" resultType="com.ruoyi.system.api.domain.vo.MgtMapBigTotalVo">
         SELECT
         CASE toc.order_from
         WHEN 1 THEN "商城订单"
         WHEN 2 THEN "秒杀活动订单"
         WHEN 3 THEN "线下创建订单"
         END mapKey,
-        IFNULL(SUM(toc.order_money),0) mapValueSecond
+        IFNULL(SUM(toc.order_money),0) mapValue
         FROM t_order toc
         WHERE toc.del_flag = 0
         <if test="param.shopIdList != null and param.shopIdList != ''">
@@ -1097,7 +1112,7 @@
     <select id="listPlTotalActivityTotal" resultType="com.ruoyi.order.domain.vo.MgtMapTotalPlusVo">
         SELECT
         DATE_FORMAT(create_time, '%Y-%m-%d') AS mapKey,
-        COUNT(DISTINCT toc.order_id) AS mapValueFirst,
+        COUNT(DISTINCT order_id) AS mapValueFirst,
         IFNULL(SUM(toc.order_money),0) AS mapValueSecond,
         FROM t_order
         WHERE del_flag = 0 AND order_from = 2
@@ -1109,9 +1124,9 @@
             </foreach>
         </if>
         GROUP BY
-        order_date
+        DATE_FORMAT(create_time, '%Y-%m-%d')
         ORDER BY
-        order_date ASC
+        DATE_FORMAT(create_time, '%Y-%m-%d') ASC
     </select>
 
     <select id="getPlUserIdAgeRank" resultType="java.lang.Long">
@@ -1131,7 +1146,7 @@
     <select id="getPlTotalActivityAgeRank" resultType="com.ruoyi.order.domain.vo.MgtMapTotalPlusVo">
         SELECT
         DATE_FORMAT(create_time, '%Y-%m-%d') AS mapKey,
-        COUNT(DISTINCT toc.user_id) AS mapValueFirst
+        COUNT(DISTINCT user_id) AS mapValueFirst
         FROM t_order
         WHERE del_flag = 0 AND order_from = 2
         AND create_time >= DATE_SUB(CURDATE(), INTERVAL 6 DAY)
@@ -1147,8 +1162,10 @@
                 #{item}
             </foreach>
         </if>
-        GROUP BY rder_date
-        ORDER BY order_date ASC
+        GROUP BY
+        DATE_FORMAT(create_time, '%Y-%m-%d')
+        ORDER BY
+        DATE_FORMAT(create_time, '%Y-%m-%d') ASC
     </select>
 
     <select id="listPlTotalShopActivityRank" resultType="com.ruoyi.order.domain.vo.MgtMapTotalPlusVo">
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/ShopTotal.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/ShopTotal.java
index 92dbfbd..e07a528 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/ShopTotal.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/ShopTotal.java
@@ -165,7 +165,7 @@
     /**
      * 总订单金额
      */
-    @TableField("total_order_ money")
+    @TableField("total_order_money")
     private BigDecimal totalOrderMoney;
     /**
      * 周期订单金额
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtPlTotalShopTotalVo.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtPlTotalShopTotalVo.java
index ef852a6..3b89317 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtPlTotalShopTotalVo.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtPlTotalShopTotalVo.java
@@ -1,7 +1,10 @@
 package com.ruoyi.shop.domain.vo;
 
+import com.ruoyi.system.api.domain.vo.MgtMapTotalVo;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+
+import java.util.List;
 
 /**
  * @ClassName MgtTotalShopTotalVo
@@ -40,23 +43,14 @@
     @ApiModelProperty(value = "会员年龄value")
     private Integer[] ageValue;
 
-    @ApiModelProperty(value = "合作商类型key")
-    private String[] shopTypeKey;
+    @ApiModelProperty(value = "合作商类型")
+    private List<MgtMapTotalVo> shopTypeVos;
 
-    @ApiModelProperty(value = "合作商类型value")
-    private Integer[] shopTypeValue;
+    @ApiModelProperty(value = "区域商户排行")
+    private List<MgtMapTotalVo> areaRankVos;
 
-    @ApiModelProperty(value = "区域商户排行key")
-    private String[] areaRankKey;
-
-    @ApiModelProperty(value = "区域商户排行value")
-    private Integer[] areaRankValue;
-
-    @ApiModelProperty(value = "合作商状态key")
-    private String[] shopStatusKey;
-
-    @ApiModelProperty(value = "合作商状态value")
-    private Integer[] shopStatusValue;
+    @ApiModelProperty(value = "合作商状态")
+    private List<MgtMapTotalVo> shopStatusVos;
 
     @ApiModelProperty(value = "合作商营业额key")
     private String[] shopSalesRankKey;
@@ -64,9 +58,6 @@
     @ApiModelProperty(value = "合作商营业额value")
     private Integer[] shopSalesRankValue;
 
-    @ApiModelProperty(value = "合作商推荐key")
-    private String[] shopRecommendKey;
-
-    @ApiModelProperty(value = "合作商推荐value")
-    private Integer[] shopRecommendValue;
+    @ApiModelProperty(value = "合作商推荐")
+    private List<MgtMapTotalVo> shopRecommendVos;
 }
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java
index ba17f02..9e45473 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java
@@ -137,7 +137,7 @@
      * @param mgtBasePlatformDto
      * @return  List<Long>
      */
-    List<Long> listShopIdByTotal(MgtBasePlatformDto mgtBasePlatformDto);
+    List<Long> listShopIdByTotal(@Param("param")MgtBasePlatformDto mgtBasePlatformDto);
 
     /**
      * @description  获取统计关联shopId
@@ -146,7 +146,7 @@
      * @param mgtBasePlatformDto
      * @return  List<Long>
      */
-    List<Long> listShopIdByPlTotal(MgtBasePlatformDto mgtBasePlatformDto);
+    List<Long> listShopIdByPlTotal(@Param("param")MgtBasePlatformDto mgtBasePlatformDto);
 
     /**
      * @description  商户类型统计
@@ -155,7 +155,7 @@
      * @param
      * @return  List<MgtMapTotalVo>
      */
-    List<MgtMapTotalVo> listShopTypeTotal(MgtBasePlatformDto mgtBasePlatformDto);
+    List<MgtMapTotalVo> listShopTypeTotal(@Param("param")MgtBasePlatformDto mgtBasePlatformDto);
 
     /**
      * @description  商户类型统计
@@ -164,7 +164,7 @@
      * @param
      * @return  List<MgtMapTotalVo>
      */
-    List<MgtMapTotalVo> listShopStatusTotal(MgtBasePlatformDto mgtBasePlatformDto);
+    List<MgtMapTotalVo> listShopStatusTotal(@Param("param")MgtBasePlatformDto mgtBasePlatformDto);
 
     /**
      * @description  商户类型统计
@@ -173,7 +173,7 @@
      * @param
      * @return  List<MgtMapTotalVo>
      */
-    List<MgtMapTotalVo> listShopAreaRank(MgtBasePlatformDto mgtBasePlatformDto);
+    List<MgtMapTotalVo> listShopAreaRank(@Param("param")MgtBasePlatformDto mgtBasePlatformDto);
 
     /**
      * @description  商户类型统计
@@ -182,7 +182,7 @@
      * @param
      * @return  List<MgtMapTotalVo>
      */
-    List<MgtMapTotalVo> listShopSalesRank(MgtBasePlatformDto mgtBasePlatformDto);
+    List<MgtMapTotalVo> listShopSalesRank(@Param("param")MgtBasePlatformDto mgtBasePlatformDto);
 
     /**
      * @description  商户类型统计
@@ -191,5 +191,5 @@
      * @param
      * @return  List<MgtMapTotalVo>
      */
-    List<MgtMapTotalVo> listShopRecommendRank(MgtBasePlatformDto mgtBasePlatformDto);
+    List<MgtMapTotalVo> listShopRecommendRank(@Param("param")MgtBasePlatformDto mgtBasePlatformDto);
 }
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 b4e2b45..6a6339d 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
@@ -796,45 +796,20 @@
         //获取商户类型
         List<MgtMapTotalVo> shopTypeTotal = shopMapper.listShopTypeTotal(mgtBasePlatformDto);
         if (shopTypeTotal != null && shopTypeTotal.size() > 0) {
-            String[] shopTypeKey = new String[shopTypeTotal.size()];
-            Integer[] shopTypeValue = new Integer[shopTypeTotal.size()];
-            // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
-            for (int i = 0; i < shopTypeTotal.size(); i++) {
-                if (shopTypeTotal.get(i).getMapKey().equals("1")) {
-                    shopTypeKey[i] = "经销商";
-                } else if (shopTypeTotal.get(i).getMapKey().equals("2")) {
-                    shopTypeKey[i] = "代理商";
-                }
-                shopTypeValue[i] = shopTypeTotal.get(i).getMapValue();
-            }
-            plTotalShopTotalVo.setShopTypeKey(shopTypeKey);
-            plTotalShopTotalVo.setShopTypeValue(shopTypeValue);
+            shopTypeTotal = listRemoveNull(shopTypeTotal);
+            plTotalShopTotalVo.setShopTypeVos(shopTypeTotal);
         }
         //获取商户状态
         List<MgtMapTotalVo> shopStatusTotal = shopMapper.listShopStatusTotal(mgtBasePlatformDto);
         if (shopStatusTotal != null && shopStatusTotal.size() > 0) {
-            String[] shopStatusKey = new String[shopStatusTotal.size()];
-            Integer[] shopStatusValue = new Integer[shopStatusTotal.size()];
-            // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
-            for (int i = 0; i < shopStatusTotal.size(); i++) {
-                shopStatusKey[i] = shopStatusTotal.get(i).getMapKey();
-                shopStatusValue[i] = shopStatusTotal.get(i).getMapValue();
-            }
-            plTotalShopTotalVo.setShopStatusKey(shopStatusKey);
-            plTotalShopTotalVo.setShopStatusValue(shopStatusValue);
+            shopStatusTotal = listRemoveNull(shopStatusTotal);
+            plTotalShopTotalVo.setShopStatusVos(shopStatusTotal);
         }
         //获取区域排名
         List<MgtMapTotalVo> shopAreaRank = shopMapper.listShopAreaRank(mgtBasePlatformDto);
         if (shopAreaRank != null && shopAreaRank.size() > 0) {
-            String[] shopRankKey = new String[shopAreaRank.size()];
-            Integer[] shopRankValue = new Integer[shopAreaRank.size()];
-            // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
-            for (int i = 0; i < shopAreaRank.size(); i++) {
-                shopRankKey[i] = shopAreaRank.get(i).getMapKey();
-                shopRankValue[i] = shopAreaRank.get(i).getMapValue();
-            }
-            plTotalShopTotalVo.setAreaRankKey(shopRankKey);
-            plTotalShopTotalVo.setAreaRankValue(shopRankValue);
+            shopAreaRank = listRemoveNull(shopAreaRank);
+            plTotalShopTotalVo.setAreaRankVos(shopAreaRank);
         }
         //获取销售排名
         List<MgtMapTotalVo> shopSalesRank = shopMapper.listShopSalesRank(mgtBasePlatformDto);
@@ -852,20 +827,29 @@
         //获取推荐
         List<MgtMapTotalVo> shopRecommendRank = shopMapper.listShopRecommendRank(mgtBasePlatformDto);
         if (shopRecommendRank != null && shopRecommendRank.size() > 0) {
-            String[] shopRecommendKey = new String[shopRecommendRank.size()];
-            Integer[] shopRecommendValue = new Integer[shopRecommendRank.size()];
-            // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
-            for (int i = 0; i < shopRecommendRank.size(); i++) {
-                shopRecommendKey[i] = shopRecommendRank.get(i).getMapKey();
-                shopRecommendValue[i] = shopRecommendRank.get(i).getMapValue();
-            }
-            plTotalShopTotalVo.setShopRecommendKey(shopRecommendKey);
-            plTotalShopTotalVo.setShopRecommendValue(shopRecommendValue);
+            shopRecommendRank = listRemoveNull(shopRecommendRank);
+            plTotalShopTotalVo.setShopRecommendVos(shopRecommendRank);
         }
         return plTotalShopTotalVo;
     }
 
     /**
+     * @description  去除空字符串
+     * @author  jqs
+     * @date    2023/6/27 17:35
+     * @param mgtMapTotalVos
+     * @return  List<MgtMapTotalVo>
+     */
+    private List<MgtMapTotalVo> listRemoveNull(List<MgtMapTotalVo> mgtMapTotalVos){
+        for (int i = 0; i < mgtMapTotalVos.size(); i++) {
+            if(StringUtils.isBlank(mgtMapTotalVos.get(i).getMapKey())){
+                mgtMapTotalVos.remove(i);
+            }
+        }
+        return mgtMapTotalVos;
+    }
+
+    /**
      * @description 获取平台统计shopId
      * @param mgtBasePlatformDto
      * @return List<Long>
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 d495f93..cc4a1c5 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
@@ -537,8 +537,8 @@
     <select id="shopTotal" resultType="com.ruoyi.system.api.domain.vo.MgtBulletinBoardVo">
         SELECT
             COUNT(shop_id) AS shopTotal,
-            SUM(CASE WHEN shopType = 1 THEN 1 ELSE 0 END) AS dealerTotal,
-            SUM(CASE WHEN shopType = 2 THEN 1 ELSE 0 END) AS agencyTotal
+            SUM(CASE WHEN shop_type = 1 THEN 1 ELSE 0 END) AS dealerTotal,
+            SUM(CASE WHEN shop_type = 2 THEN 1 ELSE 0 END) AS agencyTotal
         FROM t_shop
         WHERE del_flag = 0
     </select>
@@ -546,8 +546,8 @@
     <select id="getPlTotalShopTotal" resultType="com.ruoyi.shop.domain.vo.MgtPlTotalShopTotalVo">
         SELECT
             COUNT(shop_id) AS shopTotal,
-            SUM(CASE WHEN shopType = 1 THEN 1 ELSE 0 END) AS dealerTotal,
-            SUM(CASE WHEN shopType = 2 THEN 1 ELSE 0 END) AS agencyTotal,
+            SUM(CASE WHEN shop_type = 1 THEN 1 ELSE 0 END) AS dealerTotal,
+            SUM(CASE WHEN shop_type = 2 THEN 1 ELSE 0 END) AS agencyTotal,
             SUM(CASE WHEN cooperative_flag = 0 THEN 1 ELSE 0 END) AS terminateTotal
         FROM t_shop
         WHERE del_flag = 0
@@ -700,7 +700,7 @@
         ts.shop_name mapKey,
         tst.total_order_money mapValue
         FROM t_shop ts
-        INNER JOIN t_shopp_total tst ON ts.shop_id = tst.shop_id
+        INNER JOIN t_shop_total tst ON ts.shop_id = tst.shop_id
         WHERE ts.del_flag = 0
         <if test="param.userIdList!=null and param.userIdList!=''">
             AND ts.belong_user_id IN
@@ -723,7 +723,7 @@
         <if test="param.endDate!=null and param.endDate!=''">
             AND ts.create_time &lt;= #{param.endDate}
         </if>
-        ORDER BY tst.total_order_money DESC LMIMIT 15
+        ORDER BY tst.total_order_money DESC LIMIT 15
     </select>
 
     <select id="listShopRecommendRank" resultType="com.ruoyi.system.api.domain.vo.MgtMapTotalVo">
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java
index 99808fb..474dcc3 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java
@@ -63,9 +63,9 @@
         SysUser sysUser = sysUserService.selectUserById(userId);
         String dataScope = sysUser.getDataScope();
         List<MgtDeptStaffListVo> deptStaffListVoList;
-        if(dataScope.equals("4")){
+        if(dataScope!=null&&dataScope.equals("4")){
             deptStaffListVoList = sysStaffMapper.listMgtDeptStaffByDept(sysUser.getDeptId(),null);
-        }else if(dataScope.equals("5")){
+        }else if(dataScope!=null&&dataScope.equals("5")){
             deptStaffListVoList = sysStaffMapper.listMgtDeptStaffByDept(sysUser.getDeptId(),sysUser.getUserId());
         }else{
             deptStaffListVoList = sysStaffMapper.listMgtDeptStaff();

--
Gitblit v1.7.1