forked from rongchao/epmet-cloud-rizhao
				
			
				 4 changed files with 138 additions and 0 deletions
			
			
		| @ -0,0 +1,20 @@ | |||
| package com.epmet.dto.result; | |||
| 
 | |||
| import lombok.AllArgsConstructor; | |||
| import lombok.Data; | |||
| import lombok.NoArgsConstructor; | |||
| 
 | |||
| import java.util.List; | |||
| 
 | |||
| @Data | |||
| @NoArgsConstructor | |||
| @AllArgsConstructor | |||
| public class UserHouseScopeResultDTO { | |||
| 
 | |||
|     private String objectId; | |||
|     private String objectName; | |||
|     private String objectType; | |||
| 
 | |||
|     private List<UserHouseScopeResultDTO> children; | |||
| 
 | |||
| } | |||
| @ -0,0 +1,32 @@ | |||
| package com.epmet.controller; | |||
| 
 | |||
| import com.epmet.commons.tools.annotation.LoginUser; | |||
| import com.epmet.commons.tools.security.dto.TokenDto; | |||
| import com.epmet.commons.tools.utils.Result; | |||
| import com.epmet.dto.result.UserHouseScopeResultDTO; | |||
| import com.epmet.service.UserHouseScopeService; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.web.bind.annotation.RequestMapping; | |||
| import org.springframework.web.bind.annotation.RestController; | |||
| 
 | |||
| /** | |||
|  * 服务项目 | |||
|  */ | |||
| @RestController | |||
| @RequestMapping("userhouse") | |||
| public class UserHouseScopeController { | |||
| 
 | |||
|     @Autowired | |||
|     public UserHouseScopeService userHouseScopeService; | |||
| 
 | |||
| 
 | |||
|     /** | |||
|      * 服务范围树查询 | |||
|      * @return | |||
|      */ | |||
|     @RequestMapping("service/serviceScopeTree") | |||
|     public Result<UserHouseScopeResultDTO> getServiceScopeTree(@LoginUser TokenDto loginInfo) { | |||
|         UserHouseScopeResultDTO r = userHouseScopeService.getServiceScopeTree(loginInfo.getUserId()); | |||
|         return new Result<UserHouseScopeResultDTO>().ok(r); | |||
|     } | |||
| } | |||
| @ -0,0 +1,7 @@ | |||
| package com.epmet.service; | |||
| 
 | |||
| import com.epmet.dto.result.UserHouseScopeResultDTO; | |||
| 
 | |||
| public interface UserHouseScopeService { | |||
|      UserHouseScopeResultDTO getServiceScopeTree(String staffId); | |||
| } | |||
| @ -0,0 +1,79 @@ | |||
| package com.epmet.service.impl; | |||
| 
 | |||
| import com.epmet.dao.IcNeighborHoodDao; | |||
| import com.epmet.dto.IcNeighborHoodDTO; | |||
| import com.epmet.dto.result.AgencyTreeResultDTO; | |||
| import com.epmet.dto.result.UserHouseScopeResultDTO; | |||
| import com.epmet.service.CustomerAgencyService; | |||
| import com.epmet.service.UserHouseScopeService; | |||
| import lombok.extern.slf4j.Slf4j; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.stereotype.Service; | |||
| import org.springframework.util.CollectionUtils; | |||
| 
 | |||
| import java.util.ArrayList; | |||
| import java.util.List; | |||
| import java.util.stream.Collectors; | |||
| 
 | |||
| @Slf4j | |||
| @Service | |||
| public class UserHouseScopeServiceImpl implements UserHouseScopeService { | |||
| 
 | |||
|     @Autowired | |||
|     private IcNeighborHoodDao neighborHoodDao; | |||
| 
 | |||
|     @Autowired | |||
|     private CustomerAgencyService customerAgencyService; | |||
| 
 | |||
|     public UserHouseScopeServiceImpl() { | |||
|         System.out.println(6); | |||
|     } | |||
| 
 | |||
|     @Override | |||
|     public UserHouseScopeResultDTO getServiceScopeTree(String staffId) { | |||
|         AgencyTreeResultDTO orgTreeData = customerAgencyService.getOrgTreeData(staffId); | |||
| 
 | |||
|         UserHouseScopeResultDTO rootScope = new UserHouseScopeResultDTO(); | |||
|         rootScope.setObjectId(orgTreeData.getAgencyId()); | |||
|         rootScope.setObjectType(orgTreeData.getLevel()); | |||
|         rootScope.setObjectName(orgTreeData.getAgencyName()); | |||
|         rootScope.setChildren(convert2ServiceProjectScope(orgTreeData.getSubAgencyList())); | |||
| 
 | |||
|         return rootScope; | |||
|     } | |||
| 
 | |||
|     private List<UserHouseScopeResultDTO> convert2ServiceProjectScope(List<AgencyTreeResultDTO> oldChildren) { | |||
| 
 | |||
|         ArrayList<UserHouseScopeResultDTO> scopes = new ArrayList<>(); | |||
| 
 | |||
|         for (AgencyTreeResultDTO oldChild : oldChildren) { | |||
|             UserHouseScopeResultDTO scope = new UserHouseScopeResultDTO(); | |||
|             scope.setObjectId(oldChild.getAgencyId()); | |||
|             scope.setObjectType(oldChild.getLevel()); | |||
|             scope.setObjectName(oldChild.getAgencyName()); | |||
|             if ("grid".equals(oldChild.getLevel())) { | |||
|                 // 如果是网格,那么还要查询网格下的小区
 | |||
|                 List<IcNeighborHoodDTO> neighborhoods = neighborHoodDao.selectNeighborList(oldChild.getAgencyId()); | |||
| 
 | |||
|                 List<UserHouseScopeResultDTO> neighborhoodScopes = neighborhoods.stream().map(n -> new UserHouseScopeResultDTO(n.getId(), | |||
|                         n.getNeighborHoodName(), | |||
|                         "neighborhood", | |||
|                         null)).collect(Collectors.toList()); | |||
| 
 | |||
|                 scope.setChildren(neighborhoodScopes); | |||
|             } else { | |||
|                 // 递归处理子级
 | |||
|                 List<AgencyTreeResultDTO> subAgencyList = oldChild.getSubAgencyList(); | |||
|                 if (subAgencyList != null && !CollectionUtils.isEmpty(subAgencyList)) { | |||
|                     List<UserHouseScopeResultDTO> subOrgScope = convert2ServiceProjectScope(subAgencyList); | |||
|                     scope.setChildren(subOrgScope); | |||
|                 } | |||
|             } | |||
| 
 | |||
|             scopes.add(scope); | |||
|         } | |||
| 
 | |||
|         return scopes; | |||
|     } | |||
| 
 | |||
| } | |||
					Loading…
					
					
				
		Reference in new issue