Commit 77b06ce97f392cf8fe3f0308ce8f7fad6e52f8ec

Authored by xp.Huang
1 parent f9f2dc0c

fix: 平台定制特殊地图回显BUG修复

... ... @@ -8,6 +8,7 @@ import org.springframework.cache.CacheManager;
8 8 import org.springframework.stereotype.Service;
9 9 import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants;
10 10 import org.thingsboard.server.common.data.yunteng.dto.SysAreaDTO;
  11 +import org.thingsboard.server.common.data.yunteng.enums.AreaLevelEnum;
11 12 import org.thingsboard.server.common.data.yunteng.utils.ReflectUtils;
12 13 import org.thingsboard.server.dao.yunteng.entities.SysAreaEntity;
13 14 import org.thingsboard.server.dao.yunteng.mapper.SysAreaMapper;
... ... @@ -30,37 +31,47 @@ public class SysAreaServiceImpl implements SysAreaService {
30 31 @Override
31 32 public List<SysAreaDTO> list(SysAreaDTO sysAreaDTO) {
32 33 String areaKey = sysAreaDTO.getParentId() + "-" + sysAreaDTO.getLevel();
33   - List<SysAreaDTO> result = cacheManager.getCache(FastIotConstants.CacheConfigKey.AREA).get(areaKey,List.class);
34   - if(result == null || result.isEmpty()){
35   - result = ReflectUtils.sourceToTarget(
  34 + List<SysAreaDTO> result =
  35 + cacheManager.getCache(FastIotConstants.CacheConfigKey.AREA).get(areaKey, List.class);
  36 + if (result == null || result.isEmpty()) {
  37 + result =
  38 + ReflectUtils.sourceToTarget(
36 39 sysAreaMapper.selectList(
37   - new LambdaQueryWrapper<SysAreaEntity>()
38   - .eq(sysAreaDTO.getLevel() != null, SysAreaEntity::getLevel, sysAreaDTO.getLevel())
39   - .eq(
40   - sysAreaDTO.getParentId() != null,
41   - SysAreaEntity::getParentId,
42   - sysAreaDTO.getParentId())
43   - .eq(sysAreaDTO.getCode() != null, SysAreaEntity::getCode, sysAreaDTO.getCode())
44   - .like(
45   - StringUtils.isNotEmpty(sysAreaDTO.getName()),
46   - SysAreaEntity::getName,
47   - sysAreaDTO.getName())),
  40 + new LambdaQueryWrapper<SysAreaEntity>()
  41 + .eq(
  42 + sysAreaDTO.getLevel() != null,
  43 + SysAreaEntity::getLevel,
  44 + sysAreaDTO.getLevel())
  45 + .eq(
  46 + sysAreaDTO.getParentId() != null,
  47 + SysAreaEntity::getParentId,
  48 + sysAreaDTO.getParentId())
  49 + .eq(
  50 + sysAreaDTO.getCode() != null,
  51 + SysAreaEntity::getCode,
  52 + sysAreaDTO.getCode())
  53 + .like(
  54 + StringUtils.isNotEmpty(sysAreaDTO.getName()),
  55 + SysAreaEntity::getName,
  56 + sysAreaDTO.getName())),
48 57 SysAreaDTO.class);
49   - cacheManager.getCache(FastIotConstants.CacheConfigKey.AREA).put(areaKey,result);
  58 + cacheManager.getCache(FastIotConstants.CacheConfigKey.AREA).put(areaKey, result);
50 59 }
51 60
52   -
53 61 return result;
54 62 }
55 63
56 64 @Override
57   - public SysAreaDTO getSysAreaInfoByCode(Long code) {
  65 + public SysAreaDTO getSysAreaInfoByCode(Long code, AreaLevelEnum levelEnum) {
58 66 if (null == code) {
59 67 return null;
60 68 }
61 69 SysAreaDTO target = new SysAreaDTO();
62 70 SysAreaEntity source =
63   - sysAreaMapper.selectOne(new LambdaQueryWrapper<SysAreaEntity>().eq(SysAreaEntity::getCode, code));
  71 + sysAreaMapper.selectOne(
  72 + new LambdaQueryWrapper<SysAreaEntity>()
  73 + .eq(SysAreaEntity::getCode, code)
  74 + .eq(SysAreaEntity::getLevel, levelEnum));
64 75 if (null != source) {
65 76 BeanUtils.copyProperties(source, target);
66 77 }
... ...
... ... @@ -10,6 +10,7 @@ import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage;
10 10 import org.thingsboard.server.common.data.yunteng.dto.SysAreaDTO;
11 11 import org.thingsboard.server.common.data.yunteng.dto.SysEnterpriseDTO;
12 12 import org.thingsboard.server.common.data.yunteng.dto.AreaInfoDTO;
  13 +import org.thingsboard.server.common.data.yunteng.enums.AreaLevelEnum;
13 14 import org.thingsboard.server.dao.yunteng.entities.SysEnterpriseEntity;
14 15 import org.thingsboard.server.dao.yunteng.mapper.SysEnterpriseMapper;
15 16 import org.thingsboard.server.dao.yunteng.service.AbstractBaseService;
... ... @@ -34,7 +35,8 @@ public class SysEnterpriseServiceImpl
34 35 public boolean save(SysEnterpriseDTO sysAppDesignDTO, String tenantId) {
35 36 SysEnterpriseEntity checkSysEnterprise =
36 37 baseMapper.selectOne(
37   - new LambdaQueryWrapper<SysEnterpriseEntity>().eq(SysEnterpriseEntity::getTenantId, tenantId));
  38 + new LambdaQueryWrapper<SysEnterpriseEntity>()
  39 + .eq(SysEnterpriseEntity::getTenantId, tenantId));
38 40 if (null != checkSysEnterprise) {
39 41 throw new TkDataValidationException(ErrorMessage.DATA_ALREADY_EXISTS.getMessage());
40 42 }
... ... @@ -51,19 +53,24 @@ public class SysEnterpriseServiceImpl
51 53 }
52 54 if (null != sysEnterpriseDTO.getCodeTown()) {
53 55 AreaInfoDTO sourceArea = new AreaInfoDTO();
54   - SysAreaDTO town = sysAreaService.getSysAreaInfoByCode(sysEnterpriseDTO.getCodeTown());
  56 + SysAreaDTO town =
  57 + sysAreaService.getSysAreaInfoByCode(sysEnterpriseDTO.getCodeTown(), AreaLevelEnum.TOWN);
55 58 sourceArea.setNameTown(town.getName());
56 59 sourceArea.setCodeTown(town.getCode());
57   - SysAreaDTO county = sysAreaService.getSysAreaInfoByCode(town.getParentId());
  60 + SysAreaDTO county =
  61 + sysAreaService.getSysAreaInfoByCode(town.getParentId(), AreaLevelEnum.COUNTY);
58 62 sourceArea.setNameCoun(county.getName());
59 63 sourceArea.setCodeCoun(county.getCode());
60   - SysAreaDTO city = sysAreaService.getSysAreaInfoByCode(county.getParentId());
  64 + SysAreaDTO city =
  65 + sysAreaService.getSysAreaInfoByCode(county.getParentId(), AreaLevelEnum.CITY);
61 66 sourceArea.setNameCity(city.getName());
62 67 sourceArea.setCodeCity(city.getCode());
63   - SysAreaDTO province = sysAreaService.getSysAreaInfoByCode(city.getParentId());
  68 + SysAreaDTO province =
  69 + sysAreaService.getSysAreaInfoByCode(city.getParentId(), AreaLevelEnum.PROVINCE);
64 70 sourceArea.setNameProv(province.getName());
65 71 sourceArea.setCodeProv(province.getCode());
66   - SysAreaDTO country = sysAreaService.getSysAreaInfoByCode(province.getParentId());
  72 + SysAreaDTO country =
  73 + sysAreaService.getSysAreaInfoByCode(province.getParentId(), AreaLevelEnum.COUNTRY);
67 74 sourceArea.setNameCountry(country.getName());
68 75 sourceArea.setCodeCountry(country.getCode());
69 76
... ... @@ -98,7 +105,8 @@ public class SysEnterpriseServiceImpl
98 105 if (sysAppDesignDTO.getId() != null) {
99 106 return baseMapper.update(
100 107 sysAppDesignDTO.getEntity(SysEnterpriseEntity.class),
101   - new LambdaQueryWrapper<SysEnterpriseEntity>().eq(SysEnterpriseEntity::getTenantId, tenantId))
  108 + new LambdaQueryWrapper<SysEnterpriseEntity>()
  109 + .eq(SysEnterpriseEntity::getTenantId, tenantId))
102 110 > 0;
103 111 } else {
104 112 return save(sysAppDesignDTO, tenantId);
... ...
1 1 package org.thingsboard.server.dao.yunteng.service;
2 2 import org.thingsboard.server.common.data.yunteng.dto.SysAreaDTO;
  3 +import org.thingsboard.server.common.data.yunteng.enums.AreaLevelEnum;
  4 +
3 5 import java.util.List;
4 6
5 7 /**
... ... @@ -10,5 +12,5 @@ import java.util.List;
10 12 public interface SysAreaService {
11 13 List<SysAreaDTO> list(SysAreaDTO sysAreaDTO);
12 14
13   - SysAreaDTO getSysAreaInfoByCode(Long code);
  15 + SysAreaDTO getSysAreaInfoByCode(Long code, AreaLevelEnum levelEnum);
14 16 }
... ...