From e7ff00a506c9290dcd75c5e087cae0efbf6fa5c1 Mon Sep 17 00:00:00 2001 From: 101captain <237651143@qq.com> Date: 星期一, 11 七月 2022 17:01:56 +0800 Subject: [PATCH] 导出不带截图接口 --- springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java | 536 ++++++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 436 insertions(+), 100 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 2d6673a..956f57c 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 @@ -4,23 +4,26 @@ import static java.util.Objects.nonNull; 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 javax.validation.constraints.NotBlank; +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.panzhihua.common.model.dtos.community.microCommercialStreet.BindUserPhoneDTO; +import com.panzhihua.common.model.vos.community.ComAreaTownCommunityVO; +import com.panzhihua.common.model.vos.community.acid.ComActAcidMemberVO; 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; @@ -75,28 +78,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; @@ -171,6 +152,11 @@ private SysAppConfigDao sysAppConfigDao; @Resource private SysTemplateConfigDao sysTemplateConfigDao; + public static final Integer ALLCOUNTY=1; + public static final Integer ALLSTREET=2; + public static final Integer ALLCOMMUNITY=3; + public static final Integer BYSTREET=4; + // @Resource // private GridService gridService; @@ -275,17 +261,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()); } /** @@ -331,6 +320,10 @@ loginUserInfoVO.setCommunityId(sysUserDO.getCommunityId()); if(comActVO!=null){ loginUserInfoVO.setComActVO(comActVO); + String areaName=userDao.selectAreaCodeByStreetId(comActVO.getStreetId()); + if(StringUtils.isNotEmpty(areaName)){ + loginUserInfoVO.setAreaName(areaName); + } SysAppConfig sysAppConfig=sysAppConfigDao.selectOne(new QueryWrapper<SysAppConfig>().lambda().eq(SysAppConfig::getAreaCode,comActVO.getAreaCode())); if(sysAppConfig!=null){ loginUserInfoVO.setAppId(sysAppConfig.getAppId()); @@ -377,6 +370,8 @@ loginUserInfoVO.setIsCommunityWorker(2); loginUserInfoVO.setIsPropertyWorker(2); loginUserInfoVO.setIsSocialWorker(2); + loginUserInfoVO.setIsFmsMember(2); + loginUserInfoVO.setIsAcidMember(0); // 志愿者状态 String phone = sysUserDO.getPhone(); Long userCommunityId = sysUserDO.getCommunityId(); @@ -410,6 +405,39 @@ int countPropertyWorker = userDao.countPropertyWorker(Long.parseLong(userId), userCommunityId); if (countPropertyWorker > 0) { loginUserInfoVO.setIsPropertyWorker(1); + } + //是否微团队成员 + int countFmsMember = userDao.countFmsMember(phone, userCommunityId); + if (countFmsMember > 0) { + loginUserInfoVO.setIsFmsMember(1); + } + //是否是防疫工作人员 + ComActAcidMemberVO acidMember = userDao.selectAcidMemberByPhone(phone); + if (nonNull(acidMember)) { + if(acidMember.getRelationName().equals("panzhihua")||acidMember.getRelationName().equals("西区")||acidMember.getRelationName().equals("东区")||acidMember.getRelationName().equals("仁和区")||acidMember.getRelationName().equals("米易县")||acidMember.getRelationName().equals("盐边县")){ + loginUserInfoVO.setIsAcidMember(1); + } + else { + loginUserInfoVO.setIsAcidMember(2); + } + loginUserInfoVO.setRelationName(acidMember.getRelationName()); + } + Integer count=userDao.selectOrgAdmin(phone); + if(count>0){ + loginUserInfoVO.setIsCheckUnitAdmin(1); + } + Long checkUnitId=userDao.selectCheckUnitId(phone); + if(checkUnitId!=null){ + loginUserInfoVO.setCheckUnitId(checkUnitId); + } + + else { + loginUserInfoVO.setIsCheckUnitAdmin(0); + } + //是否网格员 + int easyPhotoMember = userDao.countEasyPhotoMember(phone, userCommunityId); + if (easyPhotoMember > 0) { + loginUserInfoVO.setIsEasyPhotoMember(1); } // 是否是"管理员"或者 本社区 "社区团队"、"党委成员" Integer countTeam = userDao.selectCountTeam(phone, userCommunityId); @@ -704,6 +732,11 @@ } ComActVO comActVO = userDao.selectCommunity(loginUserInfoVO.getCommunityId()); if (!ObjectUtils.isEmpty(comActVO)) { + String areaName=userDao.selectAreaCodeByStreetId(comActVO.getStreetId()); + if(StringUtils.isNotEmpty(areaName)){ + loginUserInfoVO.setAreaName(areaName); + } + loginUserInfoVO.setComActVO(comActVO); loginUserInfoVO.setCommunityName(comActVO.getName()); loginUserInfoVO.setAreaCode(comActVO.getAreaCode()); } @@ -713,6 +746,21 @@ //是否是社区物业人员 int countPropertyWorker = userDao.countPropertyWorker(userId, loginUserInfoVO.getCommunityId()); loginUserInfoVO.setIsPropertyWorker(countPropertyWorker > 0 ? 1 : 0); + //是否微团队成员 + int countFmsMember = userDao.countFmsMember(loginUserInfoVO.getPhone(), loginUserInfoVO.getCommunityId()); + loginUserInfoVO.setIsFmsMember(countFmsMember > 0 ? 1 : 0); + //是否是防疫工作人员 + loginUserInfoVO.setIsAcidMember(0); + ComActAcidMemberVO acidMember = userDao.selectAcidMemberByPhone(loginUserInfoVO.getPhone()); + if (nonNull(acidMember)) { + if(acidMember.getRelationName().equals("panzhihua")||acidMember.getRelationName().equals("西区")||acidMember.getRelationName().equals("东区")||acidMember.getRelationName().equals("仁和区")||acidMember.getRelationName().equals("米易县")||acidMember.getRelationName().equals("盐边县")){ + loginUserInfoVO.setIsAcidMember(1); + } + else { + loginUserInfoVO.setIsAcidMember(2); + } + loginUserInfoVO.setRelationName(acidMember.getRelationName()); + } loginUserInfoVO.setIdCard(SensitiveUtil.desensitizedIdNumber(loginUserInfoVO.getIdCard())); loginUserInfoVO.setPhone(SensitiveUtil.desensitizedPhoneNumber(loginUserInfoVO.getPhone())); //判断账号类型 @@ -907,7 +955,7 @@ // 实名认证成功推送订阅消息给用户 try { WxXCXTempSend util = new WxXCXTempSend(); - String accessToken = util.getAppAccessToken(); + String accessToken = util.getAccessToken(); SysTemplateConfig sysTemplateConfig=sysTemplateConfigDao.selectOne(new QueryWrapper<SysTemplateConfig>().lambda().eq(SysTemplateConfig::getAreaCode, loginUserInfoVO.getComActVO()).eq(SysTemplateConfig::getType,5)); // 用户实名认证推送消息 WxUtil.sendSubscribeRZSH(user.getOpenid(), accessToken, "实名认证", @@ -1097,6 +1145,21 @@ @Override @Transactional(rollbackFor = Exception.class) public R addUserBackstage(AdministratorsUserVO administratorsUserVO) { + ComActVO comActVO = userDao.selectCommunity(administratorsUserVO.getCommunityId()); + if (nonNull(comActVO)) { + List<ComAreaTownCommunityVO> areaTownList = userDao.selectAreaTownCommunity(comActVO.getName()); + if (!areaTownList.isEmpty()) { + administratorsUserVO.setRelationName(comActVO.getName()); + String address = comActVO.getAddress(); + if (areaTownList.size() > 1 && isNotBlank(address)) { + ComAreaTownCommunityVO townCommunityVO = areaTownList.stream() + .filter(e -> address.contains(e.getArea()) && address.contains(e.getTown())).findFirst().orElse(null); + if (nonNull(townCommunityVO)) { + administratorsUserVO.setRelationName(String.join(",", townCommunityVO.getArea(), townCommunityVO.getTown(), townCommunityVO.getCommunity())); + } + } + } + } SysUserDO sysUserDO = new SysUserDO(); Long roleId = administratorsUserVO.getRoleId(); if (roleId.intValue() == 999999999 || roleId.intValue() == 888888888) { @@ -1159,6 +1222,9 @@ menu.add(233L); menu.add(237L); } + else { + menuRoleVO.setIsAll(1); + } menuRoleVO.setMenuIds(menu); menuRoleVO.setRoleId(roleId); this.putMenuRole(menuRoleVO); @@ -1186,31 +1252,6 @@ } } - - if (insert > 0 && sysUserDO.getType() == 3 &&sysUserDO.getStreetId()==null) {// 添加的用户是社区账号时 - // 添加网格综合治理管理后台用户 - SysUserDO sysUserDOWangGe = new SysUserDO(); - BeanUtils.copyProperties(sysUserDO, sysUserDOWangGe); - sysUserDOWangGe.setUserId(null); - sysUserDOWangGe.setType(7);// 网格综治后台 - try { - int addWange = userDao.insert(sysUserDOWangGe); - if (addWange != 1) { - throw new ServiceException("新增网格综合治理管理后台用户失败"); - } - } catch (Exception e) { - e.printStackTrace(); - log.error("网格综合治理管理后台用户报错【{}】", e.getMessage()); - if (e.getMessage().contains("union_phone_type")) { - throw new ServiceException("手机号已经存在"); - } else if (e.getMessage().contains("union_account_type")) { - throw new ServiceException("账户已经存在"); - }else if(e.getMessage().contains("23000")){ - throw new ServiceException("手机号已存在"); - } - - } - } if (insert > 0) { SysUserDO sysUserDO1 = userDao .selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, administratorsUserVO.getType()) @@ -1237,25 +1278,23 @@ List<Long> menu=new ArrayList<>(); if(administratorsUserVO.getSocialType()==1){ sysRoleDO.setRoleKey(Constants.STREET_ROLE_KEY + administratorsUserVO.getStreetId()); - menu.add(233L); - menu.add(234L); - menu.add(235L); - menu.add(236L); - menu.add(237L); + menu.add(300L); + menu.add(301L); + menu.add(302L); + menu.add(303L); + menu.add(304L); } else if(administratorsUserVO.getSocialType()==2){ sysRoleDO.setRoleKey("social_org" + administratorsUserVO.getStreetId()); - menu.add(233L); - menu.add(76L); - menu.add(234L); - menu.add(236L); - menu.add(237L); - menu.add(238L); + menu.add(300L); + menu.add(301L); + menu.add(302L); + menu.add(303L); } else if(administratorsUserVO.getSocialType()==3){ sysRoleDO.setRoleKey("social_org_member" + administratorsUserVO.getStreetId()); - menu.add(233L); - menu.add(237L); + menu.add(300L); + menu.add(303L); } sysRoleDO.setRoleSort(0); @@ -1270,7 +1309,7 @@ // 新街道管理员角色设置固定三社权限 MenuRoleVO menuRoleVO = new MenuRoleVO(); menuRoleVO.setMenuIds(menu); - menuRoleVO.setRoleId(roleId); + menuRoleVO.setRoleId(sysRoleDO.getRoleId()); this.putMenuRole(menuRoleVO); } } @@ -1370,7 +1409,7 @@ .anyMatch(sysRoleMenuDO -> sysRoleMenuDO.getMenuId().equals(menuId))).collect(Collectors.toList()); } if (!menuIds.isEmpty()) { - if(menuRoleVO.getMenuIds().isEmpty()){ + if(menuRoleVO.getMenuIds()==null){ sysRoleMenuDAO.batchInsertWithRoleId(menuIds, roleId); } else { @@ -1448,7 +1487,6 @@ * @return 删除结果 */ @Override - @Transactional(rollbackFor = Exception.class) public R deleteUserBackstage(AdministratorsUserVO administratorsUserVO) { Long userId = administratorsUserVO.getUserId(); SysUserDO sysUserDO = userDao.selectById(userId); @@ -1844,7 +1882,7 @@ @Override public R dataKanban(String areaCode) { IndexDataKanbanVO indexDataKanbanVO = userDao.selectIndexDataKanban(areaCode); - List<DataKanbanDTO> dataKanbanDTOS = userDao.selectCommunityUserOrder(areaCode); + List<DataKanbanDTO> dataKanbanDTOS = userDao.selectCommunityUserOrder(new Page(1L, 9999L), areaCode).getRecords(); List<String> communityUserX = new ArrayList<>(); List<Integer> communityUserY = new ArrayList<>(); @@ -1952,6 +1990,30 @@ stringRedisTemplate.delete(userKey); } log.info("新增党员修改用户党员状态成功 身份证号【{}】", idCard); + } + return R.ok(); + } + + /** + * 修改用户的党员状态 + * + * @param phone + * 身份证号 + * @return 修改结果 + */ + @Override + public R updateUserIsPartymemberByPhone(String phone) { + SysUserDO sysUserDO = userDao.selectOne( + new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getPhone, phone).eq(SysUserDO::getType, 1)); + if (sysUserDO != null) { + sysUserDO.setIsPartymember(1); + int updated = userDao.updateById(sysUserDO); + if (updated > 0) { + // 删除用户信息缓存 + String userKey = UserConstants.LOGIN_USER_INFO + sysUserDO.getUserId(); + stringRedisTemplate.delete(userKey); + } + log.info("新增党员修改用户党员状态成功 手机号【{}】", phone); } return R.ok(); } @@ -2126,9 +2188,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); @@ -2163,7 +2225,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); @@ -2299,7 +2361,7 @@ /** * 修改app用户密码 - * + * * @param userInfoAppDTO * 请求参数 * @return 修改结果 @@ -2331,7 +2393,7 @@ /** * 添加网格员 - * + * * @param eventGridMemberAddDTO * 请求参数 * @return 结果 @@ -2448,7 +2510,7 @@ /** * 网格员管理 - * + * * @param memberRelationDTO * 请求参数 * @return 网格员列表 @@ -2485,7 +2547,7 @@ /** * 修改网格员信息 - * + * * @param gridMemberDTO * 请求参数 * @return 修改结果 @@ -2581,7 +2643,7 @@ /** * 重置网格员密码 - * + * * @param gridMemberDTO * 请求参数 * @return 重置结果 @@ -2599,7 +2661,7 @@ /** * 批量删除网格员 - * + * * @param Ids * 网格员id集合 * @return 删除结果 @@ -2638,7 +2700,7 @@ /** * 查询社区的收益说明 - * + * * @param communityId * 社区id * @return 收益说明 @@ -2685,7 +2747,7 @@ /** * 根据用户id查询用户openid - * + * * @param userId * 用户id * @return openid @@ -2701,7 +2763,7 @@ /** * 查询社区后台工作人员列表 - * + * * @param communityId * 社区id * @return 社区后台工作人员列表 @@ -2835,7 +2897,7 @@ userDao.disableOrEnableMerchantUsers(disableOrEnableConvenientMerchantDTO.getType(), disableOrEnableConvenientMerchantDTO.getUserIds()); return R.ok(); } - + /** * 根据openid维护社区团队里是否注册 * @param openid 用户微信唯一标识 @@ -2867,10 +2929,18 @@ List<Integer> communityActiveUserZ = new ArrayList<>(); List<DataKanbanDTO> dataKanbanDTOS = null; + Page page = new Page<>(); + if (nonNull(dataKanBansDto.getPageNum()) && nonNull(dataKanBansDto.getPageSize())) { + page.setCurrent(dataKanBansDto.getPageNum()); + page.setSize(dataKanBansDto.getPageSize()); + } else { + page.setCurrent(1L); + page.setSize(20L); + } if(dataKanBansDto.getType() != null && dataKanBansDto.getType().equals(DataKanBansDto.type.by)){ - dataKanbanDTOS = userDao.selectCommunityUserOrderMonth(dataKanBansDto.getAreaCode()); + dataKanbanDTOS = userDao.selectCommunityUserOrderMonth(page, dataKanBansDto.getAreaCode()).getRecords(); }else{ - dataKanbanDTOS = userDao.selectCommunityUserOrder(dataKanBansDto.getAreaCode()); + dataKanbanDTOS = userDao.selectCommunityUserOrder(page, dataKanBansDto.getAreaCode()).getRecords(); } if (!ObjectUtils.isEmpty(dataKanbanDTOS)) { dataKanbanDTOS.forEach(dataKanbanDTO -> { @@ -2928,11 +2998,33 @@ 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); return R.ok(loginUserInfoVO); + } + + @Override + public R updateStreetId(AdministratorsUserVO administratorsUserVO) { + SysUserDO sysUserDO=new SysUserDO(); + BeanUtils.copyProperties(administratorsUserVO,sysUserDO); + userDao.updateById(sysUserDO); + return R.ok(); + } + + /** + * 删除用户信息缓存 + * @param phone + */ + @Override + public R deleteUserCashByPhone(String phone) { + SysUserDO sysUserDO = this.userDao.selectOne(new LambdaQueryWrapper<SysUserDO>().eq(SysUserDO::getPhone, phone).eq(SysUserDO::getType, 1)); + if (nonNull(sysUserDO)) { + String userKey = UserConstants.LOGIN_USER_INFO + sysUserDO.getUserId(); + stringRedisTemplate.delete(userKey); + } + return R.ok(); } /** @@ -3172,4 +3264,248 @@ } return rs.toString(); } + + @Override + public R updateUserPartyStatus(Long userId) { + SysUserDO sysUserDO = userDao.selectById(userId); + if (sysUserDO != null) { + sysUserDO.setIsPartymember(1); + int updated = userDao.updateById(sysUserDO); + if (updated > 0) { + // 删除用户信息缓存 + String userKey = UserConstants.LOGIN_USER_INFO + sysUserDO.getUserId(); + stringRedisTemplate.delete(userKey); + } + } + 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) { + 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); + BeanUtils.copyProperties(indexDataVO,vo); + } + List<UserProportion> userProportionsTotal = userDao.userAnalysis(type, null, streetId); + Integer streetUser = userDao.streetUserCount(streetId); + 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); + 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); + List<RealUser> realUsersMonth = userDao.realUserCount(type, DateUtil.beginOfMonth(new Date()).toString(), streetId); + vo.setRealUsersTotal(realUsersTotal); + vo.setRealUsersMonth(realUsersMonth); + vo.setRealUser(getStreetRealUser(realUsersTotal)); + vo.setRealUserRate(getRate(vo.getAllUser(),vo.getRealUser())); + List<Date> twentyDays = getTwentyDays(); + SimpleDateFormat sdf1=new SimpleDateFormat("MM"); + for (Date twentyDay : twentyDays) { + sdf1.format(twentyDay); + } + vo.setUserActivityXAll(getTwentyDays()); + vo.setUserActivityXMonth(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 : vo.getUserActivityXAll()) { + //查询当天的新增和日活 + Map<String, Long> map = userDao.getDailyAddAndActive(DateUtil.parse(sdf.format(date)), streetId); + addUserYAll.add(map.get("addUser").toString()); + activeUserYAll.add(map.get("activeUser").toString()); + } + for (Date date : vo.getUserActivityXMonth()) { + Map<String, Long> map = userDao.getDailyAddAndActive(DateUtil.parse(sdf.format(date)), streetId); + 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 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=""; + switch (orderStatus){ + case 2 : status="等待分配车美";break; + case 3 : status="已分配车美";break; + case 4 : status="车美已开始服务";break; + case 5 : status="车美已结束服务";break; + case 6 : status="订单确认完成";break; + case 9 : status="订单已取消";break; + } + WxXCXTempSend util = new WxXCXTempSend(); + try { + String accessToken = util.getAccessToken(); + WxUtil.sendUuWash(sysUserDO.getOpenid(),accessToken,status,washName,washPhone,phone,"Eft5ksvsnOQANy2uNOGY43CC3pb33eDGA_lgCEoxuiw"); + } catch (Exception e) { + e.printStackTrace(); + } + + } + } + return R.ok(); + } + + /** + * 获取最近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 Double getRate(Integer total,Integer count){ + if (0 != total && null != total){ + if (0 != count && null != count){ + BigDecimal div = NumberUtil.div(count.toString(), total.toString(),2); + return div.doubleValue(); + } + } + 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<UserProportion> list){ + Integer count=0; + if (list.size()>0){ + for (UserProportion proportion : list) { + if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(proportion)){ + if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(proportion.getUser())){ + count+=proportion.getUser(); + } + } + } + } + return count; + } + } -- Gitblit v1.7.1