From 2e69d6f6be27f8be68313e4c544548fb47eba731 Mon Sep 17 00:00:00 2001 From: CeDo <cedoogle@gmail.com> Date: 星期二, 01 六月 2021 10:19:45 +0800 Subject: [PATCH] update --- springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java | 203 +++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 189 insertions(+), 14 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 bcb4fd7..19c46d0 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 @@ -11,13 +11,17 @@ import com.panzhihua.common.model.dtos.PageDTO; import com.panzhihua.common.model.dtos.community.ExportUserDTO; import com.panzhihua.common.model.dtos.community.NoticeReadDTO; +import com.panzhihua.common.model.dtos.grid.EventGridMemberAddDTO; import com.panzhihua.common.model.dtos.user.*; import com.panzhihua.common.model.vos.*; import com.panzhihua.common.model.vos.community.ComActVO; import com.panzhihua.common.model.vos.community.ComMngVolunteerMngVO; +import com.panzhihua.common.model.vos.grid.EventGridMemberRelationVO; import com.panzhihua.common.model.vos.partybuilding.ActivityManagerVO; import com.panzhihua.common.model.vos.shop.ShopStoreVO; import com.panzhihua.common.model.vos.user.*; +import com.panzhihua.common.service.grid.GridService; +import com.panzhihua.common.service.partybuilding.PartyBuildingService; import com.panzhihua.common.utlis.IdCard; import com.panzhihua.common.utlis.RealNameUtil; import com.panzhihua.common.utlis.SensitiveUtil; @@ -77,7 +81,8 @@ private SysMenuDAO sysMenuDAO; @Resource private SysUserInputDAO sysUserInputDAO; - + @Resource + private GridService gridService; /** * 小程序微信用户信息更新 @@ -252,6 +257,7 @@ loginUserInfoVO.setIsmemberrole(1); } } + loginUserInfoVO.setIsRealNamed(sysUserDO.getIdCard()!=null); return R.ok(loginUserInfoVO); } @@ -512,10 +518,29 @@ */ @Override public R putUserIsVolunteer(String phone, int type) { + SysUserDO sysUserDO = new SysUserDO(); sysUserDO.setIsVolunteer(type); + //????根据手机号匹配 int update = userDao.update(sysUserDO, new UpdateWrapper<SysUserDO>().lambda().eq(SysUserDO::getPhone, phone)); if (update > 0) { + ComMngVolunteerMngVO comMngVolunteerMngVO = userDao.selectVolunteerMngByPhone(phone); + if(comMngVolunteerMngVO!=null&&comMngVolunteerMngVO.getSubmitUserId()!=null) { + Long userId = comMngVolunteerMngVO.getSubmitUserId(); + //删除用户信息缓存 + String userKey = UserConstants.LOGIN_USER_INFO + userId; + stringRedisTemplate.delete(userKey); + }else{ + List<SysUserDO> userDOList = userDao.selectList(new LambdaQueryWrapper<SysUserDO>().eq(SysUserDO::getPhone, phone)); + if(userDOList!=null && userDOList.size()>0){ + userDOList.forEach(usrDo ->{ + Long userId = usrDo.getUserId(); + //删除用户信息缓存 + String userKey = UserConstants.LOGIN_USER_INFO + userId; + stringRedisTemplate.delete(userKey); + }); + } + } return R.ok(); } return R.fail(); @@ -545,6 +570,9 @@ } int update = userDao.updateById(sysUserDO); if (update > 0) { + //删除用户信息缓存 + String userKey = UserConstants.LOGIN_USER_INFO + userId; + stringRedisTemplate.delete(userKey); return R.ok(); } } @@ -561,7 +589,7 @@ public R putUserCommunityArea(LoginUserInfoVO loginUserInfoVO) { SysUserDO sysUserDO = new SysUserDO(); sysUserDO.setCommunityId(loginUserInfoVO.getCommunityId()); - sysUserDO.setAreaId(loginUserInfoVO.getAreaId()); +// sysUserDO.setAreaId(loginUserInfoVO.getAreaId()); sysUserDO.setUserId(loginUserInfoVO.getUserId()); int update = userDao.updateById(sysUserDO); if (update > 0) { @@ -585,15 +613,20 @@ String idCard = loginUserInfoVO.getIdCard(); String name = loginUserInfoVO.getName(); log.info("用户实名认证发送请求,姓名:" + name + "身份证号码:" + idCard); - boolean b = RealNameUtil.authentication(idCard, name); - if (!b) { - return R.fail("身份认证失败:公安系统认证错误"); + try { + boolean b = RealNameUtil.authentication(idCard, name); + if (!b) { + return R.fail("身份认证失败:请填写真实信息"); + } + }catch (ServiceException serviceException){ + return R.fail(serviceException.getMessage()); } SysUserDO sysUserDO = new SysUserDO(); sysUserDO.setName(name); sysUserDO.setIdCard(idCard); - sysUserDO.setSex(loginUserInfoVO.getSex()); - sysUserDO.setBirthday(loginUserInfoVO.getBirthday()); + //通过身份证号判断性别以及出生日期 + sysUserDO.setSex(IdCard.sex(idCard)); + sysUserDO.setBirthday(IdCard.birthDay(idCard)); sysUserDO.setJob(loginUserInfoVO.getJob()); sysUserDO.setUserId(loginUserInfoVO.getUserId()); sysUserDO.setFaceUrl(loginUserInfoVO.getFaceUrl()); @@ -604,6 +637,17 @@ } int update = userDao.updateById(sysUserDO); if (update > 0) { + //清空缓存 + String userKey = UserConstants.LOGIN_USER_INFO + loginUserInfoVO.getUserId(); + stringRedisTemplate.delete(userKey); + //实名认证成功查询是否有已审核的党员信息,有则更新党员信息绑定党员的userId + Long memberId = userDao.getPartyBuildingByIdCard(idCard); + if(memberId != null){ + sysUserDO.setIsPartymember(1); + userDao.updateById(sysUserDO); + //修改审核绑定的userId + userDao.updateComPbMemberUserId(idCard,sysUserDO.getUserId()); + } return R.ok(); } return R.fail(); @@ -715,7 +759,7 @@ @Override public R listFamily(Long userId,Long pageNum, Long pageSize) { List<ComMngFamilyInfoVO> comMngFamilyInfoVOS = new ArrayList<>(); - LambdaQueryWrapper<ComMngFamilyInfoDO> query = new QueryWrapper<ComMngFamilyInfoDO>().lambda().eq(ComMngFamilyInfoDO::getUserId, userId); + LambdaQueryWrapper<ComMngFamilyInfoDO> query = new QueryWrapper<ComMngFamilyInfoDO>().lambda().eq(ComMngFamilyInfoDO::getUserId, userId).orderByDesc(ComMngFamilyInfoDO::getCreateAt); IPage<ComMngFamilyInfoDO> pageData = comMngFamilyInfoDAO.selectPage(new Page<>(pageNum,pageSize), query); if (!ObjectUtils.isEmpty(pageData.getRecords())) { pageData.getRecords().forEach(comMngFamilyInfoDO -> { @@ -824,6 +868,29 @@ throw new ServiceException("账户已经存在"); } + } + + if(insert>0 && sysUserDO.getType()==3){//添加的用户是社区账号时 + //添加网格综合治理管理后台用户 + 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("账户已经存在"); + } + + } } if (insert > 0) { SysUserDO sysUserDO1 = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, administratorsUserVO.getType()).eq(SysUserDO::getAccount, administratorsUserVO.getAccount())); @@ -1368,6 +1435,7 @@ @Override public R indexDataCommunityBackstage(Long communityId) { IndexDataVO indexDataVO = userDao.indexDataCommunityBackstage(communityId); + //查询后台党员数量 return R.ok(indexDataVO); } @@ -1410,15 +1478,42 @@ */ @Override public R updateUserIsPartymember(String idCard) { - SysUserDO sysUserDO = new SysUserDO(); - sysUserDO.setIsPartymember(1); - int update = userDao.update(sysUserDO, new UpdateWrapper<SysUserDO>().lambda().eq(SysUserDO::getIdCard, idCard)); - if (update > 0) { + SysUserDO sysUserDO = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getIdCard,idCard).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("新增党员修改用户党员状态成功 身份证号【{}】", idCard); - return R.ok(); } - return R.fail(); + return R.ok(); } + + /** + * 修改用户的党员状态 + * + * @param idCard 身份证号 + * @return 修改结果 + */ + @Override + public R updateUserNotPartymember(String idCard) { + SysUserDO sysUserDO = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getIdCard,idCard).eq(SysUserDO::getType,1)); + if(sysUserDO != null){ + sysUserDO.setIsPartymember(0); + int updated = userDao.updateById(sysUserDO); + if(updated>0) { + //删除用户信息缓存 + String userKey = UserConstants.LOGIN_USER_INFO + sysUserDO.getUserId(); + stringRedisTemplate.delete(userKey); + } + log.info("新增党员修改用户为非党员状态成功 身份证号【{}】", idCard); + } + return R.ok(); + } + /** * 获取各种协议 @@ -1734,4 +1829,84 @@ userDao.updateUserArchives(userArchivesVO); return R.ok(); } + + /** + * 修改app用户密码 + * @param userInfoAppDTO 请求参数 + * @return 修改结果 + */ + @Override + public R updateUserPassByApp(EditUserInfoPassAppDTO userInfoAppDTO){ + if(userInfoAppDTO.getOldPassword().equals(userInfoAppDTO.getNewPassword())){ + return R.fail("新密码不可与原密码相同"); + } + //查询用户信息 + SysUserDO userDO = userDao.selectById(userInfoAppDTO.getUserId()); + if (userDO == null) { + return R.fail("未查询到用户信息"); + } + BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); + if (!passwordEncoder.matches(userInfoAppDTO.getOldPassword(),userDO.getPassword())) { + return R.fail("原密码错误"); + } + if(!userInfoAppDTO.getNewPassword().equals(userInfoAppDTO.getConfirmPassword())){ + return R.fail("两次输入的新密码不一致"); + } + userDO.setPassword(passwordEncoder.encode(userInfoAppDTO.getNewPassword())); + if (userDao.updateById(userDO) > 0) { + return R.ok(); + } else { + return R.fail(); + } + } + + @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) { + //添加默认网格员角色 + SysRoleDO sysRoleDO = new SysRoleDO(); + sysRoleDO.setCommunityId(0L); + sysRoleDO.setRoleName("网格员默认角色"); + sysRoleDO.setRoleKey(Constants.GRID_DEFAULT_ROLE_KEY); + sysRoleDO.setRoleSort(0); + sysRoleDO.setCreateBy(eventGridMemberAddDTO.getUserId()); + int insert = roleDAO.insert(sysRoleDO); + if (insert!=1) { + throw new ServiceException("网格员默认角色添加失败"); + } + } + Long roleId = gridMemberDefaultRole.getRoleId(); + //新角色设置所有权限 + MenuRoleVO menuRoleVO = new MenuRoleVO(); + menuRoleVO.setIsAll(1); + menuRoleVO.setCommunityId(eventGridMemberAddDTO.getCommunityId()); + menuRoleVO.setRoleId(roleId); + this.putMenuRole(menuRoleVO); + + SysUserDO sysUserDO = new SysUserDO(); + String encode = new BCryptPasswordEncoder().encode(eventGridMemberAddDTO.getPasswd()); + eventGridMemberAddDTO.setPasswd(encode); + BeanUtils.copyProperties(eventGridMemberAddDTO, sysUserDO); + int insert = 0; + try { + insert = userDao.insert(sysUserDO); + } 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("账户已经存在"); + } + + } + //TODO 添加关联关系 + //gridService.addEventGridMember(); + + + return R.fail(); + } } -- Gitblit v1.7.1