From 00840f8bc8d724e910815f1be9a9515fe7450074 Mon Sep 17 00:00:00 2001
From: huanghongfa <huanghongfa123456>
Date: 星期一, 05 七月 2021 13:11:43 +0800
Subject: [PATCH] 修改添加网格员关联楼栋以及关联浪潮网格员

---
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java |   89 +++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 83 insertions(+), 6 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 7d298fd..fb60156 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
@@ -17,6 +17,8 @@
 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.grid.GridMemberVO;
+import com.panzhihua.common.model.vos.grid.admin.GridMemberBuildingVO;
 import com.panzhihua.common.model.vos.partybuilding.ActivityManagerVO;
 import com.panzhihua.common.model.vos.shop.ShopStoreVO;
 import com.panzhihua.common.model.vos.user.*;
@@ -28,6 +30,7 @@
 import com.panzhihua.service_user.dao.*;
 import com.panzhihua.service_user.model.dos.*;
 import com.panzhihua.service_user.model.dtos.DataKanbanDTO;
+import com.panzhihua.service_user.service.EventGridMemberBuildingRelationService;
 import com.panzhihua.service_user.service.UserService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.time.DateFormatUtils;
@@ -81,6 +84,10 @@
     private SysMenuDAO sysMenuDAO;
     @Resource
     private SysUserInputDAO sysUserInputDAO;
+    @Resource
+    private EventGridMemberBuildingRelationService buildingRelationService;
+    @Resource
+    private EventGridMemberBuildingRelationMapper eventGridMemberBuildingRelationMapper;
 //    @Resource
 //    private GridService gridService;
 
@@ -1903,11 +1910,6 @@
         menuRoleVO.setRoleId(roleId);
         this.putMenuRole(menuRoleVO);
 
-        //关联市平台网格员
-//        if(eventGridMemberAddDTO.getLcMemberId() != null){
-//
-//        }
-
         //参数校验
         SysUserDO oldUserDO = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType,6)
                 .eq(SysUserDO::getNickName,eventGridMemberAddDTO.getNickName()));
@@ -1933,6 +1935,31 @@
             sysUserRoleDO.setUserId(sysUserDO.getUserId());
             sysUserRoleDO.setRoleId(roleId);
             sysUserRoleDAO.insert(sysUserRoleDO);
+
+            //关联市平台网格员
+            if(eventGridMemberAddDTO.getLcMemberId() != null){
+                this.userDao.addLcMember(eventGridMemberAddDTO.getLcMemberId(),sysUserDO.getUserId(),sysUserDO.getNickName());
+            }
+
+            //网格员关联楼栋
+            if(!eventGridMemberAddDTO.getBuildingIds().isEmpty()){
+                List<EventGridMemberBuildingRelationDO> buildingRelationList = new ArrayList<>();
+                eventGridMemberAddDTO.getBuildingIds().forEach(buildingId -> {
+                    Map<String,Long> resultMap = this.userDao.getBuilding(buildingId);
+                    if(resultMap != null){
+                        EventGridMemberBuildingRelationDO buildingRelationDO = new EventGridMemberBuildingRelationDO();
+                        buildingRelationDO.setBuildingId(buildingId);
+                        buildingRelationDO.setGridMemberId(sysUserDO.getUserId());
+                        buildingRelationDO.setVillageId(Long.parseLong(resultMap.get("village_id").toString()));
+                        buildingRelationDO.setCommunityId(Long.parseLong(resultMap.get("act_id").toString()));
+                        buildingRelationDO.setCreateAt(new Date());
+                        buildingRelationList.add(buildingRelationDO);
+                    }
+                });
+                if(!buildingRelationList.isEmpty()){
+                    buildingRelationService.saveBatch(buildingRelationList);
+                }
+            }
         } catch (Exception e) {
             e.printStackTrace();
             log.error("新增后台用户报错【{}】", e.getMessage());
@@ -1956,7 +1983,26 @@
      */
     @Override
     public R getGridMemberList(PageEventGridMemberRelationDTO memberRelationDTO){
-        return R.ok(userDao.getGridMemberList(new Page(memberRelationDTO.getPageNum(),memberRelationDTO.getPageSize()),memberRelationDTO));
+        IPage<GridMemberVO> gridMemberPage = userDao.getGridMemberList(new Page(memberRelationDTO.getPageNum()
+                ,memberRelationDTO.getPageSize()),memberRelationDTO);
+        if(!gridMemberPage.getRecords().isEmpty()){
+            gridMemberPage.getRecords().forEach(gridMember -> {
+                //查询网格员关联市平台网格员id
+                gridMember.setLcMemberId(this.userDao.getLcMemberId(gridMember.getUserId()));
+
+                //查询网格员关联楼栋信息
+                List<GridMemberBuildingVO> memberBuildingList = eventGridMemberBuildingRelationMapper.getGridMemberBuildingRelation(gridMember.getUserId());
+                if(!memberBuildingList.isEmpty()){
+                    memberBuildingList.forEach(memberBuilding -> {
+                        if(!memberBuilding.getBuildingName().contains("栋")){
+                            memberBuilding.setBuildingName(memberBuilding.getBuildingName() + "栋");
+                        }
+                    });
+                    gridMember.setMemberBuildingList(memberBuildingList);
+                }
+            });
+        }
+        return R.ok(gridMemberPage);
     }
 
     /**
@@ -1988,6 +2034,36 @@
         int insert = 0;
         try {
             insert = userDao.updateById(sysUserDO);
+
+            //关联市平台网格员
+            if(gridMemberDTO.getLcMemberId() != null){
+                this.userDao.addLcMember(gridMemberDTO.getLcMemberId(),sysUserDO.getUserId(),sysUserDO.getNickName());
+            }else{
+                this.userDao.delLcMember(sysUserDO.getUserId());
+            }
+            //清除原网格员与楼栋关联关系
+            this.userDao.delGridMemberRelation(sysUserDO.getUserId());
+
+            //新增网格员关联楼栋
+            if(!gridMemberDTO.getBuildingIds().isEmpty()){
+                List<EventGridMemberBuildingRelationDO> buildingRelationList = new ArrayList<>();
+                gridMemberDTO.getBuildingIds().forEach(buildingId -> {
+                    Map<String,Long> resultMap = this.userDao.getBuilding(buildingId);
+                    if(resultMap != null){
+                        EventGridMemberBuildingRelationDO buildingRelationDO = new EventGridMemberBuildingRelationDO();
+                        buildingRelationDO.setBuildingId(buildingId);
+                        buildingRelationDO.setGridMemberId(sysUserDO.getUserId());
+                        buildingRelationDO.setVillageId(Long.parseLong(resultMap.get("village_id").toString()));
+                        buildingRelationDO.setCommunityId(Long.parseLong(resultMap.get("act_id").toString()));
+                        buildingRelationDO.setCreateAt(new Date());
+                        buildingRelationList.add(buildingRelationDO);
+                    }
+                });
+                if(!buildingRelationList.isEmpty()){
+                    buildingRelationService.saveBatch(buildingRelationList);
+                }
+            }
+
         } catch (Exception e) {
             e.printStackTrace();
             log.error("修改网格员用户报错【{}】", e.getMessage());
@@ -2044,6 +2120,7 @@
         return R.ok();
     }
 
+    @Override
     public R noTips(Long userId){
         SysUserDO userDO = this.userDao.selectById(userId);
         if(userDO != null){

--
Gitblit v1.7.1