From 72f25fad6671f3a2b334a0edca916a6f92d761de Mon Sep 17 00:00:00 2001 From: "DEVICE8\\12494" Date: Tue, 4 Apr 2023 19:13:12 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E7=B3=BB=E7=BB=9F=E6=9D=83=E9=99=90?= =?UTF-8?q?=EF=BC=8C=E7=BB=84=E7=BB=87=E7=AE=A1=E7=90=86=EF=BC=8C=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E7=94=A8=E6=88=B7=E5=88=97=E8=A1=A8=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E7=BB=84=E7=BB=87=E5=88=86=E7=B1=BB=E5=AD=97=E6=AE=B5=202?= =?UTF-8?q?=E3=80=81=E6=96=B0=E5=A2=9E=E6=A0=B9=E6=8D=AE=E8=A1=A8=E5=90=8D?= =?UTF-8?q?=E6=B8=85=E9=99=A4=E8=A1=A8=E6=95=B0=E6=8D=AE=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=203=E3=80=81=E6=A0=B9=E6=8D=AE=E8=A1=A8=E5=90=8D=E5=8A=A8?= =?UTF-8?q?=E6=80=81=E5=BB=BA=E7=B1=BB=E5=8A=9F=E8=83=BD=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Dto/BasicDataTreeOutput.cs | 14 ++++ .../Dto/DataModeing/CleanTableDataInput.cs | 26 +++++++ .../Tnb.BasicData.Entitys.csproj | 6 +- Tnb.BasicData/DataTableOperateService.cs | 70 +++++++++++++++++++ system/Tnb.Systems/Permission/UsersService.cs | 16 +++-- 5 files changed, 120 insertions(+), 12 deletions(-) create mode 100644 Tnb.BasicData.Entitys/Dto/BasicDataTreeOutput.cs create mode 100644 Tnb.BasicData.Entitys/Dto/DataModeing/CleanTableDataInput.cs create mode 100644 Tnb.BasicData/DataTableOperateService.cs diff --git a/Tnb.BasicData.Entitys/Dto/BasicDataTreeOutput.cs b/Tnb.BasicData.Entitys/Dto/BasicDataTreeOutput.cs new file mode 100644 index 00000000..908054f8 --- /dev/null +++ b/Tnb.BasicData.Entitys/Dto/BasicDataTreeOutput.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using JNPF.Common.Security; + +namespace Tnb.BasicData.Entitys.Dto +{ + public class BasicDataTreeOutput : TreeModel + { + + } +} diff --git a/Tnb.BasicData.Entitys/Dto/DataModeing/CleanTableDataInput.cs b/Tnb.BasicData.Entitys/Dto/DataModeing/CleanTableDataInput.cs new file mode 100644 index 00000000..2c889edb --- /dev/null +++ b/Tnb.BasicData.Entitys/Dto/DataModeing/CleanTableDataInput.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using JNPF.DependencyInjection; + +namespace Tnb.BasicData.Entitys.Dto.DataModeing +{ + /// + /// 清除表数据输入参数 + /// + [SuppressSniffer] + public class CleanTableDataInput + { + public string LinkId { get; set; } + /// + /// 数据库名称 + /// + public string DbName { get; set; } + /// + /// 表名称 + /// + public string TableName { get; set; } + } +} diff --git a/Tnb.BasicData.Entitys/Tnb.BasicData.Entitys.csproj b/Tnb.BasicData.Entitys/Tnb.BasicData.Entitys.csproj index c2fc7cb8..1cc24961 100644 --- a/Tnb.BasicData.Entitys/Tnb.BasicData.Entitys.csproj +++ b/Tnb.BasicData.Entitys/Tnb.BasicData.Entitys.csproj @@ -1,4 +1,4 @@ - + net6.0 @@ -11,8 +11,4 @@ - - - - diff --git a/Tnb.BasicData/DataTableOperateService.cs b/Tnb.BasicData/DataTableOperateService.cs new file mode 100644 index 00000000..e36e1b86 --- /dev/null +++ b/Tnb.BasicData/DataTableOperateService.cs @@ -0,0 +1,70 @@ +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; + + } + } +} diff --git a/system/Tnb.Systems/Permission/UsersService.cs b/system/Tnb.Systems/Permission/UsersService.cs index 8c6cf244..d355ef61 100644 --- a/system/Tnb.Systems/Permission/UsersService.cs +++ b/system/Tnb.Systems/Permission/UsersService.cs @@ -534,14 +534,16 @@ public class UsersService : IUsersService, IDynamicApiController, ITransient [HttpPost("GetUserList")] public async Task GetUserList([FromBody] UserRelationInput input) { - var data = await _repository.AsQueryable().Where(it => it.EnabledMark > 0 && it.DeleteMark == null) - .Where(it => input.userId.Contains(it.Id)) - .Select(it => new OrganizeMemberListOutput() + var data = await _repository.AsSugarClient().Queryable((u, org) => new JoinQueryInfos(JoinType.Inner, u.OrganizeId == org.Id)) + .Where((u, org) => u.EnabledMark > 0 && u.DeleteMark == null) + .Where((u, org) => input.userId.Contains(u.Id)) + .Select((u, org) => new OrganizeMemberListOutput() { - id = it.Id, - fullName = SqlFunc.MergeString(it.RealName, "/", it.Account), - headIcon = SqlFunc.MergeString("/api/File/Image/userAvatar/", it.HeadIcon), - enabledMark = it.EnabledMark, + id = u.Id, + fullName = SqlFunc.MergeString(u.RealName, "/", u.Account), + headIcon = SqlFunc.MergeString("/api/File/Image/userAvatar/", u.HeadIcon), + enabledMark = u.EnabledMark, + type = org.FullName, }).ToListAsync(); data = data.OrderBy(x => input.userId.IndexOf(x.id)).ToList();