From 5a278a0965b417e7f39e8c209e2ff401f415066a Mon Sep 17 00:00:00 2001
From: 101captain <237651143@qq.com>
Date: 星期一, 21 二月 2022 14:07:48 +0800
Subject: [PATCH] Merge branch 'hemenkou_dev' into dev

---
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java |  203 ++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 162 insertions(+), 41 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 82d2a14..2d6673a 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
@@ -21,6 +21,9 @@
 import com.alibaba.fastjson.JSONObject;
 import com.panzhihua.common.model.dtos.community.microCommercialStreet.BindUserPhoneDTO;
 import com.panzhihua.common.model.vos.community.microCommercialStreet.McsLoginUserInfoVO;
+import com.panzhihua.service_user.dao.*;
+import com.panzhihua.service_user.entity.SysAppConfig;
+import com.panzhihua.service_user.entity.SysTemplateConfig;
 import org.apache.commons.lang.time.DateFormatUtils;
 import org.apache.commons.lang.time.DateUtils;
 import org.springframework.beans.BeanUtils;
@@ -94,21 +97,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.ComActFourMemberDao;
-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.ComActFourMember;
 import com.panzhihua.service_user.model.dos.ComMngFamilyInfoDO;
 import com.panzhihua.service_user.model.dos.ComMngUserTagDO;
@@ -179,6 +167,10 @@
     private LcCompareMemberCodeMapper lcCompareMemberCodeMapper;
     @Resource
     private ComActFourMemberDao comActFourMemberDao;
+    @Resource
+    private SysAppConfigDao sysAppConfigDao;
+    @Resource
+    private SysTemplateConfigDao sysTemplateConfigDao;
     // @Resource
     // private GridService gridService;
 
@@ -313,8 +305,13 @@
                 new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, type).eq(SysUserDO::getOpenid, name));
         } else {
             LambdaQueryWrapper<SysUserDO> wrapper = new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, type);
-            wrapper.and(sysUserDOLambdaQueryWrapper -> sysUserDOLambdaQueryWrapper.eq(SysUserDO::getAccount, name).or()
-                .eq(SysUserDO::getPhone, name));
+            if (type == 11) {
+                //只允许通过account登录
+                wrapper.and(sysUserDOLambdaQueryWrapper -> sysUserDOLambdaQueryWrapper.eq(SysUserDO::getAccount, name));
+            } else {
+                wrapper.and(sysUserDOLambdaQueryWrapper -> sysUserDOLambdaQueryWrapper.eq(SysUserDO::getAccount, name).or()
+                        .eq(SysUserDO::getPhone, name));
+            }
             sysUserDO = userDao.selectOne(wrapper);
         }
         boolean empty = ObjectUtils.isEmpty(sysUserDO);
@@ -330,7 +327,16 @@
         loginUserInfoVO.setType(sysUserDO.getType());
         loginUserInfoVO.setIsRealNamed(sysUserDO.getIdCard() != null);// 暂时 身份证判断实名制
         if(sysUserDO.getCommunityId()!=null){
+            ComActVO comActVO = userDao.selectCommunity(sysUserDO.getCommunityId());
             loginUserInfoVO.setCommunityId(sysUserDO.getCommunityId());
+            if(comActVO!=null){
+                loginUserInfoVO.setComActVO(comActVO);
+                SysAppConfig sysAppConfig=sysAppConfigDao.selectOne(new QueryWrapper<SysAppConfig>().lambda().eq(SysAppConfig::getAreaCode,comActVO.getAreaCode()));
+                if(sysAppConfig!=null){
+                    loginUserInfoVO.setAppId(sysAppConfig.getAppId());
+                    loginUserInfoVO.setAppSecret(sysAppConfig.getSecret());
+                }
+            }
         }
         List<SysRoleDO> roleDOList = roleDAO.selectByUserId(sysUserDO.getUserId());
         Set<String> set = new HashSet<>();
@@ -370,6 +376,7 @@
         loginUserInfoVO.setIsFourMember(2);
         loginUserInfoVO.setIsCommunityWorker(2);
         loginUserInfoVO.setIsPropertyWorker(2);
+        loginUserInfoVO.setIsSocialWorker(2);
         // 志愿者状态
         String phone = sysUserDO.getPhone();
         Long userCommunityId = sysUserDO.getCommunityId();
@@ -377,6 +384,13 @@
             ComActVO comActVO = userDao.selectCommunity(userCommunityId);
             if (comActVO != null) {
                 loginUserInfoVO.setCommunityName(comActVO.getName());
+                loginUserInfoVO.setComActVO(comActVO);
+                loginUserInfoVO.setAreaCode(comActVO.getAreaCode());
+                SysAppConfig sysAppConfig=sysAppConfigDao.selectOne(new QueryWrapper<SysAppConfig>().lambda().eq(SysAppConfig::getAreaCode,comActVO.getAreaCode()));
+                if(sysAppConfig!=null){
+                    loginUserInfoVO.setAppId(sysAppConfig.getAppId());
+                    loginUserInfoVO.setAppSecret(sysAppConfig.getSecret());
+                }
             }
         }
         if (!ObjectUtils.isEmpty(phone)) {
@@ -408,6 +422,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);
@@ -627,7 +645,7 @@
      * @return 人员详情
      */
     @Override
-    public R detailUser(Long userId) {
+    public R<LoginUserInfoVO> detailUser(Long userId) {
         LoginUserInfoVO loginUserInfoVO = new LoginUserInfoVO();
         if (userId < 100000000l) {
             SysUserDO sysUserDO = userDao.selectById(userId);
@@ -687,12 +705,29 @@
         ComActVO comActVO = userDao.selectCommunity(loginUserInfoVO.getCommunityId());
         if (!ObjectUtils.isEmpty(comActVO)) {
             loginUserInfoVO.setCommunityName(comActVO.getName());
+            loginUserInfoVO.setAreaCode(comActVO.getAreaCode());
+        }
+        else{
+            loginUserInfoVO.setAreaCode("510423");
         }
         //是否是社区物业人员
         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);
     }
 
@@ -849,7 +884,7 @@
         }
         sysUserDO.setFaceState(null);
         SysUserDO sysUserDO1 =
-            userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getIdCard, idCard));
+            userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getIdCard, idCard).eq(SysUserDO::getCommunityId,loginUserInfoVO.getCommunityId()));
         if (!ObjectUtils.isEmpty(sysUserDO1)) {
             return R.fail("身份证已经存在");
         }
@@ -873,9 +908,10 @@
                 try {
                     WxXCXTempSend util = new WxXCXTempSend();
                     String accessToken = util.getAppAccessToken();
+                    SysTemplateConfig sysTemplateConfig=sysTemplateConfigDao.selectOne(new QueryWrapper<SysTemplateConfig>().lambda().eq(SysTemplateConfig::getAreaCode, loginUserInfoVO.getComActVO()).eq(SysTemplateConfig::getType,5));
                     // 用户实名认证推送消息
                     WxUtil.sendSubscribeRZSH(user.getOpenid(), accessToken, "实名认证",
-                        com.panzhihua.common.utlis.DateUtils.getCurrentDateStr(), "认证成功");
+                        com.panzhihua.common.utlis.DateUtils.getCurrentDateStr(), "认证成功",sysTemplateConfig.getTemplateId());
                 } catch (Exception e) {
                     log.error("推送用户订阅消息失败,失败原因:" + e.getMessage());
                 }
@@ -1091,6 +1127,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("角色不存在");
@@ -1114,7 +1187,7 @@
 
         }
 
-        if (insert > 0 && sysUserDO.getType() == 3) {// 添加的用户是社区账号时
+        if (insert > 0 && sysUserDO.getType() == 3 &&sysUserDO.getStreetId()==null) {// 添加的用户是社区账号时
             // 添加网格综合治理管理后台用户
             SysUserDO sysUserDOWangGe = new SysUserDO();
             BeanUtils.copyProperties(sysUserDO, sysUserDOWangGe);
@@ -1158,6 +1231,49 @@
     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(233L);
+                menu.add(234L);
+                menu.add(235L);
+                menu.add(236L);
+                menu.add(237L);
+            }
+            else if(administratorsUserVO.getSocialType()==2){
+                sysRoleDO.setRoleKey("social_org" + administratorsUserVO.getStreetId());
+                menu.add(233L);
+                menu.add(76L);
+                menu.add(234L);
+                menu.add(236L);
+                menu.add(237L);
+                menu.add(238L);
+            }
+            else if(administratorsUserVO.getSocialType()==3){
+                sysRoleDO.setRoleKey("social_org_member" + administratorsUserVO.getStreetId());
+                menu.add(233L);
+                menu.add(237L);
+            }
+
+            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(roleId);
+                this.putMenuRole(menuRoleVO);
+            }
+        }
         SysRoleDO roleDO = roleDAO.selectById(roleId);
         if (ObjectUtils.isEmpty(roleDO)) {
             return R.fail("角色不存在");
@@ -1175,6 +1291,8 @@
                 throw new ServiceException("手机号已经存在");
             } else if (e.getMessage().contains("union_account_type")) {
                 throw new ServiceException("账户已经存在");
+            }else if(e.getMessage().contains("23000")){
+                throw new ServiceException("手机号已存在");
             }
 
         }
@@ -1242,7 +1360,7 @@
 
         // 获取所有权限id
         List<SysMenuDO> menuDOList = sysMenuDAO.selectList(new QueryWrapper<SysMenuDO>().lambda()
-            .eq(SysMenuDO::getCommunityId, 2L).orderByAsc(SysMenuDO::getOrderNum));
+            .eq(SysMenuDO::getCommunityId, 2L).eq(SysMenuDO::getVisible,0).orderByAsc(SysMenuDO::getOrderNum));
         if (!menuDOList.isEmpty()) {
             menuIds = menuDOList.stream().map(sysMenuDO -> sysMenuDO.getMenuId()).collect(Collectors.toList());
 
@@ -1252,7 +1370,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()
@@ -1334,7 +1457,7 @@
         }
         Long communityId = sysUserDO.getCommunityId();
         Long communityId1 = administratorsUserVO.getCommunityId();
-        if (communityId1.intValue() != communityId.intValue()) {
+        if (communityId1!=null&&communityId1.intValue() != communityId.intValue()) {
             return R.fail("用户不属于当前平台");
         }
         // 删除用户
@@ -1719,9 +1842,9 @@
      * @return 展示数据
      */
     @Override
-    public R dataKanban() {
-        IndexDataKanbanVO indexDataKanbanVO = userDao.selectIndexDataKanban();
-        List<DataKanbanDTO> dataKanbanDTOS = userDao.selectCommunityUserOrder();
+    public R dataKanban(String areaCode) {
+        IndexDataKanbanVO indexDataKanbanVO = userDao.selectIndexDataKanban(areaCode);
+        List<DataKanbanDTO> dataKanbanDTOS = userDao.selectCommunityUserOrder(areaCode);
 
         List<String> communityUserX = new ArrayList<>();
         List<Integer> communityUserY = new ArrayList<>();
@@ -2735,7 +2858,7 @@
      */
     @Override
     public R dataKanBans(DataKanBansDto dataKanBansDto){
-        IndexDataKanbanVO indexDataKanbanVO = userDao.selectIndexDataKanban();
+        IndexDataKanbanVO indexDataKanbanVO = userDao.selectIndexDataKanban(dataKanBansDto.getAreaCode());
         List<String> communityUserX = new ArrayList<>();
         List<Integer> communityUserY = new ArrayList<>();
 
@@ -2745,9 +2868,9 @@
 
         List<DataKanbanDTO> dataKanbanDTOS = null;
         if(dataKanBansDto.getType() != null && dataKanBansDto.getType().equals(DataKanBansDto.type.by)){
-            dataKanbanDTOS = userDao.selectCommunityUserOrderMonth();
+            dataKanbanDTOS = userDao.selectCommunityUserOrderMonth(dataKanBansDto.getAreaCode());
         }else{
-            dataKanbanDTOS = userDao.selectCommunityUserOrder();
+            dataKanbanDTOS = userDao.selectCommunityUserOrder(dataKanBansDto.getAreaCode());
         }
         if (!ObjectUtils.isEmpty(dataKanbanDTOS)) {
             dataKanbanDTOS.forEach(dataKanbanDTO -> {
@@ -2760,7 +2883,7 @@
         List<Date> serverndays = com.panzhihua.common.utlis.DateUtils.getOldDays();
         serverndays.forEach(date -> {
             // 查询社区活动数量
-            DataKanbanDTO dataKanbanDTO = userDao.selectCommunityAddUserOrder(date);
+            DataKanbanDTO dataKanbanDTO = userDao.selectCommunityAddUserOrder(dataKanBansDto.getAreaCode(),date);
             communityActiveUserX.add(DateFormatUtils.format(date, "MM-dd"));
             communityActiveUserY.add(dataKanbanDTO.getNum());
             communityActiveUserZ.add(dataKanbanDTO.getDayNum());
@@ -2778,11 +2901,11 @@
      * @return  用户数据统计汇总
      */
     @Override
-    public R communityStatistics(){
+    public R communityStatistics(String areaCode){
         //返回结果数据
         IndexUserStatisticsVo userStatisticsVo = new IndexUserStatisticsVo();
         //查询所有街道
-        List<IndexUserStreetVo> streetList = userDao.getUserStreetList();
+        List<IndexUserStreetVo> streetList = userDao.getUserStreetList(areaCode);
         streetList.forEach(street -> {
             List<IndexUserCommunityVo> communityList = userDao.getUserCommunityList(street.getStreetId());
             street.setCommunityList(communityList);
@@ -2792,8 +2915,8 @@
     }
 
     @Override
-    public R communityStatisticsExport(){
-        return R.ok(userDao.getUserCommunityExcelExport());
+    public R communityStatisticsExport(String areaCode){
+        return R.ok(userDao.getUserCommunityExcelExport(areaCode));
     }
 
     /**
@@ -2825,12 +2948,13 @@
                 .eq(SysUserDO::getPhone, mcsMerchantDTO.getPhone()).eq(SysUserDO::getType, 11));
         String encode = new BCryptPasswordEncoder().encode(mcsMerchantDTO.getPassword());
         if (nonNull(sysUserDO)) {
-            BeanUtils.copyProperties(mcsMerchantDTO, sysUserDO);
             sysUserDO.setAccount(mcsMerchantDTO.getAccount());
             sysUserDO.setStatus(mcsMerchantDTO.getAccountStatus());
             sysUserDO.setPhone(mcsMerchantDTO.getPhone());
             sysUserDO.setPassword(encode);
             sysUserDO.setPlaintextPassword(mcsMerchantDTO.getPassword());
+            sysUserDO.setImageUrl(mcsMerchantDTO.getLogo());
+            sysUserDO.setName(mcsMerchantDTO.getName());
             userDao.updateById(sysUserDO);
             McsLoginUserInfoVO loginUserInfoVO = new McsLoginUserInfoVO();
             BeanUtils.copyProperties(sysUserDO, loginUserInfoVO);
@@ -2846,6 +2970,7 @@
         sysUserDO.setPhone(mcsMerchantDTO.getPhone());
         sysUserDO.setPassword(encode);
         sysUserDO.setPlaintextPassword(mcsMerchantDTO.getPassword());
+        sysUserDO.setImageUrl(mcsMerchantDTO.getLogo());
         try {
             userDao.insert(sysUserDO);
             McsLoginUserInfoVO loginUserInfoVO = new McsLoginUserInfoVO();
@@ -2854,12 +2979,8 @@
         } catch (Exception e) {
             e.printStackTrace();
             log.error("修改数字商业街商家用户报错【{}】", e.getMessage());
-            if (e.getMessage().contains("union_phone_type")) {
-                return R.fail("手机号已存在");
-            } else if (e.getMessage().contains("union_account_type")) {
+            if (e.getMessage().contains("union_account_type") || e.getMessage().contains("23000")) {
                 return R.fail("账户已经存在");
-            }else if(e.getMessage().contains("23000")){
-                return R.fail("手机号已存在");
             } else {
                 return R.fail("账户或手机号已存在,请重新填写尝试");
             }

--
Gitblit v1.7.1