From 5f5b881002bac8a8992096ba3232a650c99d06c7 Mon Sep 17 00:00:00 2001
From: phpcjl <phpcjl@gmail.com>
Date: 星期四, 19 十二月 2024 09:53:53 +0800
Subject: [PATCH] 1

---
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/AppUserMapper.java                     |    6 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/UserStatistics.java                        |   61 ++++++++
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Shop.java                              |    4 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AgentApplicationServiceImpl.java |    2 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopMapper.java                            |    3 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/ShopStatistics.java                            |   73 ++++++++++
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/PointSettingController.java            |    3 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderStatistics.java                           |   45 ++++++
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java                    |   15 ++
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java                   |   16 ++
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java                |    5 
 ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopMapper.xml                                  |   18 ++
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java             |   23 +++
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/UserStatisticsDetail.java                  |   70 ++++++++++
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java                           |    5 
 ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AppUserMapper.xml                           |   36 +++++
 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml                                 |   19 ++
 17 files changed, 391 insertions(+), 13 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Shop.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Shop.java
index 37a518d..9b4068a 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Shop.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Shop.java
@@ -110,10 +110,6 @@
     @TableField("server_point")
     private Integer serverPoint;
 
-    @ApiModelProperty(value = "下级门店返佣积分")
-    @TableField("lower_level_rebate_points")
-    private Integer lowerLevelRebatePoints;
-
     @ApiModelProperty(value = "门店已用积分")
     @TableField("use_point")
     private Integer usePoint;
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
index e0d3393..b2c1bfd 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
@@ -6,6 +6,7 @@
 import com.ruoyi.account.api.model.UserCancellationLog;
 import com.ruoyi.account.api.model.UserCoupon;
 import com.ruoyi.account.api.model.UserSignRecord;
+import com.ruoyi.account.mapper.AppUserMapper;
 import com.ruoyi.account.service.AppUserService;
 import com.ruoyi.account.service.UserCancellationLogService;
 import com.ruoyi.account.service.UserCouponService;
@@ -75,6 +76,8 @@
 	private UserPointService userPointService;
 	@Resource
 	private VipSettingService vipSettingService;
+	@Resource
+	private AppUserMapper appUserMapper;
 
 
 	@ResponseBody
@@ -632,5 +635,25 @@
 		return R.ok(appUser);
 	}
 
+	/**
+	 * 用户统计
+	 */
+	@GetMapping("/statistics")
+	@ApiOperation(value = "用户统计",tags = {"管理后台-首页统计-用户统计"})
+	public R<UserStatistics> statistics() {
+		UserStatistics userStatistics = appUserMapper.getUserStatistics();
+		return R.ok(userStatistics);
+	}
+
+	/**
+	 * 用户统计详情
+	 */
+	@GetMapping("/statistics/detail")
+	@ApiOperation(value = "用户统计详情",tags = {"管理后台-首页统计-用户统计详情"})
+	public R<UserStatisticsDetail> statisticsDetail(String userName) {
+		UserStatisticsDetail userStatisticsDetail = appUserMapper.getUserStatisticsDetail(userName);
+		return R.ok(userStatisticsDetail);
+	}
+
 }
 
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/AppUserMapper.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/AppUserMapper.java
index 9d165d1..6722562 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/AppUserMapper.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/AppUserMapper.java
@@ -5,6 +5,8 @@
 import com.ruoyi.account.api.model.AppUser;
 import com.ruoyi.account.vo.NearbyReferrer;
 import com.ruoyi.account.vo.NearbyReferrerVo;
+import com.ruoyi.account.vo.UserStatistics;
+import com.ruoyi.account.vo.UserStatisticsDetail;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -30,6 +32,10 @@
 	IPage<AppUser> getAppuserPage(@Param("page") IPage<AppUser> page, @Param("appUser") AppUser appUser);
 	IPage<AppUser> getAppuserPage1(@Param("page") IPage<AppUser> page, @Param("appUser") AppUser appUser,@Param("objectId")Integer objectId,@Param("userIds")List<Long> userIds);
 
+	UserStatistics getUserStatistics();
+
+	UserStatisticsDetail getUserStatisticsDetail(String userName);
+
 	
 
 }
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AgentApplicationServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AgentApplicationServiceImpl.java
index bb93baa..5c148d8 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AgentApplicationServiceImpl.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AgentApplicationServiceImpl.java
@@ -62,7 +62,7 @@
         // 直推用户已成为代理数量
         List<AppUser> directAgentUserList = appUserService.list(new LambdaQueryWrapper<AppUser>()
                 .eq(AppUser::getInviteUserId, appUser.getId())
-                .eq(AppUser::getUserType, 4));
+                .eq(AppUser::getVipId, 4));
         agentApplication.setDirectAgentNum(directAgentUserList.size());
 
         // 已绑定门店数量
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/UserStatistics.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/UserStatistics.java
new file mode 100644
index 0000000..f265ccb
--- /dev/null
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/UserStatistics.java
@@ -0,0 +1,61 @@
+package com.ruoyi.account.vo;
+
+import lombok.Data;
+
+@Data
+public class UserStatistics {
+    /**
+     * 用户总数
+     */
+    private Integer totalUser;
+
+    /**
+     * 拥有门店用户数
+     */
+    private Integer shopUser;
+
+    /**
+     * 消费者用户数
+     */
+    private Integer consumerUser;
+
+    /**
+     * 普通会员数
+     */
+    private Integer commonUser;
+
+    /**
+     * 黄金会员数
+     */
+    private Integer goldUser;
+
+    /**
+     * 钻石会员数
+     */
+    private Integer diamondUser;
+
+    /**
+     * 创业者总数
+     */
+    private Integer entrepreneurUser;
+
+    /**
+     * 准代理数
+     */
+    private Integer proxyUser;
+
+    /**
+     * 代理数
+     */
+    private Integer agentUser;
+
+    /**
+     * 总代数
+     */
+    private Integer totalAgentUser;
+
+    /**
+     * 合伙人数
+     */
+    private Integer partnerUser;
+}
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/UserStatisticsDetail.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/UserStatisticsDetail.java
new file mode 100644
index 0000000..3a58836
--- /dev/null
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/UserStatisticsDetail.java
@@ -0,0 +1,70 @@
+package com.ruoyi.account.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("用户统计详情")
+public class UserStatisticsDetail {
+
+    /**
+     * 用户获得总积分
+     */
+    @ApiModelProperty("用户获得总积分")
+    private Integer totalScore;
+
+    /**
+     * 消费积分总数
+     */
+    @ApiModelProperty("消费积分总数")
+    private Integer consumeScore;
+
+    /**
+     * 返佣积分总数
+     */
+    @ApiModelProperty("返佣积分总数")
+    private Integer rebateScore;
+
+    /**
+     * 拉新人积分总数
+     */
+    @ApiModelProperty("拉新人积分总数")
+    private Integer inviteScore;
+
+    /**
+     * 注册积分总数
+     */
+    @ApiModelProperty("注册积分总数")
+    private Integer registerScore;
+
+    /**
+     * 做工积分总数
+     */
+    @ApiModelProperty("做工积分总数")
+    private Integer workScore;
+
+    /**
+     * 技师业绩积分总数
+     */
+    @ApiModelProperty("技师业绩积分总数")
+    private Integer achievementScore;
+
+    /**
+     * 用户获得分佣总金额
+     */
+    @ApiModelProperty("用户获得分佣总金额")
+    private Integer totalRebate;
+
+    /**
+     * 充值金额
+     */
+    @ApiModelProperty("充值金额")
+    private Integer totalRecharge;
+
+    /**
+     * 已提现金额
+     */
+    @ApiModelProperty("已提现金额")
+    private Integer totalWithdraw;
+}
diff --git a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AppUserMapper.xml b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AppUserMapper.xml
index 935fb14..7801f72 100644
--- a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AppUserMapper.xml
+++ b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AppUserMapper.xml
@@ -111,4 +111,40 @@
             ) or ta.shop_id = #{objectId} )
         </where>
     </select>
+    <select id="getUserStatistics" resultType="com.ruoyi.account.vo.UserStatistics">
+        SELECT
+        COUNT(*) AS totalUser,
+        SUM(CASE WHEN tau.user_type = 2 THEN 1 ELSE 0 END) AS shopUser,
+        SUM(CASE WHEN tau.vip_id < 4 THEN 1 ELSE 0 END) AS consumerUser,
+        SUM(CASE WHEN tau.vip_id = 1 THEN 1 ELSE 0 END) AS commonUser,
+        SUM(CASE WHEN tau.vip_id = 2 THEN 1 ELSE 0 END) AS goldUser,
+        SUM(CASE WHEN tau.vip_id = 3 THEN 1 ELSE 0 END) AS diamondUser,
+        SUM(CASE WHEN tau.vip_id > 3 THEN 1 ELSE 0 END) AS entrepreneurUser,
+        SUM(CASE WHEN tau.vip_id = 4 THEN 1 ELSE 0 END) AS proxyUser,
+        SUM(CASE WHEN tau.vip_id = 5 THEN 1 ELSE 0 END) AS agentUser,
+        SUM(CASE WHEN tau.vip_id = 6 THEN 1 ELSE 0 END) AS totalAgentUser,
+        SUM(CASE WHEN tau.vip_id = 7 THEN 1 ELSE 0 END) AS partnerUser
+        FROM
+        t_app_user tau
+    </select>
+    <select id="getUserStatisticsDetail" resultType="com.ruoyi.account.vo.UserStatisticsDetail">
+        SELECT
+            SUM(tau.total_point) totalScore,
+            SUM(tau.shop_point) consumeScore,
+            SUM(tau.share_point) rebateScore,
+            SUM(tau.total_invite_point) inviteScore,
+            SUM(tau.total_register_point) registerScore,
+            SUM(tau.total_share_point+tau.total_sign_point+tau.total_hour_point) workScore,
+            SUM(tau.total_performance_point) achievementScore,
+            SUM(tau.total_distribution_amount) totalRebate,
+            SUM(tau.total_recharge_amount) totalRecharge,
+            SUM(tau.withdrawn_amount) totalWithdraw
+        FROM
+            t_app_user tau
+        <where>
+            <if test="null != userName and '' != userName">
+                and tau.name like CONCAT('%',#{userName},'%')
+            </if>
+        </where>
+    </select>
 </mapper>
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java
index 76ffe8f..fa009b9 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java
@@ -12,6 +12,7 @@
 import com.ruoyi.common.core.web.page.TableDataInfo;
 import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.order.enums.OrderStatus;
+import com.ruoyi.order.mapper.OrderMapper;
 import com.ruoyi.order.model.Order;
 import com.ruoyi.order.service.CommissionService;
 import com.ruoyi.order.service.OrderService;
@@ -50,6 +51,8 @@
     private CommissionService commissionService;
     @Resource
     private BaseSettingClient baseSettingClient;
+    @Resource
+    private OrderMapper orderMapper;
 
 
     /**
@@ -262,5 +265,18 @@
     public R<PageInfo<OrderPageListVo>> getOrderPageList(OrderPageList orderPageList){
         return R.ok(orderService.getOrderPageList(orderPageList));
     }
+
+    /**
+     * 订单统计
+     */
+    @GetMapping("/getOrderStatistics")
+    @ApiOperation(value = "订单统计", tags = {"管理后台-首页统计"})
+    public R<OrderStatistics> getOrderStatistics(@RequestParam("startTime") String startTime,
+                                                 @RequestParam("endTime") String endTime){
+        OrderStatistics orderStatistics = orderMapper.getOrderStatistics(LocalDateTime.parse(startTime), LocalDateTime.parse(endTime));
+        return R.ok(orderStatistics);
+    }
+
+
 }
 
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java
index 82eb43a..2353959 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java
@@ -4,10 +4,12 @@
 import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.order.vo.OrderPageList;
 import com.ruoyi.order.vo.OrderPageListVo;
+import com.ruoyi.order.vo.OrderStatistics;
 import com.ruoyi.order.vo.OrderVO;
 import com.ruoyi.order.model.Order;
 import org.apache.ibatis.annotations.Param;
 
+import java.time.LocalDateTime;
 import java.util.List;
 
 /**
@@ -31,4 +33,7 @@
      * @return
      */
     List<OrderPageListVo> getOrderPageList(PageInfo<OrderPageListVo> pageInfo,  @Param("item") OrderPageList orderPageList);
+
+    OrderStatistics getOrderStatistics(@Param("startTime")LocalDateTime startTime,
+                                       @Param("endTime") LocalDateTime endTime);
 }
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
index f964675..4adce50 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -130,9 +130,6 @@
             orderGoodsVO.setOriginalPrice(goods.getOriginalPrice());
             goodsList.add(orderGoodsVO);
         }
-
-
-
         // 收货地址
         String addressJson = order.getAddressJson();
         UserAddress userAddress = new UserAddress();
@@ -140,7 +137,6 @@
             userAddress = JSONObject.parseObject(addressJson, UserAddress.class);
 
         }
-
         // 优惠券
         String couponJson = order.getCouponJson();
         CouponInfo couponInfo = new CouponInfo();
@@ -154,7 +150,6 @@
         if (StringUtils.isNotEmpty(activityJson)){
             orderActivityInfo = JSONObject.parseObject(activityJson, OrderActivityInfo.class);
         }
-
         OrderDetailVO orderDetailVO = new OrderDetailVO();
 
         if (CollectionUtil.isNotEmpty(orderGoods)){
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderStatistics.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderStatistics.java
new file mode 100644
index 0000000..0dc711a
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderStatistics.java
@@ -0,0 +1,45 @@
+package com.ruoyi.order.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("订单统计")
+public class OrderStatistics {
+    /**
+     * 订单总数
+     */
+    @ApiModelProperty(value = "订单总数")
+    private Integer total;
+
+    /**
+     * 服务类型订单数量
+     */
+    @ApiModelProperty(value = "服务类型订单数量")
+    private Integer serviceTotal;
+
+    /**
+     * 单品类型订单数量
+     */
+    @ApiModelProperty(value = "单品类型订单数量")
+    private Integer singleTotal;
+
+    /**
+     * 订单总金额
+     */
+    @ApiModelProperty(value = "订单总金额")
+    private Double totalMoney;
+
+    /**
+     * 服务类型订单总金额
+     */
+    @ApiModelProperty(value = "服务类型订单总金额")
+    private Double serviceTotalMoney;
+
+    /**
+     * 单品类型订单总金额
+     */
+    @ApiModelProperty(value = "单品类型订单总金额")
+    private Double singleTotalMoney;
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
index f71d000..8ff4fdc 100644
--- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
+++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
@@ -77,4 +77,23 @@
         </if>
         order by create_time desc
     </select>
+    <select id="getOrderStatistics" resultType="com.ruoyi.order.vo.OrderStatistics">
+        SELECT
+            count(*),
+            SUM( CASE WHEN tor.order_type = 1 THEN 1 ELSE 0 END ) a,
+            SUM( CASE WHEN tor.order_type = 2 THEN 1 ELSE 0 END ) b,
+            SUM( tor.total_amount ) c,
+            SUM( CASE WHEN tor.order_type = 1 THEN tor.total_amount ELSE 0 END ),
+            SUM( CASE WHEN tor.order_type = 2 THEN tor.total_amount ELSE 0 END )
+        FROM
+            t_order tor
+        <where>
+            <if test="startTime != null">
+                and tor.create_time <![CDATA[>=]]> #{startTime}
+            </if>
+            <if test="endTime != null">
+                and tor.create_time <![CDATA[<=]]> #{endTime}
+            </if>
+        </where>
+    </select>
 </mapper>
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/PointSettingController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/PointSettingController.java
index c6062e4..0e950b5 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/PointSettingController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/PointSettingController.java
@@ -42,8 +42,7 @@
     @PostMapping("/save")
     @ApiOperation(value = "积分配置", tags = {"后台"})
     public R<PointSetting> save(@RequestBody PointSettingDto pointSettingDto) {
-        pointSettingService.remove(Wrappers.lambdaQuery());
-        pointSettingService.saveBatch(pointSettingDto.getPointSettings());
+        pointSettingService.saveOrUpdateBatch(pointSettingDto.getPointSettings());
         return R.ok();
     }
 
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java
index 607cb6c..05e9132 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java
@@ -12,10 +12,12 @@
 import com.ruoyi.common.security.utils.SecurityUtils;
 import com.ruoyi.other.api.domain.Shop;
 import com.ruoyi.other.api.domain.ShopScore;
+import com.ruoyi.other.mapper.ShopMapper;
 import com.ruoyi.other.service.ShopScoreService;
 import com.ruoyi.other.service.ShopService;
 import com.ruoyi.other.vo.NearbyShopVO;
 import com.ruoyi.other.vo.ShopDetailVO;
+import com.ruoyi.other.vo.ShopStatistics;
 import com.ruoyi.system.api.domain.SysUser;
 import com.ruoyi.system.api.feignClient.SysUserClient;
 import com.ruoyi.system.api.model.LoginUser;
@@ -55,6 +57,8 @@
     private TokenService tokenService;
     @Resource
     private SysUserClient sysUserClient;
+    @Resource
+    private ShopMapper shopMapper;
 
 
 
@@ -71,7 +75,6 @@
         shop.setShopPoint(0);
         shop.setSharePoint(0);
         shop.setServerPoint(0);
-        shop.setLowerLevelRebatePoints(0);
         shop.setUsePoint(0);
         shop.setGiveawayAllMoney(BigDecimal.ZERO);
         shop.setGiveawayMoney(BigDecimal.ZERO);
@@ -273,5 +276,15 @@
         return R.ok(list.stream().map(Shop::getId).collect(Collectors.toSet()));
     }
 
+    /**
+     * 门店统计
+     */
+    @GetMapping("/shopStatistics")
+    @ApiOperation(value = "门店统计", tags = {"管理后台-首页统计"})
+    public R<ShopStatistics> shopStatistics(@ApiParam("门店名称") String shopName) {
+        ShopStatistics shopStatistics = shopMapper.getShopStatistics(shopName);
+        return R.ok(shopStatistics);
+    }
+
 }
 
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopMapper.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopMapper.java
index 5747e23..c8d43d8 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopMapper.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopMapper.java
@@ -6,6 +6,7 @@
 import com.ruoyi.other.api.domain.Shop;
 import com.ruoyi.other.vo.NearbyShopVO;
 import com.ruoyi.other.vo.ShopDetailVO;
+import com.ruoyi.other.vo.ShopStatistics;
 import org.apache.ibatis.annotations.Param;
 
 import java.math.BigDecimal;
@@ -27,4 +28,6 @@
 
     ShopDetailVO selectShopDetail(Integer shopId);
 
+    ShopStatistics getShopStatistics(String shopName);
+
 }
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/ShopStatistics.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/ShopStatistics.java
new file mode 100644
index 0000000..186d27e
--- /dev/null
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/ShopStatistics.java
@@ -0,0 +1,73 @@
+package com.ruoyi.other.vo;
+
+import lombok.Data;
+
+@Data
+public class ShopStatistics {
+
+    /**
+     * 门店积分总数
+     */
+    private Integer totalPoint;
+
+    /**
+     * 门店返佣积分总数
+     */
+    private Integer commissionPoint;
+
+    /**
+     * 门店服务积分总数
+     */
+    private Integer servicePoint;
+
+    /**
+     * 绑定下级门店返佣积分总数
+     */
+    private Integer bindCommissionPoint;
+
+    /**
+     * 门店分佣总金额
+     */
+    private Double totalCommissionMoney;
+
+    /**
+     * 门店分佣金额
+     */
+    private Double commissionMoney;
+
+    /**
+     * 绑定下级分佣金额
+     */
+    private Double bindCommissionMoney;
+
+    /**
+     * 门店服务分佣金额
+     */
+    private Double serviceCommissionMoney;
+
+    /**
+     * 门店订单总数
+     */
+    private Integer totalOrder;
+
+    /**
+     * 服务订单数
+     */
+    private Integer serviceOrder;
+
+    /**
+     * 单品-上门自提订单数
+     */
+    private Integer goodsOrder;
+
+    /**
+     * 可提现金额
+     */
+    private Double canWithdrawMoney;
+
+    /**
+     * 已提现金额
+     */
+    private Double alreadyWithdrawMoney;
+
+}
diff --git a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopMapper.xml b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopMapper.xml
index 488c812..ce19e5c 100644
--- a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopMapper.xml
+++ b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopMapper.xml
@@ -82,4 +82,22 @@
             </if>
         </where>
     </select>
+    <select id="getShopStatistics" resultType="com.ruoyi.other.vo.ShopStatistics">
+        SELECT
+            SUM(ts.shop_all_point) totalPoint,
+            SUM(ts.share_point) commissionPoint,
+            SUM(ts.server_point) servicePoint,
+            SUM(ts.lower_level_giveaway_money) bindCommissionPoint,
+            SUM(ts.giveaway_all_money) totalCommissionMoney,
+            SUM(ts.giveaway_money) commissionMoney,
+            SUM(ts.lower_level_giveaway_money) bindCommissionMoney,
+            SUM(ts.server_giveaway_money) serviceCommissionMoney,
+            SUM(ts.order_number) totalOrder,
+            SUM(ts.server_order_number) serviceOrder,
+            SUM(ts.custom_order_number) goodsOrder,
+            SUM(ts.can_withdraw_money) canWithdrawMoney,
+            SUM(ts.withdraw_money) alreadyWithdrawMoney
+        FROM
+            t_shop ts
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.7.1