From cf60a875646dbaaa7932f93286d8e708ed79c6dc Mon Sep 17 00:00:00 2001 From: 张天森 <1292933220@qq.com> Date: 星期一, 18 七月 2022 17:39:33 +0800 Subject: [PATCH] update --- springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java | 657 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 610 insertions(+), 47 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java index d18f6f1..3753f8e 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java @@ -2,26 +2,36 @@ import static java.util.Objects.isNull; import static java.util.Objects.nonNull; +import static org.apache.commons.lang3.StringUtils.capitalize; import static org.apache.commons.lang3.StringUtils.isNotBlank; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Random; -import java.util.Set; +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.*; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import javax.annotation.Resource; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.collection.ListUtil; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.NumberUtil; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; import com.panzhihua.common.model.dtos.community.microCommercialStreet.BindUserPhoneDTO; import com.panzhihua.common.model.vos.community.ComAreaTownCommunityVO; +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.microCommercialStreet.McsLoginUserInfoVO; +import com.panzhihua.common.model.vos.user.*; +import com.panzhihua.common.utlis.*; import com.panzhihua.service_user.dao.*; import com.panzhihua.service_user.entity.SysAppConfig; import com.panzhihua.service_user.entity.SysTemplateConfig; @@ -33,6 +43,7 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; import org.springframework.util.ObjectUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -76,28 +87,6 @@ import com.panzhihua.common.model.vos.grid.admin.GridMemberBuildingVO; import com.panzhihua.common.model.vos.partybuilding.ActivityManagerVO; import com.panzhihua.common.model.vos.shop.ShopStoreVO; -import com.panzhihua.common.model.vos.user.AdministratorsUserVO; -import com.panzhihua.common.model.vos.user.ChangePasswordVO; -import com.panzhihua.common.model.vos.user.ComMngFamilyInfoVO; -import com.panzhihua.common.model.vos.user.ComMngUserTagVO; -import com.panzhihua.common.model.vos.user.CommunityUserInfoVO; -import com.panzhihua.common.model.vos.user.MenuRoleVO; -import com.panzhihua.common.model.vos.user.NoticeUnReadVO; -import com.panzhihua.common.model.vos.user.SysOperLogVO; -import com.panzhihua.common.model.vos.user.SysUserAgreementVO; -import com.panzhihua.common.model.vos.user.SysUserFeedbackVO; -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.UserArchivesVO; -import com.panzhihua.common.model.vos.user.UserPhoneVO; -import com.panzhihua.common.utlis.IdCard; -import com.panzhihua.common.utlis.SensitiveUtil; -import com.panzhihua.common.utlis.SmsUtil; -import com.panzhihua.common.utlis.Snowflake; -import com.panzhihua.common.utlis.StringUtils; -import com.panzhihua.common.utlis.WxUtil; -import com.panzhihua.common.utlis.WxXCXTempSend; import com.panzhihua.service_user.model.dos.ComActFourMember; import com.panzhihua.service_user.model.dos.ComMngFamilyInfoDO; import com.panzhihua.service_user.model.dos.ComMngUserTagDO; @@ -172,6 +161,18 @@ private SysAppConfigDao sysAppConfigDao; @Resource private SysTemplateConfigDao sysTemplateConfigDao; + @Resource + private ObjectMapper objectMapper; + private static final Integer ALLCOUNTY=1; + private static final Integer ALLSTREET=2; + private static final Integer ALLCOMMUNITY=3; + private static final Integer BYSTREET=4; + private static final Integer BYAREA=5; + private static final String OTHERUSER="其他用户"; + private static final String UPDATEACIDCHECKRECORD="修改排查数据"; + private static final String UPDATEACIDMEMBER="修改防疫工作人员信息"; + private static final String UPDATEACIDRECORD="修改防疫信息数据"; + // @Resource // private GridService gridService; @@ -179,11 +180,11 @@ // String encode = new BCryptPasswordEncoder().encode("lbsq123456"); // System.out.println(encode); - List<Date> dates = new ArrayList<>(); + List<String> dates = new ArrayList<>(); Date date = new Date(); - for (int i = 6; i >= 0; i--) { + for (int i = 19; i >= 0; i--) { Date date1 = DateUtils.addDays(date, -i); - dates.add(date1); + dates.add(DateFormatUtils.format(date1,"MM-dd" )); } System.out.println(dates); @@ -276,17 +277,20 @@ */ @Override public R updateUserWeiXinPhone(Long userId, String purePhoneNumber) { - SysUserDO sysUserDO = new SysUserDO(); - sysUserDO.setPhone(purePhoneNumber); - sysUserDO.setUserId(userId); - userDao.updateMemberRole(purePhoneNumber, purePhoneNumber); - userDao.updateServiceTeam(purePhoneNumber, purePhoneNumber); - int i = userDao.updateById(sysUserDO); - if (i > 0) { - return R.ok(purePhoneNumber); - } else { - return R.fail("维护微信手机号失败"); + SysUserDO sysUserDO=userDao.selectById(userId); + if(sysUserDO!=null){ + userDao.updateMemberRole(purePhoneNumber, sysUserDO.getPhone()); + userDao.updateServiceTeam(purePhoneNumber, sysUserDO.getPhone()); + sysUserDO.setPhone(purePhoneNumber); + sysUserDO.setUserId(userId); + int i = userDao.updateById(sysUserDO); + if (i > 0) { + return R.ok(purePhoneNumber); + } else { + return R.fail("维护微信手机号失败"); + } } + return R.ok(sysUserDO.getPhone()); } /** @@ -438,6 +442,11 @@ if(count>0){ loginUserInfoVO.setIsCheckUnitAdmin(1); } + Long checkUnitId=userDao.selectCheckUnitId(phone); + if(checkUnitId!=null){ + loginUserInfoVO.setCheckUnitId(checkUnitId); + } + else { loginUserInfoVO.setIsCheckUnitAdmin(0); } @@ -1551,6 +1560,17 @@ */ @Override public R addOperLog(SysOperLogVO operlog) { + //判断是否需要保存修改前的数据 + final Boolean flag=(operlog.getTitle().equals(UPDATEACIDCHECKRECORD) || operlog.getTitle().equals(UPDATEACIDMEMBER) + || operlog.getTitle().equals(UPDATEACIDRECORD)); + if (flag){ + //保存数据 + try { + operlog.setBeforeUpdateData(saveBeforeUpdateData(operlog)); + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + } SysOperLogDO sysOperLogDO = new SysOperLogDO(); BeanUtils.copyProperties(operlog, sysOperLogDO); int insert = sysOperLogDAO.insert(sysOperLogDO); @@ -2195,9 +2215,9 @@ @Override public R getSysUserVOByPhone(String phone) { SysUserDO sysUserDO = userDao - .selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getPhone, phone).eq(SysUserDO::getType, 1)); + .selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getPhone, phone).eq(SysUserDO::getType, 1).orderByDesc(SysUserDO::getCreateAt).last("limit 1")); if (ObjectUtils.isEmpty(sysUserDO)) { - return R.fail("用户不存在"); + return R.fail("账号或密码错误"); } SysUserVO sysUserVO = new SysUserVO(); BeanUtils.copyProperties(sysUserDO, sysUserVO); @@ -2232,7 +2252,7 @@ query.eq(SysUserDO::getType, type); SysUserDO sysUserDO = userDao.selectOne(query); if (ObjectUtils.isEmpty(sysUserDO)) { - return R.fail("用户不存在"); + return R.fail("账号或密码错误"); } SysUserVO sysUserVO = new SysUserVO(); BeanUtils.copyProperties(sysUserDO, sysUserVO); @@ -3005,7 +3025,7 @@ public R getUserInfoByUnionId(String unionId) { SysUserDO sysUserDO = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getUnionid, unionId)); if (isNull(sysUserDO)) { - return R.fail("用户不存在"); + return R.fail("账号或密码错误"); } LoginUserInfoVO loginUserInfoVO = new LoginUserInfoVO(); BeanUtils.copyProperties(sysUserDO, loginUserInfoVO); @@ -3286,4 +3306,547 @@ } return R.ok(); } + + @Override + public R uuLogin(UuLoginVO uuLoginVO) { + uuLoginVO.setAppid("10000"); + String timeStamp=PayUtil.create_timestamp(); + uuLoginVO.setTimestamp(timeStamp); + try { + uuLoginVO.setSign(PayUtil.MD5(uuLoginVO.getAppid()+"e10adc3949ba59abbe56e057f20f883e"+timeStamp).toLowerCase(Locale.ROOT)); + } catch (Exception e) { + e.printStackTrace(); + } + Map<String, String> headerMap=new HashMap<>(); + headerMap.put("appid","10000"); + String resultJson=HttpClientUtil.get("https://api.uucsh.cn/member/wx/get-access?province="+uuLoginVO.getProvince()+"&city="+uuLoginVO.getCity()+"&area="+uuLoginVO.getArea()+"&appid=10000×tamp="+uuLoginVO.getTimestamp()+"&sign="+uuLoginVO.getSign()+"&mobile="+uuLoginVO.getMobile(),headerMap,null); + JSONObject result = JSON.parseObject(resultJson); + if(result.get("status").equals(1)){ + return R.ok(result.get("data")); + } + return R.fail("信息错误"); + } + + @Override + public R checkExport(String account, String password,String oldPassword) { + if(new BCryptPasswordEncoder().matches(password, oldPassword)){ + return R.ok(); + } + return R.fail(); + } + + @Override + public R newIndexData(Integer type, Long streetId,Long areaCode) { + IndexDataKanbanVO indexDataKanbanVO = userDao.selectIndexDataKanban(null); + IndexDataAnalysisVO vo=new IndexDataAnalysisVO(); + if (ObjectUtils.isEmpty(type)){ + //不传默认为所有区县 + type=ALLCOUNTY; + } + if (type.equals(ALLCOUNTY) || type.equals(ALLCOMMUNITY) || type.equals(ALLSTREET)){ + BeanUtils.copyProperties(indexDataKanbanVO,vo); + }else { + IndexDataKanbanVO indexDataVO = userDao.dataKanBanStreet(streetId,areaCode,null); + BeanUtils.copyProperties(indexDataVO,vo); + } +// List<UserProportion> userProportionsTotal = userDao.userAnalysis(type, null, streetId,areaCode); +// Integer streetUser = userDao.streetUserCount(streetId,areaCode); +// for (UserProportion userProportion : userProportionsTotal) { +// if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(userProportion)){ +// if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(userProportion.getUser())){ +// //计算占比 +// //userProportion.setAreaCode(null); +// if (type.equals(BYSTREET)){ +// userProportion.setRate(getRate(streetUser,userProportion.getUser())); +// } +// userProportion.setRate(getRate(vo.getAllUser(),userProportion.getUser())); +// } +// } +// } +// List<UserProportion> userProportionsMonth = userDao.userAnalysis(type, DateUtil.beginOfMonth(new Date()).toString(), streetId,areaCode); +// for (UserProportion userProportion : userProportionsMonth) { +// if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(userProportion)){ +// if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(userProportion.getUser())){ +// //计算占比 +// //userProportion.setAreaCode(null); +// if (type.equals(BYSTREET)){ +// userProportion.setRate(getRate(streetUser,userProportion.getUser())); +// } +// userProportion.setRate(getRate(vo.getAllUser(),userProportion.getUser())); +// } +// } +// } +// vo.setUserProportionTotal(userProportionsTotal); +// vo.setUserProportionMonth(userProportionsMonth); +// List<RealUser> realUsersTotal = userDao.realUserCount(type, null, streetId,areaCode); +// List<RealUser> realUsersMonth = userDao.realUserCount(type, DateUtil.beginOfMonth(new Date()).toString(), streetId,areaCode); +// vo.setRealUsersTotal(realUsersTotal); +// vo.setRealUsersMonth(realUsersMonth); +// vo.setRealUser(getStreetRealUser(realUsersTotal)); +// vo.setRealUserRate(getRate(vo.getAllUser(),vo.getRealUser())); +// List<Date> twentyDays = getTwentyDays(); +// List<Date> monthTwentyDays = getMonthTwentyDays(); +// vo.setUserActivityXAll(getMAndD(getTwentyDays())); +// vo.setUserActivityXMonth(getMAndD(getMonthTwentyDays())); +// List<String> addUserYAll=new ArrayList<>(); +// List<String> addUserYMonth=new ArrayList<>(); +// List<String> activeUserYAll=new ArrayList<>(); +// List<String> activeUserYMonth=new ArrayList<>(); +// SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); +// //获取用户行为Y轴 +// for (Date date : twentyDays) { +// //查询当天的新增和日活 +// Map<String, Long> map = userDao.getDailyAddAndActive(DateUtil.parse(sdf.format(date)), streetId,areaCode); +// addUserYAll.add(map.get("addUser").toString()); +// activeUserYAll.add(map.get("activeUser").toString()); +// } +// for (Date date : monthTwentyDays) { +// Map<String, Long> map = userDao.getDailyAddAndActive(DateUtil.parse(sdf.format(date)), streetId,areaCode); +// addUserYMonth.add(map.get("addUser").toString()); +// activeUserYMonth.add(map.get("activeUser").toString()); +// } +// vo.setAddUserYAll(addUserYAll); +// vo.setAddUserYWeek(addUserYMonth); +// vo.setActiveUserYAll(activeUserYAll); +// vo.setActiveUserYMonth(activeUserYMonth); +// if (type.equals(BYSTREET) || type.equals(ALLCOMMUNITY) || type.equals(ALLSTREET)){ +// //获取其他用户 +// vo.setOtherUser(indexDataKanbanVO.getAllUser()-countUser(vo.getUserProportionTotal())); +// vo.setOtherUserRate(getRate(indexDataKanbanVO.getAllUser(),vo.getOtherUser())); +// } + return R.ok(vo); + } + + @Override + public R userRate(Integer type, Long streetId, Long areaCode, Integer range) { + IndexDataAnalysisVO analysisVO=new IndexDataAnalysisVO(); + if (type.equals(BYSTREET) || type.equals(BYAREA)){ + //街道,区县筛选 + IndexDataKanbanVO indexDataVO = userDao.dataKanBanStreet(streetId,areaCode,null); + BeanUtils.copyProperties(indexDataVO,analysisVO ); + }else { + //总量数据 + IndexDataKanbanVO indexDataKanbanVO = userDao.selectIndexDataKanban(null); + BeanUtils.copyProperties(indexDataKanbanVO,analysisVO ); + } + String date=""; + if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(range)){ + if (range.equals(1)){ + DateTime dateTime = DateUtil.beginOfMonth(new Date()); + date = DateUtil.parse(dateTime.toString(), "yyyy-MM-dd HH:mm:ss").toString(); + } + } + List<UserProportion> userProportions = userDao.userAnalysis(type, date, streetId,areaCode); + List<UserRateAnalysisVO> userRateAnalysisVOList=new ArrayList<>(); + Boolean monthRange=false; + if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(range)){ + if (range.equals(1)){ + monthRange=true; + } + } + if (userProportions.size()>0){ + for (UserProportion userProportion : userProportions) { + if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(userProportion)){ + UserRateAnalysisVO vo=new UserRateAnalysisVO(); + if (monthRange){ + if (userProportion.getCommunityId().equals("11")){ + continue; + } + //获取本月的用户总数作为计算占比的用户总数 + //IndexDataKanbanVO data = userDao.dataKanBanStreet(streetId, areaCode, date); + Integer monthUsers = userDao.getMonthUsers(streetId, areaCode, date); + vo.setRate(getRate(monthUsers,userProportion.getUser())); + }else{ + vo.setRate(getRate(analysisVO.getAllUser(),userProportion.getUser())); + } + vo.setName(typeToName(type,userProportion )); + vo.setCount(userProportion.getUser()); + userRateAnalysisVOList.add(vo); + } + } + } + if (ObjectUtils.isEmpty(range)){ + //查看累计数据时才计算其他用户的比例 || type.equals(BYSTREET) || type.equals(BYAREA)) + final Boolean flag=(type.equals(ALLSTREET) || type.equals(ALLCOMMUNITY)); + if (flag){ + UserRateAnalysisVO vo=new UserRateAnalysisVO(); + vo.setName(OTHERUSER); + vo.setCount(analysisVO.getAllUser()-countUser(userRateAnalysisVOList)); + vo.setRate(getRate(analysisVO.getAllUser(), vo.getCount())); + userRateAnalysisVOList.add(vo); + } + } + //计算其他用户占比 + UserRateVO userRate=new UserRateVO(); + userRate.setUserList(userRateAnalysisVOList); + return R.ok(userRate); + } + + + @Override + public R realUser(Integer type, Long streetId, Long areaCode, Integer range) { + IndexDataAnalysisVO analysisVO=new IndexDataAnalysisVO(); + if (type.equals(BYSTREET) || type.equals(BYAREA)){ + //街道,区县筛选 + IndexDataKanbanVO indexDataVO = userDao.dataKanBanStreet(streetId,areaCode,null); + BeanUtils.copyProperties(indexDataVO,analysisVO ); + }else { + //总量数据 + IndexDataKanbanVO indexDataKanbanVO = userDao.selectIndexDataKanban(null); + BeanUtils.copyProperties(indexDataKanbanVO,analysisVO ); + } + String date=""; + if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(range)){ + if (range.equals(1)){ + DateTime dateTime = DateUtil.beginOfMonth(new Date()); + date = DateUtil.parse(dateTime.toString(), "yyyy-MM-dd HH:mm:ss").toString(); + } + } + RealUserVO realUserVO=new RealUserVO(); + List<RealUser> realUsers = userDao.realUserCount(type, date, streetId, areaCode); + List<RealUserAnalysisVO> realUserList=new ArrayList<>(); + realUserVO.setRealUserCount(getStreetRealUser(realUsers)); + Integer rate = getRate(analysisVO.getAllUser(), realUserVO.getRealUserCount()); + if (null == rate){ + realUserVO.setRealUserRate(0.0); + }else{ + realUserVO.setRealUserRate(rate.doubleValue()); + } + for (RealUser realUser : realUsers) { + if (!(type.equals(ALLCOUNTY))){ + if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(realUser)){ + if (realUser.getCommunityId().equals("11")){ + continue; + } + } + } + RealUserAnalysisVO vo=new RealUserAnalysisVO(); + vo.setCount(realUser.getCount()); + vo.setName(typeToNameRealUser(type, realUser)); + realUserList.add(vo); + } + realUserVO.setRealUserList(realUserList); + //使用索引迭代避免从列表移除数据后出现空指针异常 + if (type.equals(BYSTREET) || type.equals(ALLCOMMUNITY)){ + for (int i = 0; i < realUserList.size() ; i++) { + RealUserAnalysisVO realUserAnalysisVO = realUserList.get(i); + if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(realUserAnalysisVO)){ + if (StringUtils.isNotEmpty(realUserAnalysisVO.getName())){ + if (realUserAnalysisVO.getName().equals("请选择社区")){ + realUserList.remove(i); + } + } + } + } + }else { + //只保留十条 + if (realUserList.size()>=11){ + realUserList.remove(10); + } + } + return R.ok(realUserVO); + } + + @Override + public R userActivity(Integer type, Long streetId, Long areaCode, Integer range) { + 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); + 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 uuPush(String washPhone,String phone,String washName,Integer orderStatus) { + if(StringUtils.isNotEmpty(phone)){ + SysUserDO sysUserDO=userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getPhone,phone).orderByDesc(SysUserDO::getCreateAt).last("limit 1")); + if(sysUserDO!=null&&StringUtils.isNotEmpty(sysUserDO.getOpenid())){ + String status=""; + String accessToken=""; + WxXCXTempSend util = new WxXCXTempSend(); + try { + accessToken = util.getAccessToken(); + } catch (Exception e) { + e.printStackTrace(); + } + switch (orderStatus){ + case 3 : status="已分配车美"; + WxUtil.sendUuWash3(sysUserDO.getOpenid(),accessToken,status,washName,washPhone,phone,"sU18zbyzxFldHAdOREaQCR5uq_uMvCKTmGtklO1xw-w"); + break; + case 4 : status="车美已开始服务"; + WxUtil.sendUuWash4(sysUserDO.getOpenid(),accessToken,status,washName,washPhone,phone,"Eft5ksvsnOQANy2uNOGY43CC3pb33eDGA_lgCEoxuiw"); + break; + case 6 : status="订单确认完成"; + WxUtil.sendUuWash6(sysUserDO.getOpenid(),accessToken,status,washName,washPhone,phone,"k1aV97H3pDNNcNcDTeZBD9jQemNDADnRE801HhTXweI"); + break; + case 9 : status="订单已取消"; + WxUtil.sendUuWash(sysUserDO.getOpenid(),accessToken,status,washName,washPhone,phone,"9_2FhQPDxZoUqmAuIZ1L1zjjYXokdNvu7A0gzKfvruI"); + break; + } + } + } + return R.ok(); + } + + @Override + public R getCommunityList(Integer type) { + List<Integer> areaList = areaCodeList(); + List<AreaVOS> areaVOList=new ArrayList<>(); + for (Integer code : areaList) { + AreaVOS areaVO=new AreaVOS(); + areaVO.setId(code); + areaVO.setName(areaCodeToName(code.longValue())); + List<StreetVO> streetVOS = userDao.selectStreetByAreaCode(code); + Iterator<StreetVO> iterator = streetVOS.listIterator(); + while (iterator.hasNext()){ + StreetVO vo = iterator.next(); + List<CommunityVO> communityVOS = userDao.selectCommunityByStreetId(vo.getId(), type); + vo.setCommunityList(communityVOS); + if (type!=3){ + if (communityVOS==null || communityVOS.size()==0){ + iterator.remove(); + } + } + } + List<StreetVOS> list=new ArrayList<>(); + for (StreetVO streetVO : streetVOS) { + StreetVOS vo=new StreetVOS(); + vo.setId(streetVO.getId()); + vo.setName(streetVO.getName()); + vo.setChildList(streetVO.getCommunityList()); + list.add(vo); + } + areaVO.setChildList(list); + areaVOList.add(areaVO); + } + return R.ok(areaVOList); + } + + @Override + public R getAreaAndStreet() { + List<Integer> areaCodeList=areaCodeList(); + List<AreaVO> areaVOList=new ArrayList<>(); + for (Integer code : areaCodeList) { + AreaVO vo=new AreaVO(); + vo.setId(code); + vo.setName(areaCodeToName(code.longValue())); + vo.setStreetList(userDao.selectStreetByAreaCode(code)); + areaVOList.add(vo); + } + return R.ok(areaVOList); + } + + /** + * 获取最近20天数据 + * + * @return + */ + private List<Date> getTwentyDays() { + List<Date> dates = new ArrayList<>(); + Date date = new Date(); + for (int i = 19; i >= 0; i--) { + Date date1 = DateUtils.addDays(date, -i); + dates.add(date1); + } + return dates; + } + + /** + * 获取最近本月20天数据 + * + * @return + */ + private List<Date> getMonthTwentyDays() { + List<Date> dates = new ArrayList<>(); + Date date = new Date(); + Long offset = DateUtil.between(new Date(), DateUtil.beginOfMonth(date), DateUnit.DAY); + if (offset>=20){ + for (int i = 19; i >= 0; i--) { + Date date1 = DateUtils.addDays(date, -i); + dates.add(date1); + } + }else{ + //距离月初不足20天 + for (int i = offset.intValue(); i >= 0; i--) { + Date date1 = DateUtils.addDays(date, -i); + dates.add(date1); + } + } + return dates; + } + + + /** + * 计算占比 + * */ + private Integer getRate(Integer total,Integer count){ + if (0 != total && null != total){ + if (0 != count && null != count){ + BigDecimal div = NumberUtil.div(count.toString(), total.toString(),2); + BigDecimal mul = NumberUtil.mul(div, 100); + return mul.intValue(); + } + } + return null; + } + + /** + * 计算街道实名用户总数 + * */ + private Integer getStreetRealUser(List<RealUser> list){ + Integer count=0; + if (list.size()>0){ + for (RealUser realUser : list) { + if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(realUser)){ + if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(realUser.getCount())){ + count+=realUser.getCount(); + } + } + } + + } + return count; + } + + /** + * 计算当前统计范围内的所有用户数 + * */ + public Integer countUser(List<UserRateAnalysisVO> list){ + Integer count=0; + if (list.size()>0){ + for (UserRateAnalysisVO proportion : list) { + if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(proportion)){ + if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(proportion.getCount())){ + count+=proportion.getCount(); + } + } + } + } + return count; + } + + /** + * 截取月,日 + * */ + public List<String> getMAndD(List<Date> list){ + List<String> dateList=new ArrayList<>(); + if (list.size()>0){ + for (Date date : list) { + dateList.add(DateFormatUtils.format(date,"MM-dd" )); + } + } + return dateList; + } + + + /** + * areaCode转区县名 + * */ + private String areaCodeToName(Long areaCode){ + String code = areaCode.toString(); + String name="不正确的areaCode"; + switch (code){ + case "510423" : + name= "西区"; + break; + case "510402": + name="东区"; + break; + case "510411": + name="仁和区"; + break; + case "510421": + name="米易县"; + break; + case "510422": + name="盐边县"; + break; + case "510424": + name="钒钛新区"; + break; + } + return name; + } + + /** + *根据type选择要设置的名称 + * */ + private String typeToName(Integer type,UserProportion proportion){ + log.info("当前code"+proportion.getAreaCode()); + String name=""; + if (type.equals(ALLCOUNTY)){ + name=areaCodeToName(proportion.getAreaCode()); + }else if(type.equals(ALLSTREET) || type.equals(BYAREA)){ + name=proportion.getStreetName(); + }else if (type.equals(ALLCOMMUNITY) || type.equals(BYSTREET)){ + name=proportion.getCommunityName(); + } + return name; + } + + /** + *根据type选择要设置的名称 + * */ + private String typeToNameRealUser(Integer type,RealUser proportion){ + String name=""; + if (type.equals(ALLCOUNTY)){ + name=areaCodeToName(Long.parseLong(proportion.getAreaCode())); + }else if(type.equals(ALLSTREET) || type.equals(BYAREA)){ + name=proportion.getStreetName(); + }else if (type.equals(ALLCOMMUNITY) || type.equals(BYSTREET)){ + name=proportion.getCommunityName(); + } + return name; + } + + /** + * 生成区县code列表 + * */ + private List<Integer> areaCodeList(){ + List<Integer> list=new ArrayList<>(); + list.add(510402); + list.add(510423); + list.add(510411); + list.add(510421); + list.add(510422); + list.add(510424); + return list; + } + + /** + * 根据日志保存修改之前的信息 + * */ + private String saveBeforeUpdateData(SysOperLogVO operlog) throws JsonProcessingException { + if (operlog.getTitle().equals(UPDATEACIDCHECKRECORD)){ + // + ComActAcidCheckRecordVO comActAcidCheckRecordVO = objectMapper.readValue(operlog.getOperParam(), ComActAcidCheckRecordVO.class); + ComActAcidCheckRecordVO comActAcidCheckRecordVO1 = userDao.selectComActAcidCheckRecordById(comActAcidCheckRecordVO.getId()); + return JSONObject.toJSONString(comActAcidCheckRecordVO1); + }else if (operlog.getTitle().equals(UPDATEACIDRECORD)){ + ComActAcidRecordVO comActAcidRecordVO = objectMapper.readValue(operlog.getOperParam(), ComActAcidRecordVO.class); + return JSONObject.toJSONString(userDao.selectComActAcidRecord(comActAcidRecordVO.getId())); + }else if(operlog.getTitle().equals(UPDATEACIDMEMBER)){ + ComActAcidMemberVO comActAcidMemberVO = objectMapper.readValue(operlog.getOperParam(), ComActAcidMemberVO.class); + return JSONObject.toJSONString(userDao.selectComActAcidMember(comActAcidMemberVO.getId())); + } + return null; + } + + + } -- Gitblit v1.7.1