From c24bd91b480d8d87844e795ce11c759ea1e6be98 Mon Sep 17 00:00:00 2001 From: 101captain <237651143@qq.com> Date: 星期二, 22 二月 2022 16:53:14 +0800 Subject: [PATCH] 三社功能提交 --- springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java | 310 +++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 285 insertions(+), 25 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 364a0cb..b31c903 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 @@ -32,6 +32,7 @@ import com.panzhihua.common.constants.Constants; import com.panzhihua.common.constants.UserConstants; import com.panzhihua.common.exceptions.ServiceException; +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; @@ -56,6 +57,9 @@ import com.panzhihua.common.model.vos.SystemmanagementConfigVO; import com.panzhihua.common.model.vos.community.ComActVO; import com.panzhihua.common.model.vos.community.ComMngVolunteerMngVO; +import com.panzhihua.common.model.vos.community.IndexUserCommunityVo; +import com.panzhihua.common.model.vos.community.IndexUserStatisticsVo; +import com.panzhihua.common.model.vos.community.IndexUserStreetVo; import com.panzhihua.common.model.vos.grid.GridMemberVO; import com.panzhihua.common.model.vos.grid.admin.GridMemberBuildingVO; import com.panzhihua.common.model.vos.partybuilding.ActivityManagerVO; @@ -81,6 +85,7 @@ import com.panzhihua.common.utlis.StringUtils; import com.panzhihua.common.utlis.WxUtil; import com.panzhihua.common.utlis.WxXCXTempSend; +import com.panzhihua.service_user.dao.ComActFourMemberDao; import com.panzhihua.service_user.dao.ComMngFamilyInfoDAO; import com.panzhihua.service_user.dao.ComMngUserTagDAO; import com.panzhihua.service_user.dao.EventGridMemberBuildingRelationMapper; @@ -95,6 +100,7 @@ import com.panzhihua.service_user.dao.SysUserNoticeDAO; import com.panzhihua.service_user.dao.SysUserRoleDAO; import com.panzhihua.service_user.dao.UserDao; +import com.panzhihua.service_user.model.dos.ComActFourMember; import com.panzhihua.service_user.model.dos.ComMngFamilyInfoDO; import com.panzhihua.service_user.model.dos.ComMngUserTagDO; import com.panzhihua.service_user.model.dos.EventGridMemberBuildingRelationDO; @@ -113,6 +119,7 @@ import com.panzhihua.service_user.service.EventGridMemberBuildingRelationService; import com.panzhihua.service_user.service.UserService; +import cn.hutool.core.util.IdcardUtil; import lombok.extern.slf4j.Slf4j; // import com.panzhihua.common.service.grid.GridService; @@ -158,6 +165,8 @@ private EventGridMemberBuildingRelationMapper eventGridMemberBuildingRelationMapper; @Resource private LcCompareMemberCodeMapper lcCompareMemberCodeMapper; + @Resource + private ComActFourMemberDao comActFourMemberDao; // @Resource // private GridService gridService; @@ -346,6 +355,10 @@ loginUserInfoVO.setRoles(set); } loginUserInfoVO.setIsmemberrole(2); + loginUserInfoVO.setIsFourMember(2); + loginUserInfoVO.setIsCommunityWorker(2); + loginUserInfoVO.setIsPropertyWorker(2); + loginUserInfoVO.setIsSocialWorker(2); // 志愿者状态 String phone = sysUserDO.getPhone(); Long userCommunityId = sysUserDO.getCommunityId(); @@ -363,16 +376,31 @@ int state = comMngVolunteerMngVO.getState().intValue(); loginUserInfoVO.setVolunteerStatus(state); } + //是否四长四员 + Integer countFourMember=comActFourMemberDao.selectCount(new QueryWrapper<ComActFourMember>().lambda().eq(ComActFourMember::getIdCard,sysUserDO.getIdCard())); + if(countFourMember>0){ + loginUserInfoVO.setIsFourMember(1); + } + //是否是社区物业人员 + int countPropertyWorker = userDao.countPropertyWorker(Long.parseLong(userId), userCommunityId); + if (countPropertyWorker > 0) { + loginUserInfoVO.setIsPropertyWorker(1); + } // 是否是"管理员"或者 本社区 "社区团队"、"党委成员" Integer countTeam = userDao.selectCountTeam(phone, userCommunityId); Integer selectCountMemberRole = userDao.selectCountMemberRole(phone, userCommunityId); Integer isSysUser = userDao.selectCountSysUser(phone, userCommunityId); if (countTeam != null && countTeam > 0) { loginUserInfoVO.setIsmemberrole(1); + loginUserInfoVO.setIsCommunityWorker(1); } else if (selectCountMemberRole != null && selectCountMemberRole > 0) { loginUserInfoVO.setIsmemberrole(1); } else if (isSysUser != null && isSysUser > 0) { loginUserInfoVO.setIsmemberrole(1); + } + Integer countSocialWorker = userDao.countSocialWorker(phone,userCommunityId); + if(countSocialWorker>0){ + loginUserInfoVO.setIsSocialWorker(1); } } loginUserInfoVO.setIsRealNamed(sysUserDO.getIdCard() != null); @@ -575,7 +603,8 @@ @Override public R listTag() { List<String> list = new ArrayList<>(); - List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO.selectList(new LambdaQueryWrapper<>()); + List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO.selectList(new LambdaQueryWrapper<ComMngUserTagDO>() + .eq(ComMngUserTagDO::getSysFlag,1)); if (!ObjectUtils.isEmpty(comMngUserTagDOS)) { list = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName()) .collect(Collectors.toList()); @@ -598,6 +627,7 @@ if (ObjectUtils.isEmpty(sysUserDO)) { return R.fail("人员不存在"); } + BeanUtils.copyProperties(sysUserDO, loginUserInfoVO); List<ComMngFamilyInfoDO> comMngFamilyInfoDOS = comMngFamilyInfoDAO .selectList(new QueryWrapper<ComMngFamilyInfoDO>().lambda().eq(ComMngFamilyInfoDO::getUserId, userId)); @@ -651,8 +681,24 @@ if (!ObjectUtils.isEmpty(comActVO)) { loginUserInfoVO.setCommunityName(comActVO.getName()); } + //是否是社区物业人员 + int countPropertyWorker = userDao.countPropertyWorker(userId, loginUserInfoVO.getCommunityId()); + loginUserInfoVO.setIsPropertyWorker(countPropertyWorker > 0 ? 1 : 0); loginUserInfoVO.setIdCard(SensitiveUtil.desensitizedIdNumber(loginUserInfoVO.getIdCard())); loginUserInfoVO.setPhone(SensitiveUtil.desensitizedPhoneNumber(loginUserInfoVO.getPhone())); + //判断账号类型 + int countSocialOrg=userDao.countSocialOrg(userId); + if(countSocialOrg>0){ + loginUserInfoVO.setUserType(3); + } + else { + if(loginUserInfoVO.getStreetId()!=null){ + loginUserInfoVO.setUserType(1); + } + else { + loginUserInfoVO.setUserType(2); + } + } return R.ok(loginUserInfoVO); } @@ -798,7 +844,7 @@ sysUserDO.setIdCard(idCard); // 通过身份证号判断性别以及出生日期 sysUserDO.setSex(IdCard.sex(idCard)); - sysUserDO.setBirthday(IdCard.birthDay(idCard)); + sysUserDO.setBirthday(IdcardUtil.getBirthDate(idCard)); if (!StringUtils.isEmpty(loginUserInfoVO.getJob())) { sysUserDO.setJob(loginUserInfoVO.getJob()); } @@ -1051,6 +1097,43 @@ this.putMenuRole(menuRoleVO); } } + if(roleId.intValue()==777777777){ + SysRoleDO sysRoleDO = new SysRoleDO(); + sysRoleDO.setRoleName("超级管理员"); + sysRoleDO.setRoleKey(Constants.STREET_ROLE_KEY + administratorsUserVO.getStreetId()); + sysRoleDO.setRoleSort(0); + sysRoleDO.setCreateBy(administratorsUserVO.getUserId()); + int insert = roleDAO.insert(sysRoleDO); + if (insert > 0) { + SysRoleDO sysRoleDO1 = roleDAO.selectOne( + new QueryWrapper<SysRoleDO>().lambda().eq(SysRoleDO::getRoleKey, sysRoleDO.getRoleKey())); + roleId = sysRoleDO1.getRoleId(); + // 新街道管理员角色设置固定三社权限 + MenuRoleVO menuRoleVO = new MenuRoleVO(); + List<Long> menu=new ArrayList<>(); + if(administratorsUserVO.getSocialType()==1){ + menu.add(233L); + menu.add(234L); + menu.add(235L); + menu.add(236L); + menu.add(237L); + } + else if(administratorsUserVO.getSocialType()==2){ + menu.add(233L); + menu.add(234L); + menu.add(236L); + menu.add(237L); + menu.add(238L); + } + else if(administratorsUserVO.getSocialType()==3){ + menu.add(233L); + menu.add(237L); + } + menuRoleVO.setMenuIds(menu); + menuRoleVO.setRoleId(roleId); + this.putMenuRole(menuRoleVO); + } + } SysRoleDO roleDO = roleDAO.selectById(roleId); if (ObjectUtils.isEmpty(roleDO)) { return R.fail("角色不存在"); @@ -1074,7 +1157,7 @@ } - if (insert > 0 && sysUserDO.getType() == 3) {// 添加的用户是社区账号时 + if (insert > 0 && sysUserDO.getType() == 3 &&sysUserDO.getStreetId()==null) {// 添加的用户是社区账号时 // 添加网格综合治理管理后台用户 SysUserDO sysUserDOWangGe = new SysUserDO(); BeanUtils.copyProperties(sysUserDO, sysUserDOWangGe); @@ -1118,6 +1201,47 @@ public R addUserBackstageProperty(AdministratorsUserVO administratorsUserVO) { SysUserDO sysUserDO = new SysUserDO(); Long roleId = administratorsUserVO.getRoleId(); + if(roleId.intValue()==777777777){ + SysRoleDO sysRoleDO = new SysRoleDO(); + sysRoleDO.setRoleName("三社超级管理员"); + List<Long> menu=new ArrayList<>(); + if(administratorsUserVO.getSocialType()==1){ + sysRoleDO.setRoleKey(Constants.STREET_ROLE_KEY + administratorsUserVO.getStreetId()); + 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(300L); + menu.add(301L); + menu.add(302L); + menu.add(303L); + } + else if(administratorsUserVO.getSocialType()==3){ + sysRoleDO.setRoleKey("social_org_member" + administratorsUserVO.getStreetId()); + menu.add(300L); + menu.add(303L); + } + + sysRoleDO.setRoleSort(0); + sysRoleDO.setCreateBy(administratorsUserVO.getUserId()); + SysRoleDO sysRoleDO1 = roleDAO.selectOne( + new QueryWrapper<SysRoleDO>().lambda().eq(SysRoleDO::getRoleKey, sysRoleDO.getRoleKey())); + if(sysRoleDO1!=null){ + sysRoleDO=sysRoleDO1; + roleId = sysRoleDO.getRoleId(); + }else{ + roleDAO.insert(sysRoleDO); + // 新街道管理员角色设置固定三社权限 + MenuRoleVO menuRoleVO = new MenuRoleVO(); + menuRoleVO.setMenuIds(menu); + menuRoleVO.setRoleId(sysRoleDO.getRoleId()); + this.putMenuRole(menuRoleVO); + } + } SysRoleDO roleDO = roleDAO.selectById(roleId); if (ObjectUtils.isEmpty(roleDO)) { return R.fail("角色不存在"); @@ -1135,6 +1259,8 @@ throw new ServiceException("手机号已经存在"); } else if (e.getMessage().contains("union_account_type")) { throw new ServiceException("账户已经存在"); + }else if(e.getMessage().contains("23000")){ + throw new ServiceException("手机号已存在"); } } @@ -1212,7 +1338,12 @@ .anyMatch(sysRoleMenuDO -> sysRoleMenuDO.getMenuId().equals(menuId))).collect(Collectors.toList()); } if (!menuIds.isEmpty()) { - sysRoleMenuDAO.batchInsertWithRoleId(menuIds, roleId); + if(menuRoleVO.getMenuIds().isEmpty()){ + sysRoleMenuDAO.batchInsertWithRoleId(menuIds, roleId); + } + else { + sysRoleMenuDAO.batchInsertWithRoleId(menuRoleVO.getMenuIds(), roleId); + } } // for (int i = 0; i < menuIds.size(); i++) { // SysRoleMenuDO sysRoleMenuDO = sysRoleMenuDAO.selectOne(new QueryWrapper<SysRoleMenuDO>().lambda() @@ -1294,7 +1425,7 @@ } Long communityId = sysUserDO.getCommunityId(); Long communityId1 = administratorsUserVO.getCommunityId(); - if (communityId1.intValue() != communityId.intValue()) { + if (communityId1!=null&&communityId1.intValue() != communityId.intValue()) { return R.fail("用户不属于当前平台"); } // 删除用户 @@ -2077,7 +2208,7 @@ @Override public R editSysUser(ShopStoreVO storeVO) { SysUserDO sysUserDO1 = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda() - .eq(SysUserDO::getPhone, storeVO.getPhone()).eq(SysUserDO::getType, 5)); + .eq(SysUserDO::getPhone, storeVO.getStoreAccount()).eq(SysUserDO::getType, 5)); if (sysUserDO1 == null) { return R.fail("未查询到后台管理用户!"); } @@ -2603,10 +2734,6 @@ if (nonNull(sysUserDO)) { return R.fail("账户已经存在"); } - sysUserDO = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getPhone, convenientMerchantDTO.getPhone())); - if (nonNull(sysUserDO)) { - return R.fail("手机号已经存在"); - } // sys_user 表 sysUserDO = new SysUserDO(); String encode = new BCryptPasswordEncoder().encode(convenientMerchantDTO.getPassword()); @@ -2615,7 +2742,7 @@ sysUserDO.setType(10); sysUserDO.setAreaId(null); sysUserDO.setStatus(1); - sysUserDO.setPhone(convenientMerchantDTO.getPhone()); + sysUserDO.setPhone(null); sysUserDO.setName(convenientMerchantDTO.getContacts()); sysUserDO.setPassword(encode); try { @@ -2629,25 +2756,158 @@ } /** - * 修改便民服务商家绑定账号 - * @param userId 用户id - * @param account 修改账户 - * @return 修改结果 - */ -@Override -public R putUserAccount(Long userId, String account) { - SysUserDO sysUserDO = userDao.selectById(userId); - if (isNull(sysUserDO)) { - return R.fail("用户不存在"); + * 修改便民服务商家绑定账号 + * @param userId 用户id + * @param account 修改账户 + * @return 修改结果 + */ + @Override + public R putUserAccount(Long userId, String account) { + SysUserDO sysUserDO = userDao.selectById(userId); + if (isNull(sysUserDO)) { + return R.fail("用户不存在"); + } + sysUserDO.setAccount(account); + userDao.updateById(sysUserDO); + return R.ok(); } - sysUserDO.setAccount(account); - userDao.updateById(sysUserDO); - return R.ok(); -} + + // /** + // * 修改便民服务商家绑定账号 + // * @param userId 用户id + // * @param account 修改账户 + // * @return 修改结果 + // */ + // @Override + // public R putUserAccount(Long userId, String account) { + // SysUserDO sysUserDO = userDao.selectById(userId); + // if (isNull(sysUserDO)) { + // return R.fail("用户不存在"); + // } + // String oldAccount = sysUserDO.getAccount(); + // sysUserDO.setAccount(account); + // int result = userDao.updateById(sysUserDO); + // if (result > 0) { + // SysRoleDO sysRoleDO = roleDAO.selectOne(new QueryWrapper<SysRoleDO>() + // .lambda().eq(SysRoleDO::getRoleKey, Constants.CONVENIENT_MERCHANT_ROLE_KEY + oldAccount)); + // if (nonNull(sysRoleDO)) { + // sysRoleDO.setRoleKey(Constants.CONVENIENT_MERCHANT_ROLE_KEY + account); + // roleDAO.updateById(sysRoleDO); + // } + // } + // return R.ok(); + // } @Override public R disableOrEnableMerchantUsers(DisableOrEnableConvenientMerchantDTO disableOrEnableConvenientMerchantDTO) { userDao.disableOrEnableMerchantUsers(disableOrEnableConvenientMerchantDTO.getType(), disableOrEnableConvenientMerchantDTO.getUserIds()); return R.ok(); } + + /** + * 根据openid维护社区团队里是否注册 + * @param openid 用户微信唯一标识 + */ + @Override + public void judgeCommunityTeam(String openid){ + //查询用户信息 + SysUserDO userDO = this.userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getOpenid,openid)); + if(userDO != null && StringUtils.isNotEmpty(userDO.getPhone())){ + if(this.userDao.getCommunityTeamCount(userDO.getPhone()) > 0){ + this.userDao.judgeCommunityTeam(userDO.getPhone()); + } + } + } + + /** + * 数据看板升级版 + * + * @return 运营后台数据看板升级版 + */ + @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); + } + + /** + * 运营后台-用户数据统计汇总 + * @return 用户数据统计汇总 + */ + @Override + public R communityStatistics(){ + //返回结果数据 + IndexUserStatisticsVo userStatisticsVo = new IndexUserStatisticsVo(); + //查询所有街道 + List<IndexUserStreetVo> streetList = userDao.getUserStreetList(); + streetList.forEach(street -> { + List<IndexUserCommunityVo> communityList = userDao.getUserCommunityList(street.getStreetId()); + street.setCommunityList(communityList); + }); + userStatisticsVo.setStreetList(streetList); + return R.ok(userStatisticsVo); + } + + @Override + public R communityStatisticsExport(){ + return R.ok(userDao.getUserCommunityExcelExport()); + } + + /** + * 通过UnionId获取用户信息 + * @param unionId + * @return + */ + @Override + public R getUserInfoByUnionId(String unionId) { + SysUserDO sysUserDO = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getUnionid, unionId)); + if (isNull(sysUserDO)) { + 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(); + } } -- Gitblit v1.7.1