添加项目文件。
This commit is contained in:
@@ -0,0 +1,180 @@
|
||||
namespace SimpleAdmin.System;
|
||||
|
||||
/// <summary>
|
||||
/// 代码生成基础添加参数
|
||||
/// </summary>
|
||||
public class GenBasicAddInput : GenBasic, IValidatableObject
|
||||
{
|
||||
/// <summary>
|
||||
/// 所属库名称
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "ConfigId不能为空")]
|
||||
public override string ConfigId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 主表名称
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "BbTable不能为空")]
|
||||
public override string DbTable { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 功能列表
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "FuncList不能为空")]
|
||||
public override List<string>? FuncList { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 生成模版
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "ModuleType不能为空")]
|
||||
public override string ModuleType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 数据权限
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "DataPermission不能为空")]
|
||||
public override string DataPermission { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 实体名称
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "EntityName不能为空")]
|
||||
public override string EntityName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 表前缀移除
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "TablePrefix不能为空")]
|
||||
public override string TablePrefix { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 生成方式
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "GenerateType不能为空")]
|
||||
public override string GenerateType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 所属模块
|
||||
/// </summary>
|
||||
[IdNotNull(ErrorMessage = "Module不能为空")]
|
||||
public override long Module { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 路由名
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "RouteName不能为空")]
|
||||
public override string RouteName { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 图标
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "Icon不能为空")]
|
||||
public override string Icon { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 功能名
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "FunctionName不能为空")]
|
||||
public override string FunctionName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 业务名
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "BusName不能为空")]
|
||||
public override string BusName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 类名
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "ClassName不能为空")]
|
||||
public override string ClassName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 表单布局
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "FormLayout不能为空")]
|
||||
public override string FormLayout { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 使用栅格
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "GridWhether不能为空")]
|
||||
public override string GridWhether { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 左侧树
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "LeftTree不能为空")]
|
||||
public override string LeftTree { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 前端路径
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "FrontedPath不能为空")]
|
||||
public override string FrontedPath { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 服务层
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "ServicePosition不能为空")]
|
||||
public override string ServicePosition { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 控制器层
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "ControllerPosition不能为空")]
|
||||
public override string ControllerPosition { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 排序
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "SortCode不能为空")]
|
||||
public override int SortCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 作者名
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "AuthorName不能为空")]
|
||||
public override string AuthorName { get; set; }
|
||||
|
||||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
|
||||
{
|
||||
//如果是树形结构
|
||||
if (ModuleType.Contains("tree"))
|
||||
{
|
||||
if (string.IsNullOrEmpty(TreeId) || string.IsNullOrEmpty(TreeName) || string.IsNullOrEmpty(TreePid))
|
||||
yield return new ValidationResult($"必须配置树表相关信息", new[] { nameof(TreeId), nameof(TreeName), nameof(TreePid) });
|
||||
}
|
||||
//如果是树形结构
|
||||
if (ModuleType.Contains("master"))
|
||||
{
|
||||
if (string.IsNullOrEmpty(ChildFk) || string.IsNullOrEmpty(ChildTable))
|
||||
yield return new ValidationResult($"必须配置主子表相关信息", new[] { nameof(ChildTable), nameof(ChildFk) });
|
||||
}
|
||||
if (!FuncList.Contains("curd"))
|
||||
{
|
||||
yield return new ValidationResult($"必须包含基础的增删改查功能", new[] { nameof(FuncList) });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 代码生成基础编辑参数
|
||||
/// </summary>
|
||||
public class GenBasicEditInput : GenBasicAddInput
|
||||
{
|
||||
[IdNotNull(ErrorMessage = "Id不能为空")]
|
||||
public override long Id { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 执行代码生成参数
|
||||
/// </summary>
|
||||
public class ExecGenInput : BaseIdInput
|
||||
{
|
||||
/// <summary>
|
||||
/// 生成类型
|
||||
/// </summary>
|
||||
public string ExecType { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
namespace SimpleAdmin.System;
|
||||
|
||||
/// <summary>
|
||||
/// 表字段信息输出
|
||||
/// </summary>
|
||||
public class GenBasicColumnOutput
|
||||
{
|
||||
/// <summary>
|
||||
/// 字段名称
|
||||
/// </summary>
|
||||
public string ColumnName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否主键
|
||||
/// </summary>
|
||||
public bool IsPrimarykey { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 字段类型
|
||||
/// </summary>
|
||||
public string TypeName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 字段注释
|
||||
/// </summary>
|
||||
public string ColumnRemark { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 预览代码生成结果
|
||||
/// </summary>
|
||||
public class GenBasePreviewOutput
|
||||
{
|
||||
/// <summary>
|
||||
/// SQL代码结果集
|
||||
/// </summary>
|
||||
public List<GenBaseCodeResult> SqlResults { get; set; } = new List<GenBaseCodeResult>();
|
||||
|
||||
/// <summary>
|
||||
/// 前端代码结果集
|
||||
/// </summary>
|
||||
public List<GenBaseCodeResult> CodeFrontendResults { get; set; } = new List<GenBaseCodeResult>();
|
||||
|
||||
/// <summary>
|
||||
/// 后端代码结果集
|
||||
/// </summary>
|
||||
|
||||
public List<GenBaseCodeResult> CodeBackendResults { get; set; } = new List<GenBaseCodeResult>();
|
||||
|
||||
public class GenBaseCodeResult
|
||||
{
|
||||
/// <summary>
|
||||
/// 代码文件名称
|
||||
/// </summary>
|
||||
public string CodeFileName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 文件路径
|
||||
/// </summary>
|
||||
public string FilePath { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 代码文件内容
|
||||
/// </summary>
|
||||
public string CodeFileContent { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,254 @@
|
||||
using StringHelper = SimpleTool.StringHelper;
|
||||
|
||||
namespace SimpleAdmin.System;
|
||||
|
||||
/// <summary>
|
||||
/// 代码生成绑定视图
|
||||
/// </summary>
|
||||
public class GenViewModel : GenBasic
|
||||
{
|
||||
#region 基础
|
||||
|
||||
/// <summary>
|
||||
/// 生成时间
|
||||
/// </summary>
|
||||
public string GenTime { get; set; } = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
|
||||
|
||||
/// <summary>
|
||||
/// 表字段
|
||||
/// </summary>
|
||||
public List<GenConfig> TableFields { get; set; }
|
||||
|
||||
#endregion 基础
|
||||
|
||||
#region 菜单
|
||||
|
||||
/// <summary>
|
||||
/// 菜单ID
|
||||
/// </summary>
|
||||
public long MenuId { get; set; } = CommonUtils.GetSingleId();
|
||||
|
||||
/// <summary>
|
||||
/// 菜单编码
|
||||
/// </summary>
|
||||
public string MenuCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// /菜单路径
|
||||
/// </summary>
|
||||
public string MenuPath
|
||||
{
|
||||
get { return $"/{RouteName}/{BusName}"; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// /菜单路径
|
||||
/// </summary>
|
||||
public string MenuComponent
|
||||
{
|
||||
get { return $"{RouteName}/{BusName}/index"; }
|
||||
}
|
||||
|
||||
#endregion 菜单
|
||||
|
||||
#region 按钮
|
||||
|
||||
/// <summary>
|
||||
/// 添加按钮ID
|
||||
/// </summary>
|
||||
public long AddButtonId { get; set; } = CommonUtils.GetSingleId();
|
||||
|
||||
/// <summary>
|
||||
/// 批量删除按钮ID
|
||||
/// </summary>
|
||||
public long BatchDeleteButtonId { get; set; } = CommonUtils.GetSingleId();
|
||||
|
||||
/// <summary>
|
||||
/// 编辑按钮ID
|
||||
/// </summary>
|
||||
public long EditButtonId { get; set; } = CommonUtils.GetSingleId();
|
||||
|
||||
/// <summary>
|
||||
/// 删除按钮ID
|
||||
/// </summary>
|
||||
public long DeleteButtonId { get; set; } = CommonUtils.GetSingleId();
|
||||
|
||||
#endregion 按钮
|
||||
|
||||
|
||||
#region 后端
|
||||
|
||||
/// <summary>
|
||||
/// 类名首字母小写
|
||||
/// </summary>
|
||||
public string ClassNameFirstLower
|
||||
{
|
||||
get { return StringHelper.FirstCharToLower(ClassName); }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// swagger分组名称
|
||||
/// </summary>
|
||||
public string ApiGroup
|
||||
{
|
||||
get
|
||||
{
|
||||
return ServicePosition.Split(".").Last();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 服务名
|
||||
/// </summary>
|
||||
public string ServiceName
|
||||
{
|
||||
get { return ClassName + "Service"; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 服务名开头首字母小写
|
||||
/// </summary>
|
||||
public string ServiceFirstLower
|
||||
{
|
||||
get { return ClassNameFirstLower + "Service"; }
|
||||
}
|
||||
|
||||
#endregion 后端
|
||||
|
||||
#region 注释描述
|
||||
|
||||
/// <summary>
|
||||
/// 分页查询
|
||||
/// </summary>
|
||||
public string DescriptionPage
|
||||
{
|
||||
get { return FunctionName + "分页查询"; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 列表查询
|
||||
/// </summary>
|
||||
public string DescriptionList
|
||||
{
|
||||
get { return FunctionName + "列表查询"; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加
|
||||
/// </summary>
|
||||
public string DescriptionAdd
|
||||
{
|
||||
get { return "添加" + FunctionName; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 修改
|
||||
/// </summary>
|
||||
public string DescriptionEdit
|
||||
{
|
||||
get { return "修改" + FunctionName; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 修改
|
||||
/// </summary>
|
||||
public string DescriptionDelete
|
||||
{
|
||||
get { return "删除" + FunctionName; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 详情
|
||||
/// </summary>
|
||||
public string DescriptionDetail
|
||||
{
|
||||
get { return FunctionName + "详情"; }
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 导入
|
||||
/// </summary>
|
||||
public string DescriptionImport
|
||||
{
|
||||
get { return FunctionName + "导入"; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 导入模板下载
|
||||
/// </summary>
|
||||
public string DescriptionTemplate
|
||||
{
|
||||
get { return FunctionName + "导入模板下载"; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 导入预览
|
||||
/// </summary>
|
||||
public string DescriptionPreview
|
||||
{
|
||||
get { return FunctionName + "导入预览"; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 导入
|
||||
/// </summary>
|
||||
public string DescriptionExport
|
||||
{
|
||||
get { return FunctionName + "导出"; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 批量编辑
|
||||
/// </summary>
|
||||
public string DescriptionEdits
|
||||
{
|
||||
get { return FunctionName + "批量编辑"; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 树查询
|
||||
/// </summary>
|
||||
public string DescriptionTree
|
||||
{
|
||||
get { return FunctionName + "树"; }
|
||||
}
|
||||
|
||||
#endregion 注释描述
|
||||
|
||||
#region 参数
|
||||
|
||||
/// <summary>
|
||||
/// 分页参数
|
||||
/// </summary>
|
||||
public string PageInput
|
||||
{
|
||||
get { return ClassName + "PageInput"; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加参数
|
||||
/// </summary>
|
||||
public string AddInput
|
||||
{
|
||||
get { return ClassName + "AddInput"; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 编辑参数
|
||||
/// </summary>
|
||||
public string EditInput
|
||||
{
|
||||
get { return ClassName + "EditInput"; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 树查询参数
|
||||
/// </summary>
|
||||
public string TreeInput
|
||||
{
|
||||
get { return ClassName + "TreeInput"; }
|
||||
}
|
||||
|
||||
#endregion 参数
|
||||
}
|
||||
Reference in New Issue
Block a user