SysUserGroupRelationService.java 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502
  1. package com.jtzx.crm.module.sys.service;
  2. import cc.uncarbon.framework.core.exception.BusinessException;
  3. import cc.uncarbon.framework.core.page.PageResult;
  4. import cc.uncarbon.framework.crud.entity.HelioBaseEntity;
  5. import cn.hutool.core.bean.BeanUtil;
  6. import cn.hutool.core.collection.CollUtil;
  7. import cn.hutool.core.util.StrUtil;
  8. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  9. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  10. import com.google.common.collect.Lists;
  11. import com.google.common.collect.Maps;
  12. import com.jtzx.crm.config.AsyncVThreadConfiguration;
  13. import com.jtzx.crm.module.sys.entity.*;
  14. import com.jtzx.crm.module.sys.mapper.*;
  15. import com.jtzx.crm.module.sys.model.request.AdminSysUserGroupRelationDTO;
  16. import com.jtzx.crm.module.sys.model.request.UserRoleRelationInsertDTO;
  17. import com.jtzx.crm.module.sys.model.response.*;
  18. import lombok.RequiredArgsConstructor;
  19. import lombok.extern.slf4j.Slf4j;
  20. import org.springframework.beans.BeanUtils;
  21. import org.springframework.stereotype.Service;
  22. import org.springframework.transaction.annotation.Transactional;
  23. import java.util.Comparator;
  24. import java.util.List;
  25. import java.util.Map;
  26. /**
  27. * 数据表注释
  28. */
  29. @RequiredArgsConstructor
  30. @Service
  31. @Slf4j
  32. public class SysUserGroupRelationService {
  33. private final SysGroupMapper sysGroupMapper;
  34. private final SysUserGroupRelationMapper sysUserGroupRelationMapper;
  35. private final DictProvinceRegionMapper dictProvinceRegionMapper;
  36. private final DictCityRegionMapper dictCityRegionMapper;
  37. private final SysUserMapper sysUserMapper;
  38. private final SysUserRoleRelationService sysUserRoleRelationService;
  39. private final AsyncVThreadConfiguration asyncVThreadConfiguration;
  40. /**
  41. * 查询所有用户(左侧列表数据)
  42. * @return
  43. */
  44. public List<SysUserListBO> queryAllSysUserList(String username) {
  45. List<SysUserListBO> sysUserListBOList = Lists.newArrayList();
  46. List<SysUserEntity> sysUserEntities =
  47. sysUserMapper.selectList(
  48. new LambdaQueryWrapper<>(SysUserEntity.class)
  49. .eq(StrUtil.isNotEmpty(username), SysUserEntity::getUserName, username)
  50. .eq(SysUserEntity::getStatus, 1)
  51. .orderByAsc(HelioBaseEntity::getCreatedAt)
  52. );
  53. if (CollUtil.isNotEmpty(sysUserEntities)) {
  54. sysUserEntities.forEach(entity -> {
  55. SysUserListBO bo = SysUserListBO.builder().build();
  56. bo.setId(entity.getId());
  57. bo.setUsername(entity.getUserName());
  58. bo.setAccount(entity.getPin());
  59. sysUserListBOList.add(bo);
  60. });
  61. }
  62. return sysUserListBOList;
  63. }
  64. /**
  65. * 分页查询表格数据
  66. * @param dto
  67. * @return
  68. */
  69. public PageResult<SysUserGroupRelationPageListBO> queryListByPage(AdminSysUserGroupRelationDTO dto) {
  70. //查询分组
  71. List<SysGroupEntity> groupEntityList =
  72. sysGroupMapper.selectList(
  73. new LambdaQueryWrapper<>(SysGroupEntity.class)
  74. .select(
  75. SysGroupEntity::getSortCode,
  76. SysGroupEntity::getId,
  77. SysGroupEntity::getTitle
  78. )
  79. .eq(dto.getGroupId() != null, SysGroupEntity::getId, dto.getGroupId())
  80. .orderByAsc(SysGroupEntity::getSortCode)
  81. );
  82. if (CollUtil.isEmpty(groupEntityList)) {
  83. return new PageResult<SysUserGroupRelationPageListBO>()
  84. .setCurrent(1)
  85. .setSize(dto.getPageSize())
  86. .setTotal(0)
  87. .setRecords(Lists.newArrayList());
  88. }
  89. //查询已开通使用的省份数据
  90. List<DictProvinceRegionEntity> provinceRegionEntityList = dictProvinceRegionMapper.selectList(
  91. new LambdaQueryWrapper<>(DictProvinceRegionEntity.class)
  92. .select(
  93. DictProvinceRegionEntity::getId,
  94. DictProvinceRegionEntity::getCode,
  95. DictProvinceRegionEntity::getName,
  96. DictProvinceRegionEntity::getSortCode
  97. )
  98. .eq(dto.getProvinceId() != null, DictProvinceRegionEntity::getId, dto.getProvinceId())
  99. .eq(DictProvinceRegionEntity::getUseStatus, 1)
  100. );
  101. if (CollUtil.isEmpty(provinceRegionEntityList)) {
  102. return new PageResult<SysUserGroupRelationPageListBO>()
  103. .setCurrent(1)
  104. .setSize(dto.getPageSize())
  105. .setTotal(0)
  106. .setRecords(Lists.newArrayList());
  107. }
  108. //查询城市数据
  109. List<DictCityRegionEntity> cityRegionEntityList = dictCityRegionMapper.selectList(
  110. new LambdaQueryWrapper<>(DictCityRegionEntity.class)
  111. .select(
  112. DictCityRegionEntity::getParentCode,
  113. DictCityRegionEntity::getId,
  114. DictCityRegionEntity::getName
  115. )
  116. .eq(dto.getCityId() != null, DictCityRegionEntity::getId, dto.getCityId())
  117. .in(DictCityRegionEntity::getParentCode, provinceRegionEntityList.stream().map(DictProvinceRegionEntity::getCode).toList())
  118. );
  119. if (CollUtil.isEmpty(cityRegionEntityList)) {
  120. return new PageResult<SysUserGroupRelationPageListBO>()
  121. .setCurrent(1)
  122. .setSize(dto.getPageSize())
  123. .setTotal(0)
  124. .setRecords(Lists.newArrayList());
  125. }
  126. //查询用户数据
  127. List<SysUserEntity> sysUserEntityList =
  128. sysUserMapper.selectList(
  129. new LambdaQueryWrapper<>(SysUserEntity.class)
  130. .select(
  131. SysUserEntity::getUserName,
  132. SysUserEntity::getId,
  133. SysUserEntity::getPin
  134. )
  135. .eq(SysUserEntity::getStatus, 1)
  136. .eq(dto.getUserId() != null, SysUserEntity::getId, dto.getUserId())
  137. .and(StrUtil.isNotEmpty(dto.getQueryStr()), z -> z.like(SysUserEntity::getUserName, dto.getQueryStr())
  138. .or().like(SysUserEntity::getPin, dto.getQueryStr())
  139. )
  140. );
  141. if (CollUtil.isEmpty(sysUserEntityList)) {
  142. return new PageResult<SysUserGroupRelationPageListBO>()
  143. .setCurrent(1)
  144. .setSize(dto.getPageSize())
  145. .setTotal(0)
  146. .setRecords(Lists.newArrayList());
  147. }
  148. List<Long> userIds = sysUserEntityList.stream()
  149. .sorted(Comparator.comparing(SysUserEntity::getId))
  150. .map(SysUserEntity::getId)
  151. .toList();
  152. Page<SysUserGroupRelationEntity> pageData = sysUserGroupRelationMapper.selectPage(
  153. new Page<>(dto.getPageNum(), dto.getPageSize()),
  154. new LambdaQueryWrapper<>(SysUserGroupRelationEntity.class)
  155. .eq(dto.getProvinceId() != null, SysUserGroupRelationEntity::getProvinceId, dto.getProvinceId())
  156. .eq(dto.getCityId() != null, SysUserGroupRelationEntity::getCityId, dto.getCityId())
  157. .eq(dto.getGroupId() != null, SysUserGroupRelationEntity::getGroupId, dto.getGroupId())
  158. .eq(dto.getUserId() != null && StrUtil.isEmpty(dto.getQueryStr()), SysUserGroupRelationEntity::getUserId, dto.getUserId())
  159. .in(StrUtil.isNotEmpty(dto.getQueryStr()), SysUserGroupRelationEntity::getUserId, userIds)
  160. .orderByDesc(SysUserGroupRelationEntity::getCreatedAt)
  161. );
  162. if (CollUtil.isEmpty(pageData.getRecords())) {
  163. return new PageResult<SysUserGroupRelationPageListBO>()
  164. .setCurrent(1)
  165. .setSize(dto.getPageSize())
  166. .setTotal(0)
  167. .setRecords(Lists.newArrayList());
  168. }
  169. List<SysUserGroupRelationPageListBO> result = Lists.newArrayList();
  170. PageResult<SysUserGroupRelationPageListBO> pageResult = new PageResult<SysUserGroupRelationPageListBO>()
  171. .setCurrent(pageData.getCurrent())
  172. .setSize(pageData.getSize())
  173. .setTotal(pageData.getTotal());
  174. pageData.getRecords().forEach(entity -> {
  175. SysUserGroupRelationPageListBO bo = SysUserGroupRelationPageListBO.builder().build();
  176. bo.setId(entity.getId());
  177. groupEntityList.stream()
  178. .filter(x -> x.getId().equals(entity.getGroupId()))
  179. .findFirst()
  180. .ifPresent(x -> {
  181. bo.setGroupId(x.getId());
  182. bo.setGroupName(x.getTitle());
  183. });
  184. sysUserEntityList.stream()
  185. .filter(x -> x.getId().equals(entity.getUserId()))
  186. .findFirst()
  187. .ifPresent(x -> {
  188. bo.setUserId(x.getId());
  189. bo.setUserName(x.getUserName());
  190. bo.setAccount(x.getPin());
  191. });
  192. provinceRegionEntityList.stream()
  193. .filter(x -> x.getId().equals(entity.getProvinceId()))
  194. .findFirst()
  195. .ifPresent(x -> {
  196. bo.setProvinceId(x.getId());
  197. bo.setProvinceName(x.getName());
  198. });
  199. cityRegionEntityList.stream()
  200. .filter(x -> x.getId().equals(entity.getCityId()))
  201. .findFirst()
  202. .ifPresent(x -> {
  203. bo.setCityId(x.getId());
  204. bo.setCityName(x.getName());
  205. });
  206. bo.setDelStatus(0);
  207. result.add(bo);
  208. });
  209. pageResult.setRecords(result);
  210. return pageResult;
  211. }
  212. /**
  213. * 分组管理,查询表格数据(第一种表格形式的数据)
  214. * @return
  215. */
  216. public List<GroupUserProvinceBO> queryTableData() {
  217. List<GroupUserProvinceBO> result = Lists.newArrayList();
  218. //查询分组
  219. List<SysGroupEntity> groupEntityList = Lists.newArrayList();
  220. //查询用户和分组数据的关系数据
  221. List<SysUserGroupRelationEntity> groupRelationEntityList = Lists.newArrayList();
  222. //查询用户数据
  223. List<SysUserEntity> sysUserEntityList = Lists.newArrayList();
  224. //查询已开通使用的省份数据
  225. List<DictProvinceRegionEntity> provinceRegionEntityList = Lists.newArrayList();
  226. //查询城市数据
  227. List<DictCityRegionEntity> cityRegionEntityList = Lists.newArrayList();
  228. //公共查询数据
  229. this.commonQueryData(groupEntityList, groupRelationEntityList, sysUserEntityList, provinceRegionEntityList, cityRegionEntityList);
  230. //按省份处理
  231. if (CollUtil.isNotEmpty(provinceRegionEntityList)) {
  232. //循环省份
  233. provinceRegionEntityList.forEach(provinceRegionEntity -> {
  234. //过滤省份下的城市
  235. List<DictCityRegionEntity> cityRegionEntities =
  236. cityRegionEntityList.stream()
  237. .filter(x -> x.getParentCode().equals(provinceRegionEntity.getCode()))
  238. .sorted(Comparator.comparing(DictCityRegionEntity::getCode)).toList();
  239. List<SysUserGroupRelationEntity> userGroupRelationEntityList = Lists.newArrayList();
  240. //过滤省份下的用户关系
  241. if (CollUtil.isNotEmpty(groupRelationEntityList)) {
  242. userGroupRelationEntityList.addAll(groupRelationEntityList.stream()
  243. .filter(x -> x.getProvinceId().equals(provinceRegionEntity.getId()))
  244. .toList());
  245. }
  246. //过滤每个省份下的用户数据信息
  247. List<SysUserEntity> sysUserEntities = Lists.newArrayList();
  248. if (CollUtil.isNotEmpty(userGroupRelationEntityList) && CollUtil.isNotEmpty(sysUserEntityList)) {
  249. List<Long> userIds =
  250. userGroupRelationEntityList.stream()
  251. .map(SysUserGroupRelationEntity::getUserId)
  252. .distinct().toList();
  253. sysUserEntities.addAll(sysUserEntityList.stream()
  254. .filter(x -> userIds.contains(x.getId()))
  255. .toList());
  256. }
  257. //处理返回数据
  258. result.add(
  259. this.handleTableData(provinceRegionEntity, cityRegionEntities,
  260. groupEntityList, userGroupRelationEntityList, sysUserEntities));
  261. });
  262. }
  263. return result;
  264. }
  265. public GroupUserProvinceBO handleTableData(DictProvinceRegionEntity dictProvinceRegionEntity,
  266. List<DictCityRegionEntity> cityRegionEntities,
  267. List<SysGroupEntity> groupEntityList,
  268. List<SysUserGroupRelationEntity> userGroupRelationEntityList,
  269. List<SysUserEntity> sysUserEntities) {
  270. GroupUserProvinceBO provinceBO = GroupUserProvinceBO.builder().build();
  271. provinceBO.setProvinceId(dictProvinceRegionEntity.getId());
  272. provinceBO.setProvinceName(dictProvinceRegionEntity.getName());
  273. provinceBO.setSortCode(dictProvinceRegionEntity.getSortCode());
  274. List<SysGroupBO> groupData = Lists.newArrayList();
  275. if (CollUtil.isNotEmpty(groupEntityList)) {
  276. groupEntityList.stream()
  277. .sorted(Comparator.comparing(SysGroupEntity::getSortCode))
  278. .forEach(groupEntity -> {
  279. SysGroupBO sysGroupBO = SysGroupBO.builder().build();
  280. BeanUtils.copyProperties(groupEntity, sysGroupBO);
  281. groupData.add(sysGroupBO);
  282. });
  283. }
  284. provinceBO.setGroupData(groupData);
  285. //处理表格数据
  286. List<GroupUserCityBO> cityData = Lists.newArrayList();
  287. cityRegionEntities.stream()
  288. .sorted(Comparator.comparing(DictCityRegionEntity::getCode))
  289. .forEach(cityRegionEntity -> {
  290. GroupUserCityBO groupUserCityBO = GroupUserCityBO.builder().build();
  291. groupUserCityBO.setCityId(cityRegionEntity.getId());
  292. groupUserCityBO.setCityName(cityRegionEntity.getName());
  293. Map<Long, Object> userData = Maps.newHashMap();
  294. if (CollUtil.isNotEmpty(groupEntityList)) {
  295. groupEntityList.stream()
  296. .sorted(Comparator.comparing(SysGroupEntity::getSortCode))
  297. .forEach(groupEntity -> {
  298. //设置默认
  299. userData.put(groupEntity.getId(), "-");
  300. if (CollUtil.isNotEmpty(userGroupRelationEntityList)) {
  301. List<GroupUserBO> userBOS = Lists.newArrayList();
  302. userGroupRelationEntityList.stream()
  303. .filter(x -> x.getCityId().equals(cityRegionEntity.getId()))
  304. .filter(x -> x.getGroupId().equals(groupEntity.getId()))
  305. .sorted(Comparator.comparing(HelioBaseEntity::getCreatedAt))
  306. .forEach(groupRelationEntity -> {
  307. if (CollUtil.isNotEmpty(sysUserEntities)) {
  308. sysUserEntities.stream()
  309. .filter(x -> x.getId().equals(groupRelationEntity.getUserId()))
  310. .findFirst()
  311. .ifPresent(d -> {
  312. if (CollUtil.isEmpty(userBOS) || userBOS.stream().map(GroupUserBO::getUserId).noneMatch(groupRelationEntity.getUserId()::equals)) {
  313. GroupUserBO bo = GroupUserBO.builder().build();
  314. bo.setId(groupRelationEntity.getId());
  315. bo.setUserId(groupRelationEntity.getUserId());
  316. bo.setUserName(d.getUserName());
  317. bo.setAccount(d.getPin());
  318. bo.setGroupId(groupEntity.getId());
  319. bo.setProvinceId(dictProvinceRegionEntity.getId());
  320. bo.setCityId(cityRegionEntity.getId());
  321. userBOS.add(bo);
  322. }
  323. });
  324. }
  325. });
  326. userData.put(groupEntity.getId(), userBOS);
  327. }
  328. });
  329. }
  330. groupUserCityBO.setUserData(userData);
  331. cityData.add(groupUserCityBO);
  332. });
  333. provinceBO.setCityData(cityData);
  334. return provinceBO;
  335. }
  336. /**
  337. * 后台管理-新增
  338. */
  339. @Transactional(rollbackFor = Exception.class)
  340. public Long adminInsert(AdminSysUserGroupRelationDTO dto) {
  341. log.info("[后台管理-数据表注释-新增] >> DTO={}", dto);
  342. //先判断有没有同个人有没有重复
  343. long count =
  344. sysUserGroupRelationMapper.selectCount(
  345. new LambdaQueryWrapper<>(SysUserGroupRelationEntity.class)
  346. .select(
  347. SysUserGroupRelationEntity::getId
  348. )
  349. .eq(SysUserGroupRelationEntity::getProvinceId, dto.getProvinceId())
  350. .eq(SysUserGroupRelationEntity::getCityId, dto.getCityId())
  351. .eq(SysUserGroupRelationEntity::getUserId, dto.getUserId())
  352. );
  353. if (count > 0) {
  354. throw new BusinessException(400, "请勿重复设置");
  355. }
  356. SysUserGroupRelationEntity entity = new SysUserGroupRelationEntity();
  357. BeanUtil.copyProperties(dto, entity);
  358. sysUserGroupRelationMapper.insert(entity);
  359. //添加普通成员角色
  360. UserRoleRelationInsertDTO userRoleRelationDTO = UserRoleRelationInsertDTO.builder().build();
  361. userRoleRelationDTO.setUserId(dto.getUserId());
  362. userRoleRelationDTO.setRoleId(3L);
  363. userRoleRelationDTO.setGroupId(dto.getGroupId());
  364. sysUserRoleRelationService.adminInsert(userRoleRelationDTO);
  365. //异步执行更新用户角色问题
  366. asyncVThreadConfiguration.getAsyncExecutor().execute(() ->
  367. sysUserRoleRelationService.updateUserRole(dto.getUserId()));
  368. return entity.getId();
  369. }
  370. /**
  371. * 后台管理-删除
  372. */
  373. @Transactional(rollbackFor = Exception.class)
  374. public void adminDelete(Long id) {
  375. log.info("[后台管理-数据表注释-删除] >> id={}", id);
  376. SysUserGroupRelationEntity sysUserGroupRelationEntity = sysUserGroupRelationMapper.selectById(id);
  377. if (sysUserGroupRelationEntity != null) {
  378. sysUserGroupRelationMapper.deleteById(id);
  379. //删除普通成员角色
  380. sysUserRoleRelationService.delete(sysUserGroupRelationEntity.getUserId(),
  381. sysUserGroupRelationEntity.getGroupId(), "Member");
  382. //异步执行更新用户角色问题
  383. asyncVThreadConfiguration.getAsyncExecutor().execute(() ->
  384. sysUserRoleRelationService.updateUserRole(sysUserGroupRelationEntity.getUserId()));
  385. }
  386. }
  387. public void commonQueryData(List<SysGroupEntity> groupEntityList,
  388. List<SysUserGroupRelationEntity> groupRelationEntityList,
  389. List<SysUserEntity> sysUserEntityList,
  390. List<DictProvinceRegionEntity> provinceRegionEntityList,
  391. List<DictCityRegionEntity> cityRegionEntityList) {
  392. List<SysGroupEntity> groupEntityList1 =
  393. sysGroupMapper.selectList(
  394. new LambdaQueryWrapper<>(SysGroupEntity.class)
  395. .select(
  396. SysGroupEntity::getId,
  397. SysGroupEntity::getSortCode,
  398. SysGroupEntity::getTitle
  399. )
  400. .orderByAsc(SysGroupEntity::getSortCode)
  401. );
  402. if (CollUtil.isNotEmpty(groupEntityList1)) {
  403. groupEntityList.addAll(groupEntityList1);
  404. }
  405. //查询用户和分组数据的关系数据
  406. List<SysUserGroupRelationEntity> groupRelationEntityList1 = sysUserGroupRelationMapper.selectList(
  407. new LambdaQueryWrapper<>(SysUserGroupRelationEntity.class)
  408. .select(
  409. SysUserGroupRelationEntity::getId,
  410. SysUserGroupRelationEntity::getCityId,
  411. SysUserGroupRelationEntity::getProvinceId,
  412. SysUserGroupRelationEntity::getGroupId,
  413. SysUserGroupRelationEntity::getUserId
  414. )
  415. .orderByAsc(SysUserGroupRelationEntity::getCreatedAt)
  416. );
  417. if (CollUtil.isNotEmpty(groupRelationEntityList1)) {
  418. groupRelationEntityList.addAll(groupRelationEntityList1);
  419. List<SysUserEntity> sysUserEntities = sysUserMapper.selectList(
  420. new LambdaQueryWrapper<>(SysUserEntity.class)
  421. .eq(SysUserEntity::getStatus, 1)
  422. .in(SysUserEntity::getId, groupRelationEntityList1.stream()
  423. .map(SysUserGroupRelationEntity::getUserId).distinct().toList())
  424. );
  425. if (CollUtil.isNotEmpty(sysUserEntities)) {
  426. sysUserEntityList.addAll(sysUserEntities);
  427. }
  428. }
  429. List<DictProvinceRegionEntity> regionEntityList = dictProvinceRegionMapper.selectList(
  430. new LambdaQueryWrapper<>(DictProvinceRegionEntity.class)
  431. .select(
  432. DictProvinceRegionEntity::getId,
  433. DictProvinceRegionEntity::getSortCode,
  434. DictProvinceRegionEntity::getName,
  435. DictProvinceRegionEntity::getCode
  436. )
  437. .eq(DictProvinceRegionEntity::getUseStatus, 1)
  438. .orderByAsc(DictProvinceRegionEntity::getSortCode)
  439. );
  440. if (CollUtil.isNotEmpty(regionEntityList)) {
  441. provinceRegionEntityList.addAll(regionEntityList);
  442. List<String> provinceCode =
  443. regionEntityList.stream()
  444. .map(DictProvinceRegionEntity::getCode)
  445. .distinct()
  446. .toList();
  447. List<DictCityRegionEntity> dictCityRegionEntities = dictCityRegionMapper.selectList(
  448. new LambdaQueryWrapper<>(DictCityRegionEntity.class)
  449. .select(
  450. DictCityRegionEntity::getId,
  451. DictCityRegionEntity::getCode,
  452. DictCityRegionEntity::getName,
  453. DictCityRegionEntity::getParentCode
  454. )
  455. .in(DictCityRegionEntity::getParentCode, provinceCode)
  456. );
  457. if (CollUtil.isNotEmpty(dictCityRegionEntities)) {
  458. cityRegionEntityList.addAll(dictCityRegionEntities);
  459. }
  460. }
  461. }
  462. }