mitao
2025-03-16 44c6754be97b8772a915f7bc54b44ac736c7673b
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemUserServiceImpl.java
@@ -3,25 +3,36 @@
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.SystemUserMapper;
import com.panzhihua.sangeshenbian.model.entity.ComAct;
import com.panzhihua.sangeshenbian.model.entity.SystemUser;
import com.panzhihua.sangeshenbian.model.vo.RegionVO;
import com.panzhihua.sangeshenbian.service.IBcRegionService;
import com.panzhihua.sangeshenbian.service.IComActService;
import com.panzhihua.sangeshenbian.service.IComStreetService;
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.List;
import java.util.Optional;
import java.util.stream.Collectors;
/**
 * @author zhibing.pu
 * @Date 2025/2/18 22:30
 */
@Service
@RequiredArgsConstructor(onConstructor_ = {@Lazy})
public class SystemUserServiceImpl extends ServiceImpl<SystemUserMapper, SystemUser> implements ISystemUserService {
   private final IComActService comActService;
   /**
    * 获取列表数据
    * @param query
@@ -94,4 +105,47 @@
   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;
   }
}