From 23dd5a7604485b6b36c6ae32df4c3ae6400ac890 Mon Sep 17 00:00:00 2001 From: PhilPan Date: Fri, 19 May 2023 11:24:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dsql=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E7=A8=8B=E5=BA=8F=E5=B4=A9=E6=BA=83=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Manager/DataBase/DataBaseManager.cs | 18 ++++++------ common/Tnb.Common/Enums/ErrorCode.cs | 7 +++++ .../Core/FormDataParsing.cs | 29 +++++++++++++------ visualdev/Tnb.VisualDev/VisualDevService.cs | 4 +++ 4 files changed, 40 insertions(+), 18 deletions(-) diff --git a/common/Tnb.Common.Core/Manager/DataBase/DataBaseManager.cs b/common/Tnb.Common.Core/Manager/DataBase/DataBaseManager.cs index 33739605..e97480ee 100644 --- a/common/Tnb.Common.Core/Manager/DataBase/DataBaseManager.cs +++ b/common/Tnb.Common.Core/Manager/DataBase/DataBaseManager.cs @@ -300,8 +300,8 @@ public class DataBaseManager : IDataBaseManager, ITransient { if (link != null && _sqlSugarClient.CurrentConnectionConfig.ConfigId != link.Id) _sqlSugarClient = ChangeDataBase(link); - try - { + //try + //{ int total = 0; if (_sqlSugarClient.CurrentConnectionConfig.DbType == SqlSugar.DbType.Oracle) strSql = strSql.Replace(";", string.Empty); @@ -316,7 +316,7 @@ public class DataBaseManager : IDataBaseManager, ITransient if (pageInput.superQueryJson.IsNotEmptyOrNull()) superQueryJson = _sqlSugarClient.Utilities.JsonToConditionalModels(pageInput.superQueryJson); // var sql = _sqlSugarClient.SqlQueryable(strSql) // .Where(querJson).Where(superQueryJson).Where(dataPermissions).ToSqlString(); - DataTable dt = _sqlSugarClient.CopyNew().SqlQueryable(strSql) + DataTable dt = _sqlSugarClient.SqlQueryable(strSql) .Where(querJson).Where(superQueryJson).Where(dataPermissions) .OrderByIF(sidx, pageInput.sidx + " " + pageInput.sort).OrderByIF(!sidx && defaultSidx, columnDesign.defaultSidx + " " + columnDesign.sort) .ToDataTablePage(pageInput.currentPage, pageInput.pageSize, ref total); @@ -339,11 +339,11 @@ public class DataBaseManager : IDataBaseManager, ITransient }, list = dt.ToObject>>().ToObject>>() }; - } - catch (Exception ex) - { - throw; - } + //} + //catch (Exception ex) + //{ + // throw; + //} } /// @@ -419,7 +419,7 @@ WHERE pcolumn.table_name='{0}' ORDER BY ordinal_position"; { if (link != null && _sqlSugarClient.CurrentConnectionConfig.ConfigId != link.Id) _sqlSugarClient = ChangeDataBase(link); - return _sqlSugarClient.CopyNew().DbMaintenance.GetPrimaries(tableName); + return _sqlSugarClient.DbMaintenance.GetPrimaries(tableName); } /// diff --git a/common/Tnb.Common/Enums/ErrorCode.cs b/common/Tnb.Common/Enums/ErrorCode.cs index 4f57761b..39315888 100644 --- a/common/Tnb.Common/Enums/ErrorCode.cs +++ b/common/Tnb.Common/Enums/ErrorCode.cs @@ -1106,6 +1106,13 @@ public enum ErrorCode [ErrorCodeItemMetadata("该流程已发起,无法删除")] D1417, + /// + /// 该功能不存在,可能已被删除. + /// + [ErrorCodeItemMetadata("该功能( id: {0} )不存在,可能已被删除")] + D1418, + + #endregion #region 数据建模 15 diff --git a/visualdev/Tnb.VisualDev.Engine/Core/FormDataParsing.cs b/visualdev/Tnb.VisualDev.Engine/Core/FormDataParsing.cs index 90b5c930..634430a0 100644 --- a/visualdev/Tnb.VisualDev.Engine/Core/FormDataParsing.cs +++ b/visualdev/Tnb.VisualDev.Engine/Core/FormDataParsing.cs @@ -1892,16 +1892,27 @@ public class FormDataParsing : ITransient sort = columnDesign.sort, pageSize = 999999 }; - - Scoped.Create(async (_, scope) => - { - var services = scope.ServiceProvider; - var _runService = App.GetService(services); - var res = await _runService.GetRelationFormList(relationFormModel, listQueryInput); - _cacheManager.Set(redisName, res.list.ToList(), TimeSpan.FromMinutes(10)); // 缓存10分钟 - }); + //Scoped.Create(async (_, scope) => + //{ + // var services = scope.ServiceProvider; + // var _runService = App.GetService(services); + // var res = await _runService.GetRelationFormList(relationFormModel, listQueryInput); + // _cacheManager.Set(redisName, res.list.ToList(), TimeSpan.FromMinutes(10)); // 缓存10分钟 + //}); var cacheStr = _cacheManager.Get(redisName); - if (cacheStr.IsNotEmptyOrNull()) relationFormDataList = _cacheManager.Get(redisName).ToObject>>(); + //modified by PhilPan + if (string.IsNullOrEmpty(cacheStr)) + { + await Scoped.CreateAsync(async (_, scope) => + { + var services = scope.ServiceProvider; + var _runService = App.GetService(services); + var res = await _runService.GetRelationFormList(relationFormModel, listQueryInput); + _cacheManager.Set(redisName, res.list.ToList(), TimeSpan.FromMinutes(10)); // 缓存10分钟 + cacheStr = _cacheManager.Get(redisName); + }); + } + if (cacheStr.IsNotEmptyOrNull()) relationFormDataList = cacheStr.ToObject>>(); } var relationFormRealData = relationFormDataList.Where(it => it["id"].Equals(dataMap[key])).FirstOrDefault(); diff --git a/visualdev/Tnb.VisualDev/VisualDevService.cs b/visualdev/Tnb.VisualDev/VisualDevService.cs index 7bf72960..b58d68df 100644 --- a/visualdev/Tnb.VisualDev/VisualDevService.cs +++ b/visualdev/Tnb.VisualDev/VisualDevService.cs @@ -175,6 +175,8 @@ public class VisualDevService : IVisualDevService, IDynamicApiController, ITrans public async Task GetFormDataFields(string id) { VisualDevEntity? templateEntity = await _visualDevRepository.AsQueryable().FirstAsync(v => v.Id == id && v.DeleteMark == null); + //modified by PhilPan + if (templateEntity == null) throw Oops.Oh(ErrorCode.D1418, id); TemplateParsingBase? tInfo = new TemplateParsingBase(templateEntity); // 解析模板 List? fieldsModels = tInfo.SingleFormData.FindAll(x => x.__vModel__.IsNotEmptyOrNull() && !JnpfKeyConst.RELATIONFORM.Equals(x.__config__.jnpfKey)); List? output = fieldsModels.Select(x => new VisualDevFormDataFieldsOutput() @@ -198,6 +200,8 @@ public class VisualDevService : IVisualDevService, IDynamicApiController, ITrans if (!string.IsNullOrWhiteSpace(input.relationField) && !string.IsNullOrWhiteSpace(input.keyword)) queryDic.Add(input.relationField, input.keyword); VisualDevEntity? templateEntity = await _visualDevRepository.AsQueryable().FirstAsync(v => v.Id == id && v.DeleteMark == null); // 取数据 + //modified by PhilPan + if (templateEntity == null) throw Oops.Oh(ErrorCode.D1418, id); TemplateParsingBase? tInfo = new TemplateParsingBase(templateEntity); // 解析模板 // 指定查询字段