springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/IndexApi.java
@@ -2,9 +2,8 @@ import javax.annotation.Resource; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.panzhihua.common.model.dtos.DataKanBansDto; import org.springframework.web.bind.annotation.*; import com.panzhihua.common.model.vos.IndexDataKanbanVO; import com.panzhihua.common.model.vos.R; @@ -31,4 +30,10 @@ public R dataKanban() { return userService.dataKanban(); } @ApiOperation(value = "数据看板", response = IndexDataKanbanVO.class) @PostMapping("datakanbans") public R dataKanBans(@RequestBody DataKanBansDto dataKanBansDto) { return userService.dataKanBans(dataKanBansDto); } } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/DataKanBansDto.java
New file @@ -0,0 +1,25 @@ package com.panzhihua.common.model.dtos; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @author lyq * 运营后台数据看板请求参数 */ @Data @ApiModel("运营后台数据看板请求参数") public class DataKanBansDto { @ApiModelProperty("社区用户量统计类型(1.累计用户 2.本月新增)") private Integer type; /** * 社区用户量统计类型(1.累计用户 2.本月新增) */ public interface type{ int lj = 1; int by = 2; } } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/IndexDataKanbanVO.java
@@ -30,6 +30,8 @@ private List<Integer> communityUserY; @ApiModelProperty("社区活跃度x轴") private List<String> communityActiveUserX; @ApiModelProperty("社区活跃度y轴") @ApiModelProperty("用户新增数量y轴") private List<Integer> communityAddUserY; @ApiModelProperty("日活跃用户数量y轴") private List<Integer> communityActiveUserY; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/user/UserService.java
@@ -2,6 +2,7 @@ import java.util.List; import com.panzhihua.common.model.dtos.DataKanBansDto; import com.panzhihua.common.model.dtos.community.convenient.ConvenientMerchantDTO; import com.panzhihua.common.model.dtos.community.convenient.DisableOrEnableConvenientMerchantDTO; import org.springframework.cloud.openfeign.FeignClient; @@ -1061,4 +1062,12 @@ */ @GetMapping("judgeCommunityTeam") void judgeCommunityTeam(@RequestParam("openid") String openid); /** * 数据看板升级版 * * @return 运营后台数据看板升级版 */ @PostMapping("datakanbans") R dataKanBans(@RequestBody DataKanBansDto dataKanBansDto); } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/DateUtils.java
@@ -4,8 +4,10 @@ import java.text.SimpleDateFormat; import java.time.*; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; import lombok.extern.slf4j.Slf4j; @@ -962,4 +964,18 @@ String lastMonthEndTime = yyyyMMdd_format.format(lastMonthEndDateCal.getTime()) + " 23:59:59"; return stringToDateStandard(lastMonthEndTime); } /** * 获取近20天日期 * @return 近20天日期 */ public static List<Date> getOldDays() { List<Date> dates = new ArrayList<>(); Date date = new Date(); for (int i = 19; i >= 0; i--) { Date date1 = DateUtils.addDay(date, -i); dates.add(date1); } return dates; } } springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/api/UserApi.java
@@ -4,6 +4,7 @@ import javax.annotation.Resource; import com.panzhihua.common.model.dtos.DataKanBansDto; import com.panzhihua.common.model.dtos.community.convenient.ConvenientMerchantDTO; import com.panzhihua.common.model.dtos.community.convenient.DisableOrEnableConvenientMerchantDTO; import org.springframework.web.bind.annotation.*; @@ -1201,4 +1202,9 @@ public void judgeCommunityTeam(@RequestParam("openid") String openid) { userService.judgeCommunityTeam(openid); } @PostMapping("datakanbans") public R dataKanBans(@RequestBody DataKanBansDto dataKanBansDto) { return userService.dataKanBans(dataKanBansDto); } } springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/UserDao.java
@@ -71,9 +71,13 @@ List<DataKanbanDTO> selectCommunityUserOrder(); List<DataKanbanDTO> selectCommunityUserOrderMonth(); DataKanbanDTO selectCommunityActiveUserOrder(Date date1); DataKanbanDTO selectCommunityAddUserOrder(Date date1); IndexDataVO indexDataCommunityBackstage(Long communityId); springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dtos/DataKanbanDTO.java
@@ -13,4 +13,5 @@ private String name; private Integer num; private Integer dayNum; } springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/UserService.java
@@ -2,6 +2,7 @@ import java.util.List; import com.panzhihua.common.model.dtos.DataKanBansDto; import com.panzhihua.common.model.dtos.PageDTO; import com.panzhihua.common.model.dtos.community.ExportUserDTO; import com.panzhihua.common.model.dtos.community.NoticeReadDTO; @@ -733,4 +734,6 @@ * @param openid 用户微信唯一标识 */ void judgeCommunityTeam(String openid); R dataKanBans(DataKanBansDto dataKanBansDto); } springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java
@@ -15,6 +15,7 @@ import javax.annotation.Resource; import cn.hutool.core.util.IdcardUtil; import com.panzhihua.common.model.dtos.DataKanBansDto; import com.panzhihua.service_user.dao.*; import com.panzhihua.service_user.model.dos.*; import org.apache.commons.lang.time.DateFormatUtils; @@ -2675,4 +2676,44 @@ } } } @Override public R dataKanBans(DataKanBansDto dataKanBansDto){ IndexDataKanbanVO indexDataKanbanVO = userDao.selectIndexDataKanban(); List<String> communityUserX = new ArrayList<>(); List<Integer> communityUserY = new ArrayList<>(); List<String> communityActiveUserX = new ArrayList<>(); List<Integer> communityActiveUserY = new ArrayList<>(); List<Integer> communityActiveUserZ = new ArrayList<>(); List<DataKanbanDTO> dataKanbanDTOS = null; if(dataKanBansDto.getType() != null && dataKanBansDto.getType().equals(DataKanBansDto.type.by)){ dataKanbanDTOS = userDao.selectCommunityUserOrderMonth(); }else{ dataKanbanDTOS = userDao.selectCommunityUserOrder(); } if (!ObjectUtils.isEmpty(dataKanbanDTOS)) { dataKanbanDTOS.forEach(dataKanbanDTO -> { communityUserX.add(dataKanbanDTO.getName()); communityUserY.add(dataKanbanDTO.getNum()); }); } // 获取最近七天数据 List<Date> serverndays = com.panzhihua.common.utlis.DateUtils.getOldDays(); serverndays.forEach(date -> { // 查询社区活动数量 DataKanbanDTO dataKanbanDTO = userDao.selectCommunityAddUserOrder(date); communityActiveUserX.add(DateFormatUtils.format(date, "MM-dd")); communityActiveUserY.add(dataKanbanDTO.getNum()); communityActiveUserZ.add(dataKanbanDTO.getDayNum()); }); indexDataKanbanVO.setCommunityActiveUserX(communityActiveUserX); indexDataKanbanVO.setCommunityAddUserY(communityActiveUserY); indexDataKanbanVO.setCommunityActiveUserY(communityActiveUserZ); indexDataKanbanVO.setCommunityUserX(communityUserX); indexDataKanbanVO.setCommunityUserY(communityUserY); return R.ok(indexDataKanbanVO); } } springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/UserDao.xml
@@ -130,10 +130,26 @@ select t.* from ( SELECT a.`name`, COUNT(u.user_id)num COUNT(u.user_id)num, (SELECT count( user_id ) FROM sys_user WHERE type = 1 and community_id = a.community_id AND last_login_time > DATE_FORMAT( date_sub( SYSDATE(), INTERVAL 0 DAY ), '%Y-%m-%d 00:00:00')) as dayNum FROM com_act a LEFT JOIN sys_user u ON a.community_id = u.community_id and u.type=1 GROUP BY a.community_id)t ORDER BY t.num desc </select> <select id="selectCommunityUserOrderMonth" resultType="com.panzhihua.service_user.model.dtos.DataKanbanDTO"> select t.* from ( SELECT a.`name`, COUNT(u.user_id)num, (SELECT count( user_id ) FROM sys_user WHERE type = 1 and community_id = a.community_id AND last_login_time > DATE_FORMAT( date_sub( SYSDATE(), INTERVAL 0 DAY ), '%Y-%m-%d 00:00:00')) as dayNum FROM com_act a LEFT JOIN sys_user u ON a.community_id = u.community_id and u.type=1 and u.create_at <![CDATA[ >= ]]> DATE_SUB(DATE_FORMAT(CURDATE(),'%Y-%m-%d 00:00:00'),INTERVAL 0 DAY) GROUP BY a.community_id)t ORDER BY t.num desc </select> @@ -182,6 +198,16 @@ DATE_FORMAT( #{date1}, '%Y-%m-%d' )= DATE_FORMAT( a.create_at,'%Y-%m-%d') </select> <select id="selectCommunityAddUserOrder" resultType="com.panzhihua.service_user.model.dtos.DataKanbanDTO"> select count(user_id) as num, (SELECT count( user_id ) FROM sys_user WHERE type = 1 AND last_login_time <![CDATA[ >= ]]> DATE_FORMAT( #{date1}, '%Y-%m-%d 00:00:00') AND last_login_time <![CDATA[ <= ]]> DATE_FORMAT( #{date1}, '%Y-%m-%d 23:59:59')) as dayNum from sys_user as su where su.create_at <![CDATA[ >= ]]> DATE_SUB(DATE_FORMAT(#{date1},'%Y-%m-%d 00:00:00'),INTERVAL 0 DAY) and su.create_at <![CDATA[ <= ]]> DATE_SUB(DATE_FORMAT(#{date1},'%Y-%m-%d 23:59:59'),INTERVAL 0 DAY) and su.type = 1 </select> <update id="gridMemberEditStatus"> update sys_user set status = #{gridMemberEditDTO.status} where user_id in <foreach item="item" collection="gridMemberEditDTO.ids" separator="," open="(" close=")" index="">