using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using JNPF.Common.Configuration; using JNPF.Common.Core.Manager; using JNPF.DependencyInjection; using JNPF.DynamicApiController; using JNPF.Systems.Entitys.System; using JNPF.Systems.Interfaces.System; using Microsoft.AspNetCore.Mvc; using Org.BouncyCastle.Bcpg.OpenPgp; using Senparc.Weixin.MP.AdvancedAPIs.NewTmpl.NewTmplJson; using SqlSugar; using Tnb.BasicData.Entitys.Dto.DataModeing; namespace Tnb.BasicData { /// /// 数据库表操作服务 /// [ApiDescriptionSettings(Tag = "BasicData", Name = "Table", Order = 701)] [Route("api/basic/db/[controller]")] public class DataTableOperateService : IDynamicApiController, ITransient { private readonly DataBaseManager _dataBaseManager; private readonly ISqlSugarRepository _repository; private readonly IDbLinkService _dbLinkService; public DataTableOperateService( DataBaseManager dataBaseManager, ISqlSugarRepository repository, IDbLinkService dbLinkService ) { _dataBaseManager = dataBaseManager; _repository = repository; _dbLinkService = dbLinkService; } /// /// 清除表数据 /// /// /// [HttpPost("clean-data")] public async Task CleanTableData(CleanTableDataInput input) { var link = await _dbLinkService.GetInfo(input.LinkId); var sugarClient = _dataBaseManager.ChangeDataBase(link); return await sugarClient.Deleteable().AS(input.TableName).ExecuteCommandAsync(); } public async Task GenerateCode(CleanTableDataInput input) { var dir = Path.Combine(FileVariable.GenerateCodePath, "DbModel"); if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } var link = await _dbLinkService.GetInfo(input.LinkId); var sugarClient = _dataBaseManager.ChangeDataBase(link); var pos = input.TableName.IndexOf("_", StringComparison.Ordinal); //sugarClient.DynamicBuilder().CreateClass(); sugarClient.DbFirst.Where(input.TableName).CreateClassFile(FileVariable.GenerateCodePath, "DbModels"); return null; } } }