huanghongfa
2022-04-13 c92c380b8f29ad485024d3d1948d0d0fce56b0d6
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java
@@ -376,6 +376,8 @@
        loginUserInfoVO.setIsFourMember(2);
        loginUserInfoVO.setIsCommunityWorker(2);
        loginUserInfoVO.setIsPropertyWorker(2);
        loginUserInfoVO.setIsSocialWorker(2);
        loginUserInfoVO.setIsFmsMember(2);
        // 志愿者状态
        String phone = sysUserDO.getPhone();
        Long userCommunityId = sysUserDO.getCommunityId();
@@ -410,6 +412,11 @@
            if (countPropertyWorker > 0) {
                loginUserInfoVO.setIsPropertyWorker(1);
            }
            //是否微团队成员
            int countFmsMember = userDao.countFmsMember(phone, userCommunityId);
            if (countFmsMember > 0) {
                loginUserInfoVO.setIsFmsMember(1);
            }
            // 是否是"管理员"或者 本社区 "社区团队"、"党委成员"
            Integer countTeam = userDao.selectCountTeam(phone, userCommunityId);
            Integer selectCountMemberRole = userDao.selectCountMemberRole(phone, userCommunityId);
@@ -421,6 +428,10 @@
                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);
@@ -699,6 +710,7 @@
        }
        ComActVO comActVO = userDao.selectCommunity(loginUserInfoVO.getCommunityId());
        if (!ObjectUtils.isEmpty(comActVO)) {
            loginUserInfoVO.setComActVO(comActVO);
            loginUserInfoVO.setCommunityName(comActVO.getName());
            loginUserInfoVO.setAreaCode(comActVO.getAreaCode());
        }
@@ -708,8 +720,24 @@
        //是否是社区物业人员
        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.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);
    }
@@ -1109,6 +1137,46 @@
                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);
                }
                else {
                    menuRoleVO.setIsAll(1);
                }
                menuRoleVO.setMenuIds(menu);
                menuRoleVO.setRoleId(roleId);
                this.putMenuRole(menuRoleVO);
            }
        }
        SysRoleDO roleDO = roleDAO.selectById(roleId);
        if (ObjectUtils.isEmpty(roleDO)) {
            return R.fail("角色不存在");
@@ -1132,7 +1200,7 @@
        }
        if (insert > 0 && sysUserDO.getType() == 3) {// 添加的用户是社区账号时
        if (insert > 0 && sysUserDO.getType() == 3 &&sysUserDO.getStreetId()==null) {// 添加的用户是社区账号时
            // 添加网格综合治理管理后台用户
            SysUserDO sysUserDOWangGe = new SysUserDO();
            BeanUtils.copyProperties(sysUserDO, sysUserDOWangGe);
@@ -1176,6 +1244,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("角色不存在");
@@ -1193,6 +1302,8 @@
                throw new ServiceException("手机号已经存在");
            } else if (e.getMessage().contains("union_account_type")) {
                throw new ServiceException("账户已经存在");
            }else if(e.getMessage().contains("23000")){
                throw new ServiceException("手机号已存在");
            }
        }
@@ -1270,7 +1381,12 @@
                        .anyMatch(sysRoleMenuDO -> sysRoleMenuDO.getMenuId().equals(menuId))).collect(Collectors.toList());
            }
            if (!menuIds.isEmpty()) {
                sysRoleMenuDAO.batchInsertWithRoleId(menuIds, roleId);
                if(menuRoleVO.getMenuIds()==null){
                    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()
@@ -1352,7 +1468,7 @@
        }
        Long communityId = sysUserDO.getCommunityId();
        Long communityId1 = administratorsUserVO.getCommunityId();
        if (communityId1.intValue() != communityId.intValue()) {
        if (communityId1!=null&&communityId1.intValue() != communityId.intValue()) {
            return R.fail("用户不属于当前平台");
        }
        // 删除用户
@@ -2194,7 +2310,7 @@
    /**
     * 修改app用户密码
     *
     *
     * @param userInfoAppDTO
     *            请求参数
     * @return 修改结果
@@ -2226,7 +2342,7 @@
    /**
     * 添加网格员
     *
     *
     * @param eventGridMemberAddDTO
     *            请求参数
     * @return 结果
@@ -2343,7 +2459,7 @@
    /**
     * 网格员管理
     *
     *
     * @param memberRelationDTO
     *            请求参数
     * @return 网格员列表
@@ -2380,7 +2496,7 @@
    /**
     * 修改网格员信息
     *
     *
     * @param gridMemberDTO
     *            请求参数
     * @return 修改结果
@@ -2476,7 +2592,7 @@
    /**
     * 重置网格员密码
     *
     *
     * @param gridMemberDTO
     *            请求参数
     * @return 重置结果
@@ -2494,7 +2610,7 @@
    /**
     * 批量删除网格员
     *
     *
     * @param Ids
     *            网格员id集合
     * @return 删除结果
@@ -2533,7 +2649,7 @@
    /**
     * 查询社区的收益说明
     *
     *
     * @param communityId
     *            社区id
     * @return 收益说明
@@ -2580,7 +2696,7 @@
    /**
     * 根据用户id查询用户openid
     *
     *
     * @param userId
     *            用户id
     * @return openid
@@ -2596,7 +2712,7 @@
    /**
     * 查询社区后台工作人员列表
     *
     *
     * @param communityId
     *            社区id
     * @return 社区后台工作人员列表
@@ -2730,7 +2846,7 @@
        userDao.disableOrEnableMerchantUsers(disableOrEnableConvenientMerchantDTO.getType(), disableOrEnableConvenientMerchantDTO.getUserIds());
        return R.ok();
    }
    /**
     * 根据openid维护社区团队里是否注册
     * @param openid    用户微信唯一标识
@@ -2828,6 +2944,28 @@
        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();
    }
    /**
@@ -3067,4 +3205,19 @@
        }
        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();
    }
}