Commit b6d400e04ac300c3e6632d4999d5e037b0125047

Authored by owen
1 parent 6f08645f

统计:会员终端统计接口实现

yudao-module-mall/yudao-module-statistics-biz/src/main/java/cn/iocoder/yudao/module/statistics/controller/admin/member/MemberStatisticsController.java
@@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.statistics.controller.admin.member; @@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.statistics.controller.admin.member;
2 2
3 import cn.hutool.core.util.ArrayUtil; 3 import cn.hutool.core.util.ArrayUtil;
4 import cn.hutool.core.util.NumberUtil; 4 import cn.hutool.core.util.NumberUtil;
5 -import cn.iocoder.yudao.framework.common.enums.TerminalEnum;  
6 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 5 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
7 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 6 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
8 import cn.iocoder.yudao.module.statistics.controller.admin.common.vo.DataComparisonRespVO; 7 import cn.iocoder.yudao.module.statistics.controller.admin.common.vo.DataComparisonRespVO;
@@ -25,7 +24,6 @@ import java.time.LocalDateTime; @@ -25,7 +24,6 @@ import java.time.LocalDateTime;
25 import java.util.List; 24 import java.util.List;
26 25
27 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; 26 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
28 -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;  
29 27
30 @Tag(name = "管理后台 - 会员统计") 28 @Tag(name = "管理后台 - 会员统计")
31 @RestController 29 @RestController
@@ -98,12 +96,7 @@ public class MemberStatisticsController { @@ -98,12 +96,7 @@ public class MemberStatisticsController {
98 @Operation(summary = "按照终端,获得会员统计列表") 96 @Operation(summary = "按照终端,获得会员统计列表")
99 @PreAuthorize("@ss.hasPermission('statistics:member:query')") 97 @PreAuthorize("@ss.hasPermission('statistics:member:query')")
100 public CommonResult<List<MemberTerminalStatisticsRespVO>> getMemberTerminalStatisticsList() { 98 public CommonResult<List<MemberTerminalStatisticsRespVO>> getMemberTerminalStatisticsList() {
101 - // TODO 疯狂:这个可以晚点写,因为 user = = 上还没记录 terminal  
102 - // TODO @疯狂:在 member_user 上,增加 registerTerminal 字段,基于它来统计哈;  
103 - List<MemberTerminalStatisticsRespVO> list = convertList(TerminalEnum.values(),  
104 - t -> new MemberTerminalStatisticsRespVO()  
105 - .setTerminal(t.getTerminal()).setUserCount(t.getTerminal() * 100));  
106 - return success(list); 99 + return success(memberStatisticsService.getRegisterTerminalStatisticsList());
107 } 100 }
108 101
109 @GetMapping("/user-count-comparison") 102 @GetMapping("/user-count-comparison")
yudao-module-mall/yudao-module-statistics-biz/src/main/java/cn/iocoder/yudao/module/statistics/dal/mysql/member/MemberStatisticsMapper.java
@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.statistics.dal.mysql.member; @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.statistics.dal.mysql.member;
3 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 3 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
4 import cn.iocoder.yudao.module.statistics.controller.admin.member.vo.MemberRegisterCountRespVO; 4 import cn.iocoder.yudao.module.statistics.controller.admin.member.vo.MemberRegisterCountRespVO;
5 import cn.iocoder.yudao.module.statistics.controller.admin.member.vo.MemberSexStatisticsRespVO; 5 import cn.iocoder.yudao.module.statistics.controller.admin.member.vo.MemberSexStatisticsRespVO;
  6 +import cn.iocoder.yudao.module.statistics.controller.admin.member.vo.MemberTerminalStatisticsRespVO;
6 import cn.iocoder.yudao.module.statistics.service.member.bo.MemberAreaStatisticsRespBO; 7 import cn.iocoder.yudao.module.statistics.service.member.bo.MemberAreaStatisticsRespBO;
7 import org.apache.ibatis.annotations.Mapper; 8 import org.apache.ibatis.annotations.Mapper;
8 import org.apache.ibatis.annotations.Param; 9 import org.apache.ibatis.annotations.Param;
@@ -23,6 +24,8 @@ public interface MemberStatisticsMapper extends BaseMapperX { @@ -23,6 +24,8 @@ public interface MemberStatisticsMapper extends BaseMapperX {
23 24
24 List<MemberSexStatisticsRespVO> selectSummaryListBySex(); 25 List<MemberSexStatisticsRespVO> selectSummaryListBySex();
25 26
  27 + List<MemberTerminalStatisticsRespVO> selectSummaryListByRegisterTerminal();
  28 +
26 // TODO @芋艿:已经 review 29 // TODO @芋艿:已经 review
27 Integer selectUserCount(@Param("beginTime") LocalDateTime beginTime, 30 Integer selectUserCount(@Param("beginTime") LocalDateTime beginTime,
28 @Param("endTime") LocalDateTime endTime); 31 @Param("endTime") LocalDateTime endTime);
yudao-module-mall/yudao-module-statistics-biz/src/main/java/cn/iocoder/yudao/module/statistics/service/member/MemberStatisticsService.java
@@ -46,6 +46,13 @@ public interface MemberStatisticsService { @@ -46,6 +46,13 @@ public interface MemberStatisticsService {
46 List<MemberSexStatisticsRespVO> getMemberSexStatisticsList(); 46 List<MemberSexStatisticsRespVO> getMemberSexStatisticsList();
47 47
48 /** 48 /**
  49 + * 按照终端,获得会员统计列表
  50 + *
  51 + * @return 会员统计列表
  52 + */
  53 + List<MemberTerminalStatisticsRespVO> getRegisterTerminalStatisticsList();
  54 +
  55 + /**
49 * 获取用户注册数量列表 56 * 获取用户注册数量列表
50 * 57 *
51 * @param beginTime 起始时间 58 * @param beginTime 起始时间
yudao-module-mall/yudao-module-statistics-biz/src/main/java/cn/iocoder/yudao/module/statistics/service/member/MemberStatisticsServiceImpl.java
@@ -105,6 +105,11 @@ public class MemberStatisticsServiceImpl implements MemberStatisticsService { @@ -105,6 +105,11 @@ public class MemberStatisticsServiceImpl implements MemberStatisticsService {
105 } 105 }
106 106
107 @Override 107 @Override
  108 + public List<MemberTerminalStatisticsRespVO> getRegisterTerminalStatisticsList() {
  109 + return memberStatisticsMapper.selectSummaryListByRegisterTerminal();
  110 + }
  111 +
  112 + @Override
108 public List<MemberRegisterCountRespVO> getMemberRegisterCountList(LocalDateTime beginTime, LocalDateTime endTime) { 113 public List<MemberRegisterCountRespVO> getMemberRegisterCountList(LocalDateTime beginTime, LocalDateTime endTime) {
109 return memberStatisticsMapper.selectListByCreateTimeBetween(beginTime, endTime); 114 return memberStatisticsMapper.selectListByCreateTimeBetween(beginTime, endTime);
110 } 115 }
yudao-module-mall/yudao-module-statistics-biz/src/main/resources/mapper/member/MemberStatisticsMapper.xml
@@ -18,6 +18,14 @@ @@ -18,6 +18,14 @@
18 GROUP BY sex 18 GROUP BY sex
19 </select> 19 </select>
20 20
  21 + <select id="selectSummaryListByRegisterTerminal"
  22 + resultType="cn.iocoder.yudao.module.statistics.controller.admin.member.vo.MemberTerminalStatisticsRespVO">
  23 + SELECT register_terminal as terminal, COUNT(1) AS userCount
  24 + FROM member_user
  25 + WHERE deleted = FALSE
  26 + GROUP BY register_terminal
  27 + </select>
  28 +
21 <select id="selectUserCount" resultType="java.lang.Integer"> 29 <select id="selectUserCount" resultType="java.lang.Integer">
22 SELECT COUNT(1) 30 SELECT COUNT(1)
23 FROM member_user 31 FROM member_user