// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。 // // 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。 // // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! using Admin.NET.Core; using System.ComponentModel.DataAnnotations; @{ string RemoteField=""; string PKName=""; foreach (var column in Model.TableField){ if(column.RemoteVerify){ RemoteField=@column.PropertyName; } if(column.ColumnKey == "True"){ PKName=column.PropertyName; } } } namespace @Model.NameSpace; /// /// @(@Model.BusName)基础输入参数 /// public class @(@Model.ClassName)BaseInput { @foreach (var column in Model.TableField){ if (@column.ColumnKey != "True"){ @:/// @:/// @column.ColumnComment @:/// @:public virtual @column.NetType @column.PropertyName { get; set; } @: } } } /// /// @(@Model.BusName)分页查询输入参数 /// public class Page@(@Model.ClassName)Input : BasePageInput { /// /// 关键字查询 /// public string? SearchKey { get; set; } @foreach (var column in Model.TableField){ if (@column.QueryWhether == "Y"){ @:/// @:/// @column.ColumnComment @:/// if(@column.NetType?.EndsWith("?") == true){ @:public @column.NetType @column.PropertyName { get; set; } }else { @:public @(@column.NetType)? @column.PropertyName { get; set; } } @: if(@column.NetType?.TrimEnd('?') == "DateTime" && @column.QueryType == "~"){ @:/// @: /// @(@column.ColumnComment)范围 @: /// @: public DateTime?[] @(@column.PropertyName)Range { get; set; } } } } } /// /// @(@Model.BusName)增加输入参数 /// public class Add@(@Model.ClassName)Input : @(@Model.ClassName)BaseInput { @foreach (var column in Model.TableField){ if (@column.WhetherAddUpdate == "Y"){ @:/// @:/// @column.ColumnComment @:/// @if(@column.WhetherRequired=="Y"){ @:[Required(ErrorMessage = "@(@column.ColumnComment)不能为空")] } @if(@column.NetType.StartsWith("string")&&!@column.RuleItems.Any(t=>t.Type=="length")&&@column.ColumnLength>0){ @:[StringLength(@(@column.ColumnLength), ErrorMessage = "@(@column.ColumnComment)不能超过@(@column.ColumnLength)个字符")] } @if(@column.AnyRule){ @foreach(var rule in @column.RuleItems){ @if(rule.Type=="pattern"){ @:[RegularExpression(@@"@(@FormatPattern(rule.Pattern))", ErrorMessage = "@(@rule.Message)")] } @if(rule.Type=="length"&&column.NetType.StartsWith("string")){ @:[StringLength(@(@rule.Max),MinimumLength = @(@rule.Min), ErrorMessage = "@(@column.ColumnComment)只能是@(@rule.Min)至@(@rule.Max)字符")] } @if(rule.Type=="length"&&column.NetType.StartsWith("DateTime")){ @:[Range(typeof(DateTime), "@(@rule.Min)", "@(@rule.Max)", ErrorMessage = "@(@column.ColumnComment)只能是@(@rule.Min)到@(@rule.Max)")] } @if(rule.Type=="length"&&(column.NetType.StartsWith("int")||column.NetType.StartsWith("long")||column.NetType.StartsWith("decimal")||column.NetType.StartsWith("float")||column.NetType.StartsWith("double"))){ @:[Range(@(@rule.Min), @(@rule.Max), ErrorMessage = "@(@column.ColumnComment)只能是@(@rule.Min)至@(@rule.Max)")] } } } @:public override @column.NetType @column.PropertyName { get; set; } @: } } } /// /// @(@Model.BusName)删除输入参数 /// public class Delete@(@Model.ClassName)Input : BaseIdInput { @foreach (var column in Model.TableField){ if (@column.ColumnKey == "True" && @column.PropertyName != "Id"){ @:/// @:/// @column.ColumnComment @:/// @:[Required(ErrorMessage = "@(@column.ColumnComment)不能为空")] @:public @column.NetType @column.PropertyName { get; set; } @: } } } /// /// @(@Model.BusName)更新输入参数 /// public class Update@(@Model.ClassName)Input : @(@Model.ClassName)BaseInput { @foreach (var column in Model.TableField){ if (@column.ColumnKey == "True"){ @:/// @:/// @column.ColumnComment @:/// @:[Required(ErrorMessage = "@(@column.ColumnComment)不能为空")] @:public @column.NetType @column.PropertyName { get; set; } @: } if (@column.WhetherAddUpdate == "Y"){ @:/// @:/// @column.ColumnComment @:/// @if(@column.WhetherRequired=="Y"){ @:[Required(ErrorMessage = "@(@column.ColumnComment)不能为空")] } @if(@column.NetType.StartsWith("string")&&!@column.RuleItems.Any(t=>t.Type=="length")&&@column.ColumnLength>0){ @:[StringLength(@(@column.ColumnLength), ErrorMessage = "@(@column.ColumnComment)不能超过@(@column.ColumnLength)个字符")] } @if(@column.AnyRule){ @foreach(var rule in @column.RuleItems){ @if(rule.Type=="pattern"){ @:[RegularExpression(@@"@(@FormatPattern(rule.Pattern))", ErrorMessage = "@(@rule.Message)")] } @if(rule.Type=="length"&&column.NetType.StartsWith("string")){ @:[StringLength(@(@rule.Max),MinimumLength = @(@rule.Min), ErrorMessage = "@(@column.ColumnComment)只能是@(@rule.Min)至@(@rule.Max)字符")] } @if(rule.Type=="length"&&column.NetType.StartsWith("DateTime")){ @:[Range(typeof(DateTime), "@(@rule.Min)", "@(@rule.Max)", ErrorMessage = "@(@column.ColumnComment)只能是@(@rule.Min)到@(@rule.Max)")] } @if(rule.Type=="length"&&(column.NetType.StartsWith("int")||column.NetType.StartsWith("long")||column.NetType.StartsWith("decimal")||column.NetType.StartsWith("float")||column.NetType.StartsWith("double"))){ @:[Range(@(@rule.Min), @(@rule.Max), ErrorMessage = "@(@column.ColumnComment)只能是@(@rule.Min)至@(@rule.Max)")] } } } @:public override @column.NetType @column.PropertyName { get; set; } @: } } } /// /// @(@Model.BusName)主键查询输入参数 /// public class QueryById@(@Model.ClassName)Input : Delete@(@Model.ClassName)Input { } @if(@Model.RemoteVerify){ @:/// @:/// 检查@(RemoteField)字段参数 @:/// @:public class Exists@(RemoteField)Input @:{ @:/// @:/// 字段值 @:/// @:public string FieldValue { get; set; } @: @:/// @:/// 旧字段值 @:/// @:public string OldFieldValue { get; set; } @:} } @{ string FormatPattern(string pattern) { if (pattern.EndsWith('g')) { pattern = pattern.TrimEnd('g'); } pattern = pattern.Trim('/'); return pattern; } }