Преглед изворни кода

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

owen пре 1 година
родитељ
комит
b6d400e04a

+ 1 - 8
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;
 
 import cn.hutool.core.util.ArrayUtil;
 import cn.hutool.core.util.NumberUtil;
-import cn.iocoder.yudao.framework.common.enums.TerminalEnum;
 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.module.statistics.controller.admin.common.vo.DataComparisonRespVO;
@@ -25,7 +24,6 @@ import java.time.LocalDateTime;
 import java.util.List;
 
 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
-import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
 
 @Tag(name = "管理后台 - 会员统计")
 @RestController
@@ -98,12 +96,7 @@ public class MemberStatisticsController {
     @Operation(summary = "按照终端,获得会员统计列表")
     @PreAuthorize("@ss.hasPermission('statistics:member:query')")
     public CommonResult<List<MemberTerminalStatisticsRespVO>> getMemberTerminalStatisticsList() {
-        // TODO 疯狂:这个可以晚点写,因为 user = = 上还没记录 terminal
-        // TODO @疯狂:在 member_user 上,增加 registerTerminal 字段,基于它来统计哈;
-        List<MemberTerminalStatisticsRespVO> list = convertList(TerminalEnum.values(),
-                t -> new MemberTerminalStatisticsRespVO()
-                        .setTerminal(t.getTerminal()).setUserCount(t.getTerminal() * 100));
-        return success(list);
+        return success(memberStatisticsService.getRegisterTerminalStatisticsList());
     }
 
     @GetMapping("/user-count-comparison")

+ 3 - 0
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;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
 import cn.iocoder.yudao.module.statistics.controller.admin.member.vo.MemberRegisterCountRespVO;
 import cn.iocoder.yudao.module.statistics.controller.admin.member.vo.MemberSexStatisticsRespVO;
+import cn.iocoder.yudao.module.statistics.controller.admin.member.vo.MemberTerminalStatisticsRespVO;
 import cn.iocoder.yudao.module.statistics.service.member.bo.MemberAreaStatisticsRespBO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -23,6 +24,8 @@ public interface MemberStatisticsMapper extends BaseMapperX {
 
     List<MemberSexStatisticsRespVO> selectSummaryListBySex();
 
+    List<MemberTerminalStatisticsRespVO> selectSummaryListByRegisterTerminal();
+
     // TODO @芋艿:已经 review
     Integer selectUserCount(@Param("beginTime") LocalDateTime beginTime,
                             @Param("endTime") LocalDateTime endTime);

+ 7 - 0
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 {
     List<MemberSexStatisticsRespVO> getMemberSexStatisticsList();
 
     /**
+     * 按照终端,获得会员统计列表
+     *
+     * @return 会员统计列表
+     */
+    List<MemberTerminalStatisticsRespVO> getRegisterTerminalStatisticsList();
+
+    /**
      * 获取用户注册数量列表
      *
      * @param beginTime 起始时间

+ 5 - 0
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 {
     }
 
     @Override
+    public List<MemberTerminalStatisticsRespVO> getRegisterTerminalStatisticsList() {
+        return memberStatisticsMapper.selectSummaryListByRegisterTerminal();
+    }
+
+    @Override
     public List<MemberRegisterCountRespVO> getMemberRegisterCountList(LocalDateTime beginTime, LocalDateTime endTime) {
         return memberStatisticsMapper.selectListByCreateTimeBetween(beginTime, endTime);
     }

+ 8 - 0
yudao-module-mall/yudao-module-statistics-biz/src/main/resources/mapper/member/MemberStatisticsMapper.xml

@@ -18,6 +18,14 @@
         GROUP BY sex
     </select>
 
+    <select id="selectSummaryListByRegisterTerminal"
+                         resultType="cn.iocoder.yudao.module.statistics.controller.admin.member.vo.MemberTerminalStatisticsRespVO">
+        SELECT register_terminal as terminal, COUNT(1) AS userCount
+        FROM member_user
+        WHERE deleted = FALSE
+        GROUP BY register_terminal
+    </select>
+
     <select id="selectUserCount" resultType="java.lang.Integer">
         SELECT COUNT(1)
         FROM member_user