diff --git a/test-test/src/main/java/com/test/test/controller/TestDatasourceController.java b/test-test/src/main/java/com/test/test/controller/TestDatasourceController.java new file mode 100644 index 0000000..0eb56cc --- /dev/null +++ b/test-test/src/main/java/com/test/test/controller/TestDatasourceController.java @@ -0,0 +1,71 @@ +package com.test.test.controller; + +import java.util.List; + +import com.test.test.domain.qo.IDQO; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.test.common.annotation.Log; +import com.test.common.core.controller.BaseController; +import com.test.common.core.domain.AjaxResult; +import com.test.common.enums.BusinessType; +import com.test.test.domain.TestDatasource; +import com.test.test.service.ITestDatasourceService; + +/** + * 数据源Controller + */ +@RestController +@RequestMapping("/test/datasource") +public class TestDatasourceController extends BaseController { + @Resource + private ITestDatasourceService testDatasourceService; + + /** + * 查询数据源列表 + */ + @GetMapping("/list") + public AjaxResult list() { + List list = testDatasourceService.selectTestDatasourceList(); + return success(list); + } + + /** + * 获取数据源详细信息 + */ + @PostMapping(value = "/detail") + public AjaxResult getInfo(@RequestBody IDQO qo) { + return success(testDatasourceService.selectTestDatasourceById(qo.getId())); + } + + /** + * 新增数据源 + */ + @Log(title = "数据源", businessType = BusinessType.INSERT) + @PostMapping("/add") + public AjaxResult add(@RequestBody TestDatasource testDatasource) { + return success(testDatasourceService.insertTestDatasource(testDatasource)); + } + + /** + * 修改数据源 + */ + @Log(title = "数据源", businessType = BusinessType.UPDATE) + @PostMapping("/edit") + public AjaxResult edit(@RequestBody TestDatasource testDatasource) { + return toAjax(testDatasourceService.updateTestDatasource(testDatasource)); + } + + /** + * 删除数据源 + */ + @Log(title = "数据源", businessType = BusinessType.DELETE) + @PostMapping("/del") + public AjaxResult remove(@RequestBody IDQO qo) { + return toAjax(testDatasourceService.deleteTestDatasourceById(qo.getId())); + } +} diff --git a/test-test/src/main/java/com/test/test/controller/TestHttpController.java b/test-test/src/main/java/com/test/test/controller/TestHttpController.java index a9eade4..eb28457 100644 --- a/test-test/src/main/java/com/test/test/controller/TestHttpController.java +++ b/test-test/src/main/java/com/test/test/controller/TestHttpController.java @@ -15,7 +15,6 @@ import com.test.common.core.domain.AjaxResult; import com.test.common.enums.BusinessType; import com.test.test.domain.TestHttp; import com.test.test.service.ITestHttpService; -import com.test.common.core.page.TableDataInfo; /** * http服务Controller diff --git a/test-test/src/main/java/com/test/test/domain/TestDatasource.java b/test-test/src/main/java/com/test/test/domain/TestDatasource.java new file mode 100644 index 0000000..7c1eb1b --- /dev/null +++ b/test-test/src/main/java/com/test/test/domain/TestDatasource.java @@ -0,0 +1,86 @@ +package com.test.test.domain; + +import com.test.common.core.domain.BaseEntity; +import com.test.common.annotation.Excel; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + +/** + * 数据源对象 test_datasource + */ +@Getter +@Setter +@ToString +public class TestDatasource extends BaseEntity { + + /** + * 数据源id + */ + private Long id; + + /** + * 数据源名称 + */ + @Excel(name = "数据源名称") + private String name; + + /** + * 数据源类型(Mysql:1,redis:2,Oracle:3,MongoDB:4,SQL Server:5,PostgreSQL:6) + */ + @Excel(name = "数据源类型(Mysql:1,redis:2,Oracle:3,MongoDB:4,SQL Server:5,PostgreSQL:6)") + private Long type; + + /** + * 主机 + */ + @Excel(name = "主机") + private String host; + + /** + * 端口 + */ + @Excel(name = "端口") + private String port; + + /** + * 用户名 + */ + @Excel(name = "用户名") + private String username; + + /** + * 密码 + */ + @Excel(name = "密码") + private String password; + + /** + * 库名(Oracle服务名) + */ + @Excel(name = "库名", readConverterExp = "O=racle服务名") + private String dbName; + + /** + * mongo认证库名 + */ + @Excel(name = "mongo认证库名") + private String authDb; + + /** + * redis集群模式 + */ + @Excel(name = "redis集群模式") + private Integer cluster; + + /** + * redis哨兵模式下输入MasterName + */ + @Excel(name = "redis哨兵模式下输入MasterName") + private String masterName; + + /** + * 删除标志(0代表存在 2代表删除) + */ + private String delFlag; +} diff --git a/test-test/src/main/java/com/test/test/mapper/TestDatasourceMapper.java b/test-test/src/main/java/com/test/test/mapper/TestDatasourceMapper.java new file mode 100644 index 0000000..3edf8da --- /dev/null +++ b/test-test/src/main/java/com/test/test/mapper/TestDatasourceMapper.java @@ -0,0 +1,40 @@ +package com.test.test.mapper; + +import java.util.List; + +import com.test.test.domain.TestDatasource; + +/** + * 数据源Mapper接口 + */ +public interface TestDatasourceMapper { + /** + * 查询数据源 + */ + TestDatasource selectTestDatasourceById(Long id); + + /** + * 查询数据源列表 + */ + List selectTestDatasourceList(); + + /** + * 新增数据源 + */ + int insertTestDatasource(TestDatasource testDatasource); + + /** + * 修改数据源 + */ + int updateTestDatasource(TestDatasource testDatasource); + + /** + * 删除数据源 + */ + int deleteTestDatasourceById(Long id); + + /** + * 批量删除数据源 + */ + int deleteTestDatasourceByIds(Long[] ids); +} diff --git a/test-test/src/main/java/com/test/test/service/ITestDatasourceService.java b/test-test/src/main/java/com/test/test/service/ITestDatasourceService.java new file mode 100644 index 0000000..17a31c9 --- /dev/null +++ b/test-test/src/main/java/com/test/test/service/ITestDatasourceService.java @@ -0,0 +1,40 @@ +package com.test.test.service; + +import java.util.List; + +import com.test.test.domain.TestDatasource; + +/** + * 数据源Service接口 + */ +public interface ITestDatasourceService { + /** + * 查询数据源 + */ + public TestDatasource selectTestDatasourceById(Long id); + + /** + * 查询数据源列表 + */ + List selectTestDatasourceList(); + + /** + * 新增数据源 + */ + TestDatasource insertTestDatasource(TestDatasource testDatasource); + + /** + * 修改数据源 + */ + int updateTestDatasource(TestDatasource testDatasource); + + /** + * 批量删除数据源 + */ + int deleteTestDatasourceByIds(Long[] ids); + + /** + * 删除数据源信息 + */ + int deleteTestDatasourceById(Long id); +} diff --git a/test-test/src/main/java/com/test/test/service/impl/TestDatasourceServiceImpl.java b/test-test/src/main/java/com/test/test/service/impl/TestDatasourceServiceImpl.java new file mode 100644 index 0000000..38fb7e7 --- /dev/null +++ b/test-test/src/main/java/com/test/test/service/impl/TestDatasourceServiceImpl.java @@ -0,0 +1,73 @@ +package com.test.test.service.impl; + +import java.util.List; + +import com.test.common.utils.DateUtils; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import com.test.test.mapper.TestDatasourceMapper; +import com.test.test.domain.TestDatasource; +import com.test.test.service.ITestDatasourceService; + +/** + * 数据源Service业务层处理 + */ +@Service +public class TestDatasourceServiceImpl implements ITestDatasourceService { + @Resource + private TestDatasourceMapper testDatasourceMapper; + + /** + * 查询数据源 + * + * @param id 数据源主键 + * @return 数据源 + */ + @Override + public TestDatasource selectTestDatasourceById(Long id) { + return testDatasourceMapper.selectTestDatasourceById(id); + } + + /** + * 查询数据源列表 + */ + @Override + public List selectTestDatasourceList() { + return testDatasourceMapper.selectTestDatasourceList(); + } + + /** + * 新增数据源 + */ + @Override + public TestDatasource insertTestDatasource(TestDatasource testDatasource) { + testDatasource.setCreateTime(DateUtils.getNowDate()); + testDatasourceMapper.insertTestDatasource(testDatasource); + return testDatasource; + } + + /** + * 修改数据源 + */ + @Override + public int updateTestDatasource(TestDatasource testDatasource) { + testDatasource.setUpdateTime(DateUtils.getNowDate()); + return testDatasourceMapper.updateTestDatasource(testDatasource); + } + + /** + * 批量删除数据源 + */ + @Override + public int deleteTestDatasourceByIds(Long[] ids) { + return testDatasourceMapper.deleteTestDatasourceByIds(ids); + } + + /** + * 删除数据源信息 + */ + @Override + public int deleteTestDatasourceById(Long id) { + return testDatasourceMapper.deleteTestDatasourceById(id); + } +} diff --git a/test-test/src/main/resources/mapper/test/TestDatasourceMapper.xml b/test-test/src/main/resources/mapper/test/TestDatasourceMapper.xml new file mode 100644 index 0000000..e009d8d --- /dev/null +++ b/test-test/src/main/resources/mapper/test/TestDatasourceMapper.xml @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + select id, name, type, host, port, username, password, db_name, auth_db, cluster, master_name, del_flag, create_by, create_time, update_by, update_time from test_datasource + + + + + + + + insert into test_datasource + + name, + type, + host, + port, + username, + password, + db_name, + auth_db, + cluster, + master_name, + del_flag, + create_by, + create_time, + update_by, + update_time, + + + #{name}, + #{type}, + #{host}, + #{port}, + #{username}, + #{password}, + #{dbName}, + #{authDb}, + #{cluster}, + #{masterName}, + #{delFlag}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update test_datasource + + name = #{name}, + type = #{type}, + host = #{host}, + port = #{port}, + username = #{username}, + password = #{password}, + db_name = #{dbName}, + auth_db = #{authDb}, + cluster = #{cluster}, + master_name = #{masterName}, + del_flag = #{delFlag}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where id = #{id} + + + + delete from test_datasource where id = #{id} + + + + delete from test_datasource where id in + + #{id} + + + \ No newline at end of file diff --git a/test-ui/src/api/test/database.js b/test-ui/src/api/test/database.js new file mode 100644 index 0000000..696e32d --- /dev/null +++ b/test-ui/src/api/test/database.js @@ -0,0 +1,45 @@ +import request from '@/utils/request' + +// 查询数据源列表 +export function listDatasource() { + return request({ + url: '/test/datasource/list', + method: 'get' + }) +} + +// 查询数据源详细 +export function getDatasource(id) { + return request({ + url: '/test/datasource/detail', + method: 'post', + data: {id} + }) +} + +// 新增数据源 +export function addDatasource(data) { + return request({ + url: '/test/datasource/add', + method: 'post', + data: data + }) +} + +// 修改数据源 +export function updateDatasource(data) { + return request({ + url: '/test/datasource/edit', + method: 'post', + data: data + }) +} + +// 删除数据源 +export function delDatasource(id) { + return request({ + url: '/test/datasource/del', + method: 'post', + data: {id} + }) +} diff --git a/test-ui/src/assets/icons/svg/1.svg b/test-ui/src/assets/icons/svg/1.svg new file mode 100644 index 0000000..f0d7dc1 --- /dev/null +++ b/test-ui/src/assets/icons/svg/1.svg @@ -0,0 +1,50 @@ + + + + diff --git a/test-ui/src/assets/icons/svg/2.svg b/test-ui/src/assets/icons/svg/2.svg new file mode 100644 index 0000000..f639310 --- /dev/null +++ b/test-ui/src/assets/icons/svg/2.svg @@ -0,0 +1,49 @@ + + + + diff --git a/test-ui/src/assets/icons/svg/3.svg b/test-ui/src/assets/icons/svg/3.svg new file mode 100644 index 0000000..9adf838 --- /dev/null +++ b/test-ui/src/assets/icons/svg/3.svg @@ -0,0 +1,23 @@ + + + + diff --git a/test-ui/src/assets/icons/svg/4.svg b/test-ui/src/assets/icons/svg/4.svg new file mode 100644 index 0000000..d3226ad --- /dev/null +++ b/test-ui/src/assets/icons/svg/4.svg @@ -0,0 +1,29 @@ + + + + diff --git a/test-ui/src/assets/icons/svg/5.svg b/test-ui/src/assets/icons/svg/5.svg new file mode 100644 index 0000000..85a4d5e --- /dev/null +++ b/test-ui/src/assets/icons/svg/5.svg @@ -0,0 +1,12 @@ + + + + diff --git a/test-ui/src/assets/icons/svg/6.svg b/test-ui/src/assets/icons/svg/6.svg new file mode 100644 index 0000000..a4dbd7d --- /dev/null +++ b/test-ui/src/assets/icons/svg/6.svg @@ -0,0 +1,17 @@ + + + + diff --git a/test-ui/src/views/test/resource/database.vue b/test-ui/src/views/test/resource/database.vue index c6a1e2f..82197dc 100644 --- a/test-ui/src/views/test/resource/database.vue +++ b/test-ui/src/views/test/resource/database.vue @@ -1,69 +1,221 @@ - diff --git a/test-ui/src/views/test/resource/http.vue b/test-ui/src/views/test/resource/http.vue index db0e195..498ec0b 100644 --- a/test-ui/src/views/test/resource/http.vue +++ b/test-ui/src/views/test/resource/http.vue @@ -99,17 +99,14 @@ export default { }, created() { this.getData(); - this.$nextTick(() => { - - }) }, methods: { - getData(selectedKey) { + getData(key) { const loading = this.setLoading(); listHttp().then(res => { this.list = res.data; - if (selectedKey) { - this.handleListClick({id: selectedKey}) + if (key) { + this.handleListClick({id: key}) } else if (this.list && this.list.length > 0) { this.handleListClick({id: this.list[0].id}) }