From 08eefab8f0b04018dc62928ec2191bcae9d3e7d0 Mon Sep 17 00:00:00 2001 From: huanghongfa <huanghongfa123456> Date: 星期五, 15 十月 2021 16:25:01 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/test' into test --- springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java | 277 +++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 175 insertions(+), 102 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 f4adeda..62ee081 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 @@ -14,6 +14,11 @@ import javax.annotation.Resource; +import cn.hutool.core.util.IdcardUtil; +import com.panzhihua.common.model.dtos.DataKanBansDto; +import com.panzhihua.common.model.vos.community.*; +import com.panzhihua.service_user.dao.*; +import com.panzhihua.service_user.model.dos.*; import org.apache.commons.lang.time.DateFormatUtils; import org.apache.commons.lang.time.DateUtils; import org.springframework.beans.BeanUtils; @@ -54,8 +59,6 @@ import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.model.vos.R; 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.grid.GridMemberVO; import com.panzhihua.common.model.vos.grid.admin.GridMemberBuildingVO; import com.panzhihua.common.model.vos.partybuilding.ActivityManagerVO; @@ -81,34 +84,6 @@ import com.panzhihua.common.utlis.StringUtils; import com.panzhihua.common.utlis.WxUtil; import com.panzhihua.common.utlis.WxXCXTempSend; -import com.panzhihua.service_user.dao.ComMngFamilyInfoDAO; -import com.panzhihua.service_user.dao.ComMngUserTagDAO; -import com.panzhihua.service_user.dao.EventGridMemberBuildingRelationMapper; -import com.panzhihua.service_user.dao.LcCompareMemberCodeMapper; -import com.panzhihua.service_user.dao.RoleDAO; -import com.panzhihua.service_user.dao.SysMenuDAO; -import com.panzhihua.service_user.dao.SysOperLogDAO; -import com.panzhihua.service_user.dao.SysRoleMenuDAO; -import com.panzhihua.service_user.dao.SysUserAgreementDAO; -import com.panzhihua.service_user.dao.SysUserFeedbackDAO; -import com.panzhihua.service_user.dao.SysUserInputDAO; -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.ComMngFamilyInfoDO; -import com.panzhihua.service_user.model.dos.ComMngUserTagDO; -import com.panzhihua.service_user.model.dos.EventGridMemberBuildingRelationDO; -import com.panzhihua.service_user.model.dos.LcCompareCodeMemberDO; -import com.panzhihua.service_user.model.dos.SysMenuDO; -import com.panzhihua.service_user.model.dos.SysOperLogDO; -import com.panzhihua.service_user.model.dos.SysRoleDO; -import com.panzhihua.service_user.model.dos.SysRoleMenuDO; -import com.panzhihua.service_user.model.dos.SysUserAgreementDO; -import com.panzhihua.service_user.model.dos.SysUserDO; -import com.panzhihua.service_user.model.dos.SysUserFeedbackDO; -import com.panzhihua.service_user.model.dos.SysUserInputDO; -import com.panzhihua.service_user.model.dos.SysUserNoticeDO; -import com.panzhihua.service_user.model.dos.SysUserRoleDO; import com.panzhihua.service_user.model.dtos.DataKanbanDTO; import com.panzhihua.service_user.service.EventGridMemberBuildingRelationService; import com.panzhihua.service_user.service.UserService; @@ -158,6 +133,8 @@ private EventGridMemberBuildingRelationMapper eventGridMemberBuildingRelationMapper; @Resource private LcCompareMemberCodeMapper lcCompareMemberCodeMapper; + @Resource + private ComActFourMemberDao comActFourMemberDao; // @Resource // private GridService gridService; @@ -346,6 +323,8 @@ loginUserInfoVO.setRoles(set); } loginUserInfoVO.setIsmemberrole(2); + loginUserInfoVO.setIsFourMember(2); + loginUserInfoVO.setIsCommunityWorker(2); // 志愿者状态 String phone = sysUserDO.getPhone(); Long userCommunityId = sysUserDO.getCommunityId(); @@ -363,12 +342,18 @@ 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); + } // 是否是"管理员"或者 本社区 "社区团队"、"党委成员" 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) { @@ -575,7 +560,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()); @@ -798,7 +784,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()); } @@ -1068,6 +1054,8 @@ throw new ServiceException("手机号已经存在"); } else if (e.getMessage().contains("union_account_type")) { throw new ServiceException("账户已经存在"); + }else if(e.getMessage().contains("23000")){ + throw new ServiceException("手机号已存在"); } } @@ -1090,6 +1078,8 @@ throw new ServiceException("手机号已经存在"); } else if (e.getMessage().contains("union_account_type")) { throw new ServiceException("账户已经存在"); + }else if(e.getMessage().contains("23000")){ + throw new ServiceException("手机号已存在"); } } @@ -1198,19 +1188,28 @@ // 获取所有权限id List<SysMenuDO> menuDOList = sysMenuDAO.selectList(new QueryWrapper<SysMenuDO>().lambda() - .eq(SysMenuDO::getCommunityId, 2l).orderByAsc(SysMenuDO::getOrderNum)); + .eq(SysMenuDO::getCommunityId, 2L).orderByAsc(SysMenuDO::getOrderNum)); if (!menuDOList.isEmpty()) { menuIds = menuDOList.stream().map(sysMenuDO -> sysMenuDO.getMenuId()).collect(Collectors.toList()); - for (int i = 0; i < menuIds.size(); i++) { - SysRoleMenuDO sysRoleMenuDO = sysRoleMenuDAO.selectOne(new QueryWrapper<SysRoleMenuDO>().lambda() - .eq(SysRoleMenuDO::getMenuId, menuIds.get(i)).eq(SysRoleMenuDO::getRoleId, roleId)); - if (sysRoleMenuDO == null) { - sysRoleMenuDO = new SysRoleMenuDO(); - sysRoleMenuDO.setMenuId(menuIds.get(i)); - sysRoleMenuDO.setRoleId(roleId); - sysRoleMenuDAO.insert(sysRoleMenuDO); - } + + List<SysRoleMenuDO> sysRoleMenuDOList = sysRoleMenuDAO.selectList(new QueryWrapper<SysRoleMenuDO>().lambda().eq(SysRoleMenuDO::getRoleId, roleId).in(SysRoleMenuDO::getMenuId, menuIds)); + if (!sysRoleMenuDOList.isEmpty()) { + menuIds = menuIds.stream().filter(menuId -> !sysRoleMenuDOList.stream() + .anyMatch(sysRoleMenuDO -> sysRoleMenuDO.getMenuId().equals(menuId))).collect(Collectors.toList()); } + if (!menuIds.isEmpty()) { + sysRoleMenuDAO.batchInsertWithRoleId(menuIds, roleId); + } +// for (int i = 0; i < menuIds.size(); i++) { +// SysRoleMenuDO sysRoleMenuDO = sysRoleMenuDAO.selectOne(new QueryWrapper<SysRoleMenuDO>().lambda() +// .eq(SysRoleMenuDO::getMenuId, menuIds.get(i)).eq(SysRoleMenuDO::getRoleId, roleId)); +// if (sysRoleMenuDO == null) { +// sysRoleMenuDO = new SysRoleMenuDO(); +// sysRoleMenuDO.setMenuId(menuIds.get(i)); +// sysRoleMenuDO.setRoleId(roleId); +// sysRoleMenuDAO.insert(sysRoleMenuDO); +// } +// } } return R.ok(); } @@ -2163,7 +2162,6 @@ @Override @Transactional(rollbackFor = Exception.class) public R addGridUser(EventGridMemberAddDTO eventGridMemberAddDTO) { - SysRoleDO gridMemberDefaultRole = roleDAO.selectOne( new QueryWrapper<SysRoleDO>().lambda().eq(SysRoleDO::getRoleKey, Constants.GRID_DEFAULT_ROLE_KEY)); if (gridMemberDefaultRole == null) { @@ -2565,12 +2563,12 @@ } @Override - public R resetPasswordPatch(Long[] userId) { + public R resetPasswordPatch(Long[] userId,String password) { if(userId!=null){ for(Long user:userId){ SysUserDO sysUserDO = new SysUserDO(); sysUserDO.setUserId(user); - String encode = new BCryptPasswordEncoder().encode("admin123456"); + String encode = new BCryptPasswordEncoder().encode(password); sysUserDO.setPassword(encode); userDao.updateById(sysUserDO); } @@ -2586,36 +2584,17 @@ @Override @Transactional(rollbackFor = Exception.class) public R addConvenientMerchantUser(ConvenientMerchantDTO convenientMerchantDTO) { - SysUserDO sysUserDO = new SysUserDO(); - Long communityId = 0L; - // 新增社区高级管理员角色 - SysRoleDO sysRoleDO = new SysRoleDO(); - sysRoleDO.setCommunityId(0L); - sysRoleDO.setRoleName(convenientMerchantDTO.getName()); - sysRoleDO.setRoleKey(Constants.CONVENIENT_MERCHANT_ROLE_KEY + convenientMerchantDTO.getAccount()); - sysRoleDO.setRoleSort(0); - sysRoleDO.setCreateBy(convenientMerchantDTO.getCreatedBy()); - try { - int insert = roleDAO.insert(sysRoleDO); - if (insert != 1) { - return R.fail("网络错误"); - } - } catch (Exception e) { - log.error("新增角色报错【{}】", e.getMessage()); - if (e.getMessage().contains("unique_role_name_community_id")) { - return R.fail("商家名称已被占用"); - } else { - return R.fail("建立商家角色失败"); - } + SysUserDO sysUserDO; + sysUserDO = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getAccount, convenientMerchantDTO.getAccount())); + if (nonNull(sysUserDO)) { + return R.fail("账户已经存在"); } - // 新角色设置所有权限 - MenuRoleVO menuRoleVO = new MenuRoleVO(); - menuRoleVO.setIsAll(1); - menuRoleVO.setCommunityId(communityId); - menuRoleVO.setRoleId(sysRoleDO.getRoleId()); - this.putMenuRole(menuRoleVO); - + 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()); BeanUtils.copyProperties(convenientMerchantDTO, sysUserDO); sysUserDO.setAccount(convenientMerchantDTO.getAccount()); @@ -2631,45 +2610,139 @@ } catch (Exception e) { e.printStackTrace(); log.error("新增后台用户报错【{}】", e.getMessage()); - roleDAO.deleteByRoleKey(Constants.CONVENIENT_MERCHANT_ROLE_KEY + convenientMerchantDTO.getAccount()); - if (e.getMessage().contains("union_phone_type")) { - return R.fail("手机号已经存在"); - } else if (e.getMessage().contains("union_account_type")) { - return R.fail("账户已经存在"); - } } 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("用户不存在"); - } - 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); + * 修改便民服务商家绑定账号 + * @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(); } - 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.getIds()); + 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()); + } } -- Gitblit v1.7.1