From acfa230addbde3212790a3e6ccd6741eaac00b46 Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期一, 03 七月 2023 19:34:58 +0800
Subject: [PATCH] 商户端会员统计

---
 ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml                            |   28 +++++++++
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java                |   10 +++
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/business/MerTotalController.java  |   43 ++++++++++++++
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java |   15 +++++
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java              |   11 +++
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java     |   19 ++++++
 6 files changed, 125 insertions(+), 1 deletions(-)

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 46ae84e..e973ada 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
@@ -1388,6 +1388,11 @@
      */
     @Override
     public MerMemberFixedTotalVo getMerMemberFixedTotal(MerTotalDto merTotalDto){
+        if(merTotalDto.getShopAllFlag()!=null&&merTotalDto.getShopAllFlag()==1){
+            List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData();
+            merTotalDto.setShopIdList(shopIdList);
+            merTotalDto.setShopId(null);
+        }
         MerMemberFixedTotalVo memberFixedTotalVo = new MerMemberFixedTotalVo();
         Date nowDay = DateUtils.getNowDate();
         if(merTotalDto.getShopAllFlag()!=null&&merTotalDto.getShopAllFlag()==1){
@@ -1457,6 +1462,11 @@
      */
     @Override
     public MerMemberSourceTotalVo getMerMemberSourceTotal(MerTotalDto merTotalDto){
+        if(merTotalDto.getShopAllFlag()!=null&&merTotalDto.getShopAllFlag()==1){
+            List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData();
+            merTotalDto.setShopIdList(shopIdList);
+            merTotalDto.setShopId(null);
+        }
         MerMemberSourceTotalVo memberSourceTotalVo = new MerMemberSourceTotalVo();
         //获取来源渠道排名
         List<MgtMapIntTotalVo> customerSourceList = memberMapper.getMerMemberCustomerSourceRank(merTotalDto);
@@ -1477,6 +1487,11 @@
      */
     @Override
     public MerMemberRecommendTotalVo getMerMemberRecommendTotal(MerTotalDto merTotalDto){
+        if(merTotalDto.getShopAllFlag()!=null&&merTotalDto.getShopAllFlag()==1){
+            List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData();
+            merTotalDto.setShopIdList(shopIdList);
+            merTotalDto.setShopId(null);
+        }
         MerMemberRecommendTotalVo memberRecommendTotalVo = new MerMemberRecommendTotalVo();
         //获取会员推荐排名
         List<MgtMapIntTotalVo> recommendList = memberMapper.getMerMemberRecommendRank(merTotalDto);
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/business/MerTotalController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/business/MerTotalController.java
new file mode 100644
index 0000000..913d2e4
--- /dev/null
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/business/MerTotalController.java
@@ -0,0 +1,43 @@
+package com.ruoyi.order.controller.business;
+
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.security.utils.SecurityUtils;
+import com.ruoyi.order.domain.vo.MerOrderTotalVo;
+import com.ruoyi.order.service.order.OrderService;
+import com.ruoyi.system.api.domain.dto.MerTotalDto;
+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;
+
+/**
+ * @ClassName MerTotalController
+ * @Description TODO
+ * @Author jqs
+ * @Date 2023/7/3 19:25
+ * @Version 1.0
+ */
+@Api(value = "商户端订单统计相关接口", tags = "商户端订单统计相关接口", description = "商户端订单统计相关接口")
+@RestController
+@RequestMapping("/mer/total")
+public class MerTotalController {
+
+    @Resource
+    private OrderService orderService;
+
+    @RequestMapping(value = "/getMerOrderTotal", method = RequestMethod.POST)
+    @ApiOperation(value = "商户获取订单统计")
+    public R<MerOrderTotalVo> getMerOrderTotal(@RequestBody MerTotalDto merTotalDto) {
+        Long userId = SecurityUtils.getUserId();
+        merTotalDto.setUserId(userId);
+        MerOrderTotalVo orderTotalVo = orderService.getMerOrderTotal(merTotalDto);
+        return R.ok(orderTotalVo);
+    }
+
+
+
+}
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 fcad0f5..f50b1d4 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
@@ -438,4 +438,14 @@
      * @return  BigDecimal
      */
     BigDecimal getMemberUnpaidOrder(@Param("param")MerBaseDto merBaseDto);
+
+
+    /**
+     * @description getTotalOrderTotalOrderFrom
+     * @param mgtBaseShopDto
+     * @return MgtTotalOrderTotalVo
+     * @author jqs34
+     * @date 2023/6/19 22:24
+     */
+    MerOrderTotalVo getMerOrderTotalOrderFrom(@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 3c5df9f..4708de6 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
@@ -2038,4 +2038,23 @@
         BigDecimal unpaidMoney = orderMapper.getMemberUnpaidOrder(merBaseDto);
         return unpaidMoney;
     }
+
+    /**
+     * @description  商户获取订单统计
+     * @author  jqs
+     * @date    2023/7/3 19:29
+     * @param merTotalDto
+     * @return  MerOrderTotalVo
+     */
+    @Override
+    public MerOrderTotalVo getMerOrderTotal(MerTotalDto merTotalDto){
+        if(merTotalDto.getShopAllFlag()!=null&&merTotalDto.getShopAllFlag()==1){
+            List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData();
+            merTotalDto.setShopIdList(shopIdList);
+            merTotalDto.setShopId(null);
+        }
+        MerOrderTotalVo orderTotalVo = new MerOrderTotalVo();
+
+        return orderTotalVo;
+    }
 }
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 46c747c..f60c525 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
@@ -292,8 +292,17 @@
      * @description  获取用户未支付金额
      * @author  jqs
      * @date    2023/6/29 18:00
-     * @param userId
+     * @param merBaseDto
      * @return  BigDecimal
      */
     BigDecimal getMemberUnpaidOrder(MerBaseDto merBaseDto);
+
+    /**
+     * @description  商户获取订单统计
+     * @author  jqs
+     * @date    2023/7/3 19:29
+     * @param merTotalDto
+     * @return  MerOrderTotalVo
+     */
+    MerOrderTotalVo getMerOrderTotal(MerTotalDto merTotalDto);
 }
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 c313a1d..60e7585 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
@@ -1230,4 +1230,32 @@
         WHERE del_flag = 0 AND user_id = #{param.userId} AND shop_id = #{param.shopId} AND order_status IN (1,2) AND close_flag = 0
     </select>
 
+
+    <select id="getMerOrderTotalOrderFrom" resultType="com.ruoyi.order.domain.vo.MerOrderTotalVo">
+        SELECT
+        COUNT(order_id) orderTotal,
+        SUM(CASE WHEN order_from = 1 THEN 1 ELSE 0 END) onlineTotal,
+        SUM(CASE WHEN order_from = 3 THEN 1 ELSE 0 END) offlineTotal,
+        SUM(CASE WHEN order_from = 2 THEN 1 ELSE 0 END) activityTotal,
+        IFNULL(SUM(order_money),0) orderMoney,
+        SUM(CASE WHEN order_from = 1 THEN order_money ELSE 0 END) onlineMoney,
+        SUM(CASE WHEN order_from = 3 THEN order_money ELSE 0 END) offlineMoney,
+        SUM(CASE WHEN order_from = 2 THEN order_money ELSE 0 END) activityMoney
+        FROM t_order WHERE del_flag = 0
+        <if test="param.shopId != null and param.shopId != ''">
+            AND shop_id = #{param.shopId}
+        </if>
+        <if test="param.shopIdList != null and param.shopIdList.size() > 0">
+            AND shop_id IN
+            <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <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>
 </mapper>

--
Gitblit v1.7.1