Showing
10 changed files
with
465 additions
and
0 deletions
@@ -386,3 +386,115 @@ CREATE TABLE "public"."qg_preserve_detail_status" ( | @@ -386,3 +386,115 @@ CREATE TABLE "public"."qg_preserve_detail_status" ( | ||
386 | ); | 386 | ); |
387 | 387 | ||
388 | COMMENT ON TABLE "public"."qg_preserve_detail_status" IS '保养记录明细状态'; | 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,4 +1133,57 @@ CREATE TABLE IF NOT EXISTS qg_preserve_detail_status ( | ||
1133 | "updater" varchar(36), | 1133 | "updater" varchar(36), |
1134 | "update_time" timestamp(6), | 1134 | "update_time" timestamp(6), |
1135 | CONSTRAINT "qg_preserve_detail_status_pkey" PRIMARY KEY ("id") | 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 | ); |
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,6 +695,8 @@ public class ModelConstants { | ||
695 | public static final String TKINSPECTIONRECORD_TABLE_NAME= "qg_inspection_record"; // 巡检记录 | 695 | public static final String TKINSPECTIONRECORD_TABLE_NAME= "qg_inspection_record"; // 巡检记录 |
696 | public static final String TKINSPECTIONDETAILS_TABLE_NAME= "qg_inspection_details"; // 巡检记录明细 | 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 | 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}; | 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 | 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)}; | 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 | +} |