From 97dc2cde0eb809f554a0704ad2657dec4aa783fd Mon Sep 17 00:00:00 2001 From: sunshine7058 <2564255161@qq.com> Date: Sat, 27 Apr 2024 19:26:14 +0800 Subject: [PATCH] =?UTF-8?q?fix():=E8=A1=A8=E6=9D=A1=E6=95=B0bug=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=EF=BC=8C=E5=AD=97=E5=85=B8=E8=A1=A8=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DataSourceController.java | 8 +++ .../source/controller/DictDataCpntroller.java | 36 +++++++++++ .../source/controller/DictTypeController.java | 46 ++++++++++++-- .../source/service/DataSourceService.java | 5 +- .../service/impl/DataSourceServiceImpl.java | 63 +++++++++++++++---- 5 files changed, 140 insertions(+), 18 deletions(-) diff --git a/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/controller/DataSourceController.java b/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/controller/DataSourceController.java index cc053b4..ebbd14c 100644 --- a/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/controller/DataSourceController.java +++ b/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/controller/DataSourceController.java @@ -124,6 +124,14 @@ public class DataSourceController extends BaseController { public Result testConnection(@RequestBody DataSource dataSource) { return Result.success(dataSourceService.testConnection(dataSource)); } + + /** + * 修改字段是否为字典 + */ + @PostMapping("/updTableData") + public Result updateTableData(@RequestBody TableData tableData){ + return Result.success(dataSourceService.updTableData(tableData)); + } /** * 同步数据 */ diff --git a/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/controller/DictDataCpntroller.java b/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/controller/DictDataCpntroller.java index 0a87bbb..6dc8b59 100644 --- a/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/controller/DictDataCpntroller.java +++ b/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/controller/DictDataCpntroller.java @@ -1,5 +1,13 @@ package com.muyu.data.source.controller; +import com.muyu.common.core.domain.Result; +import com.muyu.data.source.domain.DictData; +import com.muyu.data.source.service.DictDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +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; @@ -14,4 +22,32 @@ import org.springframework.web.bind.annotation.RestController; @RequestMapping("/dictData") public class DictDataCpntroller { + @RequestMapping("/dictData") + public class DictDataController { + + @Autowired + private DictDataService dictDataService; + + // 添加字典数据 + @PostMapping("addDictData") + public Result addDictData(@RequestBody DictData dictData) { + dictDataService.save(dictData); + return Result.success(); + } + + // 修改字典数据 + @PostMapping("editDictData") + public Result editDictData(@RequestBody DictData dictData) { + dictDataService.updateById(dictData); + return Result.success(); + } + + // 删除字典数据 + @GetMapping("/delDictData/{id}") + public Result delDictData(@PathVariable("id") Long id) { + dictDataService.removeById(id); + return Result.success(); + } + } + } diff --git a/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/controller/DictTypeController.java b/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/controller/DictTypeController.java index 2c6b112..deb5037 100644 --- a/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/controller/DictTypeController.java +++ b/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/controller/DictTypeController.java @@ -1,10 +1,18 @@ package com.muyu.data.source.controller; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.muyu.common.core.domain.Result; +import com.muyu.data.source.domain.DictData; +import com.muyu.data.source.domain.DictType; +import com.muyu.data.source.domain.resp.DictDataResp; +import com.muyu.data.source.service.DictDataService; import com.muyu.data.source.service.DictTypeService; +import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; +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; @@ -21,8 +29,38 @@ import org.springframework.web.bind.annotation.RestController; public class DictTypeController { @Autowired private DictTypeService dictTypeService; -@GetMapping("/getDictDataList/{id}") - public Result getDictDataList(@PathVariable("id") Long id){ - return Result.success(dictTypeService.getDictDataList(id)); -} + + + + + + @Autowired + private DictDataService dictDataService; + + // 查询字典类型数据 + @GetMapping("/getDictDataList/{id}") + public Result> getDictDataList(@PathVariable("id") Long id) { + List dictDataRespList = dictTypeService.getDictDataList(id); + return Result.success(dictDataRespList); + } + + // 添加字典类型 + @PostMapping("/addDictType") + public Result addDictType(@RequestBody DictType dictType) { + dictTypeService.save(dictType); + return Result.success(); + } + + // 删除字典类型 + @GetMapping("/delDictType/{id}") + public Result delDictType(@PathVariable("id") Long id) { + // 删除字典类型 + dictTypeService.removeById(id); + // 删除相对应的字典数据 + dictDataService.remove(new LambdaQueryWrapper<>(){{ + eq(DictData::getDictTypeId,id); + }}); + return Result.success(); + } } + diff --git a/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/service/DataSourceService.java b/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/service/DataSourceService.java index 27efaf6..99bb47e 100644 --- a/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/service/DataSourceService.java +++ b/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/service/DataSourceService.java @@ -1,5 +1,6 @@ package com.muyu.data.source.service; +import com.muyu.common.core.domain.Result; import com.muyu.data.source.domain.AssetDataSource; import com.muyu.data.source.domain.Children; import com.muyu.data.source.domain.TableData; @@ -26,7 +27,7 @@ public interface DataSourceService extends IService { Boolean testConnection(DataSource dataSource); - Boolean syncConnection(DataSource dataSource); + Result syncConnection(DataSource dataSource); List getAssetList(); @@ -41,4 +42,6 @@ public interface DataSourceService extends IService { List selectTableData(Long id); CountResp getTableDataCount(Long id); + + Result updTableData(TableData tableData); } diff --git a/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/service/impl/DataSourceServiceImpl.java b/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/service/impl/DataSourceServiceImpl.java index ad599b9..083bf1b 100644 --- a/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/service/impl/DataSourceServiceImpl.java +++ b/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/service/impl/DataSourceServiceImpl.java @@ -3,6 +3,7 @@ package com.muyu.data.source.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.common.core.domain.Result; import com.muyu.common.core.utils.ObjUtils; import com.muyu.data.source.domain.AssetDataSource; import com.muyu.data.source.domain.Children; @@ -149,17 +150,23 @@ public class DataSourceServiceImpl extends ServiceImpl(){{ + eq(AssetDataSource::getId, dataSource.getId()); + }}); + if (assetDataSourceOne==null){ + AssetDataSource assetDataSource=AssetDataSource.builder() + .id(Long.valueOf(Math.toIntExact(dataSource.getId()))) + .name(dataSource.getName()) + .systemName(dataSource.getSystemName()) + .databaseName(dataSource.getDatabaseName()) + .type("dataSoure") + .build(); + return Result.success(assetDataSourceService.save(assetDataSource)); + } + + + return Result.error("数据源已存在"); } @Override @@ -201,12 +208,11 @@ public class DataSourceServiceImpl extends ServiceImpl(){{ + eq(Children::getAssetId, assetDataSource.getId()); + }}); + try { + Class.forName(databaseType.getDriverManager()); + Connection connection = DriverManager.getConnection(jdbcUrl, dataSource.getUser(), dataSource.getPassword()); + Statement statement = connection.createStatement(); + childrenList.forEach(children -> { + String sql="select count(*) as tableNum from `" + dataSource.getDatabaseName() + "`." + children.getName(); + try { + ResultSet rs = statement.executeQuery(sql); + while (rs.next()){ + Long tableNum = rs.getLong("tableNum"); + children.setDataTotal(tableNum); + childrenService.updateById(children); + } + rs.close(); + } catch (SQLException e) { + throw new RuntimeException(e); + } + }); + } catch (ClassNotFoundException e) { + throw new RuntimeException(e); + } catch (SQLException e) { + throw new RuntimeException(e); + } } //返回表描述 @@ -342,6 +374,11 @@ public class DataSourceServiceImpl extends ServiceImpl