Commit c1a7ec20e615589aa1f283887d56abb99b7161bd

Authored by 黄 x
1 parent 8356c181

fix: 删除sys_town相关调用改为sys_area调用

Showing 15 changed files with 221 additions and 299 deletions
  1 +package org.thingsboard.server.controller.yunteng;
  2 +import io.swagger.annotations.Api;
  3 +import io.swagger.annotations.ApiOperation;
  4 +import lombok.RequiredArgsConstructor;
  5 +import org.springframework.http.ResponseEntity;
  6 +import org.springframework.web.bind.annotation.PostMapping;
  7 +import org.springframework.web.bind.annotation.RequestBody;
  8 +import org.springframework.web.bind.annotation.RequestMapping;
  9 +import org.springframework.web.bind.annotation.RestController;
  10 +import org.thingsboard.server.common.data.yunteng.dto.SysAreaDTO;
  11 +import org.thingsboard.server.dao.yunteng.service.SysAreaService;
  12 +
  13 +import java.util.List;
  14 +
  15 +/**
  16 + * @author: 徐浩然
  17 + * @desc: 中国省市区街关联
  18 + * @date: 2021/12/3-15:56
  19 + */
  20 +@Api(tags = "中国省市区街关联")
  21 +@RestController
  22 +@RequestMapping("api/yt/area")
  23 +@RequiredArgsConstructor
  24 +public class YtAreaController {
  25 + private final SysAreaService sysAreaService;
  26 +
  27 + @PostMapping("areaList")
  28 + @ApiOperation("查询")
  29 + public ResponseEntity<List<SysAreaDTO>> areaList(@RequestBody SysAreaDTO sysAreaDTO) {
  30 + return ResponseEntity.ok(sysAreaService.list(sysAreaDTO));
  31 + }
  32 +}
1 -package org.thingsboard.server.controller.yunteng;  
2 -import io.swagger.annotations.Api;  
3 -import io.swagger.annotations.ApiOperation;  
4 -import lombok.RequiredArgsConstructor;  
5 -import org.springframework.http.ResponseEntity;  
6 -import org.springframework.web.bind.annotation.GetMapping;  
7 -import org.springframework.web.bind.annotation.PathVariable;  
8 -import org.springframework.web.bind.annotation.RequestMapping;  
9 -import org.springframework.web.bind.annotation.RestController;  
10 -import org.thingsboard.server.dao.yunteng.entities.SysTown;  
11 -import org.thingsboard.server.dao.yunteng.service.SysTownService;  
12 -  
13 -import java.util.LinkedList;  
14 -import java.util.List;  
15 -import java.util.Map;  
16 -  
17 -/**  
18 - * @author: 徐浩然  
19 - * @desc: 中国城镇区街  
20 - * @date: 2021/12/3-15:56  
21 - */  
22 -@Api(tags = "中国城镇区街")  
23 -@RestController  
24 -@RequestMapping("api/yt/town")  
25 -@RequiredArgsConstructor  
26 -public class YtTownController {  
27 - private final SysTownService sysTownService;  
28 -  
29 - @GetMapping("list")  
30 - @ApiOperation("查询所有省份")  
31 - public ResponseEntity<List<SysTown>> getCityList() {  
32 - return ResponseEntity.ok(sysTownService.getCityList());  
33 - }  
34 -  
35 - @GetMapping("childs/{variable}/{value}")  
36 - @ApiOperation("查询子集")  
37 - public ResponseEntity<List<SysTown>> childs(  
38 - @PathVariable("variable") String variable, @PathVariable("value") String value) {  
39 - return ResponseEntity.ok(sysTownService.findChilds(variable, value));  
40 - }  
41 -  
42 - @GetMapping("tree")  
43 - @ApiOperation("查询城市树形结构")  
44 - public ResponseEntity<LinkedList<Map<String, Object>>> tree() {  
45 - return ResponseEntity.ok(sysTownService.tree());  
46 - }  
47 -}  
@@ -58,8 +58,6 @@ public final class ModelConstants { @@ -58,8 +58,6 @@ public final class ModelConstants {
58 public static final String SYS_PLATFORM_DESIGN_TABLE_NAME = "sys_platform_design"; 58 public static final String SYS_PLATFORM_DESIGN_TABLE_NAME = "sys_platform_design";
59 /** APP定制 */ 59 /** APP定制 */
60 public static final String SYS_APP_DESIGN_TABLE_NAME = "sys_app_design"; 60 public static final String SYS_APP_DESIGN_TABLE_NAME = "sys_app_design";
61 - /** 中国城镇区街 */  
62 - public static final String SYS_TOWN_TABLE_NAME = "sys_town";  
63 /** 场景联动表 */ 61 /** 场景联动表 */
64 public static final String IOTFS_SCENE_LINKAGE_TABLE_NAME = "iotfs_scene_linkage"; 62 public static final String IOTFS_SCENE_LINKAGE_TABLE_NAME = "iotfs_scene_linkage";
65 /** 场景触发器 */ 63 /** 场景触发器 */
@@ -68,6 +66,8 @@ public final class ModelConstants { @@ -68,6 +66,8 @@ public final class ModelConstants {
68 public static final String IOTFS_DO_CONDITION_TABLE_NAME = "iotfs_do_condition"; 66 public static final String IOTFS_DO_CONDITION_TABLE_NAME = "iotfs_do_condition";
69 /** 条件动作表 */ 67 /** 条件动作表 */
70 public static final String IOTFS_DO_ACTION_TABLE_NAME = "iotfs_do_action"; 68 public static final String IOTFS_DO_ACTION_TABLE_NAME = "iotfs_do_action";
  69 + /** 中国城镇区街 */
  70 + public static final String SYS_AREA_TABLE_NAME = "sys_area";
71 } 71 }
72 72
73 public static class TableFields { 73 public static class TableFields {
common/data/src/main/java/org/thingsboard/server/common/data/yunteng/dto/AreaInfoDTO.java renamed from common/data/src/main/java/org/thingsboard/server/common/data/yunteng/dto/SysTownDTO.java
@@ -5,24 +5,40 @@ import io.swagger.annotations.ApiModelProperty; @@ -5,24 +5,40 @@ import io.swagger.annotations.ApiModelProperty;
5 import lombok.Data; 5 import lombok.Data;
6 import lombok.RequiredArgsConstructor; 6 import lombok.RequiredArgsConstructor;
7 7
  8 +import java.util.List;
  9 +
8 @Data 10 @Data
9 @ApiModel(value = "区域信息") 11 @ApiModel(value = "区域信息")
10 @RequiredArgsConstructor 12 @RequiredArgsConstructor
11 -public class SysTownDTO { 13 +public class AreaInfoDTO {
12 @ApiModelProperty(value = "省") 14 @ApiModelProperty(value = "省")
13 private String nameProv; 15 private String nameProv;
14 @ApiModelProperty(value = "省code") 16 @ApiModelProperty(value = "省code")
15 - private String codeProv; 17 + private Long codeProv;
16 @ApiModelProperty(value = "市") 18 @ApiModelProperty(value = "市")
17 private String nameCity; 19 private String nameCity;
18 @ApiModelProperty(value = "市code") 20 @ApiModelProperty(value = "市code")
19 - private String codeCity; 21 + private Long codeCity;
20 @ApiModelProperty(value = "区") 22 @ApiModelProperty(value = "区")
21 private String nameCoun; 23 private String nameCoun;
22 @ApiModelProperty(value = "区code") 24 @ApiModelProperty(value = "区code")
23 - private String codeCoun; 25 + private Long codeCoun;
24 @ApiModelProperty(value = "县") 26 @ApiModelProperty(value = "县")
25 private String nameTown; 27 private String nameTown;
26 @ApiModelProperty(value = "县code") 28 @ApiModelProperty(value = "县code")
27 - private String codeTown; 29 + private Long codeTown;
  30 + @ApiModelProperty(value = "国")
  31 + private String nameCountry;
  32 + @ApiModelProperty(value = "国code")
  33 + private Long codeCountry;
  34 + @ApiModelProperty(value = "省集合")
  35 + private List<SysAreaDTO> provs;
  36 + @ApiModelProperty(value = "市集合")
  37 + private List<SysAreaDTO> cities;
  38 + @ApiModelProperty(value = "区集合")
  39 + private List<SysAreaDTO> couns;
  40 + @ApiModelProperty(value = "县集合")
  41 + private List<SysAreaDTO> towns;
  42 + @ApiModelProperty(value = "国集合")
  43 + private List<SysAreaDTO> countries;
28 } 44 }
  1 +package org.thingsboard.server.common.data.yunteng.dto;
  2 +
  3 +import io.swagger.annotations.ApiModel;
  4 +import io.swagger.annotations.ApiModelProperty;
  5 +import lombok.Data;
  6 +import org.thingsboard.server.common.data.yunteng.enums.AreaLevelEnum;
  7 +
  8 +/**
  9 + * @author: 徐浩然
  10 + * @desc: 中国省市区街关联
  11 + * @date: 2021/12/16-15:03
  12 + */
  13 +@Data
  14 +@ApiModel(value = "中国省市区街关联")
  15 +public class SysAreaDTO {
  16 + @ApiModelProperty(value = "上级Code")
  17 + private Long parentId;
  18 +
  19 + @ApiModelProperty(value = "行政级别:AreaLevelEnum")
  20 + private AreaLevelEnum level;
  21 +
  22 + @ApiModelProperty(value = "行政名称")
  23 + private String name;
  24 +
  25 + @ApiModelProperty(value = "行政编码")
  26 + private Long code;
  27 +}
@@ -33,8 +33,8 @@ public class SysEnterpriseDTO extends BaseDTO { @@ -33,8 +33,8 @@ public class SysEnterpriseDTO extends BaseDTO {
33 @ApiModelProperty(value = "联系电话") 33 @ApiModelProperty(value = "联系电话")
34 private String tel; 34 private String tel;
35 @ApiModelProperty(value = "区域信息") 35 @ApiModelProperty(value = "区域信息")
36 - private SysTownDTO sysTown;  
37 - private String codeTown; 36 + private AreaInfoDTO sysTown;
  37 + private Long codeTown;
38 @ApiModelProperty(value = "二维码") 38 @ApiModelProperty(value = "二维码")
39 private String qrCode; 39 private String qrCode;
40 } 40 }
  1 +package org.thingsboard.server.dao.yunteng.entities;
  2 +
  3 +import com.baomidou.mybatisplus.annotation.TableName;
  4 +import lombok.Data;
  5 +import org.thingsboard.server.common.data.yunteng.constant.ModelConstants;
  6 +import org.thingsboard.server.common.data.yunteng.enums.AreaLevelEnum;
  7 +
  8 +/**
  9 + * @author: 徐浩然
  10 + * @desc: 中国省市区街关联
  11 + * @date: 2021/12/15-17:31
  12 + */
  13 +@Data
  14 +@TableName(ModelConstants.Table.SYS_AREA_TABLE_NAME)
  15 +public class SysArea{
  16 + private Long parentId;
  17 + private AreaLevelEnum level;
  18 + private String name;
  19 + private Long code;
  20 +}
1 -package org.thingsboard.server.dao.yunteng.entities;  
2 -  
3 -import com.baomidou.mybatisplus.annotation.TableName;  
4 -import io.swagger.annotations.ApiModel;  
5 -import io.swagger.annotations.ApiModelProperty;  
6 -import lombok.Data;  
7 -import org.thingsboard.server.common.data.yunteng.constant.ModelConstants;  
8 -  
9 -/**  
10 - * @author: 徐浩然  
11 - * @desc: 中国城镇区街  
12 - * @date: 2021/12/3-15:31  
13 - */  
14 -@Data  
15 -@ApiModel(value = "中国城镇区街")  
16 -@TableName(ModelConstants.Table.SYS_TOWN_TABLE_NAME)  
17 -public class SysTown {  
18 - @ApiModelProperty(value = "省")  
19 - private String nameProv;  
20 - @ApiModelProperty(value = "省code")  
21 - private String codeProv;  
22 - @ApiModelProperty(value = "市")  
23 - private String nameCity;  
24 - @ApiModelProperty(value = "市code")  
25 - private String codeCity;  
26 - @ApiModelProperty(value = "区")  
27 - private String nameCoun;  
28 - @ApiModelProperty(value = "区code")  
29 - private String codeCoun;  
30 - @ApiModelProperty(value = "县")  
31 - private String nameTown;  
32 - @ApiModelProperty(value = "县code")  
33 - private String codeTown;  
34 -}  
  1 +package org.thingsboard.server.dao.yunteng.impl;
  2 +
  3 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4 +import lombok.RequiredArgsConstructor;
  5 +import org.apache.commons.lang3.StringUtils;
  6 +import org.springframework.beans.BeanUtils;
  7 +import org.springframework.stereotype.Service;
  8 +import org.thingsboard.server.common.data.yunteng.dto.SysAreaDTO;
  9 +import org.thingsboard.server.common.data.yunteng.utils.ReflectUtils;
  10 +import org.thingsboard.server.dao.yunteng.entities.SysArea;
  11 +import org.thingsboard.server.dao.yunteng.mapper.SysAreaMapper;
  12 +import org.thingsboard.server.dao.yunteng.service.SysAreaService;
  13 +
  14 +import java.util.List;
  15 +
  16 +/**
  17 + * @author: 徐浩然
  18 + * @desc: 中国省市区县
  19 + * @date: 2021/12/16-11:13
  20 + */
  21 +@Service
  22 +@RequiredArgsConstructor
  23 +public class SysAreaServiceImpl implements SysAreaService {
  24 +
  25 + private final SysAreaMapper sysAreaMapper;
  26 +
  27 + @Override
  28 + public List<SysAreaDTO> list(SysAreaDTO sysAreaDTO) {
  29 + return ReflectUtils.sourceToTarget(
  30 + sysAreaMapper.selectList(
  31 + new LambdaQueryWrapper<SysArea>()
  32 + .eq(sysAreaDTO.getLevel() != null, SysArea::getLevel, sysAreaDTO.getLevel())
  33 + .eq(
  34 + sysAreaDTO.getParentId() != null,
  35 + SysArea::getParentId,
  36 + sysAreaDTO.getParentId())
  37 + .eq(sysAreaDTO.getCode() != null, SysArea::getCode, sysAreaDTO.getCode())
  38 + .like(
  39 + StringUtils.isNotEmpty(sysAreaDTO.getName()),
  40 + SysArea::getName,
  41 + sysAreaDTO.getName())),
  42 + SysAreaDTO.class);
  43 + }
  44 +
  45 + @Override
  46 + public SysAreaDTO getSysAreaInfoByCode(Long code) {
  47 + if (null == code) return null;
  48 + SysAreaDTO target = new SysAreaDTO();
  49 + SysArea source =
  50 + sysAreaMapper.selectOne(new LambdaQueryWrapper<SysArea>().eq(SysArea::getCode, code));
  51 + if (null != source) {
  52 + BeanUtils.copyProperties(source, target);
  53 + }
  54 + return target;
  55 + }
  56 +}
@@ -4,10 +4,13 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -4,10 +4,13 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
4 import lombok.RequiredArgsConstructor; 4 import lombok.RequiredArgsConstructor;
5 import lombok.extern.slf4j.Slf4j; 5 import lombok.extern.slf4j.Slf4j;
6 import org.springframework.stereotype.Service; 6 import org.springframework.stereotype.Service;
  7 +import org.thingsboard.server.common.data.yunteng.dto.SysAreaDTO;
7 import org.thingsboard.server.common.data.yunteng.dto.SysEnterpriseDTO; 8 import org.thingsboard.server.common.data.yunteng.dto.SysEnterpriseDTO;
  9 +import org.thingsboard.server.common.data.yunteng.dto.AreaInfoDTO;
8 import org.thingsboard.server.dao.yunteng.entities.SysEnterprise; 10 import org.thingsboard.server.dao.yunteng.entities.SysEnterprise;
9 import org.thingsboard.server.dao.yunteng.mapper.SysEnterpriseMapper; 11 import org.thingsboard.server.dao.yunteng.mapper.SysEnterpriseMapper;
10 import org.thingsboard.server.dao.yunteng.service.AbstractBaseService; 12 import org.thingsboard.server.dao.yunteng.service.AbstractBaseService;
  13 +import org.thingsboard.server.dao.yunteng.service.SysAreaService;
11 import org.thingsboard.server.dao.yunteng.service.SysEnterpriseService; 14 import org.thingsboard.server.dao.yunteng.service.SysEnterpriseService;
12 15
13 /** 16 /**
@@ -21,8 +24,11 @@ import org.thingsboard.server.dao.yunteng.service.SysEnterpriseService; @@ -21,8 +24,11 @@ import org.thingsboard.server.dao.yunteng.service.SysEnterpriseService;
21 public class SysEnterpriseServiceImpl 24 public class SysEnterpriseServiceImpl
22 extends AbstractBaseService<SysEnterpriseMapper, SysEnterprise> 25 extends AbstractBaseService<SysEnterpriseMapper, SysEnterprise>
23 implements SysEnterpriseService { 26 implements SysEnterpriseService {
  27 +
  28 + private final SysAreaService sysAreaService;
  29 +
24 @Override 30 @Override
25 - public boolean save(SysEnterpriseDTO sysAppDesignDTO,String tenantId) { 31 + public boolean save(SysEnterpriseDTO sysAppDesignDTO, String tenantId) {
26 SysEnterprise entity = sysAppDesignDTO.getEntity(SysEnterprise.class); 32 SysEnterprise entity = sysAppDesignDTO.getEntity(SysEnterprise.class);
27 entity.setTenantId(tenantId); 33 entity.setTenantId(tenantId);
28 return baseMapper.insert(entity) > 0; 34 return baseMapper.insert(entity) > 0;
@@ -30,19 +36,56 @@ public class SysEnterpriseServiceImpl @@ -30,19 +36,56 @@ public class SysEnterpriseServiceImpl
30 36
31 @Override 37 @Override
32 public SysEnterpriseDTO get(String tenantId) { 38 public SysEnterpriseDTO get(String tenantId) {
33 - return baseMapper.get(tenantId); 39 + SysEnterpriseDTO sysEnterpriseDTO = baseMapper.get(tenantId);
  40 + AreaInfoDTO sourceArea = sysEnterpriseDTO.getSysTown();
  41 + SysAreaDTO town = sysAreaService.getSysAreaInfoByCode(sysEnterpriseDTO.getCodeTown());
  42 + sourceArea.setNameTown(town.getName());
  43 + SysAreaDTO county = sysAreaService.getSysAreaInfoByCode(town.getParentId());
  44 + sourceArea.setNameCoun(county.getName());
  45 + sourceArea.setCodeCoun(county.getCode());
  46 + SysAreaDTO city = sysAreaService.getSysAreaInfoByCode(county.getParentId());
  47 + sourceArea.setNameCoun(city.getName());
  48 + sourceArea.setCodeCoun(city.getCode());
  49 + SysAreaDTO province = sysAreaService.getSysAreaInfoByCode(city.getParentId());
  50 + sourceArea.setNameCoun(province.getName());
  51 + sourceArea.setCodeCoun(province.getCode());
  52 + SysAreaDTO country = sysAreaService.getSysAreaInfoByCode(province.getParentId());
  53 + sourceArea.setNameCoun(country.getName());
  54 + sourceArea.setCodeCoun(country.getCode());
  55 +
  56 + //查询同级别县
  57 + SysAreaDTO var1 = new SysAreaDTO();
  58 + var1.setParentId(town.getParentId());
  59 + sourceArea.setTowns(sysAreaService.list(var1));
  60 + //查询同级别区
  61 + SysAreaDTO var2 = new SysAreaDTO();
  62 + var2.setParentId(county.getParentId());
  63 + sourceArea.setCouns(sysAreaService.list(var2));
  64 + //查询同级别市
  65 + SysAreaDTO var3 = new SysAreaDTO();
  66 + var3.setParentId(city.getParentId());
  67 + sourceArea.setCities(sysAreaService.list(var3));
  68 + //查询同级别省
  69 + SysAreaDTO var4 = new SysAreaDTO();
  70 + var4.setParentId(province.getParentId());
  71 + sourceArea.setProvs(sysAreaService.list(var4));
  72 + //查询同级别省
  73 + SysAreaDTO var5 = new SysAreaDTO();
  74 + var5.setParentId(country.getParentId());
  75 + sourceArea.setCountries(sysAreaService.list(var5));
  76 + sysEnterpriseDTO.setSysTown(sourceArea);
  77 + return sysEnterpriseDTO;
34 } 78 }
35 79
36 @Override 80 @Override
37 - public boolean update(SysEnterpriseDTO sysAppDesignDTO,String tenantId) { 81 + public boolean update(SysEnterpriseDTO sysAppDesignDTO, String tenantId) {
38 if (get(tenantId) != null) { 82 if (get(tenantId) != null) {
39 return baseMapper.update( 83 return baseMapper.update(
40 sysAppDesignDTO.getEntity(SysEnterprise.class), 84 sysAppDesignDTO.getEntity(SysEnterprise.class),
41 - new LambdaQueryWrapper<SysEnterprise>()  
42 - .eq(SysEnterprise::getTenantId,tenantId))  
43 - > 0;  
44 - }else {  
45 - return save(sysAppDesignDTO,tenantId); 85 + new LambdaQueryWrapper<SysEnterprise>().eq(SysEnterprise::getTenantId, tenantId))
  86 + > 0;
  87 + } else {
  88 + return save(sysAppDesignDTO, tenantId);
46 } 89 }
47 } 90 }
48 } 91 }
1 -package org.thingsboard.server.dao.yunteng.impl;  
2 -  
3 -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;  
4 -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;  
5 -import lombok.RequiredArgsConstructor;  
6 -import lombok.extern.slf4j.Slf4j;  
7 -import org.springframework.stereotype.Service;  
8 -import org.thingsboard.server.dao.yunteng.entities.SysTown;  
9 -import org.thingsboard.server.dao.yunteng.mapper.SysTownMapper;  
10 -import org.thingsboard.server.dao.yunteng.service.SysTownService;  
11 -  
12 -import java.lang.reflect.Field;  
13 -import java.util.*;  
14 -  
15 -/**  
16 - * @author: 徐浩然  
17 - * @desc: 中国城镇区街  
18 - * @date: 2021/12/3-15:37  
19 - */  
20 -@Slf4j  
21 -@Service  
22 -@RequiredArgsConstructor  
23 -public class SysTownServiceImpl implements SysTownService {  
24 -  
25 - private final SysTownMapper sysTownMapper;  
26 -  
27 - private final String PID = "pid";  
28 - private final String ID = "id";  
29 - private final String NAME = "name";  
30 - private final String CHILD = "child";  
31 -  
32 - @Override  
33 - public List<SysTown> findChilds(String variable, String value) {  
34 - Field[] fields = SysTown.class.getDeclaredFields();  
35 - Stack<String> list = new Stack<>();  
36 - for (int i = 0; i < fields.length; i++) {  
37 - // 查询variable是第几个变量,可以决定groupby什么  
38 - list.add(fields[i].getName());  
39 - if (fields[i].getName().equals(variable)) {  
40 - if (i % 2 == 0) {  
41 - list.add(fields[++i].getName());  
42 - }  
43 - list.add(fields[++i].getName());  
44 - list.add(fields[++i].getName());  
45 - break;  
46 - }  
47 - }  
48 - String[] groupBy =  
49 - list.stream()  
50 - // 驼峰转下划线  
51 - .map(this::to_)  
52 - // 组成需要groupby的字段  
53 - .toArray(String[]::new);  
54 - return sysTownMapper.selectList(  
55 - new QueryWrapper<SysTown>().select(groupBy).eq(to_(variable), value).groupBy(groupBy));  
56 - }  
57 -  
58 - private String to_(String s) {  
59 - return s.replaceAll("[A-Z]", "_$0").toLowerCase();  
60 - }  
61 -  
62 - @Override  
63 - public SysTown findParent(String variable, String value) {  
64 - return sysTownMapper.selectList(new QueryWrapper<SysTown>().eq(variable, value)).stream()  
65 - .findFirst()  
66 - .orElse(null);  
67 - }  
68 -  
69 - public List<SysTown> getCityList() {  
70 - return sysTownMapper.getCityList();  
71 - }  
72 -  
73 - @Override  
74 - public LinkedList<Map<String, Object>> tree() {  
75 - // 查询有序数据  
76 - List<SysTown> cityList =  
77 - sysTownMapper.selectList(  
78 - new LambdaQueryWrapper<SysTown>()  
79 - .orderByAsc(  
80 - SysTown::getCodeProv,  
81 - SysTown::getCodeCity,  
82 - SysTown::getCodeCoun,  
83 - SysTown::getCodeTown));  
84 - // 省  
85 - LinkedList<Map<String, Object>> prov = new LinkedList<>();  
86 - // 市  
87 - LinkedList<Map<String, Object>> city = new LinkedList<>();  
88 - // 区  
89 - LinkedList<Map<String, Object>> coun = new LinkedList<>();  
90 - // 县  
91 - LinkedList<Map<String, Object>> town = new LinkedList<>();  
92 - for (SysTown sysTown : cityList) {  
93 - if (coun.size() != 0 && !coun.getLast().get(ID).equals(sysTown.getCodeCoun())) {  
94 - // 切换区则县链改变  
95 - town = new LinkedList<>();  
96 - }  
97 - // 添加县  
98 - addTown(town, sysTown);  
99 -  
100 - if (city.size() != 0 && !city.getLast().get(ID).equals(sysTown.getCodeCity())) {  
101 - // 切换市则区链改变  
102 - coun = new LinkedList<>();  
103 - }  
104 - // 添加区  
105 - addCoun(coun, town, sysTown);  
106 - if (prov.size() != 0 && !prov.getLast().get(ID).equals(sysTown.getCodeProv())) {  
107 - // 切换省则市链改变  
108 - city = new LinkedList<>();  
109 - }  
110 - // 添加市  
111 - addCity(city, coun, sysTown);  
112 - // 添加省  
113 - addProv(prov, city, sysTown);  
114 - }  
115 - return prov;  
116 - }  
117 -  
118 - private void addTown(LinkedList<Map<String, Object>> town, SysTown sysTown) {  
119 - if (town.size() == 0 || !town.getLast().get(ID).equals(sysTown.getCodeTown())) {  
120 - town.addLast(  
121 - new HashMap<>() {  
122 - {  
123 - put(PID, sysTown.getCodeCoun());  
124 - put(ID, sysTown.getCodeTown());  
125 - put(NAME, sysTown.getNameTown());  
126 - // put(CHILD, null);  
127 - }  
128 - });  
129 - }  
130 - }  
131 -  
132 - private void addCoun(  
133 - LinkedList<Map<String, Object>> coun, LinkedList<Map<String, Object>> town, SysTown sysTown) {  
134 - if (coun.size() == 0 || !coun.getLast().get(ID).equals(sysTown.getCodeCoun())) {  
135 - coun.addLast(  
136 - new HashMap<>() {  
137 - {  
138 - put(PID, sysTown.getCodeCity());  
139 - put(ID, sysTown.getCodeCoun());  
140 - put(NAME, sysTown.getNameCoun());  
141 - put(CHILD, town);  
142 - }  
143 - });  
144 - }  
145 - }  
146 -  
147 - private void addCity(  
148 - LinkedList<Map<String, Object>> city, LinkedList<Map<String, Object>> coun, SysTown sysTown) {  
149 - if (city.size() == 0 || !city.getLast().get(ID).equals(sysTown.getCodeCity())) {  
150 - city.addLast(  
151 - new HashMap<>() {  
152 - {  
153 - put(PID, sysTown.getCodeProv());  
154 - put(ID, sysTown.getCodeCity());  
155 - put(NAME, sysTown.getNameCity());  
156 - put(CHILD, coun);  
157 - }  
158 - });  
159 - }  
160 - }  
161 -  
162 - private void addProv(  
163 - LinkedList<Map<String, Object>> prov, LinkedList<Map<String, Object>> city, SysTown sysTown) {  
164 - if (prov.size() == 0 || !prov.getLast().get(ID).equals(sysTown.getCodeProv())) {  
165 - prov.addLast(  
166 - new HashMap<>() {  
167 - {  
168 - // put(PID, null);  
169 - put(ID, sysTown.getCodeProv());  
170 - put(NAME, sysTown.getNameProv());  
171 - put(CHILD, city);  
172 - }  
173 - });  
174 - }  
175 - }  
176 -}  
@@ -209,7 +209,7 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev @@ -209,7 +209,7 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev
209 209
210 device.setAlarmStatus(0); 210 device.setAlarmStatus(0);
211 /** 默认待激活状态 */ 211 /** 默认待激活状态 */
212 - device.setDeviceState(DeviceState.INACTIVE.name()); 212 + device.setDeviceState(DeviceState.INACTIVE);
213 baseMapper.insert(device); 213 baseMapper.insert(device);
214 return device.getDTO(DeviceDTO.class); 214 return device.getDTO(DeviceDTO.class);
215 } 215 }
dao/src/main/java/org/thingsboard/server/dao/yunteng/mapper/SysAreaMapper.java renamed from dao/src/main/java/org/thingsboard/server/dao/yunteng/mapper/SysTownMapper.java
@@ -2,19 +2,13 @@ package org.thingsboard.server.dao.yunteng.mapper; @@ -2,19 +2,13 @@ package org.thingsboard.server.dao.yunteng.mapper;
2 2
3 import com.baomidou.mybatisplus.core.mapper.BaseMapper; 3 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 import org.apache.ibatis.annotations.Mapper; 4 import org.apache.ibatis.annotations.Mapper;
5 -import org.apache.ibatis.annotations.Select;  
6 -import org.thingsboard.server.dao.yunteng.entities.SysTown;  
7 -  
8 -import java.util.List; 5 +import org.thingsboard.server.dao.yunteng.entities.SysArea;
9 6
10 /** 7 /**
11 * @author: 徐浩然 8 * @author: 徐浩然
12 * @desc: 9 * @desc:
13 - * @date: 2021/12/3-15:34 10 + * @date: 2021/12/16-10:45
14 */ 11 */
15 @Mapper 12 @Mapper
16 -public interface SysTownMapper extends BaseMapper<SysTown> {  
17 - /** @return 查询所有省份 */  
18 - @Select("select name_prov,code_prov from sys_town group by name_prov, code_prov")  
19 - List<SysTown> getCityList(); 13 +public interface SysAreaMapper extends BaseMapper<SysArea> {
20 } 14 }
dao/src/main/java/org/thingsboard/server/dao/yunteng/service/SysAreaService.java renamed from dao/src/main/java/org/thingsboard/server/dao/yunteng/service/SysTownService.java
1 package org.thingsboard.server.dao.yunteng.service; 1 package org.thingsboard.server.dao.yunteng.service;
2 -  
3 -import org.thingsboard.server.dao.yunteng.entities.SysTown;  
4 -  
5 -import java.util.LinkedList; 2 +import org.thingsboard.server.common.data.yunteng.dto.SysAreaDTO;
6 import java.util.List; 3 import java.util.List;
7 -import java.util.Map;  
8 4
9 /** 5 /**
10 * @author: 徐浩然 6 * @author: 徐浩然
11 * @desc: 7 * @desc:
12 - * @date: 2021/12/3-15:36 8 + * @date: 2021/12/16-11:13
13 */ 9 */
14 -public interface SysTownService {  
15 -  
16 - List<SysTown> findChilds(String variable, String value);  
17 -  
18 - SysTown findParent(String variable, String value);  
19 -  
20 - List<SysTown> getCityList(); 10 +public interface SysAreaService {
  11 + List<SysAreaDTO> list(SysAreaDTO sysAreaDTO);
21 12
22 - LinkedList<Map<String, Object>> tree(); 13 + SysAreaDTO getSysAreaInfoByCode(Long code);
23 } 14 }
@@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
14 <result property="tel" column="tel"/> 14 <result property="tel" column="tel"/>
15 <result property="codeTown" column="code_town"/> 15 <result property="codeTown" column="code_town"/>
16 <result property="qrCode" column="qr_code"/> 16 <result property="qrCode" column="qr_code"/>
17 - <association property="sysTown" javaType="org.thingsboard.server.common.data.yunteng.dto.SysTownDTO"> 17 + <association property="sysTown" javaType="org.thingsboard.server.common.data.yunteng.dto.AreaInfoDTO">
18 <result property="nameProv" column="name_prov"/> 18 <result property="nameProv" column="name_prov"/>
19 <result property="codeProv" column="code_prov"/> 19 <result property="codeProv" column="code_prov"/>
20 <result property="nameCity" column="name_city"/> 20 <result property="nameCity" column="name_city"/>