Showing
10 changed files
with
465 additions
and
0 deletions
... | ... | @@ -386,3 +386,115 @@ CREATE TABLE "public"."qg_preserve_detail_status" ( |
386 | 386 | ); |
387 | 387 | |
388 | 388 | COMMENT ON TABLE "public"."qg_preserve_detail_status" IS '保养记录明细状态'; |
389 | + | |
390 | +CREATE TABLE "qg_db_connect" ( | |
391 | + "id" varchar(36) PRIMARY KEY, | |
392 | + "name" varchar(50) NOT NULL, | |
393 | + "type" varchar(20) NOT NULL, | |
394 | + "ip" varchar(20) NOT NULL, | |
395 | + "port" varchar(20) NOT NULL, | |
396 | + "db_name" varchar(50) NOT NULL, | |
397 | + "user_name" varchar(50) NOT NULL, | |
398 | + "password" varchar(50) NOT NULL, | |
399 | + "url" varchar(200) NOT NULL, | |
400 | + "open_ssh" bool NOT NULL DEFAULT false, | |
401 | + "open_ssl" bool NOT NULL DEFAULT false, | |
402 | + "max_pool_size" int4 DEFAULT 50, | |
403 | + "min_idle" int4 DEFAULT 0, | |
404 | + "connect_test_query" varchar(200), | |
405 | + "connect_timeout" int4 DEFAULT 30000, | |
406 | + "tenant_id" varchar(36), | |
407 | + "create_time" timestamp(6), | |
408 | + "creator" varchar(36) NULL, | |
409 | + "updater" varchar(36) NULL, | |
410 | + "update_time" timestamp(6) | |
411 | +); | |
412 | +COMMENT ON TABLE qg_db_connect IS '数据库链接信息'; | |
413 | +COMMENT ON COLUMN qg_db_connect.tenant_id IS '租户ID'; | |
414 | +COMMENT ON COLUMN qg_db_connect.name IS '自定义数据库名称'; | |
415 | +COMMENT ON COLUMN qg_db_connect.type IS '数据库类型'; | |
416 | +COMMENT ON COLUMN qg_db_connect.ip IS '主机ip'; | |
417 | +COMMENT ON COLUMN qg_db_connect.port IS '端口号'; | |
418 | +COMMENT ON COLUMN qg_db_connect.db_name IS '数据库名称'; | |
419 | +COMMENT ON COLUMN qg_db_connect.user_name IS '用户名'; | |
420 | +COMMENT ON COLUMN qg_db_connect.password IS '密码'; | |
421 | +COMMENT ON COLUMN qg_db_connect.url IS 'url'; | |
422 | +COMMENT ON COLUMN qg_db_connect.open_ssh IS '是否启用ssh,默认false'; | |
423 | +COMMENT ON COLUMN qg_db_connect.open_ssl IS '是否启用ssl,默认false'; | |
424 | +COMMENT ON COLUMN qg_db_connect.max_pool_size IS '最大活动链接数,默认50'; | |
425 | +COMMENT ON COLUMN qg_db_connect.min_idle IS '最小空闲连接数,默认0'; | |
426 | +COMMENT ON COLUMN qg_db_connect.connect_test_query IS '链接校验语句,默认为:SELECT 1'; | |
427 | +COMMENT ON COLUMN qg_db_connect.connect_timeout IS '最大等待时间(毫秒),默认为:30000毫秒'; | |
428 | + | |
429 | +CREATE TABLE "qg_db_connect_ssh" ( | |
430 | + "id" varchar(36) PRIMARY KEY, | |
431 | + "connect_id" varchar(36) NOT NULL, | |
432 | + "ip" varchar(20) NOT NULL, | |
433 | + "port" varchar(20) NOT NULL, | |
434 | + "ssh_name" varchar(50) NOT NULL, | |
435 | + "ssh_password" varchar(50) NOT NULL, | |
436 | + "verify_method" varchar(200) NOT NULL, | |
437 | + "private_key" varchar(200) NOT NULL, | |
438 | + "tenant_id" varchar(36), | |
439 | + "create_time" timestamp(6), | |
440 | + "creator" varchar(36) NULL, | |
441 | + "updater" varchar(36) NULL, | |
442 | + "update_time" timestamp(6) | |
443 | +); | |
444 | +COMMENT ON TABLE qg_db_connect_ssh IS 'SSH通道配置信息'; | |
445 | +COMMENT ON COLUMN qg_db_connect.tenant_id IS '租户ID'; | |
446 | +COMMENT ON COLUMN qg_db_connect.connect_id IS '数据库链接信息id'; | |
447 | +COMMENT ON COLUMN qg_db_connect_ssh.ip IS 'ssh的ip'; | |
448 | +COMMENT ON COLUMN qg_db_connect_ssh.port IS 'ssh的port'; | |
449 | +COMMENT ON COLUMN qg_db_connect_ssh.ssh_name IS '用户名'; | |
450 | +COMMENT ON COLUMN qg_db_connect_ssh.ssh_password IS '租户ID'; | |
451 | +COMMENT ON COLUMN qg_db_connect_ssh.ssh_password IS '密码/密码短语'; | |
452 | +COMMENT ON COLUMN qg_db_connect_ssh.verify_method IS '验证方式(PASSWORD:密码;PUBLIC_KEY)'; | |
453 | +COMMENT ON COLUMN qg_db_connect_ssh.private_key IS '私钥文件'; | |
454 | + | |
455 | +CREATE TABLE "qg_db_connect_ssl" ( | |
456 | + "id" varchar(36) PRIMARY KEY, | |
457 | + "connect_id" varchar(36) NOT NULL, | |
458 | + "ip" varchar(20) NOT NULL, | |
459 | + "port" varchar(20) NOT NULL, | |
460 | + "ssh_name" varchar(50) NOT NULL, | |
461 | + "ssh_password" varchar(50) NOT NULL, | |
462 | + "verify_method" varchar(200) NOT NULL, | |
463 | + "private_key" varchar(200) NOT NULL, | |
464 | + "tenant_id" varchar(36), | |
465 | + "create_time" timestamp(6), | |
466 | + "creator" varchar(36) NULL, | |
467 | + "updater" varchar(36) NULL, | |
468 | + "update_time" timestamp(6) | |
469 | +); | |
470 | +COMMENT ON TABLE qg_db_connect IS 'SSH通道配置信息'; | |
471 | +COMMENT ON COLUMN qg_db_connect.tenant_id IS '租户ID'; | |
472 | +COMMENT ON COLUMN qg_db_connect.connect_id IS '数据库链接信息id'; | |
473 | +COMMENT ON COLUMN qg_db_connect.ip IS 'ssh的ip'; | |
474 | +COMMENT ON COLUMN qg_db_connect.port IS 'ssh的port'; | |
475 | +COMMENT ON COLUMN qg_db_connect.ssh_name IS '用户名'; | |
476 | +COMMENT ON COLUMN qg_db_connect.ssh_password IS '租户ID'; | |
477 | +COMMENT ON COLUMN qg_db_connect.ssh_password IS '密码/密码短语'; | |
478 | +COMMENT ON COLUMN qg_db_connect.verify_method IS '验证方式(PASSWORD:密码;PUBLIC_KEY)'; | |
479 | +COMMENT ON COLUMN qg_db_connect.private_key IS '私钥文件'; | |
480 | + | |
481 | +CREATE TABLE "qg_db_connect_ssl" ( | |
482 | + "id" varchar(36) PRIMARY KEY, | |
483 | + "connect_id" varchar(36) NOT NULL, | |
484 | + "ca_cert" varchar(50) NOT NULL, | |
485 | + "verify_ca_cert" bool NOT NULL DEFAULT FALSE, | |
486 | + "client_key" varchar(50) NOT NULL, | |
487 | + "client_cert" varchar(50) NOT NULL, | |
488 | + "tenant_id" varchar(36), | |
489 | + "create_time" timestamp(6), | |
490 | + "creator" varchar(36) NULL, | |
491 | + "updater" varchar(36) NULL, | |
492 | + "update_time" timestamp(6) | |
493 | +); | |
494 | +COMMENT ON TABLE qg_db_connect_ssl IS 'SSL通道配置信息'; | |
495 | +COMMENT ON COLUMN qg_db_connect_ssl.tenant_id IS '租户ID'; | |
496 | +COMMENT ON COLUMN qg_db_connect_ssl.connect_id IS '数据库链接信息id'; | |
497 | +COMMENT ON COLUMN qg_db_connect_ssl.ca_cert IS 'CA证书'; | |
498 | +COMMENT ON COLUMN qg_db_connect_ssl.verify_ca_cert IS '验证CA证书'; | |
499 | +COMMENT ON COLUMN qg_db_connect_ssl.client_key IS '客户端秘钥'; | |
500 | +COMMENT ON COLUMN qg_db_connect_ssl.client_cert IS '客户端证书'; | ... | ... |
... | ... | @@ -1133,4 +1133,57 @@ CREATE TABLE IF NOT EXISTS qg_preserve_detail_status ( |
1133 | 1133 | "updater" varchar(36), |
1134 | 1134 | "update_time" timestamp(6), |
1135 | 1135 | CONSTRAINT "qg_preserve_detail_status_pkey" PRIMARY KEY ("id") |
1136 | +); | |
1137 | + | |
1138 | +CREATE TABLE IF NOT EXISTS qg_db_connect ( | |
1139 | + "id" varchar(36) PRIMARY KEY, | |
1140 | + "name" varchar(50) NOT NULL, | |
1141 | + "type" varchar(20) NOT NULL, | |
1142 | + "ip" varchar(20) NOT NULL, | |
1143 | + "port" varchar(20) NOT NULL, | |
1144 | + "db_name" varchar(50) NOT NULL, | |
1145 | + "user_name" varchar(50) NOT NULL, | |
1146 | + "password" varchar(50) NOT NULL, | |
1147 | + "url" varchar(200) NOT NULL, | |
1148 | + "open_ssh" bool NOT NULL DEFAULT false, | |
1149 | + "open_ssl" bool NOT NULL DEFAULT false, | |
1150 | + "max_pool_size" int4 DEFAULT 50, | |
1151 | + "min_idle" int4 DEFAULT 0, | |
1152 | + "connect_test_query" varchar(200), | |
1153 | + "connect_timeout" int4 DEFAULT 30000, | |
1154 | + "tenant_id" varchar(36), | |
1155 | + "create_time" timestamp(6), | |
1156 | + "creator" varchar(36) NULL, | |
1157 | + "updater" varchar(36) NULL, | |
1158 | + "update_time" timestamp(6) | |
1159 | +); | |
1160 | + | |
1161 | +CREATE TABLE IF NOT EXISTS qg_db_connect_ssl ( | |
1162 | + "id" varchar(36) PRIMARY KEY, | |
1163 | + "connect_id" varchar(36) NOT NULL, | |
1164 | + "ip" varchar(20) NOT NULL, | |
1165 | + "port" varchar(20) NOT NULL, | |
1166 | + "ssh_name" varchar(50) NOT NULL, | |
1167 | + "ssh_password" varchar(50) NOT NULL, | |
1168 | + "verify_method" varchar(200) NOT NULL, | |
1169 | + "private_key" varchar(200) NOT NULL, | |
1170 | + "tenant_id" varchar(36), | |
1171 | + "create_time" timestamp(6), | |
1172 | + "creator" varchar(36) NULL, | |
1173 | + "updater" varchar(36) NULL, | |
1174 | + "update_time" timestamp(6) | |
1175 | +); | |
1176 | + | |
1177 | +CREATE TABLE IF NOT EXISTS qg_db_connect_ssl ( | |
1178 | + "id" varchar(36) PRIMARY KEY, | |
1179 | + "connect_id" varchar(36) NOT NULL, | |
1180 | + "ca_cert" varchar(50) NOT NULL, | |
1181 | + "verify_ca_cert" bool NOT NULL DEFAULT FALSE, | |
1182 | + "client_key" varchar(50) NOT NULL, | |
1183 | + "client_cert" varchar(50) NOT NULL, | |
1184 | + "tenant_id" varchar(36), | |
1185 | + "create_time" timestamp(6), | |
1186 | + "creator" varchar(36) NULL, | |
1187 | + "updater" varchar(36) NULL, | |
1188 | + "update_time" timestamp(6) | |
1136 | 1189 | ); |
\ No newline at end of file | ... | ... |
application/src/main/java/org/thingsboard/server/controller/yunteng/TkDbConnectController.java
0 → 100644
1 | +package org.thingsboard.server.controller.yunteng; | |
2 | + | |
3 | +import io.swagger.annotations.Api; | |
4 | +import io.swagger.annotations.ApiOperation; | |
5 | +import lombok.RequiredArgsConstructor; | |
6 | +import lombok.extern.slf4j.Slf4j; | |
7 | +import org.apache.commons.lang3.StringUtils; | |
8 | +import org.springframework.http.ResponseEntity; | |
9 | +import org.springframework.security.access.prepost.PreAuthorize; | |
10 | +import org.springframework.web.bind.annotation.*; | |
11 | +import org.thingsboard.server.common.data.exception.ThingsboardException; | |
12 | +import org.thingsboard.server.common.data.yunteng.dto.TkDbConnectDTO; | |
13 | +import org.thingsboard.server.common.data.yunteng.enums.DbConnectTypeEnum; | |
14 | +import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; | |
15 | +import org.thingsboard.server.controller.BaseController; | |
16 | +import org.thingsboard.server.dao.yunteng.service.TkDbConnectService; | |
17 | +import org.thingsboard.server.queue.util.TbCoreComponent; | |
18 | + | |
19 | +import java.util.HashMap; | |
20 | +import java.util.Map; | |
21 | + | |
22 | +import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant.PAGE; | |
23 | +import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant.PAGE_SIZE; | |
24 | + | |
25 | + | |
26 | +@RestController | |
27 | +@TbCoreComponent | |
28 | +@RequiredArgsConstructor | |
29 | +@RequestMapping("api/yt/dbConnect") | |
30 | +@Api(tags = {"数据库链接信息"}) | |
31 | +@Slf4j | |
32 | +public class TkDbConnectController extends BaseController { | |
33 | + private final TkDbConnectService tkDbConnectService; | |
34 | + | |
35 | + @GetMapping(params = {PAGE_SIZE, PAGE}) | |
36 | + @ApiOperation("分页查询") | |
37 | + @PreAuthorize("hasAnyAuthority('TENANT_ADMIN','CUSTOMER_USER')") | |
38 | + public TkPageData<TkDbConnectDTO> page( | |
39 | + @RequestParam(PAGE_SIZE) int pageSize, | |
40 | + @RequestParam(PAGE) int page, | |
41 | + @RequestParam(value = "name", required = false) String name, | |
42 | + @RequestParam(value = "type", required = false) DbConnectTypeEnum type | |
43 | + ) throws ThingsboardException { | |
44 | + Map<String, Object> queryMap = new HashMap<>(); | |
45 | + queryMap.put(PAGE_SIZE, pageSize); | |
46 | + queryMap.put(PAGE, page); | |
47 | + if (StringUtils.isNotBlank(name)) { | |
48 | + queryMap.put("name", name); | |
49 | + } | |
50 | + | |
51 | + if (type != null) { | |
52 | + queryMap.put("type", type); | |
53 | + } | |
54 | + | |
55 | + return tkDbConnectService.page(queryMap, getCurrentUser().getCurrentTenantId()); | |
56 | + } | |
57 | + | |
58 | + @PostMapping("/save") | |
59 | + @PreAuthorize("hasAnyAuthority('TENANT_ADMIN','CUSTOMER_USER')") | |
60 | + public ResponseEntity<TkDbConnectDTO> save(@RequestBody TkDbConnectDTO tkDbConnectDTO) throws ThingsboardException { | |
61 | + tkDbConnectDTO.setTenantId(getCurrentUser().getCurrentTenantId()); | |
62 | + TkDbConnectDTO dto = tkDbConnectService.save(tkDbConnectDTO); | |
63 | + return ResponseEntity.ok(dto); | |
64 | + } | |
65 | + | |
66 | + @GetMapping("/delete") | |
67 | + @PreAuthorize("hasAnyAuthority('TENANT_ADMIN','CUSTOMER_USER')") | |
68 | + public ResponseEntity<Boolean> delete(@RequestParam("id") String id) throws ThingsboardException { | |
69 | + return ResponseEntity.ok(tkDbConnectService.delete(id)); | |
70 | + } | |
71 | + | |
72 | + @GetMapping("/get") | |
73 | + @PreAuthorize("hasAnyAuthority('TENANT_ADMIN','CUSTOMER_USER')") | |
74 | + public ResponseEntity<TkDbConnectDTO> get(@RequestParam("id") String id) throws ThingsboardException { | |
75 | + return ResponseEntity.ok(tkDbConnectService.get(id)); | |
76 | + } | |
77 | +} | ... | ... |
common/data/src/main/java/org/thingsboard/server/common/data/yunteng/dto/TkDbConnectDTO.java
0 → 100644
1 | +package org.thingsboard.server.common.data.yunteng.dto; | |
2 | + | |
3 | +import io.swagger.annotations.ApiModelProperty; | |
4 | +import lombok.Data; | |
5 | +import lombok.EqualsAndHashCode; | |
6 | +import org.thingsboard.server.common.data.yunteng.enums.DbConnectTypeEnum; | |
7 | + | |
8 | +/** | |
9 | + * 数据库链接信息 | |
10 | + */ | |
11 | +@EqualsAndHashCode(callSuper = true) | |
12 | +@Data | |
13 | +public class TkDbConnectDTO extends TenantDTO { | |
14 | + | |
15 | + @ApiModelProperty("自定义数据库名称") | |
16 | + private String name; | |
17 | + | |
18 | + @ApiModelProperty("数据库类型") | |
19 | + private DbConnectTypeEnum type; | |
20 | + | |
21 | + @ApiModelProperty("主机ip") | |
22 | + private String ip; | |
23 | + | |
24 | + @ApiModelProperty("端口号") | |
25 | + private String port; | |
26 | + | |
27 | + @ApiModelProperty("数据库名称") | |
28 | + private String dbName; | |
29 | + | |
30 | + @ApiModelProperty("用户名") | |
31 | + private String userName; | |
32 | + | |
33 | + @ApiModelProperty("密码") | |
34 | + private String password; | |
35 | + | |
36 | + @ApiModelProperty("url") | |
37 | + private String url; | |
38 | + | |
39 | + @ApiModelProperty("是否启用ssh") | |
40 | + private boolean openSsh; | |
41 | + | |
42 | + @ApiModelProperty("是否启用ssl") | |
43 | + private boolean openSsl; | |
44 | + | |
45 | + @ApiModelProperty("最大活动链接数") | |
46 | + private int maxPoolSize; | |
47 | + | |
48 | + @ApiModelProperty("最小空闲连接数") | |
49 | + private int minIdle; | |
50 | + | |
51 | + @ApiModelProperty("链接校验语句") | |
52 | + private String connectTestQuery; | |
53 | + | |
54 | + @ApiModelProperty("最大等待时间(毫秒)") | |
55 | + private int connectTimeout; | |
56 | +} | ... | ... |
... | ... | @@ -695,6 +695,8 @@ public class ModelConstants { |
695 | 695 | public static final String TKINSPECTIONRECORD_TABLE_NAME= "qg_inspection_record"; // 巡检记录 |
696 | 696 | public static final String TKINSPECTIONDETAILS_TABLE_NAME= "qg_inspection_details"; // 巡检记录明细 |
697 | 697 | |
698 | + public static final String TKDBCONNECT_TABLE_NAME= "qg_db_connect"; // 数据库链接信息 | |
699 | + | |
698 | 700 | protected static final String[] NONE_AGGREGATION_COLUMNS = new String[]{LONG_VALUE_COLUMN, DOUBLE_VALUE_COLUMN, BOOLEAN_VALUE_COLUMN, STRING_VALUE_COLUMN, JSON_VALUE_COLUMN, KEY_COLUMN, TS_COLUMN}; |
699 | 701 | |
700 | 702 | protected static final String[] COUNT_AGGREGATION_COLUMNS = new String[]{count(LONG_VALUE_COLUMN), count(DOUBLE_VALUE_COLUMN), count(BOOLEAN_VALUE_COLUMN), count(STRING_VALUE_COLUMN), count(JSON_VALUE_COLUMN), max(TS_COLUMN)}; | ... | ... |
1 | +package org.thingsboard.server.dao.yunteng.entities; | |
2 | + | |
3 | +import com.baomidou.mybatisplus.annotation.TableName; | |
4 | +import lombok.Data; | |
5 | +import lombok.EqualsAndHashCode; | |
6 | +import org.thingsboard.server.common.data.yunteng.enums.DbConnectTypeEnum; | |
7 | +import org.thingsboard.server.dao.model.ModelConstants; | |
8 | + | |
9 | +/** | |
10 | + * 数据库链接信息 | |
11 | + */ | |
12 | +@Data | |
13 | +@EqualsAndHashCode(callSuper = true) | |
14 | +@TableName(value = ModelConstants.TKDBCONNECT_TABLE_NAME, autoResultMap = true) | |
15 | +public class TkDbConnectEntity extends TenantBaseEntity { | |
16 | + | |
17 | + private String name; | |
18 | + | |
19 | + private DbConnectTypeEnum type; | |
20 | + | |
21 | + private String ip; | |
22 | + | |
23 | + private String port; | |
24 | + | |
25 | + private String dbName; | |
26 | + | |
27 | + private String userName; | |
28 | + | |
29 | + private String password; | |
30 | + | |
31 | + private String url; | |
32 | + | |
33 | + private boolean openSsh; | |
34 | + | |
35 | + private boolean openSsl; | |
36 | + | |
37 | + private int maxPoolSize; | |
38 | + | |
39 | + private int minIdle; | |
40 | + | |
41 | + private String connectTestQuery; | |
42 | + | |
43 | + private int connectTimeout; | |
44 | +} | ... | ... |
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 com.baomidou.mybatisplus.core.metadata.IPage; | |
6 | +import lombok.RequiredArgsConstructor; | |
7 | +import lombok.extern.slf4j.Slf4j; | |
8 | +import org.apache.commons.lang3.StringUtils; | |
9 | +import org.springframework.stereotype.Service; | |
10 | +import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidationException; | |
11 | +import org.thingsboard.server.common.data.yunteng.dto.TkDbConnectDTO; | |
12 | +import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; | |
13 | +import org.thingsboard.server.dao.yunteng.entities.TkDbConnectEntity; | |
14 | +import org.thingsboard.server.dao.yunteng.mapper.TkDbConnectMapper; | |
15 | +import org.thingsboard.server.dao.yunteng.service.AbstractBaseService; | |
16 | +import org.thingsboard.server.dao.yunteng.service.TkDbConnectService; | |
17 | + | |
18 | +import java.util.Map; | |
19 | + | |
20 | +@Service | |
21 | +@RequiredArgsConstructor | |
22 | +@Slf4j | |
23 | +public class TkDbConnectServiceImpl extends AbstractBaseService<TkDbConnectMapper, TkDbConnectEntity> | |
24 | + implements TkDbConnectService { | |
25 | + | |
26 | + @Override | |
27 | + public TkPageData<TkDbConnectDTO> page(Map<String, Object> queryMap, String tenantId) { | |
28 | + QueryWrapper<TkDbConnectEntity> wrapper = new QueryWrapper<>(); | |
29 | + LambdaQueryWrapper<TkDbConnectEntity> lambda = wrapper.lambda(); | |
30 | + lambda.eq(TkDbConnectEntity::getTenantId, tenantId); | |
31 | + if (queryMap != null && queryMap.get("name") != null) { | |
32 | + lambda.like(TkDbConnectEntity::getName, queryMap.get("name").toString()); | |
33 | + } | |
34 | + | |
35 | + if (queryMap != null && queryMap.get("type") != null) { | |
36 | + lambda.eq(TkDbConnectEntity::getType, queryMap.get("type").toString()); | |
37 | + } | |
38 | + | |
39 | + IPage<TkDbConnectEntity> page = baseMapper.selectPage(getPage(queryMap, "create_time", false), | |
40 | + wrapper); | |
41 | + | |
42 | + return getPageData(page, TkDbConnectDTO.class); | |
43 | + } | |
44 | + | |
45 | + @Override | |
46 | + public TkDbConnectDTO save(TkDbConnectDTO tkDbConnectDTO) { | |
47 | + checkDto(tkDbConnectDTO); | |
48 | + TkDbConnectEntity entity = new TkDbConnectEntity(); | |
49 | + if (StringUtils.isBlank(tkDbConnectDTO.getId())) { | |
50 | + tkDbConnectDTO.copyToEntity(entity); | |
51 | + baseMapper.insert(entity); | |
52 | + } else { | |
53 | + LambdaQueryWrapper<TkDbConnectEntity> filter = new QueryWrapper<TkDbConnectEntity>().lambda() | |
54 | + .eq(TkDbConnectEntity::getId, tkDbConnectDTO.getId()); | |
55 | + entity = tkDbConnectDTO.getEntity(TkDbConnectEntity.class); | |
56 | + baseMapper.update(entity, filter); | |
57 | + } | |
58 | + | |
59 | + entity.copyToDTO(tkDbConnectDTO); | |
60 | + return tkDbConnectDTO; | |
61 | + } | |
62 | + | |
63 | + private void checkDto(TkDbConnectDTO dto) { | |
64 | + if (StringUtils.isBlank(dto.getTenantId())) { | |
65 | + throw new TkDataValidationException("租户id为空!"); | |
66 | + } | |
67 | + } | |
68 | + | |
69 | + @Override | |
70 | + public boolean delete(String id) { | |
71 | + int count = baseMapper.deleteById(id); | |
72 | + return count > 0; | |
73 | + } | |
74 | + | |
75 | + @Override | |
76 | + public TkDbConnectDTO get(String id) { | |
77 | + if (StringUtils.isBlank(id)) { | |
78 | + return new TkDbConnectDTO(); | |
79 | + } | |
80 | + | |
81 | + TkDbConnectEntity entity = baseMapper.selectById(id); | |
82 | + TkDbConnectDTO tkDbConnectDTO = new TkDbConnectDTO(); | |
83 | + entity.copyToDTO(tkDbConnectDTO); | |
84 | + return tkDbConnectDTO; | |
85 | + } | |
86 | +} | ... | ... |
1 | +package org.thingsboard.server.dao.yunteng.mapper; | |
2 | + | |
3 | +import com.baomidou.mybatisplus.core.mapper.BaseMapper; | |
4 | +import org.apache.ibatis.annotations.Mapper; | |
5 | +import org.thingsboard.server.dao.yunteng.entities.TkDbConnectEntity; | |
6 | + | |
7 | +@Mapper | |
8 | +public interface TkDbConnectMapper extends BaseMapper<TkDbConnectEntity> { | |
9 | +} | ... | ... |
1 | +package org.thingsboard.server.dao.yunteng.service; | |
2 | + | |
3 | +import org.thingsboard.server.common.data.yunteng.dto.TkDbConnectDTO; | |
4 | +import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; | |
5 | +import org.thingsboard.server.dao.yunteng.entities.TkDbConnectEntity; | |
6 | + | |
7 | +import java.util.Map; | |
8 | + | |
9 | +public interface TkDbConnectService extends BaseService<TkDbConnectEntity> { | |
10 | + | |
11 | + TkPageData<TkDbConnectDTO> page(Map<String, Object> queryMap, String tenantId); | |
12 | + | |
13 | + TkDbConnectDTO save(TkDbConnectDTO tkDbConnectDTO); | |
14 | + | |
15 | + boolean delete(String id); | |
16 | + | |
17 | + TkDbConnectDTO get(String id); | |
18 | +} | ... | ... |