yanghui
2022-10-14 c6232cfc36e373f83f45c95d400e09466cc2a7d3
#feat 修改运营平台统计登录人数和新增人员
4个文件已修改
260 ■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/DateUtils.java 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/UserDao.java 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java 68 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/UserDao.xml 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/DateUtils.java
@@ -4,11 +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 java.util.*;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@@ -931,8 +930,7 @@
         Date after = getLastMonthEnd();
         System.out.println(date);
         System.out.println(after);
         System.out.println(getMonthTwentyDay());
    }
    /**
@@ -1129,4 +1127,39 @@
        return firstDayOfMonth;
    }
    /**
     * 获取20天前那天时间
     *
     * @return
     */
    public static String getTwentyDay() {
        Calendar cal = Calendar.getInstance();
        cal.setTime(new Date());
        cal.add(Calendar.DATE, -20);
        return DateUtil.format(cal.getTime(),"yyyy-MM-dd");
    }
    /**
     * 获取最近本月20天数据
     *
     * @return
     */
    public static String getMonthTwentyDay() {
        Date date = new Date();
        Long offset = DateUtil.between(new Date(), DateUtil.beginOfMonth(date), DateUnit.DAY);
        if (offset >= 20) {
            return getTwentyDay();
        } else {
            //距离月初不足20天
            Calendar calendar = new GregorianCalendar();
            calendar.setTime(date);
            //获得本月第一天
            calendar.add(Calendar.MONTH, 0);
            calendar.set(Calendar.DAY_OF_MONTH, 1);
            return DateUtil.format(calendar.getTime(),"yyyy-MM-dd");
        }
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/UserDao.java
@@ -1,18 +1,5 @@
package com.panzhihua.service_user.dao;
import java.util.Date;
import java.util.List;
import java.util.Map;
import com.panzhihua.common.model.vos.community.*;
import com.panzhihua.common.model.vos.community.acid.ComActAcidCheckRecordVO;
import com.panzhihua.common.model.vos.community.acid.ComActAcidMemberVO;
import com.panzhihua.common.model.vos.community.acid.ComActAcidRecordVO;
import com.panzhihua.common.model.vos.user.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.RequestParam;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -27,15 +14,23 @@
import com.panzhihua.common.model.vos.IndexDataKanbanVO;
import com.panzhihua.common.model.vos.IndexDataVO;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.model.vos.community.*;
import com.panzhihua.common.model.vos.community.acid.ComActAcidCheckRecordVO;
import com.panzhihua.common.model.vos.community.acid.ComActAcidMemberVO;
import com.panzhihua.common.model.vos.community.acid.ComActAcidRecordVO;
import com.panzhihua.common.model.vos.community.screen.event.EventGridMemberVO;
import com.panzhihua.common.model.vos.grid.GridMemberVO;
import com.panzhihua.common.model.vos.partybuilding.ComPbServiceTeamWishVO;
import com.panzhihua.common.model.vos.user.AdministratorsUserVO;
import com.panzhihua.common.model.vos.user.SysUserNoticeVO;
import com.panzhihua.common.model.vos.user.SysUserVO;
import com.panzhihua.common.model.vos.user.UpdateUserArchivesVO;
import com.panzhihua.common.model.vos.user.*;
import com.panzhihua.service_user.model.dos.SysUserDO;
import com.panzhihua.service_user.model.dtos.DataKanbanDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * @program: springcloud_k8s_panzhihuazhihuishequ
@@ -54,11 +49,11 @@
    IPage<AdministratorsUserVO> pageUserBackstage(Page page,
        @Param("administratorsUserVO") AdministratorsUserVO administratorsUserVO);
                                                  @Param("administratorsUserVO") AdministratorsUserVO administratorsUserVO);
    IPage<SysUserVO> pageUserAppletsBackstage(Page page,
        @Param("pageUserAppletsBackstageDTO") PageUserAppletsBackstageDTO pageUserAppletsBackstageDTO);
                                              @Param("pageUserAppletsBackstageDTO") PageUserAppletsBackstageDTO pageUserAppletsBackstageDTO);
    int deleteUserTest(Long userId);
@@ -77,7 +72,7 @@
    DataKanbanDTO selectCommunityActiveUserOrder(Date date1);
    DataKanbanDTO selectCommunityAddUserOrder(@Param("areaCode")String areaCode,@Param("date1")Date date1);
    DataKanbanDTO selectCommunityAddUserOrder(@Param("areaCode") String areaCode, @Param("date1") Date date1);
    IndexDataVO indexDataCommunityBackstage(Long communityId);
@@ -135,7 +130,7 @@
    IPage<GridMemberVO> getGridMemberList(Page page,
        @Param("memberRelationDTO") PageEventGridMemberRelationDTO memberRelationDTO);
                                          @Param("memberRelationDTO") PageEventGridMemberRelationDTO memberRelationDTO);
    void gridMemberEditStatus(@Param("gridMemberEditDTO") EventGridMemberEditStatusDTO gridMemberEditDTO);
@@ -145,7 +140,7 @@
    void addLcMember(@Param("lcMemberId") Long lcMemberId, @Param("userId") Long userId,
        @Param("userName") String userName);
                     @Param("userName") String userName);
    void delLcMember(@Param("gridMemberId") Long gridMemberId);
@@ -166,7 +161,7 @@
    List<ComPbServiceTeamWishVO> getServiceTeamList(@Param("param") String param,
        @Param("communityId") Long communityId);
                                                    @Param("communityId") Long communityId);
    List<SysUserVO> getUserListByCommunityId(@Param("communityId") Long communityId);
@@ -175,6 +170,7 @@
    /**
     * 禁用/启用便民服务商家账号
     *
     * @param status
     * @param userIds
     * @return
@@ -183,38 +179,44 @@
    /**
     * 根据手机号维护社区团队表是否注册
     *
     * @param phone 手机号
     */
    void judgeCommunityTeam(@Param("phone") String phone);
    /**
     * 根据手机号查询社区团队表中用户数量
     *
     * @param phone 手机号
     * @return  用户数量
     * @return 用户数量
     */
    Integer getCommunityTeamCount(@Param("phone") String phone);
    /**
     * 查询西区所有街道列表以及统计人数
     * @return  西区所有街道列表以及统计人数
     *
     * @return 西区所有街道列表以及统计人数
     */
    List<IndexUserStreetVo> getUserStreetList(@Param("areaCode") String areaCode);
    /**
     * 查询街道下社区列表以及统计人数
     * @param streetId  街道id
     * @return  社区列表以及统计人数
     *
     * @param streetId 街道id
     * @return 社区列表以及统计人数
     */
    List<IndexUserCommunityVo> getUserCommunityList(@Param("streetId") Long streetId);
    /**
     * 查询街道下社区注册人数统计数据导出
     * @return  社区注册人数统计数据导出
     *
     * @return 社区注册人数统计数据导出
     */
    List<IndexUserStreetExcelExportVo> getUserCommunityExcelExport(String areaCode);
    /**
     * 查看是否是社区物业人员
     *
     * @param userId
     * @param userCommunityId
     * @return
@@ -223,6 +225,7 @@
    /**
     * 查看是否社工
     *
     * @param phone
     * @param communityId
     * @return
@@ -231,6 +234,7 @@
    /**
     * 查看是否社会组织
     *
     * @param userId
     * @return
     */
@@ -239,6 +243,7 @@
    /**
     * 查看是否是微团队成员
     *
     * @param phone
     * @param userCommunityId
     * @return
@@ -247,6 +252,7 @@
    /**
     * 查询街道信息
     *
     * @param streetId
     * @return
     */
@@ -254,6 +260,7 @@
    /**
     * 查询是否是社会组织成员
     *
     * @param userId
     * @return
     */
@@ -261,6 +268,7 @@
    /**
     * 查询是否社会组织联系人
     *
     * @param phone
     * @return
     */
@@ -268,21 +276,25 @@
    /**
     * 查询是否人大代表
     *
     * @param phone
     * @param userCommunityId
     * @return
     */
    int selectCountDpc(@Param("phone") String phone, @Param("userCommunityId") Long userCommunityId);
    /**
     * 查看是否网格员
     *
     * @param phone
     * @param userCommunityId
     * @return
     */
    int countEasyPhotoMember(@Param("phone") String phone,@Param("communityId") Long userCommunityId);
    int countEasyPhotoMember(@Param("phone") String phone, @Param("communityId") Long userCommunityId);
    /**
     * 查询防疫工作人员信息
     *
     * @param phone
     * @return
     */
@@ -290,6 +302,7 @@
    /**
     * 查询单位管理员
     *
     * @param phone
     * @return
     */
@@ -297,6 +310,7 @@
    /**
     * 查询报道单位id
     *
     * @param phone
     * @return
     */
@@ -304,6 +318,7 @@
    /**
     * 根据社区名称查询区县社区联动关系
     *
     * @param relationName
     * @return
     */
@@ -311,6 +326,7 @@
    /**
     * 根据街道id查询区域名称
     *
     * @param streetId
     * @return
     */
@@ -318,28 +334,32 @@
    /**
     * 看板用户统计:用户占比统计
     * */
    List<UserProportion> userAnalysis(@Param("type") Integer type,@Param("range") String range,@Param("streetId") Long streetId,@Param("areaCode")Long areaCode,@Param("appId")String appId);
     */
    List<UserProportion> userAnalysis(@Param("type") Integer type, @Param("range") String range, @Param("streetId") Long streetId, @Param("areaCode") Long areaCode, @Param("appId") String appId);
    /**
     * 统计区域实名用户数
     * */
    List<RealUser> realUserCount(@Param("type") Integer type,@Param("range") String range,@Param("streetId") Long streetId,@Param("areaCode")Long areaCode,@Param("appId")String appId);
     */
    List<RealUser> realUserCount(@Param("type") Integer type, @Param("range") String range, @Param("streetId") Long streetId, @Param("areaCode") Long areaCode, @Param("appId") String appId);
    /**
     * 统计该街道内的所有用户数
     * */
    Integer streetUserCount(@Param("id") Long id,@Param("areaCode")Long areaCode);
     */
    Integer streetUserCount(@Param("id") Long id, @Param("areaCode") Long areaCode);
    /**
     * 街道用户统计
     * */
    IndexDataKanbanVO dataKanBanStreet(@Param("streetId") Long streetId,@Param("areaCode") Long areaCode,@Param("range") String range);
     */
    IndexDataKanbanVO dataKanBanStreet(@Param("streetId") Long streetId, @Param("areaCode") Long areaCode, @Param("range") String range);
    /**
     * 获取当天的新增和日活
     * */
    Map<String,Long> getDailyAddAndActive(@Param("date") Date date, @Param("id") Long streetId, @Param("areaCode") Long areaCode, @Param("appId") String appId);
     */
    Map<String, Long> getDailyAddAndActive(@Param("date") Date date, @Param("id") Long streetId, @Param("areaCode") Long areaCode, @Param("appId") String appId);
    Map<String, Long> getDailyAdd(@Param("createAt") String createAt, @Param("id") Long streetId, @Param("areaCode") Long areaCode, @Param("appId") String appId);
    Map<String, Long> getActive(@Param("lastLoginTime") String lastLoginTime, @Param("id") Long streetId, @Param("areaCode") Long areaCode, @Param("appId") String appId);
    List<StreetVOS> selectStreetByAreaCode(Integer code);
@@ -354,17 +374,17 @@
    /**
     * 获取本月的
     * */
    Integer getMonthUsers(@Param("streetId") Long streetId,@Param("areaCode") Long areaCode,@Param("range") String range,@Param("appId")String appId);
     */
    Integer getMonthUsers(@Param("streetId") Long streetId, @Param("areaCode") Long areaCode, @Param("range") String range, @Param("appId") String appId);
    /**
     * 获取街道下属村/社区
     * */
    List<CommunityVO> selectCommunityByStreetId(@Param("id") Long streetId,@Param("type") Integer type);
     */
    List<CommunityVO> selectCommunityByStreetId(@Param("id") Long streetId, @Param("type") Integer type);
    /**
     * 获取账户id
     * */
     */
    List<Integer> selectIdsByAccount(@Param("array") String[] streetList);
    List<CommunityVO> selectCommunityByStreetName(String name);
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java
@@ -141,13 +141,17 @@
        // String encode = new BCryptPasswordEncoder().encode("lbsq123456");
        // System.out.println(encode);
        List<String> dates = new ArrayList<>();
//        List<String> dates = new ArrayList<>();
//        Date date = new Date();
//        for (int i = 19; i >= 0; i--) {
//            Date date1 = DateUtils.addDays(date, -i);
//            dates.add(DateFormatUtils.format(date1, "MM-dd"));
//        }
//        System.out.println(dates);
        Date date = new Date();
        for (int i = 19; i >= 0; i--) {
            Date date1 = DateUtils.addDays(date, -i);
            dates.add(DateFormatUtils.format(date1, "MM-dd"));
        }
        System.out.println(dates);
        Long offset = DateUtil.between(new Date(), DateUtil.beginOfMonth(date), DateUnit.DAY);
        System.out.println(offset);
        // BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
        // boolean matches = encoder.matches("admin1234567", encode);
@@ -3180,7 +3184,7 @@
        } else if ("wx98d62711dfbd8425".equals(uuLoginVO.getAppid())) {
            appId = "10001";
            secret = "d89f3a35931c386956c1a402a8e09941";
        }else {
        } else {
            return R.fail("appid未传");
        }
        uuLoginVO.setAppid(appId);
@@ -3193,7 +3197,7 @@
        }
        Map<String, String> headerMap = new HashMap<>();
        headerMap.put("appid", appId);
        String resultJson = HttpClientUtil.get("https://api.uucsh.cn/member/wx/get-access?province=" + uuLoginVO.getProvince() + "&city=" + uuLoginVO.getCity() + "&area=" + uuLoginVO.getArea() + "&appid="+appId+"&timestamp=" + uuLoginVO.getTimestamp() + "&sign=" + uuLoginVO.getSign() + "&mobile=" + uuLoginVO.getMobile() + "&couponId=" + uuLoginVO.getCouponId(), headerMap, null);
        String resultJson = HttpClientUtil.get("https://api.uucsh.cn/member/wx/get-access?province=" + uuLoginVO.getProvince() + "&city=" + uuLoginVO.getCity() + "&area=" + uuLoginVO.getArea() + "&appid=" + appId + "&timestamp=" + uuLoginVO.getTimestamp() + "&sign=" + uuLoginVO.getSign() + "&mobile=" + uuLoginVO.getMobile() + "&couponId=" + uuLoginVO.getCouponId(), headerMap, null);
        JSONObject result = JSON.parseObject(resultJson);
        if (result.get("status").equals(1)) {
            return R.ok(result.get("data"));
@@ -3420,25 +3424,56 @@
        return R.ok(realUserVO);
    }
//    @Override
//    public R userActivity(Integer type, Long streetId, Long areaCode, Integer range, String appId) {
//        UserActivityAnalysisVO vo = new UserActivityAnalysisVO();
//        List<Date> activeX = getTwentyDays();
//        List<String> activeY = new ArrayList<>();
//        List<String> adY = new ArrayList<>();
//        if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(range)) {
//            if (range.equals(1)) {
//                //本月数据
//                activeX = getMonthTwentyDays();
//            }
//        }
//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//        for (Date date : activeX) {
//            Map<String, Long> map = userDao.getDailyAddAndActive(DateUtil.parse(sdf.format(date)), streetId, areaCode, appId);
//            adY.add(map.get("addUser").toString());
//            activeY.add(map.get("activeUser").toString());
//        }
//        vo.setUserX(getMAndD(activeX));
//        vo.setAddUserY(adY);
//        vo.setActiveUserY(activeY);
//        return R.ok(vo);
//    }
    @Override
    public R userActivity(Integer type, Long streetId, Long areaCode, Integer range, String appId) {
        UserActivityAnalysisVO vo = new UserActivityAnalysisVO();
        List<Date> activeX = getTwentyDays();
        String activeX = com.panzhihua.common.utlis.DateUtils.getTwentyDay();
        List<Date> activeDate = getTwentyDays();
        List<String> activeY = new ArrayList<>();
        List<String> adY = new ArrayList<>();
        if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(range)) {
            if (range.equals(1)) {
                //本月数据
                activeX = getMonthTwentyDays();
                activeX = com.panzhihua.common.utlis.DateUtils.getMonthTwentyDay();
                activeDate = getMonthTwentyDays();
            }
        }
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        for (Date date : activeX) {
            Map<String, Long> map = userDao.getDailyAddAndActive(DateUtil.parse(sdf.format(date)), streetId, areaCode, appId);
            adY.add(map.get("addUser").toString());
            activeY.add(map.get("activeUser").toString());
        //获取最近活跃人数
        Map<String, Long> active = userDao.getActive(activeX, streetId, areaCode, appId);
        //获取最近注册人数
        Map<String, Long> dailyAdd = userDao.getDailyAdd(activeX, streetId, areaCode, appId);
        for (Date date : activeDate) {
            String dateStr = DateUtil.format(date, "yyyy-MM-dd");
            activeY.add(active.containsKey(dateStr) ? active.get("activeUser").toString() : "0");
            adY.add(dailyAdd.containsKey(dateStr) ? dailyAdd.get("addUser").toString() : "0");
        }
        vo.setUserX(getMAndD(activeX));
        vo.setUserX(getMAndD(activeDate));
        vo.setAddUserY(adY);
        vo.setActiveUserY(activeY);
        return R.ok(vo);
@@ -3683,6 +3718,7 @@
        return dates;
    }
    /**
     * 获取最近本月20天数据
     *
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/UserDao.xml
@@ -709,6 +709,45 @@
        </if>
    </select>
    <select id="getDailyAdd" resultType="java.util.Map">
        SELECT DATE_FORMAT( su.create_at, '%Y-%m-%d' ) as createAt ,count(su.user_id) as addUser      FROM
        sys_user AS su
        LEFT JOIN com_act AS ac ON su.community_id = ac.community_id
        LEFT JOIN com_street AS cs ON ac.street_id = cs.street_id
        where su.community_id&lt;>''
        and cs.area_code&lt;>''
        and su.type = 1
        <if test="appId != null and appId != &quot;&quot;">
            and su.app_id = #{appId}
        </if>
        <if test="id != null">
            and cs.street_id=#{id}
        </if>
        <if test="areaCode != null">
            and cs.area_code=#{areaCode}
        </if>
        AND su.create_at > #{createAt} GROUP BY createAt
    </select>
    <select id="getActive" resultType="java.util.Map">
        SELECT DATE_FORMAT( su.last_login_time, '%Y-%m-%d' ) as createAt ,count(su.user_id) as activeUser      FROM
        sys_user AS su
        LEFT JOIN com_act AS ac ON su.community_id = ac.community_id
        LEFT JOIN com_street AS cs ON ac.street_id = cs.street_id
        where su.community_id&lt;>''
        and cs.area_code&lt;>''
        and su.type = 1
        <if test="appId != null and appId != &quot;&quot;">
            and su.app_id = #{appId}
        </if>
        <if test="id != null">
            and cs.street_id=#{id}
        </if>
        <if test="areaCode != null">
            and cs.area_code=#{areaCode}
        </if>
        AND su.last_login_time > #{lastLoginTime} GROUP BY createAt
    </select>
    <select id="selectStreetByAreaCode" resultType="com.panzhihua.common.model.vos.user.StreetVOS">
        select street_id as id,name as name from com_street where area_code=#{code} and app_id ='wx118de8a734d269f0'
    </select>