liujie
2025-05-12 cec12ff6e380e6be36cc78d0cbe22cedb72f00bf
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemUserServiceImpl.java
@@ -1,17 +1,28 @@
package com.panzhihua.sangeshenbian.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.beust.jcommander.internal.Lists;
import com.panzhihua.common.model.vos.sangeshenbian.SystemUserVo;
import com.panzhihua.common.utlis.StringUtils;
import com.panzhihua.sangeshenbian.dao.SystemUserLevelMapper;
import com.panzhihua.sangeshenbian.dao.SystemUserMapper;
import com.panzhihua.sangeshenbian.model.entity.ComAct;
import com.panzhihua.sangeshenbian.model.entity.SystemUser;
import com.panzhihua.sangeshenbian.model.entity.SystemUserLevel;
import com.panzhihua.sangeshenbian.model.vo.RegionVO;
import com.panzhihua.sangeshenbian.service.IComActService;
import com.panzhihua.sangeshenbian.service.ISystemUserService;
import com.panzhihua.sangeshenbian.warpper.SystemUserList;
import com.panzhihua.sangeshenbian.warpper.SystemUserListVo;
import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Optional;
@@ -20,8 +31,10 @@
 * @Date 2025/2/18 22:30
 */
@Service
@RequiredArgsConstructor(onConstructor_ = {@Lazy})
public class SystemUserServiceImpl extends ServiceImpl<SystemUserMapper, SystemUser> implements ISystemUserService {
   private final IComActService comActService;
   private final SystemUserLevelMapper systemUserLevelMapper;
   /**
    * 获取列表数据
    * @param query
@@ -33,6 +46,11 @@
      page.setCurrent(query.getPageNum());
      page.setSize(query.getPageSize());
      IPage<SystemUserListVo> list = this.baseMapper.list(page, user, query);
      list.getRecords().forEach(item -> {
         List<SystemUserLevel> systemUserLevels = systemUserLevelMapper.selectList(new LambdaQueryWrapper<SystemUserLevel>().eq(SystemUserLevel::getStatus,1).eq(SystemUserLevel::getSystemUserId, item.getId()));
         systemUserLevels.sort(Comparator.comparing(SystemUserLevel::getLevel));
         item.setList(systemUserLevels);
      });
      return list;
   }
@@ -94,4 +112,48 @@
   public List<RegionVO> getCommunity(String streetId) {
      return this.baseMapper.getCommunity(streetId);
   }
   /**
    * 获取区县-街道-社区树
    * @return
    */
   @Override
   public List<RegionVO> getRegionTree(SystemUserVo loginUserInfo) {
      Integer accountLevel = loginUserInfo.getAccountLevel();
      List<RegionVO> regionTree = new ArrayList<>();
      switch (accountLevel) {
         case 1:
            regionTree = baseMapper.getRegion("510400");
            baseMapper.getStreet("510400");
            regionTree.forEach(district -> {
               List<RegionVO> streets = baseMapper.getStreet(district.getId());
               district.setChildren(streets);
               streets.forEach(street -> {
                  List<RegionVO> communities = baseMapper.getCommunity(street.getId());
                  street.setChildren(communities);
               });
            });
            break;
         case 2:
            regionTree = baseMapper.getStreet(loginUserInfo.getDistrictsCode());
            regionTree.forEach(regionVO->{
               List<RegionVO> communities = baseMapper.getCommunity(regionVO.getId());
               regionVO.setChildren(communities);
            });
            break;
         case 3:
            regionTree = baseMapper.getCommunity(loginUserInfo.getStreetId());
            break;
         case 4:
            ComAct byId = comActService.getById(loginUserInfo.getCommunityId());
            RegionVO regionVO = new RegionVO();
            regionVO.setId(byId.getCommunityId().toString());
            regionVO.setName(byId.getName());
            regionTree = Lists.newArrayList(regionVO);
            break;
      }
      return regionTree;
   }
}