package com.vci.ubcs.ddl.controller; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.vci.ubcs.ddl.bo.DdlTableBO; import com.vci.ubcs.ddl.service.IDdlService; import com.vci.ubcs.omd.dto.BtmAndLinkTypeDdlDTO; import com.vci.ubcs.omd.dto.BtmTypeDTO; import com.vci.ubcs.omd.entity.ModifyAttributeInfo; import com.vci.ubcs.omd.vo.BtmTypeVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springblade.core.tenant.annotation.NonDS; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.List; import java.util.Objects; /** * Description: 数据库操作控制器 * * @author LiHang * @date 2023/4/25 */ @NonDS @RestController @AllArgsConstructor @RequestMapping("/ddl") @Api(value = "数据库操作", tags = "数据库操作") public class DdlController { @Autowired private IDdlService ddlService; /** * 新增或修改数据库表 * @param ddlDTO 业务类型+链接类型 * @return 执行结果 */ @PostMapping("/submit") @ApiOperationSupport(order = 1) @ApiOperation(value = "新增或修改", notes = "业务类型链接类型传输对象") public R submitBtmType(@RequestBody BtmAndLinkTypeDdlDTO ddlDTO) { return ddlService.submit(ddlDTO); } /** * 根据表名获取字段信息 * @param tableName 表名 * @return 执行结果 */ @GetMapping("/getTableColumnByTableName") @ApiOperation(value = "按表名获取表字段信息",notes = "传入表名") @ApiOperationSupport(order = 3) public R getTableColumnByTableName(String tableName){ return R.data(ddlService.getTableColumnByTableName(tableName)); } /** * 获取所有的表信息 * @return 表信息 */ @GetMapping("/getAllTableInfo") @ApiOperation(value = "获取所有的表信息") @ApiOperationSupport(order = 4) public R> getAllTableInfo(){ return R.data(ddlService.getAllTableInfo()); } /** * 获取数据库和业务类型中的不同的地方 * @param ddlDTO 包含业务类型和链接类型的包装 * @return 不同的地方,每一个业务类型或者链接类型一条数据 */ @PostMapping("/checkDifferentAndReflex") @ApiOperation(value = "检查业务类型的数据与数据库中是否相同") @ApiOperationSupport(order = 5) public R> checkDifferentAndReflex(@RequestBody BtmAndLinkTypeDdlDTO ddlDTO){ Func.requireNotNull(ddlDTO,"业务类型与链接对象传输对象不能为空"); return R.data(ddlService.checkDifferent(ddlDTO.getBtmTypeList(),ddlDTO.getLinkTypeList())); } }