Files
tnb.server/apihost/Tnb.API.Entry/wwwroot/Template/5-PrimarySecondary/Service.cs.vm
2023-03-13 15:00:34 +08:00

3469 lines
159 KiB
Plaintext

using JNPF.Common.Core.Manager;
using JNPF.Common.Models;
@if(Model.IsExport)
{
@:using JNPF.ClayObject;
}
@if(Model.IsImportData || Model.IsExport)
{
@:using JNPF.Common.Models.NPOI;
}
@if(Model.IsImportData)
{
@:using JNPF.Common.Const;
@:using JNPF.Common.CodeGen.ExportImport;
@:using JNPF.Common.Core.Manager.Files;
@:using JNPF.Common.Dtos;
}
using JNPF.Common.Manager;
using JNPF.Common.CodeGen.DataParsing;
using JNPF.Common.Enums;
using JNPF.Common.Extension;
using JNPF.Common.Filter;
using JNPF.Common.Security;
using JNPF.DatabaseAccessor;
using JNPF.DependencyInjection;
using JNPF.DynamicApiController;
using JNPF.FriendlyException;
using JNPF.Systems.Entitys.System;
using JNPF.Systems.Entitys.Permission;
using JNPF.Systems.Interfaces.System;
@if(Model.EnableFlow)
{
@:using JNPF.WorkFlow.Entitys.Entity;
}
@if(Model.IsImportData)
{
@:using JNPF.VisualDev.Engine;
@:using JNPF.VisualDev.Engine.Core;
@:using Microsoft.AspNetCore.Http;
}
using JNPF.@(Model.NameSpace).Entitys.Dto.@Model.ClassName;
@foreach(var table in Model.AuxiliayTableRelations)
{
@*循环出副表的命名空间*@
@:using JNPF.@(Model.NameSpace).Entitys.Dto.@(table.ClassName);
}
@foreach(var table in Model.TableRelations)
{
@*循环出子表的命名空间*@
@:using JNPF.@(Model.NameSpace).Entitys.Dto.@(table.ClassName);
}
using JNPF.@(Model.NameSpace).Entitys;
using JNPF.@(Model.NameSpace).Interfaces;
using Mapster;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
namespace JNPF.@(Model.NameSpace);
/// <summary>
/// 业务实现:@(Model.BusName).
/// </summary>
[ApiDescriptionSettings(Tag = "@(Model.Type == 3 ? Model.NameSpace + "Form" : Model.NameSpace)", Name = "@Model.ClassName", Order = 200)]
[Route("api/@(Model.Type == 3 ? Model.NameSpace+ "/Form" : Model.NameSpace)/[controller]")]
public class @(Model.ClassName)Service : I@(Model.ClassName)Service, IDynamicApiController, ITransient
{
/// <summary>
/// 服务基础仓储.
/// </summary>
private readonly ISqlSugarRepository<@(Model.ClassName)Entity> _repository;
@if(Model.IsBillRule)
{
@:
@:/// <summary>
@:/// 单据规则服务.
@:/// </summary>
@:private readonly IBillRullService _billRullService;
}
@if(Model.DbLinkId != "0" || Model.IsImportData)
{
@:
@:/// <summary>
@:/// 数据库管理.
@:/// </summary>
@:private readonly IDataBaseManager _dataBaseManager;
}
/// <summary>
/// 数据接口服务.
/// </summary>
private readonly IDataInterfaceService _dataInterfaceService;
/// <summary>
/// 缓存管理.
/// </summary>
private readonly ICacheManager _cacheManager;
/// <summary>
/// 通用数据解析.
/// </summary>
private readonly ControlParsing _controlParsing;
/// <summary>
/// 用户管理.
/// </summary>
private readonly IUserManager _userManager;
@if(Model.IsImportData)
{
@:
@:/// <summary>
@:/// 代码生成导出数据帮助类.
@:/// </summary>
@:private readonly ExportImportDataHelper _exportImportDataHelper;
@:
@:/// <summary>
@:/// 文件服务.
@:/// </summary>
@:private readonly IFileManager _fileManager;
}
@if(Model.DbLinkId != "0")
{
@:
@:/// <summary>
@:/// 客户端.
@:/// </summary>
@:private static SqlSugarScope? _sqlSugarClient;
}
@if(Model.IsImportData || Model.IsExport)
{
@:
@:/// <summary>
@:/// 导出字段.
@:/// </summary>
@:private readonly List<ParamsModel> paramList = "[@(Model.ExportField)]".ToList<ParamsModel>();
}
@if(Model.IsImportData)
{
@:
@{var importField = 0;}
@:/// <summary>
@:/// 导入字段.
@:/// </summary>
@:private readonly List<ParamsModel> childParanList = "[@foreach(var table in Model.TableRelations){@if(table.IsImportData){@(importField == 0 ? "": ", ")@("{\\\"value\\\":\\\"" + table.ControlTableComment + "\\\",\\\"field\\\":\\\""+ table.ControlModel +"\\\"}")importField++;}}]".ToList<ParamsModel>();
@:
@{importField = 0;}
@:/// <summary>
@:/// 导入字段.
@:/// </summary>
@:private readonly string[] uploaderKey = new string[] {@foreach(var table in Model.TableField){@if(table.IsImportField){@switch(table.IsAuxiliary){case true:@(importField==0 ? "\"" + "jnpf_" + @table.TableName + "_jnpf_" + @table.OriginalColumnName + "\"" : ", \"" + "jnpf_" + @table.TableName + "_jnpf_" + @table.OriginalColumnName + "\"")break;default:@(importField==0 ? "\"" + table.OriginalColumnName + "\"" : ", \"" + table.OriginalColumnName + "\"")break;} importField++;}}@foreach(var table in Model.TableRelations){@if(table.IsImportData){@(", \""+ table.ControlModel + "\"")@foreach(var column in table.ChilderColumnConfigList){@if(column.IsImportField){@(", \""+ table.ControlModel + "-" + column.OriginalColumnName + "\"")}}}} };
}
/// <summary>
/// 初始化一个<see cref="@(Model.ClassName)Service"/>类型的新实例.
/// </summary>
public @(Model.ClassName)Service(
ISqlSugarRepository<@(Model.ClassName)Entity> repository,
@if(Model.IsBillRule)
{
@:IBillRullService billRullService,
}
IDataInterfaceService dataInterfaceService,
@if(Model.DbLinkId != "0" || Model.IsImportData)
{
@:IDataBaseManager dataBaseManager,
}
@if(Model.DbLinkId != "0"){
@:ISqlSugarClient context,
}
@if(Model.IsImportData){
@:ExportImportDataHelper exportImportDataHelper,
@:IFileManager fileManager,
}
ICacheManager cacheManager,
ControlParsing controlParsing,
IUserManager userManager)
{
_repository = repository;
@if(Model.IsBillRule)
{
@:_billRullService = billRullService;
}
@if(Model.DbLinkId != "0" || Model.IsImportData)
{
@:_dataBaseManager = dataBaseManager;
}
@if(Model.DbLinkId != "0")
{
@:_sqlSugarClient = (SqlSugarScope)context;
}
@if(Model.IsImportData)
{
@:_exportImportDataHelper = exportImportDataHelper;
@:_fileManager = fileManager;
}
_dataInterfaceService = dataInterfaceService;
_cacheManager = cacheManager;
_controlParsing = controlParsing;
_userManager = userManager;
}
@foreach(var item in Model.Function)
{
@switch(item.FullName)
{
@*信息方法*@
case "info":
@:
@:/// <summary>
@:/// 获取@(Model.BusName).
@:/// </summary>
@:/// <param name="id">主键值.</param>
@:/// <returns></returns>
@:[HttpGet("{id}")]
@:public async Task<dynamic> GetInfo(@(Model.PrimaryKeyPolicy == 1 ? "string" : Model.EnableFlow ? "string" : "long") id)
@:{
@if(Model.DbLinkId != "0")
{
@:var dbLink = await _repository.AsSugarClient().Queryable<DbLinkEntity>().FirstAsync(it => it.Id.Equals("@(Model.DbLinkId)"));
@:_sqlSugarClient = _dataBaseManager.ChangeDataBase(dbLink);
@:
}
@:var output = await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Queryable<" + Model.ClassName + "Entity>()" : "_repository.AsQueryable()")
@foreach(var table in Model.AuxiliayTableRelations)
{
@:.Includes(it => it.@(table.ClassName))
}
@foreach(var table in Model.TableRelations)
{
@:.Includes(it => it.@(table.ClassName)List)
}
@:.FirstAsync(it => it.@(Model.EnableFlow && Model.PrimaryKeyPolicy == 2 ? "FlowTaskId" : Model.PrimaryKey).Equals(id));
@:
@*获取出副表数据*@
@foreach(var table in Model.AuxiliayTableRelations)
{
@:var auxiliay@(table.ClassName) = output?.@(table.ClassName).Adapt<@(table.ClassName)InfoOutput>();
}
@:
@:var data = output.Adapt<@(Model.ClassName)InfoOutput>();
@:
@:if(output != null)
@:{
@*合并*@
@foreach(var table in Model.AuxiliayTableRelations)
{
@:if (output.@(table.ClassName) != null)
@:data = ConcurrentDictionaryExtensions.AssignmentObject(data, auxiliay@(table.ClassName)).Adapt<@(Model.ClassName)InfoOutput>();
}
@foreach(var column in Model.TableField)
{
@{var parameterName = string.Empty;}
@switch(column.IsAuxiliary)
{
case true:
@{parameterName = "jnpf_" + @column.TableName + "_jnpf_" + @column.LowerColumnName;}
break;
default:
@{parameterName = @column.LowerColumnName;}
break;
}
@switch(column.jnpfKey)
{
case "modifyUser":
case "createUser":
@:
@:// @column.ColumnComment
@:data.@(parameterName) = await _repository.AsSugarClient().Queryable<UserEntity>().Where(it => it.Id.Equals(data.@(parameterName))).Select(it => SqlFunc.MergeString(it.RealName, "/", it.Account)).FirstAsync();
break;
case "currOrganize":
@:
@:// @column.ColumnComment
@:data.@(parameterName) = await _repository.AsSugarClient().Queryable<OrganizeEntity>().Where(it => it.Id.Equals(data.@(parameterName))).Select(it => it.FullName).FirstAsync();
break;
case "currPosition":
@:
@:// @column.ColumnComment
@:data.@(parameterName) = await _repository.AsSugarClient().Queryable<PositionEntity>().Where(it => it.Id.Equals(data.@(parameterName))).Select(it => it.FullName).FirstAsync();
break;
}
}
@:}
@:else
@:{
@:data = new @(Model.ClassName)InfoOutput();
@:}
@:return data;
@:}
break;
@*流程保存*@
case "save":
@:
@:/// <summary>
@:/// 保存.
@:/// </summary>
@:/// <param name="id">主键值.</param>
@:/// <param name="input">表单数据.</param>
@:/// <returns></returns>
@:[HttpPost("{id}")]
@:[UnitOfWork]
@:public async Task Save(string id, [FromBody] @(@Model.ClassName)CrInput input)
@:{
@*跨库*@
@if(Model.DbLinkId != "0")
{
@:var dbLink = await _repository.AsSugarClient().Queryable<DbLinkEntity>().FirstAsync(it => it.Id.Equals("@(@Model.DbLinkId)"));
@:_sqlSugarClient = _dataBaseManager.ChangeDataBase(dbLink);
@:
}
@:var entity = input.Adapt<@(@Model.ClassName)Entity>();
@:entity.@(Model.PrimaryKeyPolicy == 1 ? Model.PrimaryKey : "FlowTaskId") = id;
@:if (await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Queryable<" + Model.ClassName + "Entity>()." : "_repository.Is")AnyAsync(x => x.@(Model.PrimaryKeyPolicy == 1 ? Model.PrimaryKey : "FlowTaskId").Equals(id)@(Model.PrimaryKeyPolicy == 2 ? " || x." + Model.PrimaryKey + ".Equals(id)" : "")))
@:{
@if(Model.PrimaryKeyPolicy == 2)
{
@:entity.Id = (await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Queryable<" + Model.ClassName + "Entity>()." : "_repository.Get")FirstAsync(it=> it.FlowTaskId.Equals(entity.FlowTaskId)@(Model.PrimaryKeyPolicy == 2 ? " || it." + Model.PrimaryKey + ".Equals(entity.FlowTaskId)" : ""))).Id;
}
@{ GetAndModifyDataMethodTemplate(); }
@:}
@:else
@:{
@{ GetTheNewDataMethodTemplate(); }
@:}
@:}
break;
@*新增*@
case "add":
@:
@:/// <summary>
@:/// 新建@(Model.BusName).
@:/// </summary>
@:/// <param name="input">参数.</param>
@:/// <returns></returns>
@:[HttpPost("")]
@:[UnitOfWork]
@:public async Task Create([FromBody] @(Model.ClassName)CrInput input)
@:{
@if(Model.DbLinkId != "0")
{
@:var dbLink = await _repository.AsSugarClient().Queryable<DbLinkEntity>().FirstAsync(it => it.Id.Equals("@(Model.DbLinkId)"));
@:_sqlSugarClient = _dataBaseManager.ChangeDataBase(dbLink);
@:
}
@:var entity = input.Adapt<@(Model.ClassName)Entity>();
@if(Model.PrimaryKeyPolicy == 1)
{
@:entity.@(Model.PrimaryKey) = SnowflakeIdHelper.NextId();
}
@{GetTheNewDataMethodTemplate();}
@:}
break;
@*编辑*@
case "edit":
@:
@:/// <summary>
@:/// 更新@(Model.BusName).
@:/// </summary>
@:/// <param name="id">主键值.</param>
@:/// <param name="input">参数.</param>
@:/// <returns></returns>
@:[HttpPut("{id}")]
@:[UnitOfWork]
@:public async Task Update(@(Model.PrimaryKeyPolicy == 1 ? "string" : "long") id, [FromBody] @(Model.ClassName)UpInput input)
@:{
@*跨库*@
@if(Model.DbLinkId != "0")
{
@:var dbLink = await _repository.AsSugarClient().Queryable<DbLinkEntity>().FirstAsync(it => it.Id.Equals("@(Model.DbLinkId)"));
@:_sqlSugarClient = _dataBaseManager.ChangeDataBase(dbLink);
@:
}
@:var entity = input.Adapt<@(Model.ClassName)Entity>();
@{ GetAndModifyDataMethodTemplate(); }
@:}
break;
@*删除*@
case "remove":
@:
@:/// <summary>
@:/// 删除@(Model.BusName).
@:/// </summary>
@:/// <returns></returns>
@:[HttpDelete("{id}")]
@:[UnitOfWork]
@:public async Task Delete(@(Model.PrimaryKeyPolicy == 1 ? "string" : "long") id)
@:{
@*跨库*@
@if(Model.DbLinkId != "0")
{
@:var dbLink = await _repository.AsSugarClient().Queryable<DbLinkEntity>().FirstAsync(it => it.Id.Equals("@(Model.DbLinkId)"));
@:_sqlSugarClient = _dataBaseManager.ChangeDataBase(dbLink);
@:
}
@:if(!await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Queryable<" + Model.ClassName + "Entity>()." : "_repository.Is")AnyAsync(it => it.@(Model.PrimaryKey) == id))
@:throw Oops.Oh(ErrorCode.COM1005);
@:
@*删除主表数据*@
@:var entity = await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Queryable<" + @Model.ClassName + "Entity>()." : "_repository.Get")FirstAsync(it => it.@(Model.PrimaryKey).Equals(id));
@:await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Deleteable<" + Model.ClassName + "Entity>()" : "_repository.AsDeleteable()").Where(it => it.@(Model.PrimaryKey).Equals(id)).ExecuteCommandAsync();
@*删除副表数据*@
@foreach(var table in Model.AuxiliayTableRelations)
{
@:
@:// 清空@(table.TableComment)表数据
@:await @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").Deleteable<@(table.ClassName)Entity>().Where(it => it.@(table.TableField).Equals(entity.@(table.RelationField))).ExecuteCommandAsync();
}
@*删除子表数据*@
@foreach(var table in Model.TableRelations)
{
@:
@:// 清空@(table.TableComment)表数据
@:await @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").Deleteable<@(table.ClassName)Entity>().Where(it => it.@(table.TableField).Equals(entity.@(table.RelationField))).ExecuteCommandAsync();
}
@:}
break;
@*详情*@
case "detail":
@:
@:/// <summary>
@:/// @(Model.BusName)详情.
@:/// </summary>
@:/// <param name="id">主键值.</param>
@:/// <returns></returns>
@:[HttpGet("Detail/{id}")]
@:public async Task<dynamic> GetDetails(@(Model.PrimaryKeyPolicy == 1 ? "string" : "long") id)
@:{
@{var tableNo = Model.AuxiliayTableRelations.Count; }
@*跨库*@
@if(Model.DbLinkId != "0")
{
@:var dbLink = await _repository.AsSugarClient().Queryable<DbLinkEntity>().FirstAsync(it => it.Id.Equals("@(Model.DbLinkId)"));
@:_sqlSugarClient = _dataBaseManager.ChangeDataBase(dbLink);
@:
}
@:var data = await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Queryable<" + Model.ClassName + "Entity>()" : "_repository.AsQueryable()")
@foreach(var table in Model.AuxiliayTableRelations)
{
@:.Includes(x => x.@(table.ClassName))
}
@:.Where(it => it.@(Model.PrimaryKey) == id).ToListAsync(it => new @(Model.ClassName)DetailOutput
@:{
@*循环展示字段*@
@foreach (var column in Model.TableField){
@{var parameterName = string.Empty;}
@{var parameterValue = string.Empty;}
@switch(column.IsAuxiliary)
{
case true:
@{parameterName = "jnpf_" + @column.TableName + "_jnpf_" + @column.LowerColumnName;}
@{parameterValue = "it." + @column.ClassName;}
break;
default:
@{parameterName = @column.LowerColumnName;}
@{parameterValue = "it";}
break;
}
@if (column.PrimaryKey){
@:@(column.LowerColumnName) = it.@column.ColumnName,
}else if(column.jnpfKey != null){
@switch(column.jnpfKey)
{
case "uploadFz":
case "uploadImg":
@:@(parameterName)List = @(parameterValue).@(column.ColumnName),
break;
case "switch":
@:@(parameterName) = SqlFunc.IIF(@(parameterValue).@(column.ColumnName) == 0, "@(column.InactiveTxt)", "@(column.ActiveTxt)"),
break;
case "date":
@:@(parameterName) = @(parameterValue).@(column.ColumnName)@(column.IsAuxiliary ? "" : ".Value.ToString(\"" + column.Format + "\")"),
break;
case "createTime":
case "modifyTime":
@:@(parameterName) = @(parameterValue).@(column.ColumnName)@(column.IsAuxiliary ? "" : ".Value.ToString(\"yyyy-MM-dd HH:mm\")"),
break;
case "modifyUser":
case "createUser":
@:@(parameterName) = SqlFunc.Subqueryable<UserEntity>()@(Model.DbLinkId != "0" ? ".AS(\"db_"+ Model.ConfigId +"."+ Model.DBName +".dbo.BASE_USER\")" : "").Where(u => u.Id.Equals(@(parameterValue).@(column.ColumnName))).Select(u => SqlFunc.MergeString(u.RealName, "/", u.Account)),
break;
case "currOrganize":
@:@(parameterName) = SqlFunc.Subqueryable<OrganizeEntity>()@(Model.DbLinkId != "0" ? ".AS(\"db_"+ Model.ConfigId +"."+ Model.DBName +".dbo.BASE_ORGANIZE\")" : "").Where(o => o.Id.Equals(@(parameterValue).@(column.ColumnName))).Select(o => o.FullName),
break;
case "currPosition":
@:@(parameterName) = SqlFunc.Subqueryable<PositionEntity>()@(Model.DbLinkId != "0" ? ".AS(\"db_"+ Model.ConfigId +"."+ Model.DBName +".dbo.BASE_POSITION\")" : "").Where(p => p.Id.Equals(@(parameterValue).@(column.ColumnName))).Select(p => p.FullName),
break;
case "userSelect":
@if(!column.IsMultiple)
{
@:@(parameterName) = SqlFunc.Subqueryable<UserEntity>()@(Model.DbLinkId != "0" ? ".AS(\"db_"+ Model.ConfigId +"."+ Model.DBName +".dbo.BASE_USER\")" : "").Where(u => u.Id.Equals(@(parameterValue).@(column.ColumnName))).Select(u => u.RealName),
}else{
@:@(parameterName) = @(parameterValue).@(column.ColumnName),
}
break;
case "posSelect":
@if(!column.IsMultiple)
{
@:@(parameterName) = SqlFunc.Subqueryable<PositionEntity>()@(Model.DbLinkId != "0" ? ".AS(\"db_"+ Model.ConfigId +"."+ Model.DBName +".dbo.BASE_POSITION\")" : "").Where(p => p.Id.Equals(@(parameterValue).@(column.ColumnName))).Select(p => p.FullName),
}else{
@:@(parameterName) = @(parameterValue).@(column.ColumnName),
}
break;
case "depSelect":
@if(!column.IsMultiple)
{
@:@(parameterName) = SqlFunc.Subqueryable<OrganizeEntity>()@(Model.DbLinkId != "0" ? ".AS(\"db_"+ Model.ConfigId +"."+ Model.DBName +".dbo.BASE_ORGANIZE\")" : "").Where(o => o.Id.Equals(@(parameterValue).@(column.ColumnName))).Select(o => o.FullName),
}else{
@:@(parameterName) = @(parameterValue).@(column.ColumnName),
}
break;
case "roleSelect":
@if(!column.IsMultiple)
{
@:@(parameterName) = SqlFunc.Subqueryable<RoleEntity>()@(Model.DbLinkId != "0" ? ".AS(\"db_"+ Model.ConfigId +"."+ Model.DBName +".dbo.BASE_ROLE\")" : "").Where(r => r.Id.Equals(@(parameterValue).@(column.ColumnName))).Select(r => r.FullName),
}else{
@:@(parameterName) = @(parameterValue).@(column.ColumnName),
}
break;
case "groupSelect":
@if(!column.IsMultiple)
{
@:@(parameterName) = SqlFunc.Subqueryable<GroupEntity>()@(Model.DbLinkId != "0" ? ".AS(\"db_"+ Model.ConfigId +"."+ Model.DBName +".dbo.BASE_GROUP\")" : "").Where(g => g.Id.Equals(@(parameterValue).@(column.ColumnName))).Select(g => g.FullName),
}else{
@:@(parameterName) = @(parameterValue).@(column.ColumnName),
}
break;
case "radio":
@switch(column.ControlsDataType)
{
case "dictionary":
@if(!column.IsMultiple)
{
@:@(parameterName) = SqlFunc.Subqueryable<DictionaryDataEntity>()@(Model.DbLinkId != "0" ? ".AS(\"db_"+ Model.ConfigId +"."+ Model.DBName +".dbo.BASE_DICTIONARYDATA\")" : "").Where(dic => dic.@(column.Value == "id" ? "Id" : "EnCode").Equals(@(parameterValue).@(column.ColumnName)) && dic.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(dic => dic.FullName),
}else{
@:@(parameterName) = @(parameterValue).@(column.ColumnName)@(column.DataType == "int" ? ".ToString()" : ""),
}
break;
default:
@:@(parameterName) = @(parameterValue).@(column.ColumnName)@(column.DataType == "int" ? ".ToString()" : ""),
break;
}
break;
case "select":
case "treeSelect":
@switch(column.ControlsDataType)
{
case "dictionary":
@if(!column.IsMultiple)
{
@:@(parameterName) = SqlFunc.Subqueryable<DictionaryDataEntity>()@(Model.DbLinkId != "0" ? ".AS(\"db_"+ Model.ConfigId +"."+ Model.DBName +".dbo.BASE_DICTIONARYDATA\")" : "").Where(dic => dic.@(column.Value == "id" ? "Id" : "EnCode").Equals(@(parameterValue).@(column.ColumnName)) && dic.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(dic => dic.FullName),
}else{
@:@(parameterName) = @(parameterValue).@(column.ColumnName),
}
break;
default:
@:@(parameterName) = @(parameterValue).@(column.ColumnName)@(column.NetType == "int" ? ".ToString()" : ""),
break;
}
break;
default:
@:@(parameterName) = @(parameterValue).@(column.ColumnName)@(column.NetType == "int" ? ".ToString()" : ""),
break;
}
}
}
@:});
@:
@:await @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").ThenMapperAsync(data, async item =>
@:{
@foreach(var table in Model.TableRelations)
{
@:item.@(table.ControlModel) = @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").Queryable<@(table.ClassName)Entity>().SetContext(scl => scl.@(table.TableField), () => item.@(table.LowerRelationField), item).ToList().Adapt<List<@(table.ClassName)DetailOutput>>();
@:
}
@if(Model.IsConversion)
{
@foreach (var column in Model.TableField)
{
@{var dataCount = column.StaticData != null ? column.StaticData.Count : 0;}
@*参数名*@
@{var parameterName = string.Empty;}
@switch(column.IsAuxiliary)
{
case true:
@{parameterName = "jnpf_" + @column.TableName + "_jnpf_" + @column.LowerColumnName;}
break;
default:
@{parameterName = @column.LowerColumnName;}
break;
}
@if(column.IsDetailConversion)
{
@switch(column.jnpfKey)
{
case "uploadFz":
case "uploadImg":
@:if(item.@(parameterName)List != null)
@:{
@:item.@(parameterName) = item.@(parameterName)List.ToObject<List<FileControlsModel>>();
@:item.@(parameterName)List = null;
@:}
@:else
@:{
@:item.@(parameterName) = new List<FileControlsModel>();
@:}
@:
break;
case "select":
@:// @column.ColumnComment
@switch(column.ControlsDataType)
{
case "static":
@:var @(parameterName)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject<List<StaticDataModel>>();
@:if(item.@(parameterName) != null)
@:{
@if(!column.IsMultiple)
{
@:item.@(parameterName) = @(parameterName)Data.Find(it => item.@(parameterName).Equals(it.id))?.fullName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join(",", @(parameterName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(s => s.fullName));
}
@:}
break;
case "dictionary":
@:if(item.@(parameterName) != null)
@:{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join(",", await _repository.AsSugarClient().Queryable<DictionaryDataEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).ToListAsync());
@:}
break;
case "dynamic":
@:if(item.@(parameterName) != null)
@:{
@:var @(parameterName)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "");
@if(!column.IsMultiple)
{
@:item.@(parameterName) = @(parameterName)Data.Find(it => it.id.Equals(item.@(parameterName)))?.fullName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join(",", @(parameterName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(s => s.fullName));
}
@:}
break;
}
@:
break;
case "checkbox":
@:// @column.ColumnComment
@switch(column.ControlsDataType)
{
case "static":
@:var @(parameterName)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject<List<StaticDataModel>>();
@:if(item.@(parameterName) != null)
@:{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join(",", @(parameterName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(s => s.fullName));
@:}
break;
case "dictionary":
@:if(item.@(parameterName) != null)
@:{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join(",", await _repository.AsSugarClient().Queryable<DictionaryDataEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).ToListAsync());
@:}
break;
case "dynamic":
@:if(item.@(parameterName) != null)
@:{
@:var @(parameterName)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "");
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join(",", @(parameterName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(s => s.fullName));
@:}
break;
}
@:
break;
case "radio":
@:// @column.ColumnComment
@switch(column.ControlsDataType)
{
case "static":
@:var @(parameterName)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject<List<StaticDataModel>>();
@:if(item.@(parameterName) != null)
@:{
@:item.@(parameterName) = @(parameterName)Data.Find(it => item.@(parameterName).Equals(it.id))?.fullName;
@:}
break;
case "dynamic":
@:var @(parameterName)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "@(column.Children)");
@:if(item.@(parameterName) != null)
@:{
@:item.@(parameterName) = string.Join(",", @(parameterName)Data .Find(it => it.id.Equals(item.@(parameterName)))?.fullName);
@:}
break;
}
@:
break;
case "cascader":
@:// @column.ColumnComment
@switch(column.ControlsDataType)
{
case "static":
@:var @(parameterName)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject<List<StaticDataModel>>();
@:if(item.@(parameterName) != null)
@:{
@if(!column.IsMultiple)
{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join("@(column.Separator)", @(parameterName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(s => s.fullName));
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<List<string>>>();
@:var @(parameterName)Excessive = new List<string>();
@:foreach (var @(parameterName) in @(column.LowerColumnName + @column.upperJnpfKey))
@:{
@:@(parameterName)Excessive.Add(string.Join("@(column.Separator)", @(parameterName)Data.FindAll(it => @(parameterName).Contains(it.id)).Select(s => s.fullName)));
@:}
@:
@:item.@(parameterName) = string.Join(",", @(parameterName)Excessive);
}
@:}
break;
case "dictionary":
@:if(item.@(parameterName) != null)
@:{
@if(!column.IsMultiple)
{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join("@(column.Separator)", await _repository.AsSugarClient().Queryable<DictionaryDataEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).ToListAsync());
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<List<string>>>();
@:var @(parameterName)Excessive = new List<string>();
@:foreach (var @(parameterName) in @(column.LowerColumnName + @column.upperJnpfKey))
@:{
@:@(parameterName)Excessive.Add(string.Join("@(column.Separator)", await _repository.AsSugarClient().Queryable<DictionaryDataEntity>().Where(it => @(parameterName).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).ToListAsync()));
@:}
@:item.@(parameterName) = string.Join(",", @(parameterName)Excessive);
}
@:}
break;
case "dynamic":
@:var @(parameterName)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "@(column.Children)");
@:if(item.@(parameterName) != null)
@:{
@if(!column.IsMultiple)
{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join("@(column.Separator)", @(parameterName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName));
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<List<string>>>();
@:var @(parameterName)Excessive = new List<string>();
@:foreach (var @(parameterName) in @(column.LowerColumnName + @column.upperJnpfKey))
@:{
@:@(parameterName)Excessive.Add(string.Join("@(column.Separator)", @(parameterName)Data.FindAll(it => @(parameterName).Contains(it.id)).Select(it => it.fullName)));
@:}
@:
@:item.@(parameterName) = string.Join(",", @(parameterName)Excessive);
}
@:}
break;
}
@:
break;
case "comSelect":
@:// @column.ColumnComment
@:if(item.@(parameterName) != null)
@:{
@if(!column.IsMultiple)
{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join("/", await _repository.AsSugarClient().Queryable<OrganizeEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync());
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<List<string>>>();
@:var @(parameterName)Excessive = new List<string>();
@:foreach (var @(parameterName) in @(column.LowerColumnName + @column.upperJnpfKey))
@:{
@:@(parameterName)Excessive.Add(string.Join("/", await _repository.AsSugarClient().Queryable<OrganizeEntity>().Where(it => @(parameterName).Contains(it.Id)).Select(it => it.FullName).ToListAsync()));
@:}
@:
@:item.@(parameterName) = string.Join(",", @(parameterName)Excessive);
}
@:}
@:
break;
case "depSelect":
@:// @column.ColumnComment
@:if(item.@(parameterName) != null)
@:{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join(",", await _repository.AsSugarClient().Queryable<OrganizeEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync());
@:}
@:
break;
case "posSelect":
@:// @column.ColumnComment
@:if(item.@(parameterName) != null)
@:{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join(",", await _repository.AsSugarClient().Queryable<PositionEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync());
@:}
@:
break;
case "userSelect":
@:// @column.ColumnComment
@:if(item.@(parameterName) != null)
@:{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join(",", await _repository.AsSugarClient().Queryable<UserEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => a.RealName).ToListAsync());
@:}
@:
break;
case "roleSelect":
@:// @column.ColumnComment
@:if(item.@(parameterName) != null)
@:{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join(",", await _repository.AsSugarClient().Queryable<RoleEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync());
@:}
@:
break;
case "groupSelect":
@:// @column.ColumnComment
@:if(item.@(parameterName) != null)
@:{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join(",", await _repository.AsSugarClient().Queryable<GroupEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync());
@:}
@:
break;
case "treeSelect":
@:// @column.ColumnComment
@switch(column.ControlsDataType)
{
case "static":
@:var @(parameterName)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject<List<StaticDataModel>>();
@:if(item.@(parameterName) != null)
@:{
@if(!column.IsMultiple)
{
@:item.@(parameterName) = @(parameterName)Data.Find(it => it.id.Equals(item.@(parameterName)))?.fullName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join(",", @(parameterName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(s => s.fullName));
}
@:}
break;
case "dictionary":
@if(column.IsMultiple)
{
@:if(item.@(parameterName) != null)
@:{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join(",", await _repository.AsSugarClient().Queryable<DictionaryDataEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).ToListAsync());
@:}
}
break;
case "dynamic":
@:var @(parameterName)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "@(column.Children)");
@:if(item.@(parameterName) != null)
@:{
@if(!column.IsMultiple)
{
@:item.@(parameterName) = @(parameterName)Data.Find(it => it.id.Equals(item.@(parameterName)))?.fullName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join(",", @(parameterName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName));
}
@:}
break;
}
@:
break;
case "address":
@:// @column.ColumnComment
@:if(item.@(parameterName) != null)
@:{
@if(!column.IsMultiple)
{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join("/", await _repository.AsSugarClient().Queryable<ProvinceEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(a.Id)).Select(it => it.FullName).ToListAsync());
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<List<string>>>();
@:var @(parameterName)Excessive = new List<string>();
@:foreach (var @(parameterName) in @(column.LowerColumnName + @column.upperJnpfKey))
@:{
@:@(parameterName)Excessive.Add(string.Join("/", await _repository.AsSugarClient().Queryable<ProvinceEntity>().Where(it => @(parameterName).Contains(it.Id)).Select(it => it.FullName).ToListAsync()));
@:}
@:
@:item.@(parameterName) = string.Join(",", @(parameterName)Excessive);
}
@:}
@:
break;
case "popupTableSelect":
@:// @column.ColumnComment
@:var @(parameterName)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "@(column.Children)");
@:if(item.@(parameterName) != null)
@:{
@if(!column.IsMultiple)
{
@:item.@(parameterName) = @(parameterName)Data.Find(it => it.id.Equals(item.@(parameterName)))?.fullName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join(",", @(parameterName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName));
}
@:}
@:
break;
}
}
}
}
@:});
@foreach (var table in Model.TableRelations)
{
@if(table.IsConversion)
{
@:
@:await _repository.AsSugarClient().ThenMapperAsync(data.SelectMany(it => it.@(table.ControlModel)), async @(table.LowerClassName) =>
@:{
@foreach(var column in table.ChilderColumnConfigList)
{
@{var dataCount = column.StaticData != null ? column.StaticData.Count : 0;}
@if(column.IsShow && column.IsConversion)
{
@switch(column.jnpfKey)
{
case "switch":
@:// @column.ColumnComment
@:@(table.LowerClassName).@(column.LowerColumnName) = @(table.LowerClassName).@(column.LowerColumnName) == "0" ? "@(column.InactiveTxt)" : "@(column.ActiveTxt)";
break;
case "select":
@:// @column.ColumnComment
@switch(column.ControlsDataType)
{
case "static":
@:var @(column.LowerColumnName)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject<List<StaticDataModel>>();
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@if(!column.IsMultiple)
{
@:@(table.LowerClassName).@(column.LowerColumnName) = @(column.LowerColumnName)Data.Find(it => @(table.LowerClassName).@(column.LowerColumnName).Equals(it.id))?.fullName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName));
}
@:}
break;
case "dictionary":
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@if(!column.IsMultiple)
{
@:@(table.LowerClassName).@(column.LowerColumnName) = await _repository.AsSugarClient().Queryable<DictionaryDataEntity>().Where(it => it.@(column.Value == "id" ? "Id" : "EnCode").Equals(@(table.LowerClassName).@(column.LowerColumnName)) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).FirstAsync();
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable<DictionaryDataEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).ToListAsync());
}
@:}
break;
case "dynamic":
@:var @(column.LowerColumnName)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "");
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@if(!column.IsMultiple)
{
@:@(table.LowerClassName).@(column.LowerColumnName) = @(column.LowerColumnName)Data.Find(it => it.id.Equals(@(table.LowerClassName).@(column.LowerColumnName)))?.fullName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName));
}
@:}
break;
}
@:
break;
case "checkbox":
@:// @column.ColumnComment
@switch(column.ControlsDataType)
{
case "static":
@:var @(column.LowerColumnName)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject<List<StaticDataModel>>();
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName));
@:}
break;
case "dictionary":
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable<DictionaryDataEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).ToListAsync());
@:}
break;
case "dynamic":
@:var @(column.LowerColumnName)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "");
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(s => s.fullName));
@:}
break;
}
@:
break;
case "radio":
@:// @column.ColumnComment
@switch(column.ControlsDataType)
{
case "dictionary":
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@:@(column.LowerColumnName) = (await _repository.AsSugarClient().Queryable<DictionaryDataEntity>().FirstAsync(dic => dic.@(column.Value == "id" ? "Id" : "EnCode").Equals(@(table.LowerClassName).@(column.LowerColumnName)) && dic.DictionaryTypeId.Equals("@(column.propsUrl)")))?.FullName;
@:}
break;
case "static":
@:var @(column.LowerColumnName)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject<List<StaticDataModel>>();
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@:@(table.LowerClassName).@(column.LowerColumnName) = @(column.LowerColumnName)Data.Find(it => @(table.LowerClassName).@(column.LowerColumnName).Equals(it.id))?.fullName;
@:}
break;
case "dynamic":
@:var @(column.LowerColumnName)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "@(column.Children)");
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.Find(it => it.id.Equals(@(table.LowerClassName).@(column.LowerColumnName)))?.fullName);
@:}
break;
}
@:
break;
case "cascader":
@:// @column.ColumnComment
@switch(column.ControlsDataType)
{
case "static":
@:var @(column.LowerColumnName)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject<List<StaticDataModel>>();
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@if(!column.IsMultiple)
{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join("@(column.Separator)", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName));
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<List<string>>>();
@:var @(column.LowerColumnName)Excessive = new List<string>();
@:foreach (var @(column.LowerColumnName) in @(column.LowerColumnName + @column.upperJnpfKey))
@:{
@:@(column.LowerColumnName)Excessive.Add(string.Join("@(column.Separator)", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName).Contains(it.id)).Select(it => it.fullName)));
@:}
@:
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Excessive);
}
@:}
break;
case "dictionary":
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@if(!column.IsMultiple)
{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join("@(column.Separator)", await _repository.AsSugarClient().Queryable<DictionaryDataEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(itt => it.FullName).ToListAsync());
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<List<string>>>();
@:var @(column.LowerColumnName)Excessive = new List<string>();
@:foreach (var @(column.LowerColumnName) in @(column.LowerColumnName + @column.upperJnpfKey))
@:{
@:@(column.LowerColumnName)Excessive.Add(string.Join("@(column.Separator)", await _repository.AsSugarClient().Queryable<DictionaryDataEntity>().Where(it => @(column.LowerColumnName).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).ToListAsync()));
@:}
@:
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Excessive);
}
@:}
break;
case "dynamic":
@:var @(column.LowerColumnName)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "@(column.Children)");
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@if(!column.IsMultiple)
{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join("@(column.Separator)", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName));
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<List<string>>>();
@:var @(column.LowerColumnName)Excessive = new List<string>();
@:foreach (var @(column.LowerColumnName) in @(column.LowerColumnName + @column.upperJnpfKey))
@:{
@:@(column.LowerColumnName)Excessive.Add(string.Join("@(column.Separator)", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName).Contains(it.id)).Select(it => it.fullName)));
@:}
@:
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Excessive);
}
@:}
break;
}
@:
break;
case "comSelect":
@:// @column.ColumnComment
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@if(!column.IsMultiple)
{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join("/", await _repository.AsSugarClient().Queryable<OrganizeEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync());
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<List<string>>>();
@:var @(column.LowerColumnName)Excessive = new List<string>();
@:foreach (var @(column.LowerColumnName) in @(column.LowerColumnName + @column.upperJnpfKey))
@:{
@:@(column.LowerColumnName)Excessive.Add(string.Join("/", await _repository.AsSugarClient().Queryable<OrganizeEntity>().Where(it => @(column.LowerColumnName).Contains(it.Id)).Select(it => it.FullName).ToListAsync()));
@:}
@:
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Excessive);
}
@:}
@:
break;
case "depSelect":
@:// @column.ColumnComment
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@if(!column.IsMultiple)
{
@:@(table.LowerClassName).@(column.LowerColumnName) = (await _repository.AsSugarClient().Queryable<OrganizeEntity>().FirstAsync(it => it.Id.Equals(@(table.LowerClassName).@(column.LowerColumnName))))?.FullName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable<OrganizeEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync());
}
@:}
@:
break;
case "posSelect":
@:// @column.ColumnComment
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@if(!column.IsMultiple)
{
@:@(table.LowerClassName).@(column.LowerColumnName) = (await _repository.AsSugarClient().Queryable<PositionEntity>().FirstAsync(it => it.Id.Equals(@(table.LowerClassName).@(column.LowerColumnName))))?.FullName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable<PositionEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync());
}
@:}
@:
break;
case "userSelect":
@:// @column.ColumnComment
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@if(!column.IsMultiple)
{
@:@(table.LowerClassName).@(column.LowerColumnName) = (await _repository.AsSugarClient().Queryable<UserEntity>().FirstAsync(it => it.Id.Equals(@(table.LowerClassName).@(column.LowerColumnName))))?.RealName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable<UserEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.RealName).ToListAsync());
}
@:}
@:
break;
case "roleSelect":
@:// @column.ColumnComment
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@if(!column.IsMultiple)
{
@:@(table.LowerClassName).@(column.LowerColumnName) = (await _repository.AsSugarClient().Queryable<RoleEntity>().FirstAsync(it => it.Id.Equals(@(table.LowerClassName).@(column.LowerColumnName))))?.FullName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable<RoleEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync());
}
@:}
@:
break;
case "groupSelect":
@:// @column.ColumnComment
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@if(!column.IsMultiple)
{
@:@(table.LowerClassName).@(column.LowerColumnName) = (await _repository.AsSugarClient().Queryable<GroupEntity>().FirstAsync(it => it.Id.Equals(@(table.LowerClassName).@(column.LowerColumnName))))?.FullName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable<GroupEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync());
}
@:}
@:
break;
case "treeSelect":
@:// @column.ColumnComment
@switch(column.ControlsDataType)
{
case "static":
@:var @(column.LowerColumnName)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject<List<StaticDataModel>>();
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@if(!column.IsMultiple)
{
@:@(table.LowerClassName).@(column.LowerColumnName) = @(column.LowerColumnName)Data.Find(it => it.id.Equals(@(table.LowerClassName).@(column.LowerColumnName)))?.fullName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName));
}
@:}
break;
case "dictionary":
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@if(!column.IsMultiple)
{
@:@(table.LowerClassName).@(column.LowerColumnName) = (await _repository.AsSugarClient().Queryable<DictionaryDataEntity>().FirstAsync(it => it.@(column.Value == "id" ? "Id" : "EnCode").Equals(@(table.LowerClassName).@(column.LowerColumnName)) && it.DictionaryTypeId.Equals("@(column.propsUrl)")))?.FullName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable<DictionaryDataEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).ToListAsync());
}
@:}
break;
case "dynamic":
@:var @(column.LowerColumnName)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "@(column.Children)");
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@if(!column.IsMultiple)
{
@:@(table.LowerClassName).@(column.LowerColumnName) = @(column.LowerColumnName)Data.Find(it => it.id.Equals(@(table.LowerClassName).@(column.LowerColumnName)))?.fullName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName));
}
@:}
break;
}
@:
break;
case "address":
@:// @column.ColumnComment
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@if(!column.IsMultiple)
{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join("/", await _repository.AsSugarClient().Queryable<ProvinceEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync());
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<List<string>>>();
@:var @(column.LowerColumnName)Excessive = new List<string>();
@:foreach (var @(column.LowerColumnName) in @(column.LowerColumnName + @column.upperJnpfKey))
@:{
@:@(column.LowerColumnName)Excessive.Add(string.Join("/", await _repository.AsSugarClient().Queryable<ProvinceEntity>().Where(it => @(column.LowerColumnName).Contains(it.Id)).Select(it => it.FullName).ToListAsync()));
@:}
@:
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Excessive);
}
@:}
@:
break;
case "popupTableSelect":
@:// @column.ColumnComment
@:var @(column.LowerColumnName)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "@(column.Children)");
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@if(!column.IsMultiple)
{
@:@(table.LowerClassName).@(column.LowerColumnName) = @(column.LowerColumnName)Data.Find(it => it.id.Equals(@(table.LowerClassName).@(column.LowerColumnName)))?.fullName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName));
}
@:}
@:
break;
}
}
}
@:});
}
}
@:return data.FirstOrDefault();
@:}
break;
@*分页列表*@
case "page":
@:
@:/// <summary>
@:/// 获取@(Model.BusName)列表.
@:/// </summary>
@:/// <param name="input">请求参数.</param>
@:/// <returns></returns>
@if(item.IsInterface)
{
@:[HttpPost("List")]
}
@:@(item.IsInterface ? "public" : "private") async Task<dynamic> GetList(@(item.IsInterface ? "[FromBody] " : "")@(Model.ClassName)ListQueryInput input)
@:{
@if(Model.DbLinkId != "0")
{
@:var dbLink = await _repository.AsSugarClient().Queryable<DbLinkEntity>().FirstAsync(it => it.Id.Equals("@(Model.DbLinkId)"));
@:_sqlSugarClient = _dataBaseManager.ChangeDataBase(dbLink);
@:
}
@*是否开启数据权限*@
@if(Model.UseDataPermission)
{
@{DataRightsTemplate();}
}
@*是否开启高级查询*@
@if(Model.HasSuperQuery)
{
@{AdvancedQueryTemplate();}
}
@*列表查询字段处理*@
@{ListQueryFieldProcessingTemplate();}
@:var data = await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Queryable<" + @Model.ClassName + "Entity>()" : "_repository.AsQueryable()")
@foreach(var table in Model.AuxiliayTableRelations)
{
@:.Includes(x => x.@(table.ClassName))
}
@{NavigationQuerySubTableConfigurationTemplate();}
@*列表查询条件处理*@
@{ListQueryConditionProcessingTemplate();}
@*数据权限*@
@if(Model.UseDataPermission)
{
@:.Where(authorizeWhere)
@foreach(var table in Model.AuxiliayTableRelations)
{
@:.WhereIF(@(table.LowerClassName)AuthorizeWhere?.Count > 0, it => SqlFunc.Exists(it.@(table.ClassName).@(table.TableField), @(table.LowerClassName)AuthorizeWhere))
}
@foreach(var table in Model.TableRelations)
{
@:.WhereIF(@(table.LowerClassName)AuthorizeWhere?.Count > 0, it => it.@(table.ClassName)List.Any(@(table.LowerClassName)AuthorizeWhere))
}
}
@if(Model.HasSuperQuery)
{
@:.Where(mainConditionalModel)
@foreach(var table in Model.AuxiliayTableRelations)
{
@:.WhereIF(@(table.LowerClassName)ConditionalModel.Count > 0, it => SqlFunc.Exists(it.@(table.ClassName).@(table.TableField), @(table.LowerClassName)ConditionalModel))
}
@foreach(var table in Model.TableRelations)
{
@:.WhereIF(@(table.LowerClassName)ConditionalModel.Count > 0, it => it.@(table.ClassName)List.Any(@(table.LowerClassName)ConditionalModel))
}
}
@:.OrderByIF(string.IsNullOrEmpty(input.sidx), it => it.@(Model.PrimaryKey)).OrderByIF(!string.IsNullOrEmpty(input.sidx), input.sidx + " " + input.sort)
@:.ToPagedListAsync(input.currentPage, input.pageSize, it => new @(Model.ClassName)ListOutput
@:{
@*列表展示字段模板*@
@{ListDisplayFieldTemplate();}
@:});
@:@if(Model.IsConversion|| Model.EnableFlow)
{
@:
@:await _repository.AsSugarClient().ThenMapperAsync(data.list, async item =>
@:{
@*列表数据转换子副模块模板*@
@{ListDataConversionMainAndSecondaryModuleTemplate();}
@:});
}
@if(Model.IsChildIndexShow)
{
@{ListDataConversionSubTableModuleTemplate(1);}
}
@if(Model.ParsJnpfKeyConstList.Count > 0)
{
@:var resData = data.list.ToObject<List<Dictionary<string, object>>>(CommonConst.options);
@:List<FieldsModel> fieldList = new List<FieldsModel>();
@:fieldList.AddRange(ExportImportDataHelper.GetTemplateParsing<@(Model.ClassName)Entity>(new @(Model.ClassName)Entity()));
@foreach (var table in Model.AuxiliayTableRelations)
{
@if(table.IsImportData)
{
@:fieldList.AddRange(ExportImportDataHelper.GetTemplateParsing<@(table.ClassName)Entity>(new @(table.ClassName)Entity(), "@(table.OriginalTableName)"));
@:
}
}
@foreach (var table in Model.TableRelations)
{
@if(table.IsImportData)
{
@:ConfigModel @(table.ControlModel)Config = new ConfigModel
@:{
@:tableName = "@(table.OriginalTableName)",
@:jnpfKey = JnpfKeyConst.TABLE,
@:label = "@(table.ControlTableComment)",
@:children = ExportImportDataHelper.GetTemplateParsing<@(table.ClassName)Entity>(new @(table.ClassName)Entity())
@:};
@:FieldsModel @(table.ControlModel) = new FieldsModel()
@:{
@:__config__ = @(table.ControlModel)Config,
@:__vModel__ = "@(table.ControlModel)"
@:};
@:fieldList.Add(@(table.ControlModel));
@:
}
}
@foreach (var jnpfKeyConst in Model.ParsJnpfKeyConstList)
{
@:resData = await _controlParsing.GetParsDataList(resData, "@(jnpfKeyConst[1])", "@(jnpfKeyConst[0])", _userManager.TenantId, fieldList);
}
@:data.list = resData.ToObject<List<@(Model.ClassName)ListOutput>>(CommonConst.options);
}
@:
@if(Model.IndexDataType == 3)
{
@:return _userManager.UserOrigin.Equals("pc") ? CodeGenHelper.GetGroupList(data.list.ToObject<List<Dictionary<string, object>>>(),"@(Model.GroupField)", "@(Model.GroupShowField)") : PageResult<@(Model.ClassName)ListOutput>.SqlSugarPageResult(data);
}else{
@:return PageResult<@(Model.ClassName)ListOutput>.SqlSugarPageResult(data);
}
@:}
break;
case "noPage":
@:
@:/// <summary>
@:/// 获取@(Model.BusName)无分页列表.
@:/// </summary>
@:/// <param name="input">请求参数.</param>
@:/// <returns></returns>
@if(item.IsInterface)
{
@:[HttpPost("List")]
}
@:@(item.IsInterface ? "public" : "private") async Task<dynamic> GetNoPagingList(@(item.IsInterface ? "[FromBody] " : "")@(Model.ClassName)ListQueryInput input)
@:{
@if(Model.DbLinkId != "0")
{
@:var dbLink = await _repository.AsSugarClient().Queryable<DbLinkEntity>().FirstAsync(it => it.Id.Equals("@(Model.DbLinkId)"));
@:_sqlSugarClient = _dataBaseManager.ChangeDataBase(dbLink);
@:
}
@*是否开启数据权限*@
@if(Model.UseDataPermission)
{
@{DataRightsTemplate();}
}
@*是否开启高级查询*@
@if(Model.HasSuperQuery)
{
@{AdvancedQueryTemplate();}
}
@*列表查询字段处理*@
@{ListQueryFieldProcessingTemplate();}
@:var list = await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Queryable<" + @Model.ClassName + "Entity>()" : "_repository.AsQueryable()")
@foreach(var table in Model.AuxiliayTableRelations)
{
@:.Includes(x => x.@(table.ClassName))
}
@{NavigationQuerySubTableConfigurationTemplate();}
@*列表查询条件处理*@
@{ListQueryConditionProcessingTemplate();}
@*数据权限*@
@if(Model.UseDataPermission)
{
@:.Where(authorizeWhere)
@foreach(var table in Model.AuxiliayTableRelations)
{
@:.WhereIF(@(table.LowerClassName)AuthorizeWhere?.Count > 0, it => SqlFunc.Exists(it.@(table.ClassName).@(table.TableField), @(table.LowerClassName)AuthorizeWhere))
}
@foreach(var table in Model.TableRelations)
{
@:.WhereIF(@(table.LowerClassName)AuthorizeWhere?.Count > 0, it => it.@(table.ClassName)List.Any(@(table.LowerClassName)AuthorizeWhere))
}
}
@if(Model.HasSuperQuery)
{
@:.Where(mainConditionalModel)
@foreach(var table in Model.AuxiliayTableRelations)
{
@:.WhereIF(@(table.LowerClassName)ConditionalModel.Count > 0, it => SqlFunc.Exists(it.@(table.ClassName).@(table.TableField), @(table.LowerClassName)ConditionalModel))
}
@foreach(var table in Model.TableRelations)
{
@:.WhereIF(@(table.LowerClassName)ConditionalModel.Count > 0, it => it.@(table.ClassName)List.Any(@(table.LowerClassName)ConditionalModel))
}
}
@:.OrderByIF(string.IsNullOrEmpty(input.sidx), it => it.@(Model.PrimaryKey)).OrderByIF(!string.IsNullOrEmpty(input.sidx), input.sidx + " " + input.sort)
@:.ToListAsync(it => new @(Model.ClassName)ListOutput
@:{
@*列表展示字段模板*@
@{ListDisplayFieldTemplate();}
@:});
@:@if(Model.IsConversion)
{
@:
@:await _repository.AsSugarClient().ThenMapperAsync(list, async item =>
@:{
@*列表数据转换子副模块模板*@
@{ListDataConversionMainAndSecondaryModuleTemplate();}
@:});
}
@if(Model.IsChildIndexShow)
{
@{ListDataConversionSubTableModuleTemplate(0);}
}
@if(Model.ParsJnpfKeyConstList.Count>0)
{
@:var resData = list.ToObject<List<Dictionary<string, object>>>(CommonConst.options);
@:List<FieldsModel> fieldList = new List<FieldsModel>();
@:fieldList.AddRange(ExportImportDataHelper.GetTemplateParsing<@(Model.ClassName)Entity>(new @(Model.ClassName)Entity()));
@foreach (var table in Model.AuxiliayTableRelations)
{
@if(table.IsImportData)
{
@:fieldList.AddRange(ExportImportDataHelper.GetTemplateParsing<@(table.ClassName)Entity>(new @(table.ClassName)Entity(), "@(table.OriginalTableName)"));
@:
}
}
@foreach (var table in Model.TableRelations)
{
@if(table.IsImportData)
{
@:ConfigModel @(table.ControlModel)Config = new ConfigModel
@:{
@:tableName = "@(table.OriginalTableName)",
@:jnpfKey = JnpfKeyConst.TABLE,
@:label = "@(table.ControlTableComment)",
@:children = ExportImportDataHelper.GetTemplateParsing<@(table.ClassName)Entity>(new @(table.ClassName)Entity())
@:};
@:FieldsModel @(table.ControlModel) = new FieldsModel()
@:{
@:__config__ = @(table.ControlModel)Config,
@:__vModel__ = "@(table.ControlModel)"
@:};
@:fieldList.Add(@(table.ControlModel));
@:
}
}
@foreach (var jnpfKeyConst in Model.ParsJnpfKeyConstList)
{
@:resData = await _controlParsing.GetParsDataList(resData, "@(jnpfKeyConst[1])", "@(jnpfKeyConst[0])", _userManager.TenantId, fieldList);
}
@:list = resData.ToObject<List<@(Model.ClassName)ListOutput>>(CommonConst.options);
}
@:
@if(Model.IndexDataType == 3)
{
@:return _userManager.UserOrigin.Equals("pc") ? CodeGenHelper.GetGroupList(list.ToObject<List<Dictionary<string, object>>>(),"@(Model.GroupField)", "@(Model.PrimaryKey)") : list;
}else{
@:return list;
}
@:}
break;
@*导出*@
case "download":
@:
@:/// <summary>
@:/// 导出@(Model.BusName).
@:/// </summary>
@:/// <param name="input">请求参数.</param>
@:/// <returns></returns>
@:[HttpGet("Actions/Export")]
@:public async Task<dynamic> Export([FromQuery] @(Model.ClassName)ListQueryInput input)
@:{
@if(Model.IndexDataType == 3)
{
@:var exportData = new List<Dictionary<string, object>>();
@:if (input.dataType == 0)
@:exportData = await GetList(input);
@:else
@:exportData = await GetNoPagingList(input);
}else{
@:var exportData = new List<@(Model.ClassName)ListOutput>();
@:if (input.dataType == 0)
@:exportData = Clay.Object(await GetList(input)).Solidify<PageResult<@(Model.ClassName)ListOutput>>().list;
@:else
@:exportData = await GetNoPagingList(input);
}
@:var excelName="@(Model.FullName)";
@:_cacheManager.Set(excelName + ".xls", string.Empty);
@:return CodeGenExportDataHelper.GetDataExport(excelName, input.selectKey, _userManager.UserId, exportData.ToObject<List<Dictionary<string, object>>>(), paramList, @((Model.IndexDataType == 3).ToString().ToLower()));
@:}
break;
@*批量删除*@
case "batchRemove":
@:
@:/// <summary>
@:/// 批量删除@(Model.BusName).
@:/// </summary>
@:/// <param name="ids">主键数组.</param>
@:/// <returns></returns>
@:[HttpPost("batchRemove")]
@:[UnitOfWork]
@:public async Task BatchRemove([FromBody] List<@(Model.PrimaryKeyPolicy == 1 ? "string" : "long")> ids)
@:{
@*跨库*@
@if(Model.DbLinkId != "0")
{
@:var dbLink = await _repository.AsSugarClient().Queryable<DbLinkEntity>().FirstAsync(it => it.Id.Equals("@(Model.DbLinkId)"));
@:_sqlSugarClient = _dataBaseManager.ChangeDataBase(dbLink);
}
@if(Model.EnableFlow)
{
@:var idList = await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Queryable<" + Model.ClassName + "Entity>()" : "_repository.AsQueryable()").Where(it => ids.Contains(it.@(Model.PrimaryKey))).Select(it => it.@(Model.PrimaryKeyPolicy == 1 ? Model.PrimaryKey : "FlowTaskId")).ToListAsync();
@:
@:// 取差集
@:idList = idList.Except(await GetAllowDeleteFlowTaskList(idList)).ToList();
@:
@:var entitys = await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Queryable<" + Model.ClassName + "Entity>()" : "_repository.AsQueryable()").In(it => it.@(Model.PrimaryKeyPolicy == 1 ? @Model.PrimaryKey : "FlowTaskId"), idList).ToListAsync();
}else{
@:var entitys = await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Queryable<" + @Model.ClassName + "Entity>()" : "_repository.AsQueryable()").In(it => it.@(Model.PrimaryKey), ids).ToListAsync();
}
@:if (entitys.Count > 0)
@:{
@:// 批量删除@(Model.BusName)
@if(Model.EnableFlow)
{
@:await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Deleteable<" + Model.ClassName + "Entity>()" : "_repository.AsDeleteable()").In(it => it.@(@Model.PrimaryKey), entitys.Select(s => s.@(@Model.PrimaryKey)).ToList()).ExecuteCommandAsync();
}else{
@:await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Deleteable<" + @Model.ClassName + "Entity>()" : "_repository.AsDeleteable()").In(it => it.@(Model.PrimaryKey), ids).ExecuteCommandAsync();
}
@:
@foreach(var table in Model.AuxiliayTableRelations)
{
@:await @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").Deleteable<@(table.ClassName)Entity>().In(it => it.@(table.TableField), entitys.Select(it => it.@(table.RelationField))).ExecuteCommandAsync();
@:
}
@foreach(var table in Model.TableRelations){
@:// 清空@(table.TableComment)表数据
@:await @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").Deleteable<@(table.ClassName)Entity>().In(u => u.@(table.TableField), entitys.Select(s => s.@(table.RelationField)).ToArray()).ExecuteCommandAsync();
@:
}
@if(Model.EnableFlow)
{
@:
@:await _repository.AsSugarClient().Updateable<FlowTaskEntity>().SetColumns(it => new FlowTaskEntity()
@:{
@:DeleteMark = 1,
@:DeleteUserId = _userManager.UserId,
@:DeleteTime = SqlFunc.GetDate()
@:}).Where(it => idList.Contains(it.Id)).ExecuteCommandAsync();
}
@:}
@:}
@if(Model.EnableFlow)
{
@:
@:/// <summary>
@:/// 获取不允许删除任务列表.
@:/// </summary>
@:/// <param name="ids">id数组</param>
@:/// <returns></returns>
@:private async Task<List<string>> GetAllowDeleteFlowTaskList(List<string> ids)
@:{
@:return await _repository.AsSugarClient().Queryable<FlowTaskEntity>().Where(it => ids.Contains(it.ProcessId)).Where(it => !it.Status.Equals(0)).Where(it=> !it.Status.Equals(4)).Select(f => f.ProcessId).ToListAsync();
@:}
}
break;
@*导入*@
case "upload":
@:
@:/// <summary>
@:/// 下载模板.
@:/// </summary>
@:/// <returns></returns>
@:[HttpGet("TemplateDownload")]
@:public async Task<dynamic> TemplateDownload()
@:{
@:List<Dictionary<string, object>>? dataList = new List<Dictionary<string, object>>();
@:
@:// 赋予默认值
@:var dicItem = ExportImportDataHelper.GetTemplateHeader<@(Model.ClassName)Entity>(new @(Model.ClassName)Entity(), 1);
@foreach(var table in Model.AuxiliayTableRelations)
{
@if(table.IsImportData)
{
@:var @table.LowerClassName = ExportImportDataHelper.GetTemplateHeader<@(table.ClassName)Entity>(new @(table.ClassName)Entity(), 2, "@(table.OriginalTableName)");
}
}
@foreach (var table in Model.TableRelations)
{
@if(table.IsImportData)
{
@:var @table.ControlModel = ExportImportDataHelper.GetTemplateHeader<@(table.ClassName)Entity>(new @(table.ClassName)Entity(), 3, "@(table.ControlModel)");
}
}
@:
@:dicItem.Add("id", "id");
@{var tableName = 0;}
@foreach (var table in Model.AuxiliayTableRelations)
{
@if(table.IsImportData)
{
@:var table@(tableName + 1) = @(tableName == 0 ? "dicItem" : "table" + tableName).Concat(@(table.LowerClassName)).ToDictionary(k => k.Key, v => v.Value);
tableName++;
}
}
@foreach (var table in Model.TableRelations)
{
@if(table.IsImportData)
{
@:var table@(tableName + 1) = @(tableName == 0 ? "dicItem" : "table" + tableName).Concat(@(table.ControlModel)).ToDictionary(k => k.Key, v => v.Value);
tableName++;
}
}
@:dataList.Add(table@(tableName));
@:
@:var excelName = string.Format("{0} 导入模板_{1}", "@(Model.FullName)", SnowflakeIdHelper.NextId());
@:_cacheManager.Set(excelName + ".xls", string.Empty);
@:return CodeGenExportDataHelper.GetTemplateExport(excelName, string.Join(",", uploaderKey), _userManager.UserId, dataList, childParanList);
@:}
@:
@:/// <summary>
@:/// Excel导入.
@:/// </summary>
@:/// <param name="file"></param>
@:/// <returns></returns>
@:[HttpPost("Uploader")]
@:public async Task<dynamic> Uploader(IFormFile file)
@:{
@:var _filePath = _fileManager.GetPathByType(string.Empty);
@:var _fileName = DateTime.Now.ToString("yyyyMMdd") + "_" + SnowflakeIdHelper.NextId() + Path.GetExtension(file.FileName);
@:var stream = file.OpenReadStream();
@:await _fileManager.UploadFileByType(stream, _filePath, _fileName);
@:return new { name = _fileName, url = string.Format("/api/File/Image/{0}/{1}", string.Empty, _fileName) };
@:}
@:
@:/// <summary>
@:/// 导入预览.
@:/// </summary>
@:/// <returns></returns>
@:[HttpGet("ImportPreview")]
@:public async Task<dynamic> ImportPreview(string fileName)
@:{
@:List<FieldsModel> fieldList = new List<FieldsModel>();
@:fieldList.AddRange(ExportImportDataHelper.GetTemplateParsing<@(Model.ClassName)Entity>(new @(Model.ClassName)Entity()));
@foreach (var table in Model.AuxiliayTableRelations)
{
@if(table.IsImportData)
{
@:fieldList.AddRange(ExportImportDataHelper.GetTemplateParsing<@(table.ClassName)Entity>(new @(table.ClassName)Entity(), "@(table.OriginalTableName)"));
@:
}
}
@foreach (var table in Model.TableRelations)
{
@if(table.IsImportData)
{
@:ConfigModel @(table.ControlModel)Config = new ConfigModel
@:{
@:tableName = "@(table.OriginalTableName)",
@:jnpfKey = JnpfKeyConst.TABLE,
@:label = "@(table.ControlTableComment)",
@:children = ExportImportDataHelper.GetTemplateParsing<@(table.ClassName)Entity>(new @(table.ClassName)Entity())
@:};
@:FieldsModel @(table.ControlModel) = new FieldsModel()
@:{
@:__config__ = @(table.ControlModel)Config,
@:__vModel__ = "@(table.ControlModel)"
@:};
@:fieldList.Add(@(table.ControlModel));
@:
}
}
@:var entityInfo = _repository.AsSugarClient().EntityMaintenance.GetEntityInfo<@(Model.ClassName)Entity>();
@:List<DbTableRelationModel> tables = new List<DbTableRelationModel>() { ExportImportDataHelper.GetTableRelation(entityInfo, "1") };
@foreach (var table in Model.AuxiliayTableRelations)
{
@if(table.IsImportData)
{
@:entityInfo = _repository.AsSugarClient().EntityMaintenance.GetEntityInfo<@(table.ClassName)Entity>();
@:tables.Add(ExportImportDataHelper.GetTableRelation(entityInfo, "0", "@(table.OriginalTableField)", "@(table.RelationTable)", "@(table.OriginalRelationField)"));
@:
}
}
@foreach (var table in Model.TableRelations)
{
@if(table.IsImportData)
{
@:entityInfo = _repository.AsSugarClient().EntityMaintenance.GetEntityInfo<@(table.ClassName)Entity>();
@:tables.Add(ExportImportDataHelper.GetTableRelation(entityInfo, "0", "@(table.OriginalTableField)", "@(table.RelationTable)", "@(table.OriginalRelationField)"));
}
}
@:DbLinkEntity link = _dataBaseManager.GetTenantDbLink(_userManager.TenantId, _userManager.TenantDbName); // 当前数据库连接
@:var tInfo = new TemplateParsingBase(link, fieldList, tables, "@(Model.OriginalPrimaryKey)", @(Model.WebType), @(Model.PrimaryKeyPolicy), uploaderKey.ToList(), "@(Model.ImportDataType)");
@:return await _exportImportDataHelper.GetImportPreviewData(tInfo, fileName);
@:}
@:
@:/// <summary>
@:/// 导入数据.
@:/// </summary>
@:/// <param name="input"></param>
@:/// <returns></returns>
@:[HttpPost("ImportData")]
@:[UnitOfWork]
@:public async Task<dynamic> ImportData([FromBody] DataImportInput input)
@:{
@:List<FieldsModel> fieldList = new List<FieldsModel>();
@:fieldList.AddRange(ExportImportDataHelper.GetTemplateParsing<@(Model.ClassName)Entity>(new @(Model.ClassName)Entity()));
@foreach (var table in Model.AuxiliayTableRelations)
{
@if(table.IsImportData)
{
@:fieldList.AddRange(ExportImportDataHelper.GetTemplateParsing<@(table.ClassName)Entity>(new @(table.ClassName)Entity(), "@(table.OriginalTableName)"));
@:
}
}
@foreach (var table in Model.TableRelations)
{
@if(table.IsImportData)
{
@:ConfigModel @(table.ControlModel)Config = new ConfigModel
@:{
@:tableName = "@(table.OriginalTableName)",
@:jnpfKey = JnpfKeyConst.TABLE,
@:label = "@(table.ControlTableComment)",
@:children = ExportImportDataHelper.GetTemplateParsing<@(table.ClassName)Entity>(new @(table.ClassName)Entity())
@:};
@:FieldsModel @(table.ControlModel) = new FieldsModel()
@:{
@:__config__ = @(table.ControlModel)Config,
@:__vModel__ = "@(table.ControlModel)"
@:};
@:fieldList.Add(@(table.ControlModel));
@:
}
}
@:var entityInfo = _repository.AsSugarClient().EntityMaintenance.GetEntityInfo<@(Model.ClassName)Entity>();
@:List<DbTableRelationModel> tables = new List<DbTableRelationModel>() { ExportImportDataHelper.GetTableRelation(entityInfo, "1") };
@foreach (var table in Model.AuxiliayTableRelations)
{
@if(table.IsImportData)
{
@:entityInfo = _repository.AsSugarClient().EntityMaintenance.GetEntityInfo<@(table.ClassName)Entity>();
@:tables.Add(ExportImportDataHelper.GetTableRelation(entityInfo, "0", "@(table.OriginalTableField)", "@(table.RelationTable)", "@(table.OriginalRelationField)"));
@:
}
}
@foreach (var table in Model.TableRelations)
{
@if(table.IsImportData)
{
@:entityInfo = _repository.AsSugarClient().EntityMaintenance.GetEntityInfo<@(table.ClassName)Entity>();
@:tables.Add(ExportImportDataHelper.GetTableRelation(entityInfo, "0", "@(table.OriginalTableField)", "@(table.RelationTable)", "@(table.OriginalRelationField)"));
}
}
@if(Model.DbLinkId != "0")
{
@:DbLinkEntity link = await _repository.AsSugarClient().Queryable<DbLinkEntity>().FirstAsync(it => it.Id.Equals("@(Model.DbLinkId)"));
}else{
@:DbLinkEntity link = _dataBaseManager.GetTenantDbLink(_userManager.TenantId, _userManager.TenantDbName); // 当前数据库连接
}
@:var tInfo = new TemplateParsingBase(link, fieldList, tables, "@(Model.OriginalPrimaryKey)", @(Model.WebType), @(Model.PrimaryKeyPolicy), uploaderKey.ToList(), "@(Model.ImportDataType)"@(Model.EnableFlow ? ", 1" : ""));
@:
@:object[]? res = await _exportImportDataHelper.ImportMenuData(tInfo, input.list);
@:var addlist = res.First() as List<Dictionary<string, object>>;
@:var errorlist = res.Last() as List<Dictionary<string, object>>;
@:var result = new DataImportOutput()
@:{
@:snum = addlist.Count,
@:fnum = errorlist.Count,
@:failResult = errorlist,
@:resultType = errorlist.Count < 1 ? 0 : 1
@:};
@:
@:return result;
@:}
@:
@:/// <summary>
@:/// 导入数据的错误报告.
@:/// </summary>
@:/// <param name="list"></param>
@:/// <returns></returns>
@:[HttpPost("ImportExceptionData")]
@:[UnitOfWork]
@:public async Task<dynamic> ExportExceptionData([FromBody] DataImportInput list)
@:{
@:List<FieldsModel> fieldList = new List<FieldsModel>();
@:fieldList.AddRange(ExportImportDataHelper.GetTemplateParsing<@(Model.ClassName)Entity>(new @(Model.ClassName)Entity()));
@foreach (var table in Model.AuxiliayTableRelations)
{
@if(table.IsImportData)
{
@:fieldList.AddRange(ExportImportDataHelper.GetTemplateParsing<@(table.ClassName)Entity>(new @(table.ClassName)Entity(), "@(table.OriginalTableName)"));
@:
}
}
@foreach (var table in Model.TableRelations)
{
@if(table.IsImportData)
{
@:ConfigModel @(table.ControlModel)Config = new ConfigModel
@:{
@:tableName = "@(table.OriginalTableName)",
@:jnpfKey = JnpfKeyConst.TABLE,
@:label = "@(table.ControlTableComment)",
@:children = ExportImportDataHelper.GetTemplateParsing<@(table.ClassName)Entity>(new @(table.ClassName)Entity())
@:};
@:FieldsModel @(table.ControlModel) = new FieldsModel()
@:{
@:__config__ = @(table.ControlModel)Config,
@:__vModel__ = "@(table.ControlModel)"
@:};
@:fieldList.Add(@(table.ControlModel));
@:
}
}
@:var entityInfo = _repository.AsSugarClient().EntityMaintenance.GetEntityInfo<@(Model.ClassName)Entity>();
@:List<DbTableRelationModel> tables = new List<DbTableRelationModel>() { ExportImportDataHelper.GetTableRelation(entityInfo, "1") };
@foreach (var table in Model.AuxiliayTableRelations)
{
@if(table.IsImportData)
{
@:entityInfo = _repository.AsSugarClient().EntityMaintenance.GetEntityInfo<@(table.ClassName)Entity>();
@:tables.Add(ExportImportDataHelper.GetTableRelation(entityInfo, "0", "@(table.OriginalTableField)", "@(table.RelationTable)", "@(table.OriginalRelationField)"));
@:
}
}
@foreach (var table in Model.TableRelations)
{
@if(table.IsImportData)
{
@:entityInfo = _repository.AsSugarClient().EntityMaintenance.GetEntityInfo<@(table.ClassName)Entity>();
@:tables.Add(ExportImportDataHelper.GetTableRelation(entityInfo, "0", "@(table.OriginalTableField)", "@(table.RelationTable)", "@(table.OriginalRelationField)"));
}
}
@:DbLinkEntity link = _dataBaseManager.GetTenantDbLink(_userManager.TenantId, _userManager.TenantDbName); // 当前数据库连接
@:var tInfo = new TemplateParsingBase(link, fieldList, tables, "@(Model.OriginalPrimaryKey)", @(Model.WebType), @(Model.PrimaryKeyPolicy), uploaderKey.ToList(), "@(Model.ImportDataType)");
@:
@:// 错误数据
@:tInfo.selectKey.Add("errorsInfo");
@:tInfo.AllFieldsModel.Add(new FieldsModel() { __vModel__ = "errorsInfo", __config__ = new ConfigModel() { label = "异常原因" } });
@:for (var i = 0; i < list.list.Count(); i++) list.list[i].Add("id", i);
@:
@:var result = ExportImportDataHelper.GetCreateFirstColumnsHeader(tInfo.selectKey, list.list, childParanList);
@:var firstColumns = result.First().ToObject<Dictionary<string, int>>();
@:var resultList = result.Last().ToObject<List<Dictionary<string, object>>>();
@:_cacheManager.Set(string.Format("{0} 导入错误报告.xls", tInfo.FullName), string.Empty);
@:return firstColumns.Any()
@:? await _exportImportDataHelper.ExcelCreateModel(tInfo, resultList, string.Format("{0} 导入错误报告", tInfo.FullName), firstColumns)
@:: await _exportImportDataHelper.ExcelCreateModel(tInfo, resultList, string.Format("{0} 导入错误报告", tInfo.FullName));
@:}
break;
}
}
}
@{
@*数据权限模板*@
void DataRightsTemplate()
{
@:var authorizeWhere = new List<IConditionalModel>();
@foreach(var table in Model.AuxiliayTableRelations)
{
@:var @(table.LowerClassName)AuthorizeWhere = new List<IConditionalModel>();
}
@foreach(var table in Model.TableRelations)
{
@:var @(table.LowerClassName)AuthorizeWhere = new List<IConditionalModel>();
}
@:
@:// 数据权限过滤
@:if (_userManager.User.IsAdministrator == 0)
@:{
@:var allAuthorizeWhere = await _userManager.GetCodeGenAuthorizeModuleResource<@(Model.ClassName)ListOutput>(input.menuId, "@(Model.OriginalPrimaryKey)", _userManager.UserOrigin.Equals("pc") ? @(Model.PcUseDataPermission) : @(Model.AppUseDataPermission));
@:authorizeWhere = allAuthorizeWhere.Find(it => it.FieldRule == 0)?.conditionalModel;
@foreach(var table in Model.AuxiliayTableRelations)
{
@:@(table.LowerClassName)AuthorizeWhere = allAuthorizeWhere.Find(it => it.FieldRule == 1 && it.TableName.Equals("@(table.OriginalTableName)"))?.conditionalModel;
}
@foreach(var table in Model.TableRelations)
{
@:@(table.LowerClassName)AuthorizeWhere = allAuthorizeWhere.Find(it => it.FieldRule == 2 && it.TableName.Equals("@(table.OriginalTableName)"))?.conditionalModel;
}
@:}
@:
}
@*高级查询模板*@
void AdvancedQueryTemplate()
{
@:var entityInfo = @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").EntityMaintenance.GetEntityInfo<@(Model.ClassName)Entity>();
@:input.sidx = CodeGenHelper.GetSortRealField(input.sidx, string.Empty, entityInfo, 0);
@:var superQuery = SuperQueryHelper.GetSuperQueryInput(input.superQueryJson, string.Empty, entityInfo, 0);
@:List<IConditionalModel> mainConditionalModel = SuperQueryHelper.GetSuperQueryJson(superQuery);
@:
@foreach(var table in Model.AuxiliayTableRelations)
{
@:entityInfo = @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").EntityMaintenance.GetEntityInfo<@(table.ClassName)Entity>();
@:superQuery = SuperQueryHelper.GetSuperQueryInput(input.superQueryJson, entityInfo.DbTableName, entityInfo, 2);
@:List<IConditionalModel> @(table.LowerClassName)ConditionalModel = SuperQueryHelper.GetSuperQueryJson(superQuery);
@:
}
@foreach(var table in Model.TableRelations)
{
@:entityInfo = @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").EntityMaintenance.GetEntityInfo<@(table.ClassName)Entity>();
@:superQuery = SuperQueryHelper.GetSuperQueryInput(input.superQueryJson, "@(table.ControlModel)-", entityInfo, 1);
@:List<IConditionalModel> @(table.LowerClassName)ConditionalModel = SuperQueryHelper.GetSuperQueryJson(superQuery);
@:
}
}
@*列表查询字段处理模板*@
void ListQueryFieldProcessingTemplate()
{
@*主副表查询*@
@foreach(var table in Model.TableField)
{
@*是查询条件*@
@if(table.QueryWhether)
{
@{var parameterName = string.Empty;var parameterValue = string.Empty;}
@switch(table.IsAuxiliary)
{
case true:
@{parameterName = "jnpf_" + @table.TableName + "_jnpf_" + @table.LowerColumnName;}
@{parameterValue = @table.QueryType == 1 ? "auxiliary" + @table.ColumnName + "_" + @table.TableNo : "Auxiliary" + @table.ColumnName + "_" + @table.TableNo;}
break;
default:
@{parameterName = @table.LowerColumnName;}
@{parameterValue = @table.QueryType == 1 ? table.LowerColumnName : table.ColumnName;}
break;
}
@switch(table.QueryType)
{
case 1:
@switch(table.jnpfKey)
{
case "cascader":
case "address":
case "comSelect":
case "currOrganize":
@:var @(parameterValue) = input.@(parameterName)?.Split(',').ToList().Last();
break;
default:
@if(table.IsMultiple)
{
@:var @(parameterValue) = input.@(parameterName)?.Split(',').ToList().Last();
}
break;
}
break;
case 3:
@switch(table.jnpfKey)
{
case "time":
@:List<string> query@(parameterValue) = input.@(parameterName)?.Split(',').ToObject<List<string>>();
@:var start@(parameterValue) = query@(parameterValue)?.First();
@:var end@(parameterValue) = query@(parameterValue)?.Last();
break;
case "numInput":
case "calculate":
@:List<object> query@(parameterValue) = input.@(parameterName)?.Split(',').ToObject<List<object>>();
@:var start@(parameterValue) = query@(parameterValue)?.First().ParseToDecimal() == 0 ? decimal.MinValue : query@(parameterValue)?.First().ParseToDecimal();
@:var end@(parameterValue) = query@(parameterValue)?.Last().ParseToDecimal() == 0 ? decimal.MaxValue : query@(parameterValue)?.Last().ParseToDecimal();
break;
default:
@:List<DateTime> query@(parameterValue) = input.@(parameterName)?.Split(',').ToObject<List<DateTime>>();
@:DateTime? start@(parameterValue) = query@(parameterValue)?.First();
@:DateTime? end@(parameterValue) = query@(parameterValue)?.Last();
break;
}
break;
}
}
}
@foreach(var table in Model.TableRelations)
{
@*是查询条件*@
@if(table.IsQueryWhether)
{
@foreach(var column in table.ChilderColumnConfigList)
{
@switch(column.QueryType)
{
case 1:
@switch(column.jnpfKey)
{
case "cascader":
case "address":
case "comSelect":
case "currOrganize":
@:var @(table.ControlModel + @column.ColumnName) = input.@(table.ControlModel + "_" + @column.LowerColumnName)?.Split(',').ToList().Last();
break;
default:
@if(column.IsMultiple)
{
@:var @(table.ControlModel + @column.ColumnName) = input.@(table.ControlModel + "_" + @column.LowerColumnName)?.Split(',').ToList().Last();
}
break;
}
break;
case 3:
@switch(column.jnpfKey)
{
case "time":
@:List<string> query@(table.ControlModel + @column.ColumnName) = input.@(table.ControlModel + "_" + @column.LowerColumnName)?.Split(',').ToObject<List<string>>();
@:var start@(table.ControlModel + @column.ColumnName) = query@(table.ControlModel + @column.ColumnName)?.First();
@:var end@(table.ControlModel + @column.ColumnName) = query@(table.ControlModel + @column.ColumnName)?.Last();
break;
case "numInput":
case "calculate":
@:List<object> query@(table.ControlModel + @column.ColumnName) = input.@(table.ControlModel + "_" + @column.LowerColumnName)?.Split(',').ToObject<List<object>>();
@:var start@(table.ControlModel + @column.ColumnName) = query@(table.ControlModel + @column.ColumnName)?.First().ParseToDecimal() == 0 ? decimal.MinValue : query@(table.ControlModel + @column.ColumnName)?.First().ParseToDecimal();
@:var end@(table.ControlModel + @column.ColumnName) = query@(table.ControlModel + @column.ColumnName)?.Last().ParseToDecimal() == 0 ? decimal.MaxValue : query@(table.ControlModel + @column.ColumnName)?.Last().ParseToDecimal();
break;
default:
@:List<DateTime> query@(table.ControlModel + @column.ColumnName) = input.@(table.ControlModel + "_" + @column.LowerColumnName)?.Split(',').ToObject<List<DateTime>>();
@:DateTime? start@(table.ControlModel + @column.ColumnName) = query@(table.ControlModel + @column.ColumnName)?.First();
@:DateTime? end@(table.ControlModel + @column.ColumnName) = query@(table.ControlModel + @column.ColumnName)?.Last();
break;
}
break;
}
}
}
}
}
@*导航查询子表配置模板*@
void NavigationQuerySubTableConfigurationTemplate()
{
@foreach(var table in Model.TableRelations)
{
@if(table.IsQueryWhether || table.IsShowField)
{
@:.Includes(x => x.@(table.ClassName)List
@foreach(var column in table.ChilderColumnConfigList)
{
@*查询方式*@
@switch(column.QueryType)
{
@*查询方式为等于*@
case 1:
@*多选控件*@
@if(column.IsMultiple)
{
@:.WhereIF(!string.IsNullOrEmpty(input.@(table.ControlModel + "_" + @column.LowerColumnName)), it => it.@(column.ColumnName).Contains(@(table.ControlModel + @column.ColumnName)))
}else{
@switch(column.jnpfKey)
{
case "cascader":
case "address":
case "comSelect":
case "currOrganize":
@:.WhereIF(!string.IsNullOrEmpty(input.@(table.ControlModel + "_" + @column.LowerColumnName)), it => it.@(column.ColumnName).Contains(@(table.ControlModel + @column.ColumnName)))
break;
case "checkbox":
@:.WhereIF(!string.IsNullOrEmpty(input.@(table.ControlModel + "_" + @column.LowerColumnName)), it => it.@(column.ColumnName).Contains(input.@(table.ControlModel + "_" + @column.LowerColumnName)))
break;
case "usersSelect":
@:.Where(_controlParsing.GetUsersSelectQueryWhere("@(column.OriginalColumnName)", input.@(table.ControlModel + "_" + @column.LowerColumnName), @(column.IsMultiple.ToString().ToLower())))
break;
default:
@:.WhereIF(!string.IsNullOrEmpty(input.@(table.ControlModel + "_" + @column.LowerColumnName)), it => it.@(column.ColumnName).Equals(input.@(table.ControlModel + "_" + @column.LowerColumnName)))
break;
}
}
break;
@*查询类型为模糊查询*@
case 2:
@:.WhereIF(!string.IsNullOrEmpty(input.@(table.ControlModel + "_" + @column.LowerColumnName)), it => it.@(column.ColumnName).Contains(input.@(table.ControlModel + "_" + @column.LowerColumnName)))
break;
@*查询类型为范围查询*@
case 3:
@switch(column.jnpfKey)
{
case "time":
case "numInput":
case "calculate":
@:.WhereIF(query@(table.ControlModel + @column.ColumnName) != null, it => SqlFunc.Between(it.@(column.ColumnName), start@(table.ControlModel + @column.ColumnName), end@(table.ControlModel + @column.ColumnName)))
break;
default:
@if(column.IsDateTime)
{
@:.WhereIF(query@(table.ControlModel + @column.ColumnName) != null, it => SqlFunc.Between(it.@(column.ColumnName), start@(table.ControlModel + @column.ColumnName).ParseToDateTime("yyyy-MM-dd HH:mm:ss"), end@(table.ControlModel + @column.ColumnName).ParseToDateTime("yyyy-MM-dd HH:mm:ss")))
}else{
@:.WhereIF(query@(table.ControlModel + @column.ColumnName) != null, it => SqlFunc.Between(it.@(column.ColumnName), start@(table.ControlModel + @column.ColumnName).ParseToDateTime("yyyy-MM-dd 00:00:00"), end@(table.ControlModel + @column.ColumnName).ParseToDateTime("yyyy-MM-dd 23:59:59")))
}
break;
}
break;
}
}
@if(Model.HasSuperQuery)
{
@:.Where(@(table.LowerClassName)ConditionalModel)
}
@if(table.IsShowField)
{
@:.Select(it => new @(table.ClassName)Entity()
@:{
@foreach(var column in table.ChilderColumnConfigList)
{
@if(column.IsShow)
{
@:@column.ColumnName = it.@column.ColumnName,
}
}
@:})
}
@:.ToList())
}
}
}
void ListQueryConditionProcessingTemplate()
{
@*循环查询条件*@
@foreach(var field in Model.TableField)
{
@*是否查询条件*@
@switch(field.QueryWhether)
{
case true:
@{var parameterName = string.Empty;var parameterValue = string.Empty;var queryParameter = string.Empty;}
@switch(field.IsAuxiliary)
{
case true:
@{parameterName = "jnpf_" + @field.TableName + "_jnpf_" + @field.LowerColumnName;}
@{parameterValue = @field.QueryType == 1 ? "auxiliary" + @field.ColumnName + "_" + @field.TableNo : "Auxiliary" + @field.ColumnName + "_" + @field.TableNo;}
@{queryParameter = @field.ClassName + "." + @field.ColumnName;}
break;
default:
@{parameterName = @field.LowerColumnName;}
@{parameterValue = @field.QueryType == 1 ? field.LowerColumnName : field.ColumnName;}
@{queryParameter = @field.ColumnName;}
break;
}
@*查询方式*@
@switch(field.QueryType)
{
@*查询方式为等于*@
case 1:
@*多选控件*@
@if(field.IsMultiple)
{
@:.WhereIF(!string.IsNullOrEmpty(input.@(parameterName)), it => it.@(queryParameter).Contains(@(parameterValue)))
}else{
@switch(field.jnpfKey)
{
case "cascader":
case "address":
case "comSelect":
case "currOrganize":
@:.WhereIF(!string.IsNullOrEmpty(input.@(parameterName)), it => it.@(queryParameter).Contains(@(parameterValue)))
break;
case "checkbox":
@:.WhereIF(!string.IsNullOrEmpty(input.@(parameterName)), it => it.@(queryParameter).Contains(input.@(parameterName)))
break;
case "usersSelect":
@:.Where(_controlParsing.GetUsersSelectQueryWhere("@(field.OriginalColumnName)", input.@(parameterName), @(field.IsMultiple.ToString().ToLower())))
break;
default:
@:.WhereIF(!string.IsNullOrEmpty(input.@(parameterName)), it => it.@(queryParameter).Equals(input.@(parameterName)))
break;
}
}
break;
@*查询类型为模糊查询*@
case 2:
@:.WhereIF(!string.IsNullOrEmpty(input.@(parameterName)), it => it.@(queryParameter).Contains(input.@(parameterName)))
break;
@*查询类型为范围查询*@
case 3:
@switch(field.jnpfKey)
{
case "time":
case "numInput":
case "calculate":
@:.WhereIF(query@(parameterValue) != null, it => SqlFunc.Between(it.@(queryParameter), start@(parameterValue), end@(parameterValue)))
break;
default:
@if(field.IsDateTime)
{
@:.WhereIF(query@(parameterValue) != null, it => SqlFunc.Between(it.@(queryParameter), start@(parameterValue).ParseToDateTime("yyyy-MM-dd HH:mm:ss"), end@(parameterValue).ParseToDateTime("yyyy-MM-dd HH:mm:ss")))
}else{
@:.WhereIF(query@(parameterValue) != null, it => SqlFunc.Between(it.@(queryParameter), start@(parameterValue).ParseToDateTime("yyyy-MM-dd 00:00:00"), end@(parameterValue).ParseToDateTime("yyyy-MM-dd 23:59:59")))
}
break;
}
break;
}
break;
}
}
@*子表循环查询条件*@
@foreach(var table in Model.TableRelations)
{
@*是否查询条件*@
@if(table.IsQueryWhether)
{
@foreach(var column in table.ChilderColumnConfigList)
{
@*查询方式*@
@switch(column.QueryType)
{
@*查询方式为等于*@
case 1:
@*多选控件*@
@if(column.IsMultiple)
{
@:.WhereIF(!string.IsNullOrEmpty(input.@(table.ControlModel + "_" + @column.LowerColumnName)), it => it.@(table.ClassName)List.Any(@(table.LowerClassName) => @(table.LowerClassName).@(column.ColumnName).Contains(@(table.ControlModel + @column.ColumnName))))
}else{
@switch(column.jnpfKey)
{
case "cascader":
case "address":
case "comSelect":
case "currOrganize":
@:.WhereIF(!string.IsNullOrEmpty(input.@(table.ControlModel + "_" + @column.LowerColumnName)), it => it.@(table.ClassName)List.Any(@(table.LowerClassName) => @(table.LowerClassName).@(column.ColumnName).Contains(@(table.ControlModel + @column.ColumnName))))
break;
case "checkbox":
@:.WhereIF(!string.IsNullOrEmpty(input.@(table.ControlModel + "_" + @column.LowerColumnName)), it => it.@(table.ClassName)List.Any(@(table.LowerClassName) => @(table.LowerClassName).@(column.ColumnName).Contains(input.@(table.ControlModel + "_" + @column.LowerColumnName))))
break;
case "usersSelect":
@:.Where(_controlParsing.GetUsersSelectQueryWhere("@(column.OriginalColumnName)", input.@(table.ControlModel + "_" + @column.LowerColumnName), @(column.IsMultiple.ToString().ToLower())))
break;
default:
@:.WhereIF(!string.IsNullOrEmpty(input.@(table.ControlModel + "_" + @column.LowerColumnName)), it => it.@(table.ClassName)List.Any(@(table.LowerClassName) => @(table.LowerClassName).@(column.ColumnName).Equals(input.@(table.ControlModel + "_" + @column.LowerColumnName))))
break;
}
}
break;
@*查询类型为模糊查询*@
case 2:
@:.WhereIF(!string.IsNullOrEmpty(input.@(table.ControlModel + "_" + @column.LowerColumnName)), it => it.@(table.ClassName)List.Any(@(table.LowerClassName) => @(table.LowerClassName).@(column.ColumnName).Contains(input.@(table.ControlModel + "_" + @column.LowerColumnName))))
break;
@*查询类型为范围查询*@
case 3:
@switch(column.jnpfKey)
{
case "time":
case "numInput":
case "calculate":
@:.WhereIF(query@(table.ControlModel + @column.ColumnName) != null, it => it.@(table.ClassName)List.Any(@(table.LowerClassName) => SqlFunc.Between(@(table.LowerClassName).@(column.ColumnName), start@(table.ControlModel + @column.ColumnName), end@(table.ControlModel + @column.ColumnName))))
break;
default:
@if(column.IsDateTime)
{
@:.WhereIF(query@(table.ControlModel + @column.ColumnName) != null, it => it.@(table.ClassName)List.Any(@(table.LowerClassName) =>SqlFunc.Between(@(table.LowerClassName).@(column.ColumnName), start@(table.ControlModel + @column.ColumnName).ParseToDateTime("yyyy-MM-dd HH:mm:ss"), end@(table.ControlModel + @column.ColumnName).ParseToDateTime("yyyy-MM-dd HH:mm:ss"))))
}else{
@:.WhereIF(query@(table.ControlModel + @column.ColumnName) != null, it => it.@(table.ClassName)List.Any(@(table.LowerClassName) => SqlFunc.Between(@(table.LowerClassName).@(column.ColumnName), start@(table.ControlModel + @column.ColumnName).ParseToDateTime("yyyy-MM-dd 00:00:00"), end@(table.ControlModel + @column.ColumnName).ParseToDateTime("yyyy-MM-dd 23:59:59"))))
}
break;
}
break;
}
}
}
}
}
@*列表展示字段模板*@
void ListDisplayFieldTemplate()
{
@*循环展示字段*@
@foreach (var column in Model.TableField){
@if (column.PrimaryKey){
@:@(column.LowerColumnName) = it.@column.ColumnName,
}else if(column.IsShow){
@{var parameterName = string.Empty;var parameterValue = string.Empty;}
@switch(column.IsAuxiliary)
{
case true:
@{parameterName = "jnpf_" + @column.TableName + "_jnpf_" + @column.LowerColumnName;}
@{parameterValue = @column.ClassName + "." + @column.ColumnName;}
break;
default:
@{parameterName = @column.LowerColumnName;}
@{parameterValue = @column.ColumnName;}
break;
}
@switch(column.jnpfKey)
{
case "date":
@:@(parameterName) = it.@(parameterValue) == null ? null : it.@(parameterValue).Value.ToString("@(column.Format)"),
break;
case "modifyTime":
@:@(parameterName) = it.@(parameterValue) == null ? null : it.@(parameterValue).Value.ToString("yyyy-MM-dd HH:mm"),
break;
case "createTime":
@:@(parameterName) = it.@(parameterValue).Value.ToString("yyyy-MM-dd HH:mm"),
break;
case "switch":
@:@(parameterName) = it.@(parameterValue) == 0 ? "@(column.InactiveTxt)" : "@(column.ActiveTxt)",
break;
default:
@:@(parameterName) = it.@parameterValue@(column.NetType == "int" ? ".ToString()" : ""),
break;
}
}
}
@if(Model.EnableFlow && Model.PrimaryKeyPolicy == 2)
{
@:flowTaskId = it.FlowTaskId,
}
@foreach(var table in Model.TableRelations)
{
@if(table.IsShowField)
{
@:@table.ControlModel = it.@(table.ClassName)List.Adapt<List<@(table.ClassName)ListOutput>>(),
}
}
}
@*列表数据转换主副模块模板*@
void ListDataConversionMainAndSecondaryModuleTemplate()
{
@if(Model.EnableFlow)
{
@:item.flowState = (await _repository.AsSugarClient().Queryable<FlowTaskEntity>().Where(it => it.Id.Equals(item.@(Model.PrimaryKeyPolicy == 1 ? Model.LowerPrimaryKey : "flowTaskId"))).FirstAsync())?.Status;
@:
}
@foreach (var column in Model.TableField)
{
@{var dataCount = column.StaticData != null ? column.StaticData.Count : 0;}
@if(column.IsShow && column.IsConversion)
{
@{var parameterName = string.Empty;var dataParameter = string.Empty;}
@switch(column.IsAuxiliary)
{
case true:
@{parameterName = "jnpf_" + @column.TableName + "_jnpf_" + @column.LowerColumnName;}
@{dataParameter = @column.LowerClassName + @column.ColumnName;}
break;
default:
@{parameterName = @column.LowerColumnName;}
@{dataParameter = @column.LowerColumnName;}
break;
}
@switch(column.jnpfKey)
{
case "modifyUser":
case "createUser":
@:// @column.ColumnComment
@:var @(dataParameter)Data = await _repository.AsSugarClient().Queryable<UserEntity>().FirstAsync(u => u.Id.Equals(item.@(parameterName)));
@:item.@(parameterName) = @(dataParameter)Data != null ? string.Format("{0}/{1}", @(dataParameter)Data.RealName, @(dataParameter)Data.Account) : null;
@:
break;
case "currOrganize":
@:// @column.ColumnComment
@:var @(dataParameter)Data = await _repository.AsSugarClient().Queryable<OrganizeEntity>().FirstAsync(u => u.Id.Equals(item.@(parameterName)));
@:item.@(parameterName) = @(dataParameter)Data != null ? @(dataParameter)Data.FullName : null;
@:
break;
case "currPosition":
@:// @column.ColumnComment
@:var @(dataParameter)Data = await _repository.AsSugarClient().Queryable<PositionEntity>().FirstAsync(u => u.Id.Equals(item.@(parameterName)));
@:item.@(parameterName) = @(dataParameter)Data != null ? @(dataParameter)Data.FullName : null;
@:
break;
case "select":
@:// @column.ColumnComment
@switch(column.ControlsDataType)
{
case "static":
@:var @(dataParameter)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject<List<StaticDataModel>>();
@:if(item.@(parameterName) != null)
@:{
@if(!column.IsMultiple)
{
@:item.@(parameterName) = @(dataParameter)Data.Find(it => item.@(parameterName).Equals(it.id))?.fullName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join(",", @(dataParameter)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName));
}
@:}
break;
case "dictionary":
@:if(item.@(parameterName) != null)
@:{
@if(!column.IsMultiple)
{
@:item.@(parameterName) = (await _repository.AsSugarClient().Queryable<DictionaryDataEntity>().FirstAsync(it => it.@(column.Value == "id" ? "Id" : "EnCode").Equals(item.@(parameterName)) && it.DictionaryTypeId.Equals("@(column.propsUrl)")))?.FullName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join(",", await _repository.AsSugarClient().Queryable<DictionaryDataEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).ToListAsync());
}
@:}
break;
case "dynamic":
@:var @(dataParameter)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "");
@:if(item.@(parameterName) != null)
@:{
@if(!column.IsMultiple)
{
@:item.@(parameterName) = @(dataParameter)Data.Find(it => it.id.Equals(item.@(parameterName)))?.fullName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join(",", @(dataParameter)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName));
}
@:}
break;
}
@:
break;
case "checkbox":
@:// @column.ColumnComment
@switch(column.ControlsDataType)
{
case "static":
@:var @(dataParameter)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject<List<StaticDataModel>>();
@:if(item.@(parameterName) != null)
@:{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join(",", @(dataParameter)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName));
@:}
break;
case "dictionary":
@:if(item.@(parameterName) != null)
@:{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join(",", await _repository.AsSugarClient().Queryable<DictionaryDataEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).ToListAsync());
@:}
break;
case "dynamic":
@:var @(dataParameter)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "");
@:if(item.@(parameterName) != null)
@:{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join(",", @(dataParameter)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName));
@:}
break;
}
@:
break;
case "radio":
@:// @column.ColumnComment
@switch(column.ControlsDataType)
{
case "dictionary":
@:if(item.@(parameterName) != null)
@:{
@:item.@(parameterName) = (await _repository.AsSugarClient().Queryable<DictionaryDataEntity>().FirstAsync(dic => dic.@(column.Value == "id" ? "Id" : "EnCode").Equals(item.@(parameterName)) && dic.DictionaryTypeId.Equals("@(column.propsUrl)")))?.FullName;
@:}
break;
case "static":
@:var @(dataParameter)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject<List<StaticDataModel>>();
@:if(item.@(parameterName) != null)
@:{
@:item.@(parameterName) = @(dataParameter)Data.Find(it => item.@(parameterName).Equals(it.id))?.fullName;
@:}
break;
case "dynamic":
@:var @(dataParameter)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "@(column.Children)");
@:if(item.@(parameterName) != null)
@:{
@:item.@(parameterName) = string.Join(",", @(dataParameter)Data .Find(it => it.id.Equals(item.@(parameterName)))?.fullName);
@:}
break;
}
@:
break;
case "cascader":
@:// @column.ColumnComment
@switch(column.ControlsDataType)
{
case "static":
@:var @(dataParameter)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject<List<StaticDataModel>>();
@:if(item.@(parameterName) != null)
@:{
@if(!column.IsMultiple)
{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join("@(column.Separator)", @(dataParameter)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName));
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<List<string>>>();
@:var @(column.LowerColumnName)Excessive = new List<string>();
@:foreach (var @(column.LowerColumnName) in @(column.LowerColumnName + @column.upperJnpfKey))
@:{
@:@(column.LowerColumnName)Excessive.Add(string.Join("@(column.Separator)", @(dataParameter)Data.FindAll(it => @(column.LowerColumnName).Contains(it.id)).Select(it => it.fullName)));
@:}
@:
@:item.@(parameterName) = string.Join(",", @(column.LowerColumnName)Excessive);
}
@:}
break;
case "dictionary":
@:if(item.@(parameterName) != null)
@:{
@if(!column.IsMultiple)
{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join("@(column.Separator)", await _repository.AsSugarClient().Queryable<DictionaryDataEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).ToListAsync());
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<List<string>>>();
@:var @(column.LowerColumnName)Excessive = new List<string>();
@:foreach (var @(column.LowerColumnName) in @(column.LowerColumnName + @column.upperJnpfKey))
@:{
@:@(column.LowerColumnName)Excessive.Add(string.Join("@(column.Separator)", await _repository.AsSugarClient().Queryable<DictionaryDataEntity>().Where(it => @(column.LowerColumnName).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).ToListAsync()));
@:}
@:
@:item.@(parameterName) = string.Join(",", @(column.LowerColumnName)Excessive);
}
@:}
break;
case "dynamic":
@:var @(dataParameter)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "@(column.Children)");
@:if(item.@(parameterName) != null)
@:{
@if(!column.IsMultiple)
{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join("@(column.Separator)", @(dataParameter)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName));
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<List<string>>>();
@:var @(column.LowerColumnName)Excessive = new List<string>();
@:foreach (var @(column.LowerColumnName) in @(column.LowerColumnName + @column.upperJnpfKey))
@:{
@:@(column.LowerColumnName)Excessive.Add(string.Join("@(column.Separator)", @(dataParameter)Data.FindAll(it => @(column.LowerColumnName).Contains(it.id)).Select(it => it.fullName)));
@:}
@:
@:item.@(parameterName) = string.Join(",", @(column.LowerColumnName)Excessive);
}
@:}
break;
}
@:
break;
case "comSelect":
@:// @column.ColumnComment
@:if(item.@(parameterName) != null)
@:{
@if(!column.IsMultiple)
{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join("/", await _repository.AsSugarClient().Queryable<OrganizeEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync());
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<List<string>>>();
@:var @(column.LowerColumnName)Excessive = new List<string>();
@:foreach (var @(column.LowerColumnName) in @(column.LowerColumnName + @column.upperJnpfKey))
@:{
@:@(column.LowerColumnName)Excessive.Add(string.Join("/", await _repository.AsSugarClient().Queryable<OrganizeEntity>().Where(it => @(column.LowerColumnName).Contains(it.Id)).Select(it => it.FullName).ToListAsync()));
@:}
@:
@:item.@(parameterName) = string.Join(",", @(column.LowerColumnName)Excessive);
}
@:}
@:
break;
case "depSelect":
@:// @column.ColumnComment
@:if(item.@(parameterName) != null)
@:{
@if(!column.IsMultiple)
{
@:item.@(parameterName) = (await _repository.AsSugarClient().Queryable<OrganizeEntity>().FirstAsync(it => it.Id.Equals(item.@(parameterName))))?.FullName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join(",", await _repository.AsSugarClient().Queryable<OrganizeEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync());
}
@:}
@:
break;
case "posSelect":
@:// @column.ColumnComment
@:if(item.@(parameterName) != null)
@:{
@if(!column.IsMultiple)
{
@:item.@(parameterName) = (await _repository.AsSugarClient().Queryable<PositionEntity>().FirstAsync(it => it.Id.Equals(item.@(parameterName))))?.FullName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join(",", await _repository.AsSugarClient().Queryable<PositionEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync());
}
@:}
@:
break;
case "userSelect":
@:// @column.ColumnComment
@:if(item.@(parameterName) != null)
@:{
@if(!column.IsMultiple)
{
@:item.@(parameterName) = (await _repository.AsSugarClient().Queryable<UserEntity>().FirstAsync(it => it.Id.Equals(item.@(parameterName))))?.RealName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join(",", await _repository.AsSugarClient().Queryable<UserEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.RealName).ToListAsync());
}
@:}
@:
break;
case "roleSelect":
@:// @column.ColumnComment
@:if(item.@(parameterName) != null)
@:{
@if(!column.IsMultiple)
{
@:item.@(parameterName) = (await _repository.AsSugarClient().Queryable<RoleEntity>().FirstAsync(it => it.Id.Equals(item.@(parameterName))))?.FullName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join(",", await _repository.AsSugarClient().Queryable<RoleEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync());
}
@:}
@:
break;
case "groupSelect":
@:// @column.ColumnComment
@:if(item.@(parameterName) != null)
@:{
@if(!column.IsMultiple)
{
@:item.@(parameterName) = (await _repository.AsSugarClient().Queryable<GroupEntity>().FirstAsync(it => it.Id.Equals(item.@(parameterName))))?.FullName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join(",", await _repository.AsSugarClient().Queryable<GroupEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync());
}
@:}
@:
break;
case "treeSelect":
@:// @column.ColumnComment
@switch(column.ControlsDataType)
{
case "static":
@:var @(dataParameter)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject<List<StaticDataModel>>();
@:if(item.@(parameterName) != null)
@:{
@if(!column.IsMultiple)
{
@:item.@(parameterName) = @(dataParameter)Data.Find(it => it.id.Equals(item.@(parameterName)))?.fullName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join(",", @(dataParameter)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName));
}
@:}
break;
case "dictionary":
@:if(item.@(parameterName) != null)
@:{
@if(!column.IsMultiple)
{
@:item.@(parameterName) = (await _repository.AsSugarClient().Queryable<DictionaryDataEntity>().FirstAsync(it => it.@(column.Value == "id" ? "Id" : "EnCode").Equals(item.@(parameterName)) && a.DictionaryTypeId.Equals("@(column.propsUrl)")))?.FullName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join(",", await _repository.AsSugarClient().Queryable<DictionaryDataEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(a.@(column.Value == "id" ? "Id" : "EnCode")) && a.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(a => a.FullName).ToListAsync());
}
@:}
break;
case "dynamic":
@:var @(dataParameter)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "@(column.Children)");
@:if(item.@(parameterName) != null)
@:{
@if(!column.IsMultiple)
{
@:item.@(parameterName) = @(dataParameter)Data.Find(it => it.id.Equals(item.@(parameterName)))?.fullName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join(",", @(dataParameter)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName));
}
@:}
break;
}
@:
break;
case "address":
@:// @column.ColumnComment
@:if(item.@(parameterName) != null)
@:{
@if(!column.IsMultiple)
{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join("/", await _repository.AsSugarClient().Queryable<ProvinceEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(a.Id)).Select(it => it.FullName).ToListAsync());
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<List<string>>>();
@:var @(column.LowerColumnName)Excessive = new List<string>();
@:foreach (var @(column.LowerColumnName) in @(column.LowerColumnName + @column.upperJnpfKey))
@:{
@:@(column.LowerColumnName)Excessive.Add(string.Join("/", await _repository.AsSugarClient().Queryable<ProvinceEntity>().Where(it => @(column.LowerColumnName).Contains(it.Id)).Select(it => it.FullName).ToListAsync()));
@:}
@:
@:item.@(parameterName) = string.Join(",", @(column.LowerColumnName)Excessive);
}
@:}
@:
break;
case "popupTableSelect":
@:// @column.ColumnComment
@:var @(dataParameter)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "@(column.Children)");
@:if(item.@(parameterName) != null)
@:{
@if(!column.IsMultiple)
{
@:item.@(parameterName) = @(dataParameter)Data.Find(it => it.id.Equals(item.@(parameterName)))?.fullName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject<List<string>>();
@:item.@(parameterName) = string.Join(",", @(dataParameter)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName));
}
@:}
@:
break;
}
}
}
}
@*列表数据转换子表模块模板*@
void ListDataConversionSubTableModuleTemplate(int type)
{
@foreach (var table in Model.TableRelations)
{
@if(table.IsConversion && table.IsShowField)
{
@:
@:await _repository.AsSugarClient().ThenMapperAsync(@(type ==0 ? "list" : "data.list").SelectMany(it => it.@(table.ControlModel)), async @(table.LowerClassName) =>
@:{
@foreach(var column in table.ChilderColumnConfigList)
{
@{var dataCount = column.StaticData != null ? column.StaticData.Count : 0;}
@if(column.IsShow && column.IsConversion)
{
@switch(column.jnpfKey)
{
case "switch":
@:// @column.ColumnComment
@:@(table.LowerClassName).@(column.LowerColumnName) = @(table.LowerClassName).@(column.LowerColumnName) == "0" ? "@(column.InactiveTxt)" : "@(column.ActiveTxt)";
break;
case "select":
@:// @column.ColumnComment
@switch(column.ControlsDataType)
{
case "static":
@:var @(column.LowerColumnName)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject<List<StaticDataModel>>();
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@if(!column.IsMultiple)
{
@:@(table.LowerClassName).@(column.LowerColumnName) = @(column.LowerColumnName)Data.Find(it => @(table.LowerClassName).@(column.LowerColumnName).Equals(it.id))?.fullName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName));
}
@:}
break;
case "dictionary":
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@if(!column.IsMultiple)
{
@:@(table.LowerClassName).@(column.LowerColumnName) = (await _repository.AsSugarClient().Queryable<DictionaryDataEntity>().FirstAsync(it => it.@(column.Value == "id" ? "Id" : "EnCode").Equals(@(table.LowerClassName).@(column.LowerColumnName)) && it.DictionaryTypeId.Equals("@(column.propsUrl)")))?.FullName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable<DictionaryDataEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).ToListAsync());
}
@:}
break;
case "dynamic":
@:var @(column.LowerColumnName)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "");
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@if(!column.IsMultiple)
{
@:@(table.LowerClassName).@(column.LowerColumnName) = @(column.LowerColumnName)Data.Find(it => it.id.Equals(@(table.LowerClassName).@(column.LowerColumnName)))?.fullName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName));
}
@:}
break;
}
@:
break;
case "checkbox":
@:// @column.ColumnComment
@switch(column.ControlsDataType)
{
case "static":
@:var @(column.LowerColumnName)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject<List<StaticDataModel>>();
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName));
@:}
break;
case "dictionary":
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable<DictionaryDataEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).ToListAsync());
@:}
break;
case "dynamic":
@:var @(column.LowerColumnName)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "");
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName));
@:}
break;
}
@:
break;
case "radio":
@:// @column.ColumnComment
@switch(column.ControlsDataType)
{
case "dictionary":
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@:@(column.LowerColumnName) = (await _repository.AsSugarClient().Queryable<DictionaryDataEntity>().FirstAsync(dic => dic.@(column.Value == "id" ? "Id" : "EnCode").Equals(@(table.LowerClassName).@(column.LowerColumnName)) && dic.DictionaryTypeId.Equals("@(column.propsUrl)")))?.FullName;
@:}
break;
case "static":
@:var @(column.LowerColumnName)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject<List<StaticDataModel>>();
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@:@(table.LowerClassName).@(column.LowerColumnName) = @(column.LowerColumnName)Data.Find(it => @(table.LowerClassName).@(column.LowerColumnName).Equals(it.id))?.fullName;
@:}
break;
case "dynamic":
@:var @(column.LowerColumnName)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "@(column.Children)");
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data .Find(it => it.id.Equals(@(table.LowerClassName).@(column.LowerColumnName)))?.fullName);
@:}
break;
}
@:
break;
case "cascader":
@:// @column.ColumnComment
@switch(column.ControlsDataType)
{
case "static":
@:var @(column.LowerColumnName)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject<List<StaticDataModel>>();
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@if(!column.IsMultiple)
{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join("@(column.Separator)", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName));
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<List<string>>>();
@:var @(column.LowerColumnName)Excessive = new List<string>();
@:foreach (var @(column.LowerColumnName) in @(column.LowerColumnName + @column.upperJnpfKey))
@:{
@:@(column.LowerColumnName)Excessive.Add(string.Join("@(column.Separator)", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName).Contains(it.id)).Select(it => it.fullName)));
@:}
@:
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Excessive);
}
@:}
break;
case "dictionary":
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@if(!column.IsMultiple)
{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join("@(column.Separator)", await _repository.AsSugarClient().Queryable<DictionaryDataEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).ToListAsync());
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<List<string>>>();
@:var @(column.LowerColumnName)Excessive = new List<string>();
@:foreach (var @(column.LowerColumnName) in @(column.LowerColumnName + @column.upperJnpfKey))
@:{
@:@(column.LowerColumnName)Excessive.Add(string.Join("@(column.Separator)", await _repository.AsSugarClient().Queryable<DictionaryDataEntity>().Where(it => @(column.LowerColumnName).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).ToListAsync()));
@:}
@:
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Excessive);
}
@:}
break;
case "dynamic":
@:var @(column.LowerColumnName)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "@(column.Children)");
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@if(!column.IsMultiple)
{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join("@(column.Separator)", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName));
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<List<string>>>();
@:var @(column.LowerColumnName)Excessive = new List<string>();
@:foreach (var @(column.LowerColumnName) in @(column.LowerColumnName + @column.upperJnpfKey))
@:{
@:@(column.LowerColumnName)Excessive.Add(string.Join("@(column.Separator)", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName).Contains(it.id)).Select(it => it.fullName)));
@:}
@:
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Excessive);
}
@:}
break;
}
@:
break;
case "comSelect":
@:// @column.ColumnComment
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@if(!column.IsMultiple)
{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join("/", await _repository.AsSugarClient().Queryable<OrganizeEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync());
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<List<string>>>();
@:var @(column.LowerColumnName)Excessive = new List<string>();
@:foreach (var @(column.LowerColumnName) in @(column.LowerColumnName + @column.upperJnpfKey))
@:{
@:@(column.LowerColumnName)Excessive.Add(string.Join("/", await _repository.AsSugarClient().Queryable<OrganizeEntity>().Where(it => @(column.LowerColumnName).Contains(it.Id)).Select(it => it.FullName).ToListAsync()));
@:}
@:
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Excessive);
}
@:}
@:
break;
case "depSelect":
@:// @column.ColumnComment
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@if(!column.IsMultiple)
{
@:@(table.LowerClassName).@(column.LowerColumnName) = (await _repository.AsSugarClient().Queryable<OrganizeEntity>().FirstAsync(it => it.Id.Equals(@(table.LowerClassName).@(column.LowerColumnName))))?.FullName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable<OrganizeEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync());
}
@:}
@:
break;
case "posSelect":
@:// @column.ColumnComment
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@if(!column.IsMultiple)
{
@:@(table.LowerClassName).@(column.LowerColumnName) = (await _repository.AsSugarClient().Queryable<PositionEntity>().FirstAsync(it => it.Id.Equals(@(table.LowerClassName).@(column.LowerColumnName))))?.FullName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable<PositionEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync());
}
@:}
@:
break;
case "userSelect":
@:// @column.ColumnComment
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@if(!column.IsMultiple)
{
@:@(table.LowerClassName).@(column.LowerColumnName) = (await _repository.AsSugarClient().Queryable<UserEntity>().FirstAsync(a => a.Id.Equals(@(table.LowerClassName).@(column.LowerColumnName))))?.RealName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable<UserEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.RealName).ToListAsync());
}
@:}
@:
break;
case "roleSelect":
@:// @column.ColumnComment
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@if(!column.IsMultiple)
{
@:@(table.LowerClassName).@(column.LowerColumnName) = (await _repository.AsSugarClient().Queryable<RoleEntity>().FirstAsync(it => it.Id.Equals(@(table.LowerClassName).@(column.LowerColumnName))))?.FullName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable<RoleEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync());
}
@:}
@:
break;
case "groupSelect":
@:// @column.ColumnComment
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@if(!column.IsMultiple)
{
@:@(table.LowerClassName).@(column.LowerColumnName) = (await _repository.AsSugarClient().Queryable<GroupEntity>().FirstAsync(a => a.Id.Equals(@(table.LowerClassName).@(column.LowerColumnName))))?.FullName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable<GroupEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync());
}
@:}
@:
break;
case "treeSelect":
@:// @column.ColumnComment
@switch(column.ControlsDataType)
{
case "static":
@:var @(column.LowerColumnName)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject<List<StaticDataModel>>();
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@if(!column.IsMultiple)
{
@:@(table.LowerClassName).@(column.LowerColumnName) = @(column.LowerColumnName)Data.Find(it => it.id.Equals(@(table.LowerClassName).@(column.LowerColumnName)))?.fullName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName));
}
@:}
break;
case "dictionary":
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@if(!column.IsMultiple)
{
@:@(table.LowerClassName).@(column.LowerColumnName) = (await _repository.AsSugarClient().Queryable<DictionaryDataEntity>().FirstAsync(it => it.@(column.Value == "id" ? "Id" : "EnCode").Equals(@(table.LowerClassName).@(column.LowerColumnName)) && it.DictionaryTypeId.Equals("@(column.propsUrl)")))?.FullName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable<DictionaryDataEntity>().Where(a => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).ToListAsync());
}
@:}
break;
case "dynamic":
@:var @(column.LowerColumnName)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "@(column.Children)");
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@if(!column.IsMultiple)
{
@:@(table.LowerClassName).@(column.LowerColumnName) = @(column.LowerColumnName)Data.Find(it => it.id.Equals(@(table.LowerClassName).@(column.LowerColumnName)))?.fullName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName));
}
@:}
break;
}
@:
break;
case "address":
@:// @column.ColumnComment
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@if(!column.IsMultiple)
{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join("/", await _repository.AsSugarClient().Queryable<ProvinceEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync());
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<List<string>>>();
@:var @(column.LowerColumnName)Excessive = new List<string>();
@:foreach (var @(column.LowerColumnName) in @(column.LowerColumnName + @column.upperJnpfKey))
@:{
@:@(column.LowerColumnName)Excessive.Add(string.Join("/", await _repository.AsSugarClient().Queryable<ProvinceEntity>().Where(it => @(column.LowerColumnName).Contains(it.Id)).Select(it => it.FullName).ToListAsync()));
@:}
@:
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Excessive);
}
@:}
@:
break;
case "popupTableSelect":
@:// @column.ColumnComment
@:var @(column.LowerColumnName)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "@(column.Children)");
@:if(@(table.LowerClassName).@(column.LowerColumnName) != null)
@:{
@if(!column.IsMultiple)
{
@:@(table.LowerClassName).@(column.LowerColumnName) = @(column.LowerColumnName)Data.Find(it => it.id.Equals(@(table.LowerClassName).@(column.LowerColumnName)))?.fullName;
}else{
@:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject<List<string>>();
@:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(a => a.fullName));
}
@:}
@:
break;
}
}
}
@:});
}
}
}
@*获取新增数据方法模板*@
void GetTheNewDataMethodTemplate()
{
@if(Model.ConcurrencyLock)
{
@:entity.Version = 0;
}
@foreach(var column in Model.TableField)
{
@if(!column.IsAuxiliary)
{
@switch(column.jnpfKey)
{
case "createTime":
@:entity.@column.ColumnName = DateTime.Now;
break;
case "createUser":
@:entity.@column.ColumnName = _userManager.UserId;
break;
case "currPosition":
@:entity.@column.ColumnName = _userManager.User.PositionId;
break;
case "currOrganize":
@:entity.@column.ColumnName = _userManager.User.OrganizeId;
break;
case "billRule":
@:entity.@column.ColumnName = await _billRullService.GetBillNumber("@(column.Rule)");
break;
}
}
}
@if(Model.IsUnique)
{
@foreach(var column in Model.TableField)
{
@if(column.IsUnique && !column.IsAuxiliary)
{
@:
@:if(await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Queryable<" + Model.ClassName + "Entity>()." : "_repository.Is")AnyAsync(it => it.@(column.ColumnName).Equals(input.@(column.LowerColumnName))))
@:throw Oops.Bah("@(column.ControlLabel)不能重复");
}
}
}
@*副表循环*@
@foreach(var table in Model.AuxiliayTableRelations)
{
@:
@:var auxiliay@(table.ClassName) = input.Adapt<@(table.ClassName)CrInput>().Adapt<@(table.ClassName)Entity>();
@if(Model.PrimaryKeyPolicy == 1)
{
@:auxiliay@(table.ClassName).@(table.PrimaryKey) = SnowflakeIdHelper.NextId();
}
@foreach(var column in Model.TableField)
{
@if(column.IsAuxiliary && column.TableName == table.OriginalTableName)
{
@switch(column.jnpfKey)
{
case "createTime":
@:auxiliay@(table.ClassName).@column.ColumnName = DateTime.Now;
break;
case "createUser":
@:auxiliay@(table.ClassName).@column.ColumnName = _userManager.UserId;
break;
case "currPosition":
@:auxiliay@(table.ClassName).@column.ColumnName = _userManager.User.PositionId;
break;
case "currOrganize":
@:auxiliay@(table.ClassName).@column.ColumnName = _userManager.User.OrganizeId;
break;
case "billRule":
@:auxiliay@(table.ClassName).@column.ColumnName = await _billRullService.GetBillNumber("@(column.Rule)");
break;
}
}
}
@*副表验证唯一值*@
@foreach(var column in Model.TableField)
{
@if(column.IsAuxiliary && column.TableName == table.OriginalTableName && column.IsUnique)
{
@:
@:if(await @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").Queryable<@(table.ClassName)Entity>().AnyAsync(it => it.@(column.ColumnName).Equals(auxiliay@(table.ClassName).@(column.ColumnName))))
@:throw Oops.Bah("@(column.ControlLabel)不能重复");
}
}
@:entity.@(table.ClassName) = auxiliay@(table.ClassName);
}
@*子表循环*@
@foreach(var table in Model.TableRelations)
{
@:
@:var @(table.LowerClassName)EntityList = input.@(table.ControlModel).Adapt<List<@(table.ClassName)Entity>>();
@if(table.IsUnique)
{
@*子表验证唯一值*@
@foreach(var column in table.ChilderColumnConfigList)
{
@if(column.IsUnique)
{
@:
@:if(@(table.LowerClassName)EntityList != null && await @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").Queryable<@(table.ClassName)Entity>().AnyAsync(it => @(table.LowerClassName)EntityList.Select(it => it.@(column.ColumnName)).Contains(it.@(column.ColumnName)) && it.@(table.TableField).Equals(entity.@(table.RelationField))))
@:throw Oops.Bah("@(column.ControlLabel)不能重复");
}
}
}
@:
@:if(@(table.LowerClassName)EntityList != null)
@:{
@if(Model.IsBillRule || Model.PrimaryKeyPolicy == 1)
{
@:foreach (var item in @(table.LowerClassName)EntityList)
@:{
@if(Model.PrimaryKeyPolicy == 1)
{
@:item.@(table.PrimaryKey) = SnowflakeIdHelper.NextId();
}
@foreach(var childer in table.ChilderColumnConfigList)
{
@*使用Switch 为后续添加控件方便*@
@switch(childer.jnpfKey)
{
case "billRule":
@:item.@(childer.ColumnName) = await _billRullService.GetBillNumber("@(childer.Rule)");
break;
}
}
@:}
}
@:
@:entity.@(table.ClassName)List = @(table.LowerClassName)EntityList;
@:}
@:
}
@:await @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").InsertNav(entity)
@foreach(var table in Model.AuxiliayTableRelations)
{
@:.Include(it => it.@(table.ClassName))
}
@foreach(var table in Model.TableRelations)
{
@:.Include(it => it.@(table.ClassName)List)
}
@:.ExecuteCommandAsync();
}
@*获取修改数据方法模板*@
void GetAndModifyDataMethodTemplate()
{
@foreach(var column in Model.TableField)
{
@if(!column.IsAuxiliary)
{
@switch(column.jnpfKey)
{
case "modifyTime":
@:entity.@column.ColumnName = DateTime.Now;
break;
case "modifyUser":
@:entity.@column.ColumnName = _userManager.UserId;
break;
}
}
}
@:
@*填充副表数据*@
@foreach(var table in Model.AuxiliayTableRelations)
{
@:var auxiliay@(table.ClassName) = input.Adapt<@(table.ClassName)CrInput>().Adapt<@(table.ClassName)Entity>();
@:auxiliay@(table.ClassName).@(table.TableField) = entity.@(table.RelationField);
@foreach(var column in Model.TableField)
{
@if(column.IsAuxiliary && column.TableName == table.OriginalTableName)
{
@switch(column.jnpfKey)
{
case "modifyTime":
@:auxiliay@(table.ClassName).@column.ColumnName = DateTime.Now;
break;
case "modifyUser":
@:auxiliay@(table.ClassName).@column.ColumnName = _userManager.UserId;
break;
}
}
}
@:
}
@*主表唯一值验证*@
@if(Model.IsUnique)
{
@foreach(var column in Model.TableField)
{
@if(!column.IsAuxiliary && column.IsUnique)
{
@:if (await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Queryable<" + Model.ClassName +"Entity>()." : "_repository.Is")AnyAsync(it => it.@(column.ColumnName).Equals(input.@(column.LowerColumnName)) && !it.@(Model.PrimaryKey).Equals(id)))
@:throw Oops.Bah("@(column.ControlLabel)不能重复");
@:
}
}
}
@*副表唯一值验证*@
@foreach(var table in Model.AuxiliayTableRelations)
{
@*跨库*@
@foreach(var column in Model.TableField)
{
@if(column.IsAuxiliary && column.IsUnique && column.TableName == table.OriginalTableName)
{
@:if (await @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").Queryable<@(table.ClassName)Entity>().AnyAsync(it => it.@(column.ColumnName).Equals(auxiliay@(table.ClassName).@(column.ColumnName)) && !it.@(table.TableField).Equals(entity.@(table.RelationField))))
@:throw Oops.Bah("@(column.ControlLabel)不能重复");
@:
}
}
}
@*子表唯一值验证*@
@foreach(var table in Model.TableRelations)
{
@:// 移除子表内本次编辑删除数据
@:await @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").Deleteable<@(table.ClassName)Entity>().Where(it => it.@(table.TableField) == entity.@(table.RelationField) && !input.@(table.ControlModel).Select(it => it.@(table.LowerPrimaryKey)).ToList().Contains(it.@(table.PrimaryKey))).ExecuteCommandAsync();
@:
@:// 新增@(table.TableComment)新数据
@:var @(table.LowerClassName)EntityList = input.@(table.ControlModel).Adapt<List<@(table.ClassName)Entity>>();
@if(table.IsUnique)
{
@:if(@(table.LowerClassName)EntityList != null)
@:{
@:foreach (var item in @(table.LowerClassName)EntityList)
@:{
@foreach(var column in table.ChilderColumnConfigList)
{
@if(column.IsUnique)
{
@:if(await @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").Queryable<@(table.ClassName)Entity>().AnyAsync(it => it.@(column.ColumnName) == item.@(column.ColumnName) && it.@(table.TableField).Equals(entity.@(table.RelationField)) && it.@(table.PrimaryKey) != item.@(table.PrimaryKey)))
@:throw Oops.Bah("@(column.ControlLabel)不能重复");
@:
}
}
@:}
@:}
@:
}
}
@:try
@:{
@*修改主表数据*@
@:await @(Model.DbLinkId != "0" ? "_sqlSugarClient." : "_repository.As")Updateable(entity)
@*主表是否存在系统自动添加字段*@
@if(Model.IsUpdate || Model.ConcurrencyLock)
{
@:.UpdateColumns(it => new {
@foreach(var column in Model.TableField)
{
@if(!column.IsAuxiliary && column.IsUpdate)
{
@:it.@(column.ColumnName),
}
}
@if(Model.ConcurrencyLock)
{
@:it.Version,
}
@:})
}
@if(Model.ConcurrencyLock)
{
@:.ExecuteCommandWithOptLockAsync(true);
}else{
@:.ExecuteCommandAsync();
}
@:
@*修改副表数据*@
@foreach(var table in Model.AuxiliayTableRelations)
{
@:await @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").Updateable(auxiliay@(table.ClassName))
@if(table.IsUpdate)
{
@:.UpdateColumns(it => new
@:{
@foreach(var column in Model.TableField)
{
@if(column.IsAuxiliary && column.TableName == table.OriginalTableName && column.IsUpdate)
{
@:it.@(column.ColumnName),
}
}
@:})
}
@:.Where(it => it.@(table.TableField) == entity.@(table.RelationField)).ExecuteCommandAsync();
@:
}
@*修改子表数据*@
@foreach(var table in Model.TableRelations)
{
@:if(@(table.LowerClassName)EntityList != null)
@:{
@:foreach (var item in @(table.LowerClassName)EntityList)
@:{
@if(Model.PrimaryKeyPolicy == 1)
{
@:item.@(table.PrimaryKey) = item.@(table.PrimaryKey) == null ? SnowflakeIdHelper.NextId() : item.@(table.PrimaryKey);
}
@:item.@(table.TableField) = entity.@(table.RelationField);
@foreach(var childer in table.ChilderColumnConfigList)
{
@*使用Switch 为后续添加控件方便*@
@switch(childer.jnpfKey)
{
case "billRule":
@:item.@(childer.ColumnName) = item.@(childer.ColumnName) == null ? await _billRullService.GetBillNumber("@(childer.Rule)") : item.@(childer.ColumnName);
break;
}
}
@:}
@:
@:await @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").Storageable<@(table.ClassName)Entity>(@(table.LowerClassName)EntityList).ExecuteCommandAsync();
@:}
@:
}
@:}
@:catch (Exception)
@:{
@:throw Oops.Oh(ErrorCode.COM1001);
@:}
}
}