From 958bc4eab043a29cbf8c812d5d158d13d2301280 Mon Sep 17 00:00:00 2001 From: anerx <512464164@qq.com> Date: Thu, 22 Aug 2024 08:24:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=BC=80=E5=8F=91=E5=88=86?= =?UTF-8?q?=E9=92=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Admin.NET.Application/Configuration/Database.json | 4 +- Admin.NET.Bodk.Genetic/GeneReportService.cs | 36 ++-- Admin.NET.Bodk.Project/Entities/AreaExtEntity.cs | 2 +- Admin.NET.Core/Entity/IDataAuth.cs | 10 + Admin.NET.Core/Entity/SysOrg.cs | 19 +- Admin.NET.Core/SeedData/SysOrgSeedData.cs | 4 +- Admin.NET.Core/Service/Org/SysOrgService.cs | 212 ++-------------------- Admin.NET.Core/SqlSugar/SqlSugarRepository.cs | 3 + Admin.NET.Core/SqlSugar/SqlSugarSetup.cs | 62 ++++--- Admin.NET.Web.Entry/Admin.NET.Web.Entry.csproj | 17 +- Admin.NET.Web.Entry/Admin.NET.db | Bin 25382912 -> 27922432 bytes Admin.NET.sln | 37 ++++ Admin.NET.sln.DotSettings | 2 + Bodk.NET.Core/Bodk.NET.Core.csproj | 13 ++ Bodk.NET.Customer/Bodk.NET.Customer.csproj | 13 ++ Bodk.NET.Customer/Entities/BodkCustomer.cs | 31 ++++ Bodk.NET.Customer/Models/Customer.cs | 85 +++++++++ Bodk.NET.Customer/Services/CustomerService.cs | 86 +++++++++ Bodk.NET.Device/Bodk.NET.Device.csproj | 9 + Bodk.NET.LocalServer/Bodk.NET.LocalServer.csproj | 13 ++ Bodk.NET.Project/Bodk.NET.Project.csproj | 22 +++ 21 files changed, 420 insertions(+), 260 deletions(-) create mode 100644 Admin.NET.Core/Entity/IDataAuth.cs create mode 100644 Admin.NET.sln.DotSettings create mode 100644 Bodk.NET.Core/Bodk.NET.Core.csproj create mode 100644 Bodk.NET.Customer/Bodk.NET.Customer.csproj create mode 100644 Bodk.NET.Customer/Entities/BodkCustomer.cs create mode 100644 Bodk.NET.Customer/Models/Customer.cs create mode 100644 Bodk.NET.Customer/Services/CustomerService.cs create mode 100644 Bodk.NET.Device/Bodk.NET.Device.csproj create mode 100644 Bodk.NET.LocalServer/Bodk.NET.LocalServer.csproj create mode 100644 Bodk.NET.Project/Bodk.NET.Project.csproj diff --git a/Admin.NET.Application/Configuration/Database.json b/Admin.NET.Application/Configuration/Database.json index 5e5401a..fc081da 100644 --- a/Admin.NET.Application/Configuration/Database.json +++ b/Admin.NET.Application/Configuration/Database.json @@ -7,8 +7,8 @@ "ConnectionConfigs": [ { //"ConfigId": "1300000000001", // 默认库标识-禁止修改 - "DbType": "Sqlite", // MySql、SqlServer、Sqlite、Oracle、PostgreSQL、Dm、Kdbndp、Oscar、MySqlConnector、Access、OpenGauss、QuestDB、HG、ClickHouse、GBase、Odbc、Custom - "ConnectionString": "DataSource=./Admin.NET.db", // 库连接字符串 + "DbType": "MySql", // MySql、SqlServer、Sqlite、Oracle、PostgreSQL、Dm、Kdbndp、Oscar、MySqlConnector、Access、OpenGauss、QuestDB、HG、ClickHouse、GBase、Odbc、Custom + "ConnectionString": "server=113.45.158.49;Database=test_bodk_cloud_db;Uid=root;Pwd=Bodk365@mysql", // 库连接字符串 //"SlaveConnectionConfigs": [ // 读写分离/主从 // { // "HitRate": 10, diff --git a/Admin.NET.Bodk.Genetic/GeneReportService.cs b/Admin.NET.Bodk.Genetic/GeneReportService.cs index ad8cca7..0bd0dbe 100644 --- a/Admin.NET.Bodk.Genetic/GeneReportService.cs +++ b/Admin.NET.Bodk.Genetic/GeneReportService.cs @@ -11,6 +11,7 @@ using Admin.NET.Bodk.Genetic.Models.Reports; using Admin.NET.Core; using Admin.NET.Core.Service; using Furion.FriendlyException; +using Mapster; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; @@ -35,23 +36,24 @@ public class GeneReportService( try { await db.Ado.BeginTranAsync(); - var entity = new GeneTestingReportEntity() - { - SampleType = input.SampleType, - TestingType = input.TestingType, - TestingMethod = input.TestingMethod, - TofMs = input.TofMs, - GenotypingAnalysis = input.GenotypingAnalysis, - SampleQuality = input.SampleQuality, - GeneticRiskAssessment = input.GeneticRiskAssessment, - Barcode = input.Barcode, - DnaExtraction = input.DnaExtraction, - CustomerId = input.CustomerId, - ReportTime = input.ReportTime, - Report = input.Report, - Pcr = input.Pcr, - SubmissionTime = input.SubmissionTime, - }; + var entity = input.Adapt(); + // var entity = new GeneTestingReportEntity() + // { + // SampleType = input.SampleType, + // TestingType = input.TestingType, + // TestingMethod = input.TestingMethod, + // TofMs = input.TofMs, + // GenotypingAnalysis = input.GenotypingAnalysis, + // SampleQuality = input.SampleQuality, + // GeneticRiskAssessment = input.GeneticRiskAssessment, + // Barcode = input.Barcode, + // DnaExtraction = input.DnaExtraction, + // CustomerId = input.CustomerId, + // ReportTime = input.ReportTime, + // Report = input.Report, + // Pcr = input.Pcr, + // SubmissionTime = input.SubmissionTime, + // }; entity = await AddBefore(entity); var reportId = await db.Insertable(entity).ExecuteReturnSnowflakeIdAsync(); foreach (var tumor in input.Tumors) diff --git a/Admin.NET.Bodk.Project/Entities/AreaExtEntity.cs b/Admin.NET.Bodk.Project/Entities/AreaExtEntity.cs index 13c6aac..8ee5137 100644 --- a/Admin.NET.Bodk.Project/Entities/AreaExtEntity.cs +++ b/Admin.NET.Bodk.Project/Entities/AreaExtEntity.cs @@ -8,7 +8,7 @@ using SqlSugar; namespace Admin.NET.Bodk.Project.Entities; [SugarTable("bodk_org_area_ext")] -public class AreaExtEntity : EntityBase +public class AreaExtEntity : EntityBaseData { public long OrgId { get; set; } } \ No newline at end of file diff --git a/Admin.NET.Core/Entity/IDataAuth.cs b/Admin.NET.Core/Entity/IDataAuth.cs new file mode 100644 index 0000000..1a8e1b3 --- /dev/null +++ b/Admin.NET.Core/Entity/IDataAuth.cs @@ -0,0 +1,10 @@ +// 大名科技(天津)有限公司版权所有 电话:18020030720 QQ:515096995 +// +// 此源代码遵循位于源代码树根目录中的 LICENSE 文件的许可证 + +namespace Admin.NET.Core; + +public interface IDataAuth +{ + long OrgId { get; set; } +} \ No newline at end of file diff --git a/Admin.NET.Core/Entity/SysOrg.cs b/Admin.NET.Core/Entity/SysOrg.cs index 059919b..5f40cff 100644 --- a/Admin.NET.Core/Entity/SysOrg.cs +++ b/Admin.NET.Core/Entity/SysOrg.cs @@ -97,19 +97,14 @@ public class SysOrg : EntityTenant [SugarColumn(IsNullable = true, ColumnDataType = "TEXT")] public string? Position { get; set; } - [SugarColumn(ColumnDataType = "json")] public string ServiceIdsJson { get; set; } + [SugarColumn(IsNullable = true, ColumnDescription = "服务列表", IsArray = true)] + public long[]? ServiceIds { get; set; } [SugarColumn(IsIgnore = true)] public List? Services { get; set; } - [SugarColumn(IsIgnore = true)] - public List? ServiceIds - { - get - { - if (string.IsNullOrWhiteSpace(ServiceIdsJson)) - return null; - return JsonSerializer.Deserialize>(ServiceIdsJson); - } - set { ServiceIdsJson = JsonSerializer.Serialize(value); } - } + [SugarColumn(IsNullable = true, ColumnDescription = "经度")] + public decimal? Longitude { get; set; } + + [SugarColumn(IsNullable = true, ColumnDescription = "维度")] + public decimal? Latitude { get; set; } } \ No newline at end of file diff --git a/Admin.NET.Core/SeedData/SysOrgSeedData.cs b/Admin.NET.Core/SeedData/SysOrgSeedData.cs index e4c50d5..74bdfca 100644 --- a/Admin.NET.Core/SeedData/SysOrgSeedData.cs +++ b/Admin.NET.Core/SeedData/SysOrgSeedData.cs @@ -20,8 +20,8 @@ public class SysOrgSeedData : ISqlSugarEntitySeedData new SysOrg { Id = 1300000000101, Pid = 0, Name = "博工科技", Code = "1", Type = "101", Level = 1, - CreateTime = DateTime.Parse("2022-02-10 00:00:00"), Remark = "松山湖基地", TenantId = 1300000000001, - ServiceIds = new List() + CreateTime = DateTime.Parse("2022-02-10 00:00:00"), Remark = "总机构", TenantId = 1300000000001, + ServiceIds =[] } }; } diff --git a/Admin.NET.Core/Service/Org/SysOrgService.cs b/Admin.NET.Core/Service/Org/SysOrgService.cs index 09fbf43..8f2d7d0 100644 --- a/Admin.NET.Core/Service/Org/SysOrgService.cs +++ b/Admin.NET.Core/Service/Org/SysOrgService.cs @@ -48,18 +48,33 @@ public class SysOrgService : IDynamicApiController, ITransient .WhereIF(!string.IsNullOrWhiteSpace(input.Name), u => u.Name.Contains(input.Name)) .WhereIF(!string.IsNullOrWhiteSpace(input.Code), u => u.Code == input.Code) .WhereIF(!string.IsNullOrWhiteSpace(input.Type), u => u.Type == input.Type) + .Mapper(o => + { + o.Services = SqlFunc.Subqueryable() + .WhereIF(o.ServiceIds is not null, s => o.ServiceIds.Contains(s.Id)).ToList(); + }) .ToListAsync(); } var orgTree = new List(); if (_userManager.SuperAdmin) { - orgTree = await iSugarQueryable.ToTreeAsync(u => u.Children, u => u.Pid, input.Id); + orgTree = await iSugarQueryable + .Mapper(o => + { + o.Services = SqlFunc.Subqueryable() + .WhereIF(o.ServiceIds is not null, s => o.ServiceIds.Contains(s.Id)).ToList(); + }).ToTreeAsync(u => u.Children, u => u.Pid, input.Id); } else { - orgTree = await iSugarQueryable.ToTreeAsync(u => u.Children, u => u.Pid, input.Id, - userOrgIdList.Select(d => (object)d).ToArray()); + orgTree = await iSugarQueryable.Mapper(o => + { + o.Services = SqlFunc.Subqueryable() + .WhereIF(o.ServiceIds is not null, s => o.ServiceIds.Contains(s.Id)).ToList(); + }) + .ToTreeAsync(u => u.Children, u => u.Pid, input.Id, + userOrgIdList.Select(d => (object)d).ToArray()); // 递归禁用没权限的机构(防止用户修改或创建无权的机构和用户) HandlerOrgTree(orgTree, userOrgIdList); } @@ -119,7 +134,7 @@ public class SysOrgService : IDynamicApiController, ITransient DeleteAllUserOrgCache(pOrg.Id, pOrg.Pid); else if (input.Pid == 0) DeleteAllUserOrgCache(0, 0); - + input.ServiceIds = input.Services?.Select(u => u.Id).ToArray(); var newOrg = await _sysOrgRep.AsInsertable(input.Adapt()).ExecuteReturnEntityAsync(); return newOrg.Id; } @@ -397,193 +412,4 @@ public class SysOrgService : IDynamicApiController, ITransient var orgTreeList = await _sysOrgRep.AsQueryable().ToChildListAsync(u => u.Pid, pid, true); return orgTreeList.Select(u => u.Id).ToList(); } - - - /// - /// 增加区域 - /// - /// - /// - [ApiDescriptionSettings(Name = "AddArea"), HttpPost] - [DisplayName("增加区域")] - public async Task AddArea(AddAreaInput input) - { - if (!_userManager.SuperAdmin && input.Pid == 0) - throw Oops.Oh(ErrorCodeEnum.D2009); - - if (await _sysOrgRep.IsAnyAsync(u => u.Name == input.Name && u.Code == input.Code)) - throw Oops.Oh(ErrorCodeEnum.D2002); - - if (!_userManager.SuperAdmin && input.Pid != 0) - { - // 新增机构父Id不是0,则进行权限校验 - var orgIdList = await GetUserOrgIdList(); - // 新增机构的父机构不在自己的数据范围内 - if (orgIdList.Count < 1 || !orgIdList.Contains(input.Pid)) - throw Oops.Oh(ErrorCodeEnum.D2003); - } - - // 删除与此父机构有关的用户机构缓存 - var pOrg = await _sysOrgRep.GetFirstAsync(u => u.Id == input.Pid); - if (pOrg != null) - DeleteAllUserOrgCache(pOrg.Id, pOrg.Pid); - else if (input.Pid == 0) - DeleteAllUserOrgCache(0, 0); - - var newOrg = await _sysOrgRep.AsInsertable(new SysOrg() - { - Pid = input.Pid, - Status = StatusEnum.Enable, - CreateUserId = _userManager.UserId, - CreateUserName = _userManager.Account, - Name = input.Name, - Code = input.Code, - Type = "Area", - Remark = input.Remark, - DirectorId = input.DirectorId - }).ExecuteReturnEntityAsync(); - return newOrg.Id; - } - - // public async Task> GetUserAreaList(QueryAreaInput input) - // { - // var userOrgIdList = await GetUserOrgIdList(); - // var iSugarQueryable = _sysOrgRep.AsQueryable().OrderBy(u => u.OrderNo) - // .Where(a => a.Type == "Area"); - // var orgTree = new List(); - // if (_userManager.SuperAdmin) - // { - // orgTree = await iSugarQueryable.ToTreeAsync(u => u.Children, u => u.Pid, input.Id); - // } - // else - // { - // orgTree = await iSugarQueryable.ToTreeAsync(u => u.Children, u => u.Pid, input.Id, - // userOrgIdList.Select(d => (object)d).ToArray()); - // // 递归禁用没权限的机构(防止用户修改或创建无权的机构和用户) - // HandlerOrgTree(orgTree, userOrgIdList); - // } - // - // var sysOrg = await _sysOrgRep.GetSingleAsync(u => u.Id == input.Id); - // if (sysOrg != null) - // { - // sysOrg.Children = orgTree; - // orgTree = new List { sysOrg }; - // } - // - // return orgTree; - // if (!string.IsNullOrWhiteSpace(input.Name) || !string.IsNullOrWhiteSpace(input.Code)) - // { - // return await iSugarQueryable.WhereIF(userOrgIdList.Count > 0, u => userOrgIdList.Contains(u.Id)) - // .WhereIF(!string.IsNullOrWhiteSpace(input.Name), u => u.Name.Contains(input.Name)) - // .WhereIF(!string.IsNullOrWhiteSpace(input.Code), u => u.Code == input.Code) - // .Select(a => a.Adapt()) - // .Mapper(a => - // { - // a.Factories = a.Children.Where(c => c.Type == "Factory").Select(s => s.Adapt()) - // .Select(t => - // { - // t.Stations = t.Children.Where(c => c.Type == "Station") - // .Select(s => s.Adapt()).ToList(); - // return t; - // }) - // .ToList(); - // }) - // .ToListAsync(); - // } - // } - - /// - /// 增加基地 - /// - /// - /// - [ApiDescriptionSettings(Name = "AddFactory"), HttpPost] - [DisplayName("增加基地")] - public async Task AddFactory(AddFactoryInput input) - { - if (!_userManager.SuperAdmin && input.Pid == 0) - throw Oops.Oh(ErrorCodeEnum.D2009); - - if (await _sysOrgRep.IsAnyAsync(u => u.Name == input.Name && u.Code == input.Code)) - throw Oops.Oh(ErrorCodeEnum.D2002); - - if (!_userManager.SuperAdmin && input.Pid != 0) - { - // 新增机构父Id不是0,则进行权限校验 - var orgIdList = await GetUserOrgIdList(); - // 新增机构的父机构不在自己的数据范围内 - if (orgIdList.Count < 1 || !orgIdList.Contains(input.Pid)) - throw Oops.Oh(ErrorCodeEnum.D2003); - } - - // 删除与此父机构有关的用户机构缓存 - var pOrg = await _sysOrgRep.GetFirstAsync(u => u.Id == input.Pid); - if (pOrg != null) - DeleteAllUserOrgCache(pOrg.Id, pOrg.Pid); - else if (input.Pid == 0) - DeleteAllUserOrgCache(0, 0); - - var newOrg = await _sysOrgRep.AsInsertable(new SysOrg() - { - Pid = input.Pid, - Status = StatusEnum.Enable, - CreateUserId = _userManager.UserId, - CreateUserName = _userManager.Account, - Name = input.Name, - Code = input.Code, - Type = "Factory", - Remark = input.Remark, - DirectorId = input.DirectorId, - Position = input.Position - }).ExecuteReturnEntityAsync(); - return newOrg.Id; - } - - - /// - /// 增加工作站 - /// - /// - /// - [ApiDescriptionSettings(Name = "AddStation"), HttpPost] - [DisplayName("增加工作站")] - public async Task AddStation(AddStationInput input) - { - if (!_userManager.SuperAdmin && input.Pid == 0) - throw Oops.Oh(ErrorCodeEnum.D2009); - - if (await _sysOrgRep.IsAnyAsync(u => u.Name == input.Name && u.Code == input.Code)) - throw Oops.Oh(ErrorCodeEnum.D2002); - - if (!_userManager.SuperAdmin && input.Pid != 0) - { - // 新增机构父Id不是0,则进行权限校验 - var orgIdList = await GetUserOrgIdList(); - // 新增机构的父机构不在自己的数据范围内 - if (orgIdList.Count < 1 || !orgIdList.Contains(input.Pid)) - throw Oops.Oh(ErrorCodeEnum.D2003); - } - - // 删除与此父机构有关的用户机构缓存 - var pOrg = await _sysOrgRep.GetFirstAsync(u => u.Id == input.Pid); - if (pOrg != null) - DeleteAllUserOrgCache(pOrg.Id, pOrg.Pid); - else if (input.Pid == 0) - DeleteAllUserOrgCache(0, 0); - var ids = input.Services?.Select(s => s.Id).ToArray(); - var newOrg = await _sysOrgRep.AsInsertable(new SysOrg() - { - Pid = input.Pid, - Status = StatusEnum.Enable, - CreateUserId = _userManager.UserId, - CreateUserName = _userManager.Account, - Name = input.Name, - Code = input.Code, - Type = "Station", - Remark = input.Remark, - DirectorId = input.DirectorId, - ServiceIds = ids?.ToList(), - }).ExecuteReturnEntityAsync(); - return newOrg.Id; - } } \ No newline at end of file diff --git a/Admin.NET.Core/SqlSugar/SqlSugarRepository.cs b/Admin.NET.Core/SqlSugar/SqlSugarRepository.cs index b52f14b..2885e3a 100644 --- a/Admin.NET.Core/SqlSugar/SqlSugarRepository.cs +++ b/Admin.NET.Core/SqlSugar/SqlSugarRepository.cs @@ -1,4 +1,6 @@ +using Org.BouncyCastle.Asn1.X509.Qualified; + namespace Admin.NET.Core; /// @@ -40,4 +42,5 @@ public class SqlSugarRepository : SimpleClient where T : class, new() if (sqlSugarScopeProviderTenant == null) return; base.Context = sqlSugarScopeProviderTenant; } + } \ No newline at end of file diff --git a/Admin.NET.Core/SqlSugar/SqlSugarSetup.cs b/Admin.NET.Core/SqlSugar/SqlSugarSetup.cs index 293d9eb..57be453 100644 --- a/Admin.NET.Core/SqlSugar/SqlSugarSetup.cs +++ b/Admin.NET.Core/SqlSugar/SqlSugarSetup.cs @@ -1,4 +1,3 @@ - using System.Text.Json; namespace Admin.NET.Core; @@ -21,10 +20,7 @@ public static class SqlSugarSetup // 自定义 SqlSugar 雪花ID算法 SnowFlakeSingle.WorkId = snowIdOpt.WorkerId; - StaticConfig.CustomSnowFlakeFunc = () => - { - return YitIdHelper.NextId(); - }; + StaticConfig.CustomSnowFlakeFunc = () => { return YitIdHelper.NextId(); }; var dbOptions = App.GetConfig("DbConnection", true); dbOptions.ConnectionConfigs.ForEach(SetDbConfig); @@ -44,10 +40,7 @@ public static class SqlSugarSetup services.AddUnitOfWork(); // 事务与工作单元注册 // 初始化数据库表结构及种子数据 - dbOptions.ConnectionConfigs.ForEach(config => - { - InitDatabase(sqlSugar, config); - }); + dbOptions.ConnectionConfigs.ForEach(config => { InitDatabase(sqlSugar, config); }); } /// @@ -110,7 +103,8 @@ public static class SqlSugarSetup var originColor = Console.ForegroundColor; if (sql.StartsWith("SELECT", StringComparison.OrdinalIgnoreCase)) Console.ForegroundColor = ConsoleColor.Green; - if (sql.StartsWith("UPDATE", StringComparison.OrdinalIgnoreCase) || sql.StartsWith("INSERT", StringComparison.OrdinalIgnoreCase)) + if (sql.StartsWith("UPDATE", StringComparison.OrdinalIgnoreCase) || + sql.StartsWith("INSERT", StringComparison.OrdinalIgnoreCase)) Console.ForegroundColor = ConsoleColor.Yellow; if (sql.StartsWith("DELETE", StringComparison.OrdinalIgnoreCase)) Console.ForegroundColor = ConsoleColor.Red; @@ -121,7 +115,8 @@ public static class SqlSugarSetup db.Aop.OnError = ex => { if (ex.Parametres == null) return; - var log = $"【{DateTime.Now}——错误SQL】\r\n{UtilMethods.GetNativeSql(ex.Sql, (SugarParameter[])ex.Parametres)}\r\n"; + var log = + $"【{DateTime.Now}——错误SQL】\r\n{UtilMethods.GetNativeSql(ex.Sql, (SugarParameter[])ex.Parametres)}\r\n"; var originColor = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.DarkRed; Console.WriteLine(log); @@ -136,7 +131,9 @@ public static class SqlSugarSetup var fileName = db.Ado.SqlStackTrace.FirstFileName; // 文件名 var fileLine = db.Ado.SqlStackTrace.FirstLine; // 行号 var firstMethodName = db.Ado.SqlStackTrace.FirstMethodName; // 方法名 - var log = $"【{DateTime.Now}——超时SQL】\r\n【所在文件名】:{fileName}\r\n【代码行数】:{fileLine}\r\n【方法名】:{firstMethodName}\r\n" + $"【SQL语句】:{UtilMethods.GetNativeSql(sql, pars)}"; + var log = + $"【{DateTime.Now}——超时SQL】\r\n【所在文件名】:{fileName}\r\n【代码行数】:{fileLine}\r\n【方法名】:{firstMethodName}\r\n" + + $"【SQL语句】:{UtilMethods.GetNativeSql(sql, pars)}"; var originColor = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.DarkYellow; Console.WriteLine(log); @@ -145,18 +142,21 @@ public static class SqlSugarSetup } }; } + // 数据审计 db.Aop.DataExecuting = (oldValue, entityInfo) => { if (entityInfo.OperationType == DataFilterType.InsertByObject) { // 主键(long类型)且没有值的---赋值雪花Id - if (entityInfo.EntityColumnInfo.IsPrimarykey && entityInfo.EntityColumnInfo.PropertyInfo.PropertyType == typeof(long)) + if (entityInfo.EntityColumnInfo.IsPrimarykey && + entityInfo.EntityColumnInfo.PropertyInfo.PropertyType == typeof(long)) { var id = entityInfo.EntityColumnInfo.PropertyInfo.GetValue(entityInfo.EntityValue); if (id == null || (long)id == 0) entityInfo.SetValue(YitIdHelper.NextId()); } + if (entityInfo.PropertyName == nameof(EntityBase.CreateTime)) entityInfo.SetValue(DateTime.Now); if (App.User != null) @@ -193,6 +193,7 @@ public static class SqlSugarSetup } } } + if (entityInfo.OperationType == DataFilterType.UpdateByObject) { if (entityInfo.PropertyName == nameof(EntityBase.UpdateTime)) @@ -250,7 +251,8 @@ public static class SqlSugarSetup }; await db.CopyNew().Insertable(logDiff).ExecuteCommandAsync(); Console.ForegroundColor = ConsoleColor.Red; - Console.WriteLine(DateTime.Now + $"\r\n*****开始差异日志*****\r\n{Environment.NewLine}{JSON.Serialize(logDiff)}{Environment.NewLine}*****结束差异日志*****\r\n"); + Console.WriteLine(DateTime.Now + + $"\r\n*****开始差异日志*****\r\n{Environment.NewLine}{JSON.Serialize(logDiff)}{Environment.NewLine}*****结束差异日志*****\r\n"); }; } @@ -273,15 +275,22 @@ public static class SqlSugarSetup // 初始化表结构 if (config.TableSettings.EnableInitTable) { - var entityTypes = App.EffectiveTypes.Where(u => !u.IsInterface && !u.IsAbstract && u.IsClass && u.IsDefined(typeof(SugarTable), false)) - .WhereIF(config.TableSettings.EnableIncreTable, u => u.IsDefined(typeof(IncreTableAttribute), false)).ToList(); + var entityTypes = App.EffectiveTypes.Where(u => + !u.IsInterface && !u.IsAbstract && u.IsClass && u.IsDefined(typeof(SugarTable), false)) + .WhereIF(config.TableSettings.EnableIncreTable, u => u.IsDefined(typeof(IncreTableAttribute), false)) + .ToList(); if (config.ConfigId.ToString() == SqlSugarConst.MainConfigId) // 默认库(有系统表特性、没有日志表和租户表特性) - entityTypes = entityTypes.Where(u => u.GetCustomAttributes().Any() || (!u.GetCustomAttributes().Any() && !u.GetCustomAttributes().Any())).ToList(); + entityTypes = entityTypes.Where(u => + u.GetCustomAttributes().Any() || + (!u.GetCustomAttributes().Any() && + !u.GetCustomAttributes().Any())).ToList(); else if (config.ConfigId.ToString() == SqlSugarConst.LogConfigId) // 日志库 entityTypes = entityTypes.Where(u => u.GetCustomAttributes().Any()).ToList(); else - entityTypes = entityTypes.Where(u => u.GetCustomAttribute()?.configId.ToString() == config.ConfigId.ToString()).ToList(); // 自定义的库 + entityTypes = entityTypes.Where(u => + u.GetCustomAttribute()?.configId.ToString() == config.ConfigId.ToString()) + .ToList(); // 自定义的库 foreach (var entityType in entityTypes) { @@ -295,15 +304,20 @@ public static class SqlSugarSetup // 初始化种子数据 if (config.SeedSettings.EnableInitSeed) { - var seedDataTypes = App.EffectiveTypes.Where(u => !u.IsInterface && !u.IsAbstract && u.IsClass && u.GetInterfaces().Any(i => i.HasImplementedRawGeneric(typeof(ISqlSugarEntitySeedData<>)))) - .WhereIF(config.SeedSettings.EnableIncreSeed, u => u.IsDefined(typeof(IncreSeedAttribute), false)).ToList(); + var seedDataTypes = App.EffectiveTypes.Where(u => + !u.IsInterface && !u.IsAbstract && u.IsClass && u.GetInterfaces() + .Any(i => i.HasImplementedRawGeneric(typeof(ISqlSugarEntitySeedData<>)))) + .WhereIF(config.SeedSettings.EnableIncreSeed, u => u.IsDefined(typeof(IncreSeedAttribute), false)) + .ToList(); foreach (var seedType in seedDataTypes) { var entityType = seedType.GetInterfaces().First().GetGenericArguments().First(); if (config.ConfigId.ToString() == SqlSugarConst.MainConfigId) // 默认库(有系统表特性、没有日志表和租户表特性) { - if (entityType.GetCustomAttribute() == null && (entityType.GetCustomAttribute() != null || entityType.GetCustomAttribute() != null)) + if (entityType.GetCustomAttribute() == null && + (entityType.GetCustomAttribute() != null || + entityType.GetCustomAttribute() != null)) continue; } else if (config.ConfigId.ToString() == SqlSugarConst.LogConfigId) // 日志库 @@ -355,8 +369,10 @@ public static class SqlSugarSetup db.DbMaintenance.CreateDatabase(); // 获取所有业务表-初始化租户库表结构(排除系统表、日志表、特定库表) - var entityTypes = App.EffectiveTypes.Where(u => !u.IsInterface && !u.IsAbstract && u.IsClass && u.IsDefined(typeof(SugarTable), false) && - !u.IsDefined(typeof(SysTableAttribute), false) && !u.IsDefined(typeof(LogTableAttribute), false) && !u.IsDefined(typeof(TenantAttribute), false)).ToList(); + var entityTypes = App.EffectiveTypes.Where(u => + !u.IsInterface && !u.IsAbstract && u.IsClass && u.IsDefined(typeof(SugarTable), false) && + !u.IsDefined(typeof(SysTableAttribute), false) && !u.IsDefined(typeof(LogTableAttribute), false) && + !u.IsDefined(typeof(TenantAttribute), false)).ToList(); if (!entityTypes.Any()) return; foreach (var entityType in entityTypes) diff --git a/Admin.NET.Web.Entry/Admin.NET.Web.Entry.csproj b/Admin.NET.Web.Entry/Admin.NET.Web.Entry.csproj index 9ef3eaf..e96cca7 100644 --- a/Admin.NET.Web.Entry/Admin.NET.Web.Entry.csproj +++ b/Admin.NET.Web.Entry/Admin.NET.Web.Entry.csproj @@ -40,16 +40,6 @@ - - - - - - - - - - PreserveNewest @@ -88,4 +78,11 @@ + + + + + + + diff --git a/Admin.NET.Web.Entry/Admin.NET.db b/Admin.NET.Web.Entry/Admin.NET.db index 4f7b3f8a2449acc96708073ce9f93a00ceaf665c..b2787cfbc0a55191f51c864d7354a3cd22506277 100644 GIT binary patch delta 477747 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 ju^k?M{}7;!q}z8rWKLPJ@-ZNcmH@U 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

4NHHMol@2 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 + True \ No newline at end of file diff --git a/Bodk.NET.Core/Bodk.NET.Core.csproj b/Bodk.NET.Core/Bodk.NET.Core.csproj new file mode 100644 index 0000000..619669c --- /dev/null +++ b/Bodk.NET.Core/Bodk.NET.Core.csproj @@ -0,0 +1,13 @@ + + + + net8.0 + enable + enable + + + + + + + diff --git a/Bodk.NET.Customer/Bodk.NET.Customer.csproj b/Bodk.NET.Customer/Bodk.NET.Customer.csproj new file mode 100644 index 0000000..619669c --- /dev/null +++ b/Bodk.NET.Customer/Bodk.NET.Customer.csproj @@ -0,0 +1,13 @@ + + + + net8.0 + enable + enable + + + + + + + diff --git a/Bodk.NET.Customer/Entities/BodkCustomer.cs b/Bodk.NET.Customer/Entities/BodkCustomer.cs new file mode 100644 index 0000000..e1b18f5 --- /dev/null +++ b/Bodk.NET.Customer/Entities/BodkCustomer.cs @@ -0,0 +1,31 @@ +// 大名科技(天津)有限公司版权所有 电话:18020030720 QQ:515096995 +// +// 此源代码遵循位于源代码树根目录中的 LICENSE 文件的许可证 + +using Admin.NET.Core; +using SqlSugar; + +namespace Bodk.NET.Customer.Entities; + +[SugarTable("bodk_base_customer", "客户表")] +public class BodkCustomer : EntityBase +{ + [SugarColumn(IsNullable = false, ColumnDescription = "客户名称")] + public virtual string Name { get; set; } + + [SugarColumn(IsNullable = false, ColumnDescription = "身份证号码")] + public virtual string IdCard { get; set; } + + [SugarColumn(IsNullable = false, ColumnDescription = "手机号码")] + public virtual string Phone { get; set; } + + [SugarColumn(IsNullable = false, ColumnDescription = "性别")] + public virtual bool IsMale { get; set; } + + [SugarColumn(IsJson = true, ColumnDescription = "客户从属的机构列表", IsNullable = true)] + public virtual List? OrgIds { get; set; } + + [SugarColumn(IsNullable = true)] public string? ImageUrl { get; set; } + + [SugarColumn(IsNullable = true)] public string? VoiceUrl { get; set; } +} \ No newline at end of file diff --git a/Bodk.NET.Customer/Models/Customer.cs b/Bodk.NET.Customer/Models/Customer.cs new file mode 100644 index 0000000..73096d5 --- /dev/null +++ b/Bodk.NET.Customer/Models/Customer.cs @@ -0,0 +1,85 @@ +// 大名科技(天津)有限公司版权所有 电话:18020030720 QQ:515096995 +// +// 此源代码遵循位于源代码树根目录中的 LICENSE 文件的许可证 + +using System.ComponentModel.DataAnnotations; +using Admin.NET.Core; +using Bodk.NET.Customer.Entities; + +namespace Bodk.NET.Customer.Models; + +///

+/// 新增客户ID入参 +/// +public class AddCustomerInput : BodkCustomer +{ + private new long Id { get; set; } + + /// + /// 客户姓名 + /// + [Required(ErrorMessage = "客户姓名不能为空")] + public override string Name { get; set; } + + /// + /// 客户身份证号 + /// + [Required(ErrorMessage = "客户身份证号不能为空")] + public override string IdCard { get; set; } + + /// + /// 客户性别 + /// + [Required(ErrorMessage = "客户性别不能为空")] + public override bool IsMale { get; set; } + + /// + /// 客户手机号 + /// + [Required(ErrorMessage = "客户手机号不能为空")] + public override string Phone { get; set; } +} + +/// +/// 更新客户ID入参 +/// +public class UpdateCustomerInput : BodkCustomer +{ + /// + /// 客户Id + /// + [Required(ErrorMessage = "客户Id不能为空")] + public override long Id { get; set; } +} + +/// +/// 分页获取客户列表入参 +/// +public class PageCustomerInput : BasePageInput +{ + /// + /// 组织机构Id列表 + /// + public long[]? OrgIds { get; set; } +} + +/// +/// 查询单个客户入参 +/// +public class SingleCustomerInput +{ + /// + /// 名称 + /// + public string? Name { get; set; } + + /// + /// 身份证号 + /// + public string? IdCard { get; set; } + + /// + /// 手机号 + /// + public string? Phone { get; set; } +} \ No newline at end of file diff --git a/Bodk.NET.Customer/Services/CustomerService.cs b/Bodk.NET.Customer/Services/CustomerService.cs new file mode 100644 index 0000000..1c491c7 --- /dev/null +++ b/Bodk.NET.Customer/Services/CustomerService.cs @@ -0,0 +1,86 @@ +// 大名科技(天津)有限公司版权所有 电话:18020030720 QQ:515096995 +// +// 此源代码遵循位于源代码树根目录中的 LICENSE 文件的许可证 + +using System.ComponentModel; +using Admin.NET.Core; +using Bodk.NET.Customer.Entities; +using Bodk.NET.Customer.Models; +using Furion.DependencyInjection; +using Furion.DynamicApiController; +using Furion.FriendlyException; +using Mapster; +using Microsoft.AspNetCore.Authentication.JwtBearer; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace Bodk.NET.Customer.Services; + +/// +/// 客户接口控制器 +/// +[ApiDescriptionSettings(Groups = new[] { "Bodk Groups" }, Name = "Customer", Description = "客户接口")] +public class CustomerService(SqlSugarRepository repository) : IDynamicApiController, ITransient +{ + /// + /// 新增客户 + /// + /// + [ApiDescriptionSettings(Name = "Add"), HttpPost] + [DisplayName("Add")] + [Authorize(AuthenticationSchemes = + JwtBearerDefaults.AuthenticationScheme + "," + SignatureAuthenticationDefaults.AuthenticationScheme)] + public async Task AddCustomer(AddCustomerInput input) + { + var entity = input.Adapt(); + bool exist = await CheckCustomerExist(entity); + if (exist) + throw Oops.Oh("该用户已存在"); + return await repository.InsertReturnSnowflakeIdAsync(entity); + } + + /// + /// 更新客户 + /// + /// + [ApiDescriptionSettings(Name = "Update"), HttpPost] + [DisplayName("Update")] + [Authorize(AuthenticationSchemes = + JwtBearerDefaults.AuthenticationScheme + "," + SignatureAuthenticationDefaults.AuthenticationScheme)] + public async Task UpdateCustomer(UpdateCustomerInput input) + { + var entity = input.Adapt(); + bool exist = await CheckCustomerExist(input.Id); + if (!exist) + throw Oops.Oh("该用户不存在"); + await repository.UpdateAsync(entity); + } + + /// + /// 获取客户列表 + /// + /// + [ApiDescriptionSettings(Name = "Update"), HttpPost] + [DisplayName("Update")] + [Authorize(AuthenticationSchemes = + JwtBearerDefaults.AuthenticationScheme + "," + SignatureAuthenticationDefaults.AuthenticationScheme)] + public async Task PageCustomer(UpdateCustomerInput input) + { + var entity = input.Adapt(); + bool exist = await CheckCustomerExist(input.Id); + if (!exist) + throw Oops.Oh("该用户不存在"); + await repository.UpdateAsync(entity); + } + + private async Task CheckCustomerExist(BodkCustomer entity) + { + return await repository.AsQueryable().AnyAsync(u => u.IdCard == entity.IdCard) + || await repository.AsQueryable().AnyAsync(u => u.Phone == entity.Phone); + } + + private Task CheckCustomerExist(long id) + { + return repository.AsQueryable().AnyAsync(u => u.Id == id); + } +} \ No newline at end of file diff --git a/Bodk.NET.Device/Bodk.NET.Device.csproj b/Bodk.NET.Device/Bodk.NET.Device.csproj new file mode 100644 index 0000000..3a63532 --- /dev/null +++ b/Bodk.NET.Device/Bodk.NET.Device.csproj @@ -0,0 +1,9 @@ + + + + net8.0 + enable + enable + + + diff --git a/Bodk.NET.LocalServer/Bodk.NET.LocalServer.csproj b/Bodk.NET.LocalServer/Bodk.NET.LocalServer.csproj new file mode 100644 index 0000000..619669c --- /dev/null +++ b/Bodk.NET.LocalServer/Bodk.NET.LocalServer.csproj @@ -0,0 +1,13 @@ + + + + net8.0 + enable + enable + + + + + + + diff --git a/Bodk.NET.Project/Bodk.NET.Project.csproj b/Bodk.NET.Project/Bodk.NET.Project.csproj new file mode 100644 index 0000000..fe947e6 --- /dev/null +++ b/Bodk.NET.Project/Bodk.NET.Project.csproj @@ -0,0 +1,22 @@ + + + + net8.0 + enable + enable + + + + obj\Debug\Bodk.NET.Project.xml + + + + + + + + + + + +