From a33990498e32fda774dacf849bfcd660c58da8e7 Mon Sep 17 00:00:00 2001
From: 101captain <237651143@qq.com>
Date: 星期四, 28 四月 2022 15:22:17 +0800
Subject: [PATCH] Merge branch 'huacheng' into huacheng_paicha

---
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java |  223 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 210 insertions(+), 13 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 2a6ff6b..09ae33b 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
@@ -20,6 +20,7 @@
 
 import com.alibaba.fastjson.JSONObject;
 import com.panzhihua.common.model.dtos.community.microCommercialStreet.BindUserPhoneDTO;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidMemberVO;
 import com.panzhihua.common.model.vos.community.microCommercialStreet.McsLoginUserInfoVO;
 import com.panzhihua.service_user.dao.*;
 import com.panzhihua.service_user.entity.SysAppConfig;
@@ -376,6 +377,9 @@
         loginUserInfoVO.setIsFourMember(2);
         loginUserInfoVO.setIsCommunityWorker(2);
         loginUserInfoVO.setIsPropertyWorker(2);
+        loginUserInfoVO.setIsSocialWorker(2);
+        loginUserInfoVO.setIsFmsMember(2);
+        loginUserInfoVO.setIsAcidMember(2);
         // 志愿者状态
         String phone = sysUserDO.getPhone();
         Long userCommunityId = sysUserDO.getCommunityId();
@@ -410,6 +414,22 @@
             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)) {
+                loginUserInfoVO.setIsAcidMember(1);
+                loginUserInfoVO.setRelationName(acidMember.getRelationName());
+            }
+            //是否网格员
+            int easyPhotoMember = userDao.countEasyPhotoMember(phone, userCommunityId);
+            if (easyPhotoMember > 0) {
+                loginUserInfoVO.setIsEasyPhotoMember(1);
+            }
             // 是否是"管理员"或者 本社区 "社区团队"、"党委成员"
             Integer countTeam = userDao.selectCountTeam(phone, userCommunityId);
             Integer selectCountMemberRole = userDao.selectCountMemberRole(phone, userCommunityId);
@@ -421,6 +441,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 +723,7 @@
         }
         ComActVO comActVO = userDao.selectCommunity(loginUserInfoVO.getCommunityId());
         if (!ObjectUtils.isEmpty(comActVO)) {
+            loginUserInfoVO.setComActVO(comActVO);
             loginUserInfoVO.setCommunityName(comActVO.getName());
             loginUserInfoVO.setAreaCode(comActVO.getAreaCode());
         }
@@ -708,8 +733,31 @@
         //是否是社区物业人员
         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(2);
+        ComActAcidMemberVO acidMember = userDao.selectAcidMemberByPhone(loginUserInfoVO.getPhone());
+        if (nonNull(acidMember)) {
+            loginUserInfoVO.setIsAcidMember(1);
+            loginUserInfoVO.setRelationName(acidMember.getRelationName());
+        }
         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 +1157,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 +1220,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 +1264,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 +1322,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 +1401,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 +1488,7 @@
         }
         Long communityId = sysUserDO.getCommunityId();
         Long communityId1 = administratorsUserVO.getCommunityId();
-        if (communityId1.intValue() != communityId.intValue()) {
+        if (communityId1!=null&&communityId1.intValue() != communityId.intValue()) {
             return R.fail("用户不属于当前平台");
         }
         // 删除用户
@@ -1854,6 +1990,30 @@
     /**
      * 修改用户的党员状态
      *
+     * @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();
+    }
+
+    /**
+     * 修改用户的党员状态
+     *
      * @param idCard
      *            身份证号
      * @return 修改结果
@@ -2194,7 +2354,7 @@
 
     /**
      * 修改app用户密码
-     * 
+     *
      * @param userInfoAppDTO
      *            请求参数
      * @return 修改结果
@@ -2226,7 +2386,7 @@
 
     /**
      * 添加网格员
-     * 
+     *
      * @param eventGridMemberAddDTO
      *            请求参数
      * @return 结果
@@ -2343,7 +2503,7 @@
 
     /**
      * 网格员管理
-     * 
+     *
      * @param memberRelationDTO
      *            请求参数
      * @return 网格员列表
@@ -2380,7 +2540,7 @@
 
     /**
      * 修改网格员信息
-     * 
+     *
      * @param gridMemberDTO
      *            请求参数
      * @return 修改结果
@@ -2476,7 +2636,7 @@
 
     /**
      * 重置网格员密码
-     * 
+     *
      * @param gridMemberDTO
      *            请求参数
      * @return 重置结果
@@ -2494,7 +2654,7 @@
 
     /**
      * 批量删除网格员
-     * 
+     *
      * @param Ids
      *            网格员id集合
      * @return 删除结果
@@ -2533,7 +2693,7 @@
 
     /**
      * 查询社区的收益说明
-     * 
+     *
      * @param communityId
      *            社区id
      * @return 收益说明
@@ -2580,7 +2740,7 @@
 
     /**
      * 根据用户id查询用户openid
-     * 
+     *
      * @param userId
      *            用户id
      * @return openid
@@ -2596,7 +2756,7 @@
 
     /**
      * 查询社区后台工作人员列表
-     * 
+     *
      * @param communityId
      *            社区id
      * @return 社区后台工作人员列表
@@ -2730,7 +2890,7 @@
         userDao.disableOrEnableMerchantUsers(disableOrEnableConvenientMerchantDTO.getType(), disableOrEnableConvenientMerchantDTO.getUserIds());
         return R.ok();
     }
-    
+
     /**
      * 根据openid维护社区团队里是否注册
      * @param openid    用户微信唯一标识
@@ -2828,6 +2988,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 +3249,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();
+    }
 }

--
Gitblit v1.7.1