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<DdlTableBO> getTableColumnByTableName(String tableName){
|
return R.data(ddlService.getTableColumnByTableName(tableName));
|
}
|
|
/**
|
* 获取所有的表信息
|
* @return 表信息
|
*/
|
@GetMapping("/getAllTableInfo")
|
@ApiOperation(value = "获取所有的表信息")
|
@ApiOperationSupport(order = 4)
|
public R<List<DdlTableBO>> getAllTableInfo(){
|
return R.data(ddlService.getAllTableInfo());
|
}
|
|
/**
|
* 获取数据库和业务类型中的不同的地方
|
* @param ddlDTO 包含业务类型和链接类型的包装
|
* @return 不同的地方,每一个业务类型或者链接类型一条数据
|
*/
|
@PostMapping("/checkDifferentAndReflex")
|
@ApiOperation(value = "检查业务类型的数据与数据库中是否相同")
|
@ApiOperationSupport(order = 5)
|
public R<List<ModifyAttributeInfo>> checkDifferentAndReflex(@RequestBody BtmAndLinkTypeDdlDTO ddlDTO){
|
Func.requireNotNull(ddlDTO,"业务类型与链接对象传输对象不能为空");
|
return R.data(ddlService.checkDifferent(ddlDTO.getBtmTypeList(),ddlDTO.getLinkTypeList()));
|
}
|
}
|