| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253 |
- using Vo;
- using Microsoft.AspNetCore.Mvc;
- using Model;
- using Services;
- using Model.Base;
- using Vo.Admin;
- using Mapster;
- using Infrastructure;
- using Dto.Admin;
- using Util;
- using Tasks;
- namespace Controllers.Admin
- {
- /// <summary>
- /// DatabaseField)Controller
- /// </summary>
- // [Route("${Router}$")]
- // [ApiExplorerSettings(GroupName = "DatabaseField")]
- public class DatabaseFieldController : BaseController
- {
- private readonly IDatabaseFieldService _DatabaseFieldService;
- private readonly IDatabaseFieldTabsService _DatabaseFieldTabsService;
- private readonly IDatabaseTableService _DatabaseTableService;
- private readonly IDatabaseInfoService _DatabaseInfoService;
- public DatabaseFieldController(IDatabaseFieldService DatabaseFieldService, IDatabaseFieldTabsService DatabaseFieldTabsService, IDatabaseTableService DatabaseTableService, IDatabaseInfoService DatabaseInfoService)
- {
- _DatabaseFieldService = DatabaseFieldService;
- _DatabaseFieldTabsService = DatabaseFieldTabsService;
- _DatabaseTableService = DatabaseTableService;
- _DatabaseInfoService = DatabaseInfoService;
- }
- /// <param name="page">分页参数</param>
- /// <summary>
- /// 列表
- /// </summary>
- /// <param name="page">分页对象</param>
- /// <param name="param">参数请求体</param>
- /// <returns>列表</returns>
- [HttpGet]
- [Route("/v1/omega_source/DatabaseField/getDatabaseFieldList")]
- public IActionResult getDatabaseFieldList([FromQuery] PagerInfo page, [FromQuery] DatabaseField param)
- {
- var response = _DatabaseFieldService.getDatabaseFieldList(page, param);
- return SUCCESS(response);
- }
- /// <summary>
- /// 详情
- /// </summary>
- /// <param name="param">参数请求体</param>
- /// <returns>详情</returns>
- [HttpGet]
- [Route("/v1/omega_source/DatabaseField/getDatabaseFieldQuery")]
- public IActionResult getDatabaseFieldQuery([FromQuery] DatabaseField param)
- {
- var response = _DatabaseFieldService.GetFirst(m => m.id == param.id) ?? new DatabaseField();
- return SUCCESS(response);
- }
- /// <summary>
- /// 添加
- /// </summary>
- /// <param name="param">参数请求体</param>
- /// <returns>添加</returns>
- [HttpPost]
- [Route("/v1/omega_source/DatabaseField/addDatabaseField")]
- public IActionResult addDatabaseField([FromBody] AddDatabaseFieldDto param)
- {
- var modal = param.Adapt<DatabaseField>().ToCreate(HttpContext);
- modal.tabId = _DatabaseFieldTabsService.AddDatabaseFieldTabs(param.tabId, param.tableId);
- if((modal.fieldType == "int" || modal.fieldType == "bigint" || modal.fieldType == "decimal" || modal.fieldType == "numeric" || modal.fieldType == "bit") && modal.autoIncrement == false)
- {
- modal.fieldDefaultValue = "0";
- }
- if(modal.databaseId == 0)
- {
- var table = _DatabaseTableService.GetFirst(m => m.id == param.tableId) ?? new DatabaseTable();
- modal.databaseId = table.databaseId;
- }
- var response = _DatabaseFieldService.InsertReturnIdentity(modal);
- return SUCCESS(response);
- }
- /// <summary>
- /// 修改
- /// </summary>
- /// <param name="param">参数请求体</param>
- /// <returns>修改</returns>
- [HttpPut]
- [Route("/v1/omega_source/DatabaseField/updateDatabaseField")]
- public IActionResult updateDatabaseField([FromBody] AddDatabaseFieldDto param)
- {
- var modal = param.Adapt<DatabaseField>().ToUpdate(HttpContext);
- modal.tabId = _DatabaseFieldTabsService.AddDatabaseFieldTabs(param.tabId, param.tableId);
- if((modal.fieldType == "int" || modal.fieldType == "bigint" || modal.fieldType == "decimal" || modal.fieldType == "numeric" || modal.fieldType == "bit") && string.IsNullOrEmpty(modal.fieldDefaultValue) && modal.autoIncrement == false)
- {
- modal.fieldDefaultValue = "0";
- }
- var response = _DatabaseFieldService.Update(modal, true);
- return SUCCESS(response);
- }
- /// <summary>
- /// 删除
- /// </summary>
- /// <param name="id">ID</param>
- /// <returns>删除</returns>
- [HttpDelete]
- [Route("/v1/omega_source/DatabaseField/deleteDatabaseField/{id}")]
- public IActionResult deleteDatabaseField(int id)
- {
- var response = _DatabaseFieldService.Delete(id);
- return SUCCESS(response);
- }
- /// <summary>
- /// 批量删除
- /// </summary>
- /// <param name="param">参数请求体</param>
- /// <returns>批量删除</returns>
- [HttpPut]
- [Route("/v1/omega_source/DatabaseField/batchDeleteDatabaseField")]
- public IActionResult batchDeleteDatabaseField([FromBody] BatchDeleteApiInfoDto param)
- {
- foreach(var id in param.idList)
- {
- _DatabaseFieldService.Delete(id);
- }
- return SUCCESS("ok");
- }
- /// <summary>
- /// 修改字段属性
- /// </summary>
- /// <param name="param">参数请求体</param>
- /// <returns>修改字段属性</returns>
- [HttpPut]
- [Route("/v1/omega_source/DatabaseField/updateDatabaseFieldAttr")]
- public IActionResult updateDatabaseFieldAttr([FromBody] List<UpdateDatabaseFieldAttrDto> param)
- {
- foreach(UpdateDatabaseFieldAttrDto sub in param)
- {
- var modal = sub.Adapt<DatabaseField>().ToUpdate(HttpContext);
- var item = _DatabaseFieldService.GetFirst(m => m.id == sub.id);
- if(item != null)
- {
- item.showList = sub.showList;
- item.showEdit = sub.showEdit;
- item.showQuery = sub.showQuery;
- item.exportFlag = sub.exportFlag;
- item.importFlag = sub.importFlag;
- _DatabaseFieldService.Update(item);
- }
- }
- return SUCCESS("ok");
- }
- /// <summary>
- /// 克隆字段
- /// </summary>
- /// <param name="param">参数请求体</param>
- /// <returns>克隆字段</returns>
- [HttpPost]
- [Route("/v1/omega_source/DatabaseField/copyDatabaseField")]
- public IActionResult copyDatabaseField([FromBody] CopyDatabaseFieldDto param)
- {
- var targetTable = _DatabaseTableService.GetFirst(m => m.id == param.targetTableId) ?? new DatabaseTable();
- _DatabaseFieldService.copyDatabaseField(param, targetTable);
- return SUCCESS("ok");
- }
- /// <summary>
- /// 生成
- /// </summary>
- /// <param name="param">参数请求体</param>
- /// <returns>生成</returns>
- [HttpPut]
- [Route("/v1/omega_source/DatabaseField/makeDatabaseField")]
- public IActionResult makeDatabaseField([FromBody] MakeDatabaseFieldDto param)
- {
- if(param.id.Length == 0)
- {
- return ToResponse(ResultCode.FAIL, "字段ID不能为空");
- }
- var fieldId = param.id[0];
- var databaseField = _DatabaseFieldService.GetFirst(m => m.id == fieldId) ?? new DatabaseField();
- var databaseInfo = _DatabaseInfoService.GetFirst(m => m.id == databaseField.databaseId) ?? new DatabaseInfo();
- TokenModel loginUser = JwtUtil.GetLoginUser(HttpContext);
- string res = _DatabaseFieldService.makeDatabaseField(param, databaseInfo, new DatabaseTable(), loginUser);
- string id = MakeHelper.Instance.DoQueue(res);
- Dictionary<string, object> dic = new Dictionary<string, object>();
- dic.Add("makeObjectId", id);
- return SUCCESS(dic);
- }
- /// <summary>
- /// 字段类型列表
- /// </summary>
- /// <param name="param">参数请求体</param>
- /// <returns>字段类型列表</returns>
- [HttpGet]
- [Route("/v1/omega_source/DatabaseField/getDatabaseFieldTypeList")]
- public IActionResult getDatabaseFieldTypeList([FromQuery] GetDatabaseFieldTypeListDto param)
- {
- var dbInfo = _DatabaseInfoService.GetFirst(m => m.id == param.databaseId) ?? new DatabaseInfo();
- List<string> fieldTypeList = new();
- if (dbInfo.dbType == "mysql")
- {
- fieldTypeList.Add("varchar");
- fieldTypeList.Add("char");
- fieldTypeList.Add("int");
- fieldTypeList.Add("bigint");
- fieldTypeList.Add("numeric");
- fieldTypeList.Add("datetime");
- fieldTypeList.Add("bit");
- fieldTypeList.Add("longtext");
- fieldTypeList.Add("mediumtext");
- fieldTypeList.Add("json");
- fieldTypeList.Add("enum");
- }
- else if(dbInfo.dbType == "pgsql")
- {
- fieldTypeList.Add("varchar");
- fieldTypeList.Add("char");
- fieldTypeList.Add("int4");
- fieldTypeList.Add("int8");
- fieldTypeList.Add("numeric");
- fieldTypeList.Add("timestamptz");
- fieldTypeList.Add("bit");
- fieldTypeList.Add("text");
- fieldTypeList.Add("jsonb");
- }
- return SUCCESS(fieldTypeList);
- }
- }
- }
|