Files
tnb.server/apihost/Tnb.API.Entry/wwwroot/Template/1-SingleTable/Mapper.cs.vm
2023-03-13 15:00:34 +08:00

249 lines
6.6 KiB
Plaintext

using JNPF.Common.Security;
@*是否需要上传文件引用*@
@if(Model.IsUploading)
{
@:using JNPF.Common.Models;
}
using JNPF.@(Model.NameSpace).Entitys.Dto.@(Model.ClassName);
using Mapster;
namespace JNPF.@(Model.NameSpace).Entitys.Mapper.@(Model.ClassName);
public class Mapper : IRegister
{
public void Register(TypeAdapterConfig config)
{
@*判断是否需要映射*@
@if(Model.IsMapper)
{
@*判断WebType 1-纯表单,2-常规表单*@
@switch(Model.WebType)
{
case 1:
@{GetCrInputToEntity(); }
@if(Model.EnableFlow || Model.Type == 3){
GetEntityToInfoOutput();
}
break;
case 2:
@{GetCrInputToEntity(); }
@{GetEntityToInfoOutput();}
@if(Model.IsInlineEditor)
{
GetListOutputToInlineEditorOutput();
}
break;
}
}
}
}
@{
@*新增输入转实体*@
void GetCrInputToEntity()
{
@:config.ForType<@(Model.ClassName)CrInput, @(Model.ClassName)Entity>()
@*循环表字段*@
@foreach (var column in Model.TableField)
{
@*判断jnpfKey不为空*@
@if (column.jnpfKey != null)
{
switch(column.jnpfKey)
{
@*下拉框控件*@
case "select":
case "userSelect":
case "treeSelect":
case "depSelect":
case "posSelect":
case "popupTableSelect":
case "roleSelect":
case "groupSelect":
case "usersSelect":
@*是否为多选*@
@if(column.IsMultiple)
{
@:.Map(dest => dest.@(column.ColumnName), src => src.@(column.LowerColumnName) != null && src.@(column.LowerColumnName).Count > 0 ? src.@(column.LowerColumnName).ToJsonString() : null)
}
break;
@*复选框、级联、省市区、图片上传、文件上传*@
case "checkbox":
case "cascader":
case "comSelect":
case "address":
case "uploadImg":
case "uploadFz":
@:.Map(dest => dest.@(column.ColumnName), src => src.@(column.LowerColumnName) != null && src.@(column.LowerColumnName).Count > 0 ? src.@(column.LowerColumnName).ToJsonString() : null)
break;
}
}
}
@:;
}
@*新增输入转实体*@
void GetEntityToDetailOutput()
{
@:config.ForType<@(Model.ClassName)Entity, @(Model.ClassName)DetailOutput>()
@*循环表字段*@
@foreach (var column in Model.TableField)
{
@if (column.jnpfKey != null)
{
switch(column.jnpfKey)
{
case "uploadImg":
case "uploadFz":
@:.Map(dest => dest.@(column.LowerColumnName), src => src.@(column.ColumnName) != null ? src.@(column.ColumnName).ToObject<List<FileControlsModel>>() : new List<FileControlsModel>())
break;
}
}
}
@:;
}
}
@{
@*实体转详情输出*@
void GetEntityToInfoOutput()
{
@:config.ForType<@(Model.ClassName)Entity, @(Model.ClassName)InfoOutput>()
@foreach (var column in Model.TableField)
{
@if (column.jnpfKey != null)
{
switch(column.jnpfKey)
{
case "select":
case "userSelect":
case "treeSelect":
case "depSelect":
case "posSelect":
case "popupTableSelect":
case "roleSelect":
case "groupSelect":
case "usersSelect":
@if(column.IsMultiple)
{
@:.Map(dest => dest.@(column.LowerColumnName), src => src.@(column.ColumnName) != null ? src.@(column.ColumnName).ToObject<List<string>>() : null)
}
break;
case "cascader":
case "comSelect":
case "address":
@if(column.IsMultiple)
{
@:.Map(dest => dest.@(column.LowerColumnName), src => src.@(column.ColumnName) != null ? src.@(column.ColumnName).ToObject<List<List<string>>>() : null)
}
else
{
@:.Map(dest => dest.@(column.LowerColumnName), src => src.@(column.ColumnName) != null ? src.@(column.ColumnName).ToObject<List<string>>() : null)
}
break;
case "checkbox":
@:.Map(dest => dest.@(column.LowerColumnName), src => src.@(column.ColumnName) != null ? src.@(column.ColumnName).ToObject<List<string>>() : null)
break;
case "uploadImg":
case "uploadFz":
@:.Map(dest => dest.@(column.LowerColumnName), src => src.@(column.ColumnName) != null ? src.@(column.ColumnName).ToObject<List<FileControlsModel>>() : new List<FileControlsModel>())
break;
case "createTime":
@:.Map(dest => dest.@(@column.LowerColumnName), src => string.Format("{0:yyyy-MM-dd HH:mm}", src.@(@column.ColumnName)))
break;
case "modifyTime":
@:.Map(dest => dest.@(@column.LowerColumnName), src => src.@(@column.ColumnName) != null ? string.Format("{0:yyyy-MM-dd HH:mm}", src.@(@column.ColumnName)) : null)
break;
}
}
}
@:;
}
@*实体转修改输入*@
void GetEntityToUpInput()
{
@:config.ForType<@(Model.ClassName)Entity, @(Model.ClassName)UpInput>()
@foreach (var column in Model.TableField)
{
@if (column.jnpfKey != null)
{
switch(column.jnpfKey)
{
case "select":
case "userSelect":
case "treeSelect":
case "depSelect":
case "posSelect":
case "popupTableSelect":
case "roleSelect":
case "groupSelect":
case "usersSelect":
@if(column.IsMultiple)
{
@:.Map(dest => dest.@(column.LowerColumnName), src => src.@(column.ColumnName) != null ? src.@(column.ColumnName).ToObject<List<string>>() : null)
}
break;
case "cascader":
case "comSelect":
case "address":
@if(column.IsMultiple)
{
@:.Map(dest => dest.@(column.LowerColumnName), src => src.@(column.ColumnName) != null ? src.@(column.ColumnName).ToObject<List<List<string>>>() : null)
}else{
@:.Map(dest => dest.@(column.LowerColumnName), src => src.@(column.ColumnName) != null ? src.@(column.ColumnName).ToObject<List<string>>() : null)
}
break;
case "checkbox":
@:.Map(dest => dest.@(column.LowerColumnName), src => src.@(column.ColumnName) != null ? src.@(column.ColumnName).ToObject<List<string>>() : null)
break;
case "uploadImg":
case "uploadFz":
@:.Map(dest => dest.@(column.LowerColumnName), src => src.@(column.ColumnName) != null ? src.@(column.ColumnName).ToObject<List<FileControlsModel>>() : null)
break;
}
}
}
@:;
}
@*列表转行内编辑输出*@
void GetListOutputToInlineEditorOutput()
{
@:config.ForType<@(Model.ClassName)ListOutput, @(Model.ClassName)InlineEditorOutput>()
@foreach (var column in Model.TableField)
{
@if (column.IsShow)
{
switch(column.jnpfKey)
{
case "select":
case "userSelect":
case "treeSelect":
case "depSelect":
case "posSelect":
case "popupTableSelect":
case "roleSelect":
case "groupSelect":
case "usersSelect":
@if(column.IsMultiple)
{
@:.Map(dest => dest.@(column.LowerColumnName), src => src.@(column.LowerColumnName) != null ? src.@(column.LowerColumnName).ToObject<List<string>>() : new List<string>())
}
break;
case "cascader":
case "comSelect":
case "address":
@if(column.IsMultiple)
{
@:.Map(dest => dest.@(column.LowerColumnName), src => src.@(column.LowerColumnName) != null ? src.@(column.LowerColumnName).ToObject<List<List<string>>>() : new List<List<string>>())
}
else
{
@:.Map(dest => dest.@(column.LowerColumnName), src => src.@(column.LowerColumnName) != null ? src.@(column.LowerColumnName).ToObject<List<string>>() : new List<string>())
}
break;
case "checkbox":
@:.Map(dest => dest.@(column.LowerColumnName), src => src.@(column.LowerColumnName) != null ? src.@(column.LowerColumnName).ToObject<List<string>>() : new List<string>())
break;
}
}
}
@:;
}
}