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+"×tamp=" + 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 + "×tamp=" + 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<>'' and cs.area_code<>'' and su.type = 1 <if test="appId != null and appId != """> 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<>'' and cs.area_code<>'' and su.type = 1 <if test="appId != null and appId != """> 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>