更新项目配置,新增设备同步模块,优化WebSocket和Swagger配置,增强SCADA系统的免登录接口,支持数据字典项和登录日志的免登录查询与记录。调整Java编译设置,确保更好的开发体验。

This commit is contained in:
geht
2026-04-28 10:23:58 +08:00
parent bbe46dcf2d
commit 142a0bdaba
1013 changed files with 41858 additions and 28 deletions

View File

@@ -0,0 +1,192 @@
namespace YY.Admin.Core;
/// <summary>
/// 框架实体基类Id
/// </summary>
public abstract class EntityBaseId
{
/// <summary>
/// 雪花Id
/// </summary>
[SugarColumn(ColumnName = "Id", ColumnDescription = "主键Id", IsPrimaryKey = true, IsIdentity = false)]
public virtual long Id { get; set; }
}
/// <summary>
/// 框架实体基类
/// </summary>
[SugarIndex("index_{table}_CT", nameof(CreateTime), OrderByType.Asc)]
public abstract class EntityBase : EntityBaseId
{
/// <summary>
/// 创建时间
/// </summary>
[SugarColumn(ColumnDescription = "创建时间", IsNullable = true, IsOnlyIgnoreUpdate = true)]
public virtual DateTime CreateTime { get; set; }
/// <summary>
/// 更新时间
/// </summary>
[SugarColumn(ColumnDescription = "更新时间")]
public virtual DateTime? UpdateTime { get; set; }
/// <summary>
/// 创建者Id
/// </summary>
[OwnerUser]
[SugarColumn(ColumnDescription = "创建者Id", IsOnlyIgnoreUpdate = true)]
public virtual long? CreateUserId { get; set; }
///// <summary>
///// 创建者
///// </summary>
//[Newtonsoft.Json.JsonIgnore]
//[System.Text.Json.Serialization.JsonIgnore]
//[Navigate(NavigateType.OneToOne, nameof(CreateUserId))]
//public virtual SysUser CreateUser { get; set; }
/// <summary>
/// 创建者姓名
/// </summary>
[SugarColumn(ColumnDescription = "创建者姓名", Length = 64, IsOnlyIgnoreUpdate = true)]
public virtual string? CreateUserName { get; set; }
/// <summary>
/// 修改者Id
/// </summary>
[SugarColumn(ColumnDescription = "修改者Id")]
public virtual long? UpdateUserId { get; set; }
///// <summary>
///// 修改者
///// </summary>
//[Newtonsoft.Json.JsonIgnore]
//[System.Text.Json.Serialization.JsonIgnore]
//[Navigate(NavigateType.OneToOne, nameof(UpdateUserId))]
//public virtual SysUser UpdateUser { get; set; }
/// <summary>
/// 修改者姓名
/// </summary>
[SugarColumn(ColumnDescription = "修改者姓名", Length = 64)]
public virtual string? UpdateUserName { get; set; }
}
/// <summary>
/// 框架实体基类(删除标志)
/// </summary>
[SugarIndex("index_{table}_D", nameof(IsDelete), OrderByType.Asc)]
public abstract class EntityBaseDel : EntityBase, IDeletedFilter
{
/// <summary>
/// 软删除
/// </summary>
[SugarColumn(ColumnDescription = "软删除")]
public virtual bool IsDelete { get; set; } = false;
}
/// <summary>
/// 机构实体基类(数据权限)
/// </summary>
public abstract class EntityBaseOrg : EntityBase, IOrgIdFilter
{
/// <summary>
/// 机构Id
/// </summary>
[SugarColumn(ColumnDescription = "机构Id", IsNullable = true)]
public virtual long OrgId { get; set; }
///// <summary>
///// 创建者部门Id
///// </summary>
//[SugarColumn(ColumnDescription = "创建者部门Id", IsOnlyIgnoreUpdate = true)]
//public virtual long? CreateOrgId { get; set; }
///// <summary>
///// 创建者部门
///// </summary>
//[Newtonsoft.Json.JsonIgnore]
//[System.Text.Json.Serialization.JsonIgnore]
//[Navigate(NavigateType.OneToOne, nameof(CreateOrgId))]
//public virtual SysOrg CreateOrg { get; set; }
///// <summary>
///// 创建者部门名称
///// </summary>
//[SugarColumn(ColumnDescription = "创建者部门名称", Length = 64, IsOnlyIgnoreUpdate = true)]
//public virtual string? CreateOrgName { get; set; }
}
/// <summary>
/// 机构实体基类(数据权限、删除标志)
/// </summary>
public abstract class EntityBaseOrgDel : EntityBaseDel, IOrgIdFilter
{
/// <summary>
/// 机构Id
/// </summary>
[SugarColumn(ColumnDescription = "机构Id", IsNullable = true)]
public virtual long OrgId { get; set; }
}
/// <summary>
/// 租户实体基类
/// </summary>
public abstract class EntityBaseTenant : EntityBase, ITenantIdFilter
{
/// <summary>
/// 租户Id
/// </summary>
[SugarColumn(ColumnDescription = "租户Id", IsOnlyIgnoreUpdate = true)]
public virtual long? TenantId { get; set; }
}
/// <summary>
/// 租户实体基类(删除标志)
/// </summary>
public abstract class EntityBaseTenantDel : EntityBaseDel, ITenantIdFilter
{
/// <summary>
/// 租户Id
/// </summary>
[SugarColumn(ColumnDescription = "租户Id", IsOnlyIgnoreUpdate = true)]
public virtual long? TenantId { get; set; }
}
/// <summary>
/// 租户实体基类Id
/// </summary>
public abstract class EntityBaseTenantId : EntityBaseId, ITenantIdFilter
{
/// <summary>
/// 租户Id
/// </summary>
[SugarColumn(ColumnDescription = "租户Id", IsOnlyIgnoreUpdate = true)]
public virtual long? TenantId { get; set; }
}
/// <summary>
/// 租户机构实体基类(数据权限)
/// </summary>
public abstract class EntityBaseTenantOrg : EntityBaseOrg, ITenantIdFilter
{
/// <summary>
/// 租户Id
/// </summary>
[SugarColumn(ColumnDescription = "租户Id", IsOnlyIgnoreUpdate = true)]
public virtual long? TenantId { get; set; }
}
/// <summary>
/// 租户机构实体基类(数据权限、删除标志)
/// </summary>
public abstract class EntityBaseTenantOrgDel : EntityBaseOrgDel, ITenantIdFilter
{
/// <summary>
/// 租户Id
/// </summary>
[SugarColumn(ColumnDescription = "租户Id", IsOnlyIgnoreUpdate = true)]
public virtual long? TenantId { get; set; }
}

View File

@@ -0,0 +1,36 @@
namespace YY.Admin.Core;
/// <summary>
/// 假删除接口过滤器
/// </summary>
public interface IDeletedFilter
{
/// <summary>
/// 软删除
/// </summary>
bool IsDelete { get; set; }
}
/// <summary>
/// 租户Id接口过滤器
/// </summary>
public interface ITenantIdFilter
{
/// <summary>
/// 租户Id
/// </summary>
long? TenantId { get; set; }
}
/// <summary>
/// 机构Id接口过滤器
/// </summary>
public interface IOrgIdFilter
{
/// <summary>
/// 机构Id
/// </summary>
long OrgId { get; set; }
}

View File

@@ -0,0 +1,59 @@
using SqlSugar;
namespace YY.Admin.Core;
/// <summary>
/// Jeecg 数据字典项同构表(桌面端)
/// </summary>
[SugarTable("jeecg_sys_dict_item", "Jeecg数据字典项同构表")]
[SysTable]
public class JeecgSysDictItem
{
[SugarColumn(ColumnName = "id", IsPrimaryKey = true, Length = 64)]
public string Id { get; set; } = string.Empty;
[SugarColumn(ColumnName = "dict_id", Length = 64, IsNullable = true)]
public string? DictId { get; set; }
[SugarColumn(ColumnName = "dict_name", Length = 255, IsNullable = true)]
public string? DictName { get; set; }
[SugarColumn(ColumnName = "dict_code", Length = 255, IsNullable = true)]
public string? DictCode { get; set; }
[SugarColumn(ColumnName = "dict_type", IsNullable = true)]
public int? DictType { get; set; }
[SugarColumn(ColumnName = "dict_description", Length = 500, IsNullable = true)]
public string? DictDescription { get; set; }
[SugarColumn(ColumnName = "item_text", Length = 255, IsNullable = true)]
public string? ItemText { get; set; }
[SugarColumn(ColumnName = "item_value", Length = 255, IsNullable = true)]
public string? ItemValue { get; set; }
[SugarColumn(ColumnName = "item_description", Length = 500, IsNullable = true)]
public string? ItemDescription { get; set; }
[SugarColumn(ColumnName = "sort_order", IsNullable = true)]
public int? SortOrder { get; set; }
[SugarColumn(ColumnName = "status", IsNullable = true)]
public int? Status { get; set; }
[SugarColumn(ColumnName = "item_color", Length = 100, IsNullable = true)]
public string? ItemColor { get; set; }
[SugarColumn(ColumnName = "create_by", Length = 100, IsNullable = true)]
public string? CreateBy { get; set; }
[SugarColumn(ColumnName = "create_time", IsNullable = true)]
public DateTime? CreateTime { get; set; }
[SugarColumn(ColumnName = "update_by", Length = 100, IsNullable = true)]
public string? UpdateBy { get; set; }
[SugarColumn(ColumnName = "update_time", IsNullable = true)]
public DateTime? UpdateTime { get; set; }
}

View File

@@ -0,0 +1,181 @@
using SqlSugar;
namespace YY.Admin.Core;
/// <summary>
/// Jeecg 用户同构表(桌面端)
/// 说明:
/// 1. 按 JeecgBoot 的 sys_user 字段模型定义。
/// 2. 为避免影响现有 YY.Admin 的 sys_user 业务表,这里单独落表 jeecg_sys_user。
/// </summary>
[SugarTable("jeecg_sys_user", "Jeecg用户同构表")]
[SysTable]
public class JeecgSysUser
{
/// <summary>idJeecg为字符串雪花ID</summary>
[SugarColumn(ColumnName = "id", IsPrimaryKey = true, Length = 64)]
public string Id { get; set; } = string.Empty;
/// <summary>登录账号</summary>
[SugarColumn(ColumnName = "username", Length = 64, IsNullable = true)]
public string? Username { get; set; }
/// <summary>真实姓名</summary>
[SugarColumn(ColumnName = "realname", Length = 64, IsNullable = true)]
public string? Realname { get; set; }
/// <summary>密码</summary>
[SugarColumn(ColumnName = "password", Length = 512, IsNullable = true)]
public string? Password { get; set; }
/// <summary>密码盐</summary>
[SugarColumn(ColumnName = "salt", Length = 64, IsNullable = true)]
public string? Salt { get; set; }
/// <summary>头像</summary>
[SugarColumn(ColumnName = "avatar", Length = 512, IsNullable = true)]
public string? Avatar { get; set; }
/// <summary>生日</summary>
[SugarColumn(ColumnName = "birthday", IsNullable = true)]
public DateTime? Birthday { get; set; }
/// <summary>性别1男2女</summary>
[SugarColumn(ColumnName = "sex", IsNullable = true)]
public int? Sex { get; set; }
/// <summary>邮箱</summary>
[SugarColumn(ColumnName = "email", Length = 128, IsNullable = true)]
public string? Email { get; set; }
/// <summary>手机号</summary>
[SugarColumn(ColumnName = "phone", Length = 32, IsNullable = true)]
public string? Phone { get; set; }
/// <summary>登录选择部门编码</summary>
[SugarColumn(ColumnName = "org_code", Length = 128, IsNullable = true)]
public string? OrgCode { get; set; }
/// <summary>登录选择租户ID</summary>
[SugarColumn(ColumnName = "login_tenant_id", IsNullable = true)]
public int? LoginTenantId { get; set; }
/// <summary>状态(1正常 2冻结)</summary>
[SugarColumn(ColumnName = "status", IsNullable = true)]
public int? Status { get; set; }
/// <summary>删除标志0正常 1已删</summary>
[SugarColumn(ColumnName = "del_flag", IsNullable = true)]
public int? DelFlag { get; set; }
/// <summary>工号</summary>
[SugarColumn(ColumnName = "work_no", Length = 64, IsNullable = true)]
public string? WorkNo { get; set; }
/// <summary>座机号</summary>
[SugarColumn(ColumnName = "telephone", Length = 32, IsNullable = true)]
public string? Telephone { get; set; }
/// <summary>创建人</summary>
[SugarColumn(ColumnName = "create_by", Length = 64, IsNullable = true)]
public string? CreateBy { get; set; }
/// <summary>创建时间</summary>
[SugarColumn(ColumnName = "create_time", IsNullable = true)]
public DateTime? CreateTime { get; set; }
/// <summary>更新人</summary>
[SugarColumn(ColumnName = "update_by", Length = 64, IsNullable = true)]
public string? UpdateBy { get; set; }
/// <summary>更新时间</summary>
[SugarColumn(ColumnName = "update_time", IsNullable = true)]
public DateTime? UpdateTime { get; set; }
/// <summary>流程同步标志</summary>
[SugarColumn(ColumnName = "activiti_sync", IsNullable = true)]
public int? ActivitiSync { get; set; }
/// <summary>身份0普通成员 1上级</summary>
[SugarColumn(ColumnName = "user_identity", IsNullable = true)]
public int? UserIdentity { get; set; }
/// <summary>负责部门IDs</summary>
[SugarColumn(ColumnName = "depart_ids", Length = 1024, IsNullable = true)]
public string? DepartIds { get; set; }
/// <summary>设备ID</summary>
[SugarColumn(ColumnName = "client_id", Length = 256, IsNullable = true)]
public string? ClientId { get; set; }
/// <summary>流程状态</summary>
[SugarColumn(ColumnName = "bpm_status", Length = 64, IsNullable = true)]
public string? BpmStatus { get; set; }
/// <summary>个性签名</summary>
[SugarColumn(ColumnName = "sign", Length = 512, IsNullable = true)]
public string? Sign { get; set; }
/// <summary>是否开启个性签名</summary>
[SugarColumn(ColumnName = "sign_enable", IsNullable = true)]
public int? SignEnable { get; set; }
/// <summary>主岗位</summary>
[SugarColumn(ColumnName = "main_dep_post_id", Length = 128, IsNullable = true)]
public string? MainDepPostId { get; set; }
/// <summary>职务(字典)</summary>
[SugarColumn(ColumnName = "position_type", Length = 64, IsNullable = true)]
public string? PositionType { get; set; }
/// <summary>最后修改密码时间</summary>
[SugarColumn(ColumnName = "last_pwd_update_time", IsNullable = true)]
public DateTime? LastPwdUpdateTime { get; set; }
/// <summary>排序</summary>
[SugarColumn(ColumnName = "sort", IsNullable = true)]
public int? Sort { get; set; }
/// <summary>是否隐藏联系方式 0否1是</summary>
[SugarColumn(ColumnName = "iz_hide_contact", Length = 8, IsNullable = true)]
public string? IzHideContact { get; set; }
// ------------------------- 非持久化字段(与 Jeecg 实体保持一致) -------------------------
/// <summary>部门名称(非持久化)</summary>
[SugarColumn(IsIgnore = true)]
public string? OrgCodeTxt { get; set; }
/// <summary>职务(非持久化)</summary>
[SugarColumn(IsIgnore = true)]
public string? Post { get; set; }
/// <summary>多租户ids临时字段非持久化</summary>
[SugarColumn(IsIgnore = true)]
public string? RelTenantIds { get; set; }
/// <summary>首页路径(非持久化)</summary>
[SugarColumn(IsIgnore = true)]
public string? HomePath { get; set; }
/// <summary>职位名称(非持久化)</summary>
[SugarColumn(IsIgnore = true)]
public string? PostText { get; set; }
/// <summary>是否绑定第三方(非持久化)</summary>
[SugarColumn(IsIgnore = true)]
public bool IzBindThird { get; set; }
/// <summary>兼职岗位(非持久化)</summary>
[SugarColumn(IsIgnore = true)]
public string? OtherDepPostId { get; set; }
/// <summary>登录时选择部门编码(非持久化)</summary>
[SugarColumn(IsIgnore = true)]
public string? LoginOrgCode { get; set; }
/// <summary>所属部门IDs非持久化</summary>
[SugarColumn(IsIgnore = true)]
public string? BelongDepIds { get; set; }
}

View File

@@ -0,0 +1,64 @@
namespace YY.Admin.Core;
/// <summary>
/// 系统配置参数表
/// </summary>
[SugarTable("sys_config", "系统配置参数表")]
[SysTable]
[SugarIndex("index_{table}_N", nameof(Name), OrderByType.Asc)]
[SugarIndex("index_{table}_C", nameof(Code), OrderByType.Asc, IsUnique = true)]
public partial class SysConfig : EntityBase
{
/// <summary>
/// 名称
/// </summary>
[SugarColumn(ColumnDescription = "名称", Length = 64)]
[Required, MaxLength(64)]
public virtual string Name { get; set; }
/// <summary>
/// 编码
/// </summary>
[SugarColumn(ColumnDescription = "编码", Length = 64)]
[MaxLength(64)]
public string? Code { get; set; }
/// <summary>
/// 参数值
/// </summary>
[SugarColumn(ColumnDescription = "参数值", Length = 512)]
[MaxLength(512)]
[IgnoreUpdateSeedColumn]
public string? Value { get; set; }
/// <summary>
/// 是否是内置参数Y-是N-否)
/// </summary>
[SugarColumn(ColumnDescription = "是否是内置参数", DefaultValue = "1")]
public YesNoEnum SysFlag { get; set; } = YesNoEnum.Y;
/// <summary>
/// 分组编码
/// </summary>
[SugarColumn(ColumnDescription = "分组编码", Length = 64)]
[MaxLength(64)]
public string? GroupCode { get; set; }
/// <summary>
/// 排序
/// </summary>
[SugarColumn(ColumnDescription = "排序", DefaultValue = "100")]
public int OrderNo { get; set; } = 100;
/// <summary>
/// 备注
/// </summary>
[SugarColumn(ColumnDescription = "备注", Length = 256)]
[MaxLength(256)]
public string? Remark { get; set; }
}

View File

@@ -0,0 +1,101 @@
namespace YY.Admin.Core;
/// <summary>
/// 系统字典值表
/// </summary>
[SugarTable("sys_dict_data", "系统字典值表")]
[SysTable]
[SugarIndex("index_{table}_TV", nameof(DictTypeId), OrderByType.Asc, nameof(Value), OrderByType.Asc, IsUnique = true)]
public partial class SysDictData : EntityBase
{
/// <summary>
/// 字典类型Id
/// </summary>
[SugarColumn(ColumnDescription = "字典类型Id")]
public long DictTypeId { get; set; }
/// <summary>
/// 字典类型
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
[Navigate(NavigateType.OneToOne, nameof(DictTypeId))]
public SysDictType DictType { get; set; }
/// <summary>
/// 显示文本
/// </summary>
[SugarColumn(ColumnDescription = "显示文本", Length = 256)]
[Required, MaxLength(256)]
public virtual string Label { get; set; }
/// <summary>
/// 值
/// </summary>
[SugarColumn(ColumnDescription = "值", Length = 256)]
[Required, MaxLength(256)]
public virtual string Value { get; set; }
/// <summary>
/// 编码
/// </summary>
/// <remarks>
/// </remarks>
[SugarColumn(ColumnDescription = "编码", Length = 256)]
public virtual string? Code { get; set; }
/// <summary>
/// 名称
/// </summary>
[SugarColumn(ColumnDescription = "名称", Length = 256)]
[MaxLength(256)]
public virtual string? Name { get; set; }
/// <summary>
/// 显示样式-标签颜色
/// </summary>
[SugarColumn(ColumnDescription = "显示样式-标签颜色", Length = 16)]
[MaxLength(16)]
public string? TagType { get; set; }
/// <summary>
/// 显示样式-Style(控制显示样式)
/// </summary>
[SugarColumn(ColumnDescription = "显示样式-Style", Length = 512)]
[MaxLength(512)]
public string? StyleSetting { get; set; }
/// <summary>
/// 显示样式-Class(控制显示样式)
/// </summary>
[SugarColumn(ColumnDescription = "显示样式-Class", Length = 512)]
[MaxLength(512)]
public string? ClassSetting { get; set; }
/// <summary>
/// 排序
/// </summary>
[SugarColumn(ColumnDescription = "排序", DefaultValue = "100")]
public int OrderNo { get; set; } = 100;
/// <summary>
/// 备注
/// </summary>
[SugarColumn(ColumnDescription = "备注", Length = 2048)]
[MaxLength(2048)]
public string? Remark { get; set; }
/// <summary>
/// 拓展数据(保存业务功能的配置项)
/// </summary>
[SugarColumn(ColumnDescription = "拓展数据(保存业务功能的配置项)", ColumnDataType = StaticConfig.CodeFirst_BigString)]
public string? ExtData { get; set; }
/// <summary>
/// 状态
/// </summary>
[SugarColumn(ColumnDescription = "状态", DefaultValue = "1")]
public StatusEnum Status { get; set; } = StatusEnum.Enable;
}

View File

@@ -0,0 +1,18 @@
namespace YY.Admin.Core;
/// <summary>
/// 系统租户字典值表
/// </summary>
[SugarTable("sys_dict_data_tenant", "系统租户字典值表")]
[SysTable]
[SugarIndex("index_{table}_TV", nameof(DictTypeId), OrderByType.Asc, nameof(Value), OrderByType.Asc)]
public partial class SysDictDataTenant : SysDictData, ITenantIdFilter
{
/// <summary>
/// 租户Id
/// </summary>
[SugarColumn(ColumnDescription = "租户Id", IsOnlyIgnoreUpdate = true)]
public virtual long? TenantId { get; set; }
}

View File

@@ -0,0 +1,64 @@
namespace YY.Admin.Core;
/// <summary>
/// 系统字典类型表
/// </summary>
[SugarTable("sys_dict_type", "系统字典类型表")]
[SysTable]
[SugarIndex("index_{table}_N", nameof(Name), OrderByType.Asc)]
[SugarIndex("index_{table}_C", nameof(Code), OrderByType.Asc)]
public partial class SysDictType : EntityBase
{
/// <summary>
/// 名称
/// </summary>
[SugarColumn(ColumnDescription = "名称", Length = 64)]
[Required, MaxLength(64)]
public virtual string Name { get; set; }
/// <summary>
/// 编码
/// </summary>
[SugarColumn(ColumnDescription = "编码", Length = 64)]
[Required, MaxLength(64)]
public virtual string Code { get; set; }
/// <summary>
/// 排序
/// </summary>
[SugarColumn(ColumnDescription = "排序", DefaultValue = "100")]
public int OrderNo { get; set; } = 100;
/// <summary>
/// 备注
/// </summary>
[SugarColumn(ColumnDescription = "备注", Length = 256)]
[MaxLength(256)]
public string? Remark { get; set; }
/// <summary>
/// 状态
/// </summary>
[SugarColumn(ColumnDescription = "状态", DefaultValue = "1")]
public StatusEnum Status { get; set; } = StatusEnum.Enable;
/// <summary>
/// 是否是内置字典Y-是N-否)
/// </summary>
[SugarColumn(ColumnDescription = "是否是内置字典", DefaultValue = "1")]
public virtual YesNoEnum SysFlag { get; set; } = YesNoEnum.Y;
/// <summary>
/// 是否是租户字典Y-是N-否)
/// </summary>
[SugarColumn(ColumnDescription = "是否是租户字典", DefaultValue = "2")]
public virtual YesNoEnum IsTenant { get; set; } = YesNoEnum.N;
/// <summary>
/// 字典值集合
/// </summary>
[Navigate(NavigateType.OneToMany, nameof(SysDictData.DictTypeId))]
public List<SysDictData> Children { get; set; }
}

View File

@@ -0,0 +1,100 @@
namespace YY.Admin.Core;
/// <summary>
/// 系统文件表
/// </summary>
[SugarTable("sys_file", "系统文件表")]
[SysTable]
[SugarIndex("index_{table}_F", nameof(FileName), OrderByType.Asc)]
public partial class SysFile : EntityBaseTenantOrg
{
/// <summary>
/// 提供者
/// </summary>
[SugarColumn(ColumnDescription = "提供者", Length = 128)]
[MaxLength(128)]
public string? Provider { get; set; }
/// <summary>
/// 仓储名称
/// </summary>
[SugarColumn(ColumnDescription = "仓储名称", Length = 128)]
[MaxLength(128)]
public string? BucketName { get; set; }
/// <summary>
/// 文件名称(源文件名)
/// </summary>
[SugarColumn(ColumnDescription = "文件名称", Length = 128)]
[MaxLength(128)]
public string? FileName { get; set; }
/// <summary>
/// 文件后缀
/// </summary>
[SugarColumn(ColumnDescription = "文件后缀", Length = 16)]
[MaxLength(16)]
public string? Suffix { get; set; }
/// <summary>
/// 存储路径
/// </summary>
[SugarColumn(ColumnDescription = "存储路径", Length = 512)]
[MaxLength(512)]
public string? FilePath { get; set; }
/// <summary>
/// 文件大小KB
/// </summary>
[SugarColumn(ColumnDescription = "文件大小KB")]
public long SizeKb { get; set; }
/// <summary>
/// 文件大小信息-计算后的
/// </summary>
[SugarColumn(ColumnDescription = "文件大小信息", Length = 64)]
[MaxLength(64)]
public string? SizeInfo { get; set; }
/// <summary>
/// 外链地址-OSS上传后生成外链地址方便前端预览
/// </summary>
[SugarColumn(ColumnDescription = "外链地址", Length = 512)]
[MaxLength(512)]
public string? Url { get; set; }
/// <summary>
/// 文件MD5
/// </summary>
[SugarColumn(ColumnDescription = "文件MD5", Length = 128)]
[MaxLength(128)]
public string? FileMd5 { get; set; }
/// <summary>
/// 文件类别
/// </summary>
[SugarColumn(ColumnDescription = "文件类别", Length = 128)]
[MaxLength(128)]
public virtual string? FileType { get; set; }
/// <summary>
/// 文件别名
/// </summary>
[SugarColumn(ColumnDescription = "文件别名", Length = 128)]
[MaxLength(128)]
public string? FileAlias { get; set; }
/// <summary>
/// 是否公开
/// </summary>
[SugarColumn(ColumnDescription = "是否公开")]
public virtual bool IsPublic { get; set; } = false;
/// <summary>
/// 业务数据Id
/// </summary>
[SugarColumn(ColumnDescription = "业务数据Id")]
public long? DataId { get; set; }
}

View File

@@ -0,0 +1,85 @@
namespace YY.Admin.Core;
/// <summary>
/// 系统域登录信息配置表
/// </summary>
[SugarTable("sys_ldap", "系统域登录信息配置表")]
[SysTable]
public class SysLdap : EntityBaseTenantDel
{
/// <summary>
/// 主机
/// </summary>
[SugarColumn(ColumnDescription = "主机", Length = 128)]
[Required]
public virtual string Host { get; set; }
/// <summary>
/// 端口
/// </summary>
[SugarColumn(ColumnDescription = "端口")]
public virtual int Port { get; set; }
/// <summary>
/// 用户搜索基准
/// </summary>
[SugarColumn(ColumnDescription = "用户搜索基准", Length = 128)]
[Required]
public virtual string BaseDn { get; set; }
/// <summary>
/// 绑定DN(有管理权限制的用户)
/// </summary>
[SugarColumn(ColumnDescription = "绑定DN", Length = 128)]
[Required]
public virtual string BindDn { get; set; }
/// <summary>
/// 绑定密码(有管理权限制的用户密码)
/// </summary>
[SugarColumn(ColumnDescription = "绑定密码", Length = 512)]
[Required]
public virtual string BindPass { get; set; }
/// <summary>
/// 用户过滤规则
/// </summary>
[SugarColumn(ColumnDescription = "用户过滤规则", Length = 128)]
[Required]
public virtual string AuthFilter { get; set; } = "sAMAccountName=%s";
/// <summary>
/// Ldap版本
/// </summary>
[SugarColumn(ColumnDescription = "Ldap版本")]
public int Version { get; set; }
/// <summary>
/// 绑定域账号字段属性值
/// </summary>
[SugarColumn(ColumnDescription = "绑定域账号字段属性值", Length = 32)]
[Required]
public virtual string BindAttrAccount { get; set; } = "sAMAccountName";
/// <summary>
/// 绑定用户EmployeeId属性值
/// </summary>
[SugarColumn(ColumnDescription = "绑定用户EmployeeId属性值", Length = 32)]
[Required]
public virtual string BindAttrEmployeeId { get; set; } = "EmployeeId";
/// <summary>
/// 绑定Code属性值
/// </summary>
[SugarColumn(ColumnDescription = "绑定对象Code属性值", Length = 64)]
[Required]
public virtual string BindAttrCode { get; set; } = "objectGUID";
/// <summary>
/// 状态
/// </summary>
[SugarColumn(ColumnDescription = "状态")]
public StatusEnum Status { get; set; } = StatusEnum.Enable;
}

View File

@@ -0,0 +1,48 @@
namespace YY.Admin.Core;
/// <summary>
/// 系统差异日志表
/// </summary>
[SugarTable("sys_log_diff", "系统差异日志表")]
[SysTable]
[LogTable]
public partial class SysLogDiff : EntityBaseTenant
{
/// <summary>
/// 差异数据
/// </summary>
[SugarColumn(ColumnDescription = "差异数据", ColumnDataType = StaticConfig.CodeFirst_BigString)]
public string? DiffData { get; set; }
/// <summary>
/// Sql
/// </summary>
[SugarColumn(ColumnDescription = "Sql", ColumnDataType = StaticConfig.CodeFirst_BigString)]
public string? Sql { get; set; }
/// <summary>
/// 参数 手动传入的参数
/// </summary>
[SugarColumn(ColumnDescription = "参数", ColumnDataType = StaticConfig.CodeFirst_BigString)]
public string? Parameters { get; set; }
/// <summary>
/// 业务对象
/// </summary>
[SugarColumn(ColumnDescription = "业务对象", ColumnDataType = StaticConfig.CodeFirst_BigString)]
public string? BusinessData { get; set; }
/// <summary>
/// 差异操作
/// </summary>
[SugarColumn(ColumnDescription = "差异操作", ColumnDataType = StaticConfig.CodeFirst_BigString)]
public string? DiffType { get; set; }
/// <summary>
/// 耗时
/// </summary>
[SugarColumn(ColumnDescription = "耗时")]
public long? Elapsed { get; set; }
}

View File

@@ -0,0 +1,68 @@

namespace YY.Admin.Core;
/// <summary>
/// 系统异常日志表
/// </summary>
[SugarTable("sys_log_ex", "系统异常日志表")]
[SysTable]
[LogTable]
public partial class SysLogEx : SysLogVis
{
/// <summary>
/// 请求方式
/// </summary>
[SugarColumn(ColumnDescription = "请求方式", Length = 32)]
[MaxLength(32)]
public string? HttpMethod { get; set; }
/// <summary>
/// 请求地址
/// </summary>
[SugarColumn(ColumnDescription = "请求地址", ColumnDataType = StaticConfig.CodeFirst_BigString)]
public string? RequestUrl { get; set; }
/// <summary>
/// 请求参数
/// </summary>
[SugarColumn(ColumnDescription = "请求参数", ColumnDataType = StaticConfig.CodeFirst_BigString)]
public string? RequestParam { get; set; }
/// <summary>
/// 返回结果
/// </summary>
[SugarColumn(ColumnDescription = "返回结果", ColumnDataType = StaticConfig.CodeFirst_BigString)]
public string? ReturnResult { get; set; }
/// <summary>
/// 事件Id
/// </summary>
[SugarColumn(ColumnDescription = "事件Id")]
public int? EventId { get; set; }
/// <summary>
/// 线程Id
/// </summary>
[SugarColumn(ColumnDescription = "线程Id")]
public int? ThreadId { get; set; }
/// <summary>
/// 请求跟踪Id
/// </summary>
[SugarColumn(ColumnDescription = "请求跟踪Id", Length = 128)]
[MaxLength(128)]
public string? TraceId { get; set; }
/// <summary>
/// 异常信息
/// </summary>
[SugarColumn(ColumnDescription = "异常信息", ColumnDataType = StaticConfig.CodeFirst_BigString)]
public string? Exception { get; set; }
/// <summary>
/// 日志消息Json
/// </summary>
[SugarColumn(ColumnDescription = "日志消息Json", ColumnDataType = StaticConfig.CodeFirst_BigString)]
public string? Message { get; set; }
}

View File

@@ -0,0 +1,68 @@

namespace YY.Admin.Core;
/// <summary>
/// 系统操作日志表
/// </summary>
[SugarTable("sys_log_op", "系统操作日志表")]
[SysTable]
[LogTable]
public partial class SysLogOp : SysLogVis
{
/// <summary>
/// 请求方式
/// </summary>
[SugarColumn(ColumnDescription = "请求方式", Length = 32)]
[MaxLength(32)]
public string? HttpMethod { get; set; }
/// <summary>
/// 请求地址
/// </summary>
[SugarColumn(ColumnDescription = "请求地址", ColumnDataType = StaticConfig.CodeFirst_BigString)]
public string? RequestUrl { get; set; }
/// <summary>
/// 请求参数
/// </summary>
[SugarColumn(ColumnDescription = "请求参数", ColumnDataType = StaticConfig.CodeFirst_BigString)]
public string? RequestParam { get; set; }
/// <summary>
/// 返回结果
/// </summary>
[SugarColumn(ColumnDescription = "返回结果", ColumnDataType = StaticConfig.CodeFirst_BigString)]
public string? ReturnResult { get; set; }
/// <summary>
/// 事件Id
/// </summary>
[SugarColumn(ColumnDescription = "事件Id")]
public int? EventId { get; set; }
/// <summary>
/// 线程Id
/// </summary>
[SugarColumn(ColumnDescription = "线程Id")]
public int? ThreadId { get; set; }
/// <summary>
/// 请求跟踪Id
/// </summary>
[SugarColumn(ColumnDescription = "请求跟踪Id", Length = 128)]
[MaxLength(128)]
public string? TraceId { get; set; }
/// <summary>
/// 异常信息
/// </summary>
[SugarColumn(ColumnDescription = "异常信息", ColumnDataType = StaticConfig.CodeFirst_BigString)]
public string? Exception { get; set; }
/// <summary>
/// 日志消息Json
/// </summary>
[SugarColumn(ColumnDescription = "日志消息Json", ColumnDataType = StaticConfig.CodeFirst_BigString)]
public string? Message { get; set; }
}

View File

@@ -0,0 +1,113 @@
namespace YY.Admin.Core;
/// <summary>
/// 系统访问日志表
/// </summary>
[SugarTable("sys_log_vis", "系统访问日志表")]
[SysTable]
[LogTable]
public partial class SysLogVis : EntityBaseTenant
{
/// <summary>
/// 模块名称
/// </summary>
[SugarColumn(ColumnDescription = "模块名称", Length = 256)]
[MaxLength(256)]
public string? ControllerName { get; set; }
/// <summary>
/// 方法名称
///</summary>
[SugarColumn(ColumnDescription = "方法名称", Length = 256)]
[MaxLength(256)]
public string? ActionName { get; set; }
/// <summary>
/// 显示名称
///</summary>
[SugarColumn(ColumnDescription = "显示名称", Length = 256)]
[MaxLength(256)]
public string? DisplayTitle { get; set; }
/// <summary>
/// 执行状态
/// </summary>
[SugarColumn(ColumnDescription = "执行状态", Length = 32)]
[MaxLength(32)]
public string? Status { get; set; }
/// <summary>
/// IP地址
/// </summary>
[SugarColumn(ColumnDescription = "IP地址", Length = 256)]
[MaxLength(256)]
public string? RemoteIp { get; set; }
/// <summary>
/// 登录地点
/// </summary>
[SugarColumn(ColumnDescription = "登录地点", Length = 128)]
[MaxLength(128)]
public string? Location { get; set; }
/// <summary>
/// 经度
/// </summary>
[SugarColumn(ColumnDescription = "经度")]
public double? Longitude { get; set; }
/// <summary>
/// 维度
/// </summary>
[SugarColumn(ColumnDescription = "维度")]
public double? Latitude { get; set; }
/// <summary>
/// 浏览器
/// </summary>
[SugarColumn(ColumnDescription = "浏览器", Length = 1024)]
[MaxLength(1024)]
public string? Browser { get; set; }
/// <summary>
/// 操作系统
/// </summary>
[SugarColumn(ColumnDescription = "操作系统", Length = 256)]
[MaxLength(256)]
public string? Os { get; set; }
/// <summary>
/// 操作用时
/// </summary>
[SugarColumn(ColumnDescription = "操作用时")]
public long? Elapsed { get; set; }
/// <summary>
/// 日志时间
/// </summary>
[SugarColumn(ColumnDescription = "日志时间")]
public DateTime? LogDateTime { get; set; }
/// <summary>
/// 日志级别
/// </summary>
[SugarColumn(ColumnDescription = "日志级别")]
public LogLevel? LogLevel { get; set; }
/// <summary>
/// 账号
/// </summary>
[SugarColumn(ColumnDescription = "账号", Length = 32)]
[MaxLength(32)]
public string? Account { get; set; }
/// <summary>
/// 真实姓名
/// </summary>
[SugarColumn(ColumnDescription = "真实姓名", Length = 32)]
[MaxLength(32)]
public string? RealName { get; set; }
}

View File

@@ -0,0 +1,130 @@

namespace YY.Admin.Core;
/// <summary>
/// 系统菜单表
/// </summary>
[SugarTable("sys_menu", "系统菜单表")]
[SysTable]
[SugarIndex("index_{table}_T", nameof(Title), OrderByType.Asc)]
[SugarIndex("index_{table}_T2", nameof(Type), OrderByType.Asc)]
public partial class SysMenu : EntityBase
{
/// <summary>
/// 父Id
/// </summary>
[SugarColumn(ColumnDescription = "父Id")]
public long Pid { get; set; }
/// <summary>
/// 菜单类型1目录 2菜单 3按钮
/// </summary>
[SugarColumn(ColumnDescription = "菜单类型")]
public MenuTypeEnum Type { get; set; }
/// <summary>
/// 路由名称
/// </summary>
[SugarColumn(ColumnDescription = "路由名称", Length = 64)]
[MaxLength(64)]
public string? Name { get; set; }
/// <summary>
/// 路由地址
/// </summary>
[SugarColumn(ColumnDescription = "路由地址", Length = 128)]
[MaxLength(128)]
public string? Path { get; set; }
/// <summary>
/// 组件路径
/// </summary>
[SugarColumn(ColumnDescription = "组件路径", Length = 128)]
[MaxLength(128)]
public string? Component { get; set; }
/// <summary>
/// 重定向
/// </summary>
[SugarColumn(ColumnDescription = "重定向", Length = 128)]
[MaxLength(128)]
public string? Redirect { get; set; }
/// <summary>
/// 权限标识
/// </summary>
[SugarColumn(ColumnDescription = "权限标识", Length = 128)]
[MaxLength(128)]
public string? Permission { get; set; }
/// <summary>
/// 菜单名称
/// </summary>
[SugarColumn(ColumnDescription = "菜单名称", Length = 64)]
[Required, MaxLength(64)]
public virtual string Title { get; set; }
/// <summary>
/// 图标
/// </summary>
[SugarColumn(ColumnDescription = "图标", Length = 128)]
[MaxLength(128)]
public string? Icon { get; set; } = "ele-Menu";
/// <summary>
/// 是否内嵌
/// </summary>
[SugarColumn(ColumnDescription = "是否内嵌")]
public bool IsIframe { get; set; }
/// <summary>
/// 外链链接
/// </summary>
[SugarColumn(ColumnDescription = "外链链接", Length = 256)]
[MaxLength(256)]
public string? OutLink { get; set; }
/// <summary>
/// 是否隐藏
/// </summary>
[SugarColumn(ColumnDescription = "是否隐藏")]
public bool IsHide { get; set; }
/// <summary>
/// 是否缓存
/// </summary>
[SugarColumn(ColumnDescription = "是否缓存")]
public bool IsKeepAlive { get; set; } = true;
/// <summary>
/// 是否固定
/// </summary>
[SugarColumn(ColumnDescription = "是否固定")]
public bool IsAffix { get; set; }
/// <summary>
/// 排序
/// </summary>
[SugarColumn(ColumnDescription = "排序")]
public int OrderNo { get; set; } = 100;
/// <summary>
/// 状态
/// </summary>
[SugarColumn(ColumnDescription = "状态")]
public StatusEnum Status { get; set; } = StatusEnum.Enable;
/// <summary>
/// 备注
/// </summary>
[SugarColumn(ColumnDescription = "备注", Length = 256)]
[MaxLength(256)]
public string? Remark { get; set; }
/// <summary>
/// 菜单子项
/// </summary>
[SugarColumn(IsIgnore = true)]
public List<SysMenu> Children { get; set; } = new();
}

View File

@@ -0,0 +1,76 @@

namespace YY.Admin.Core;
/// <summary>
/// 系统通知公告表
/// </summary>
[SugarTable("sys_notice", "系统通知公告表")]
[SysTable]
[SugarIndex("index_{table}_T", nameof(Type), OrderByType.Asc)]
public partial class SysNotice : EntityBase
{
/// <summary>
/// 标题
/// </summary>
[SugarColumn(ColumnDescription = "标题", Length = 32)]
[Required, MaxLength(32)]
public virtual string Title { get; set; }
/// <summary>
/// 内容
/// </summary>
[SugarColumn(ColumnDescription = "内容", ColumnDataType = StaticConfig.CodeFirst_BigString)]
[Required]
public virtual string Content { get; set; }
/// <summary>
/// 类型1通知 2公告
/// </summary>
[SugarColumn(ColumnDescription = "类型1通知 2公告")]
public NoticeTypeEnum Type { get; set; }
/// <summary>
/// 发布人Id
/// </summary>
[SugarColumn(ColumnDescription = "发布人Id")]
public long PublicUserId { get; set; }
/// <summary>
/// 发布人姓名
/// </summary>
[SugarColumn(ColumnDescription = "发布人姓名", Length = 32)]
[MaxLength(32)]
public string? PublicUserName { get; set; }
/// <summary>
/// 发布机构Id
/// </summary>
[SugarColumn(ColumnDescription = "发布机构Id")]
public long PublicOrgId { get; set; }
/// <summary>
/// 发布机构名称
/// </summary>
[SugarColumn(ColumnDescription = "发布机构名称", Length = 64)]
[MaxLength(64)]
public string? PublicOrgName { get; set; }
/// <summary>
/// 发布时间
/// </summary>
[SugarColumn(ColumnDescription = "发布时间")]
public DateTime? PublicTime { get; set; }
/// <summary>
/// 撤回时间
/// </summary>
[SugarColumn(ColumnDescription = "撤回时间")]
public DateTime? CancelTime { get; set; }
/// <summary>
/// 状态0草稿 1发布 2撤回 3删除
/// </summary>
[SugarColumn(ColumnDescription = "状态0草稿 1发布 2撤回 3删除")]
public NoticeStatusEnum Status { get; set; }
}

View File

@@ -0,0 +1,41 @@

namespace YY.Admin.Core;
/// <summary>
/// 系统通知公告用户表
/// </summary>
[SugarTable("sys_notice_user", "系统通知公告用户表")]
[SysTable]
public partial class SysNoticeUser : EntityBaseId
{
/// <summary>
/// 通知公告Id
/// </summary>
[SugarColumn(ColumnDescription = "通知公告Id")]
public long NoticeId { get; set; }
/// <summary>
/// 通知公告
/// </summary>
[Navigate(NavigateType.OneToOne, nameof(NoticeId))]
public SysNotice SysNotice { get; set; }
/// <summary>
/// 用户Id
/// </summary>
[SugarColumn(ColumnDescription = "用户Id")]
public long UserId { get; set; }
/// <summary>
/// 阅读时间
/// </summary>
[SugarColumn(ColumnDescription = "阅读时间")]
public DateTime? ReadTime { get; set; }
/// <summary>
/// 状态0未读 1已读
/// </summary>
[SugarColumn(ColumnDescription = "状态0未读 1已读")]
public NoticeUserStatusEnum ReadStatus { get; set; } = NoticeUserStatusEnum.UNREAD;
}

View File

@@ -0,0 +1,64 @@
namespace YY.Admin.Core;
/// <summary>
/// 系统在线用户表
/// </summary>
[SugarTable("sys_online_user", "系统在线用户表")]
[SysTable]
public partial class SysOnlineUser : EntityBaseTenantId
{
/// <summary>
/// 连接Id
/// </summary>
[SugarColumn(ColumnDescription = "连接Id")]
public string? ConnectionId { get; set; }
/// <summary>
/// 用户Id
/// </summary>
[SugarColumn(ColumnDescription = "用户Id")]
public long UserId { get; set; }
/// <summary>
/// 账号
/// </summary>
[SugarColumn(ColumnDescription = "账号", Length = 32)]
[Required, MaxLength(32)]
public virtual string UserName { get; set; }
/// <summary>
/// 真实姓名
/// </summary>
[SugarColumn(ColumnDescription = "真实姓名", Length = 32)]
[MaxLength(32)]
public string? RealName { get; set; }
/// <summary>
/// 连接时间
/// </summary>
[SugarColumn(ColumnDescription = "连接时间")]
public DateTime? Time { get; set; }
/// <summary>
/// 连接IP
/// </summary>
[SugarColumn(ColumnDescription = "连接IP", Length = 256)]
[MaxLength(256)]
public string? Ip { get; set; }
/// <summary>
/// 浏览器
/// </summary>
[SugarColumn(ColumnDescription = "浏览器", Length = 128)]
[MaxLength(128)]
public string? Browser { get; set; }
/// <summary>
/// 操作系统
/// </summary>
[SugarColumn(ColumnDescription = "操作系统", Length = 128)]
[MaxLength(128)]
public string? Os { get; set; }
}

View File

@@ -0,0 +1,92 @@
namespace YY.Admin.Core;
/// <summary>
/// 系统机构表
/// </summary>
[SugarTable("sys_org", "系统机构表")]
[SysTable]
[SugarIndex("index_{table}_N", nameof(Name), OrderByType.Asc)]
[SugarIndex("index_{table}_C", nameof(Code), OrderByType.Asc)]
[SugarIndex("index_{table}_T", nameof(Type), OrderByType.Asc)]
public partial class SysOrg : EntityBaseTenant
{
/// <summary>
/// 父Id
/// </summary>
[SugarColumn(ColumnDescription = "父Id")]
public long Pid { get; set; }
/// <summary>
/// 名称
/// </summary>
[SugarColumn(ColumnDescription = "名称", Length = 64)]
[Required, MaxLength(64)]
public virtual string Name { get; set; }
/// <summary>
/// 编码
/// </summary>
[SugarColumn(ColumnDescription = "编码", Length = 64)]
[MaxLength(64)]
public string? Code { get; set; }
/// <summary>
/// 级别
/// </summary>
[SugarColumn(ColumnDescription = "级别")]
public int? Level { get; set; }
/// <summary>
/// 机构类型-数据字典
/// </summary>
[SugarColumn(ColumnDescription = "机构类型", Length = 64)]
[MaxLength(64)]
public virtual string? Type { get; set; }
/// <summary>
/// 负责人Id
/// </summary>
[SugarColumn(ColumnDescription = "负责人Id", IsNullable = true)]
public long? DirectorId { get; set; }
/// <summary>
/// 负责人
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
[Navigate(NavigateType.OneToOne, nameof(DirectorId))]
public SysUser Director { get; set; }
/// <summary>
/// 排序
/// </summary>
[SugarColumn(ColumnDescription = "排序")]
public int OrderNo { get; set; } = 100;
/// <summary>
/// 状态
/// </summary>
[SugarColumn(ColumnDescription = "状态")]
public StatusEnum Status { get; set; } = StatusEnum.Enable;
/// <summary>
/// 备注
/// </summary>
[SugarColumn(ColumnDescription = "备注", Length = 128)]
[MaxLength(128)]
public string? Remark { get; set; }
/// <summary>
/// 机构子项
/// </summary>
[SugarColumn(IsIgnore = true)]
public List<SysOrg> Children { get; set; }
/// <summary>
/// 是否禁止选中
/// </summary>
[SugarColumn(IsIgnore = true)]
public bool Disabled { get; set; }
}

View File

@@ -0,0 +1,52 @@
namespace YY.Admin.Core;
/// <summary>
/// 系统职位表
/// </summary>
[SugarTable("sys_pos", "系统职位表")]
[SysTable]
[SugarIndex("index_{table}_N", nameof(Name), OrderByType.Asc)]
[SugarIndex("index_{table}_C", nameof(Code), OrderByType.Asc)]
public partial class SysPos : EntityBaseTenant
{
/// <summary>
/// 名称
/// </summary>
[SugarColumn(ColumnDescription = "名称", Length = 64)]
[Required, MaxLength(64)]
public virtual string Name { get; set; }
/// <summary>
/// 编码
/// </summary>
[SugarColumn(ColumnDescription = "编码", Length = 64)]
[MaxLength(64)]
public string? Code { get; set; }
/// <summary>
/// 排序
/// </summary>
[SugarColumn(ColumnDescription = "排序")]
public int OrderNo { get; set; } = 100;
/// <summary>
/// 备注
/// </summary>
[SugarColumn(ColumnDescription = "备注", Length = 128)]
[MaxLength(128)]
public string? Remark { get; set; }
/// <summary>
/// 状态
/// </summary>
[SugarColumn(ColumnDescription = "状态")]
public StatusEnum Status { get; set; } = StatusEnum.Enable;
/// <summary>
/// 在职人员
/// </summary>
[SugarColumn(IsIgnore = true)]
public List<SysUser> UserList { get; set; }
}

View File

@@ -0,0 +1,71 @@
namespace YY.Admin.Core;
/// <summary>
/// 系统打印模板表
/// </summary>
[SugarTable("sys_print", "系统打印模板表")]
[SysTable]
[SugarIndex("index_{table}_N", nameof(Name), OrderByType.Asc)]
public partial class SysPrint : EntityBaseTenant
{
/// <summary>
/// 名称
/// </summary>
[SugarColumn(ColumnDescription = "名称", Length = 64)]
[Required, MaxLength(64)]
public virtual string Name { get; set; }
/// <summary>
/// 打印模板
/// </summary>
[SugarColumn(ColumnDescription = "打印模板", ColumnDataType = StaticConfig.CodeFirst_BigString)]
[Required]
public virtual string Template { get; set; }
/// <summary>
/// 打印类型
/// </summary>
[SugarColumn(ColumnDescription = "打印类型")]
[Required]
public virtual PrintTypeEnum? PrintType { get; set; }
/// <summary>
/// 客户端服务地址
/// </summary>
[SugarColumn(ColumnDescription = "客户端服务地址", Length = 128)]
[MaxLength(128)]
public virtual string? ClientServiceAddress { get; set; }
/// <summary>
/// 打印参数
/// </summary>
[SugarColumn(ColumnDescription = "打印参数", ColumnDataType = StaticConfig.CodeFirst_BigString)]
public virtual string? PrintParam { get; set; }
/// <summary>
/// 排序
/// </summary>
[SugarColumn(ColumnDescription = "排序")]
public int OrderNo { get; set; } = 100;
/// <summary>
/// 状态
/// </summary>
[SugarColumn(ColumnDescription = "状态")]
public StatusEnum Status { get; set; } = StatusEnum.Enable;
/// <summary>
/// 备注
/// </summary>
[SugarColumn(ColumnDescription = "备注", Length = 128)]
[MaxLength(128)]
public string? Remark { get; set; }
/// <summary>
/// 打印预览测试数据
/// </summary>
[SugarColumn(ColumnDescription = "打印预览测试数据", ColumnDataType = StaticConfig.CodeFirst_BigString)]
public string? PrintDataDemo { get; set; }
}

View File

@@ -0,0 +1,105 @@
namespace YY.Admin.Core;
/// <summary>
/// 系统行政地区表
/// </summary>
[SugarTable("sys_region", "系统行政地区表")]
[SysTable]
[SugarIndex("index_{table}_N", nameof(Name), OrderByType.Asc)]
[SugarIndex("index_{table}_C", nameof(Code), OrderByType.Asc, IsUnique = true)]
public partial class SysRegion : EntityBaseId
{
/// <summary>
/// 父Id
/// </summary>
[SugarColumn(ColumnDescription = "父Id")]
public long Pid { get; set; }
/// <summary>
/// 名称
/// </summary>
[SugarColumn(ColumnDescription = "名称", Length = 128)]
[Required, MaxLength(128)]
public virtual string Name { get; set; }
/// <summary>
/// 简称
/// </summary>
[SugarColumn(ColumnDescription = "简称", Length = 32)]
[MaxLength(32)]
public string? ShortName { get; set; }
/// <summary>
/// 组合名
/// </summary>
[SugarColumn(ColumnDescription = "组合名", Length = 64)]
[MaxLength(64)]
public string? MergerName { get; set; }
/// <summary>
/// 行政代码
/// </summary>
[SugarColumn(ColumnDescription = "行政代码", Length = 32)]
[MaxLength(32)]
public string? Code { get; set; }
/// <summary>
/// 邮政编码
/// </summary>
[SugarColumn(ColumnDescription = "邮政编码", Length = 6)]
[MaxLength(6)]
public string? ZipCode { get; set; }
/// <summary>
/// 区号
/// </summary>
[SugarColumn(ColumnDescription = "区号", Length = 6)]
[MaxLength(6)]
public string? CityCode { get; set; }
/// <summary>
/// 层级
/// </summary>
[SugarColumn(ColumnDescription = "层级")]
public int Level { get; set; }
/// <summary>
/// 拼音
/// </summary>
[SugarColumn(ColumnDescription = "拼音", Length = 128)]
[MaxLength(128)]
public string? PinYin { get; set; }
/// <summary>
/// 经度
/// </summary>
[SugarColumn(ColumnDescription = "经度")]
public float Lng { get; set; }
/// <summary>
/// 维度
/// </summary>
[SugarColumn(ColumnDescription = "维度")]
public float Lat { get; set; }
/// <summary>
/// 排序
/// </summary>
[SugarColumn(ColumnDescription = "排序")]
public int OrderNo { get; set; } = 100;
/// <summary>
/// 备注
/// </summary>
[SugarColumn(ColumnDescription = "备注", Length = 128)]
[MaxLength(128)]
public string? Remark { get; set; }
/// <summary>
/// 机构子项
/// </summary>
[SugarColumn(IsIgnore = true)]
public List<SysRegion> Children { get; set; }
}

View File

@@ -0,0 +1,52 @@
namespace YY.Admin.Core;
/// <summary>
/// 系统角色表
/// </summary>
[SugarTable("sys_role", "系统角色表")]
[SysTable]
[SugarIndex("index_{table}_N", nameof(Name), OrderByType.Asc)]
[SugarIndex("index_{table}_C", nameof(Code), OrderByType.Asc)]
public partial class SysRole : EntityBaseTenant
{
/// <summary>
/// 名称
/// </summary>
[SugarColumn(ColumnDescription = "名称", Length = 64)]
[Required, MaxLength(64)]
public virtual string Name { get; set; }
/// <summary>
/// 编码
/// </summary>
[SugarColumn(ColumnDescription = "编码", Length = 64)]
[MaxLength(64)]
public string? Code { get; set; }
/// <summary>
/// 排序
/// </summary>
[SugarColumn(ColumnDescription = "排序")]
public int OrderNo { get; set; } = 100;
/// <summary>
/// 数据范围1全部数据 2本部门及以下数据 3本部门数据 4仅本人数据 5自定义数据
/// </summary>
[SugarColumn(ColumnDescription = "数据范围")]
public DataScopeEnum DataScope { get; set; } = DataScopeEnum.Self;
/// <summary>
/// 备注
/// </summary>
[SugarColumn(ColumnDescription = "备注", Length = 128)]
[MaxLength(128)]
public string? Remark { get; set; }
/// <summary>
/// 状态
/// </summary>
[SugarColumn(ColumnDescription = "状态")]
public StatusEnum Status { get; set; } = StatusEnum.Enable;
}

View File

@@ -0,0 +1,31 @@

namespace YY.Admin.Core;
/// <summary>
/// 系统角色菜单表
/// </summary>
[SugarTable("sys_role_menu", "系统角色菜单表")]
[SysTable]
public class SysRoleMenu : EntityBaseId
{
/// <summary>
/// 角色Id
/// </summary>
[SugarColumn(ColumnDescription = "角色Id")]
public long RoleId { get; set; }
/// <summary>
/// 菜单Id
/// </summary>
[SugarColumn(ColumnDescription = "菜单Id")]
public long MenuId { get; set; }
/// <summary>
/// 菜单
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
[Navigate(NavigateType.OneToOne, nameof(MenuId))]
public SysMenu SysMenu { get; set; }
}

View File

@@ -0,0 +1,31 @@

namespace YY.Admin.Core;
/// <summary>
/// 系统角色机构表
/// </summary>
[SugarTable("sys_role_org", "系统角色机构表")]
[SysTable]
public class SysRoleOrg : EntityBaseId
{
/// <summary>
/// 角色Id
/// </summary>
[SugarColumn(ColumnDescription = "角色Id")]
public long RoleId { get; set; }
/// <summary>
/// 机构Id
/// </summary>
[SugarColumn(ColumnDescription = "机构Id")]
public long OrgId { get; set; }
/// <summary>
/// 机构
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
[Navigate(NavigateType.OneToOne, nameof(OrgId))]
public SysOrg SysOrg { get; set; }
}

View File

@@ -0,0 +1,48 @@
namespace YY.Admin.Core;
/// <summary>
/// 系统日程表
/// </summary>
[SugarTable("sys_schedule", "系统日程表")]
[SysTable]
public class SysSchedule : EntityBaseTenant
{
/// <summary>
/// 用户Id
/// </summary>
[SugarColumn(ColumnDescription = "用户Id")]
public long UserId { get; set; }
/// <summary>
/// 日程日期
/// </summary>
[SugarColumn(ColumnDescription = "日程日期")]
public DateTime? ScheduleTime { get; set; }
/// <summary>
/// 开始时间
/// </summary>
[SugarColumn(ColumnDescription = "开始时间", Length = 10)]
public string? StartTime { get; set; }
/// <summary>
/// 结束时间
/// </summary>
[SugarColumn(ColumnDescription = "结束时间", Length = 10)]
public string? EndTime { get; set; }
/// <summary>
/// 日程内容
/// </summary>
[SugarColumn(ColumnDescription = "日程内容", Length = 256)]
[Required, MaxLength(256)]
public virtual string Content { get; set; }
/// <summary>
/// 完成状态
/// </summary>
[SugarColumn(ColumnDescription = "完成状态")]
public FinishStatusEnum Status { get; set; } = FinishStatusEnum.UnFinish;
}

View File

@@ -0,0 +1,59 @@
namespace YY.Admin.Core;
/// <summary>
/// 系统模板表
/// </summary>
[SysTable]
[SugarTable("sys_template", "系统模板表")]
[SugarIndex("index_{table}_C", nameof(Code), OrderByType.Asc, IsUnique = true)]
[SugarIndex("index_{table}_G", nameof(GroupName), OrderByType.Asc)]
public partial class SysTemplate : EntityBaseTenant
{
/// <summary>
/// 名称
/// </summary>
[MaxLength(128)]
[SugarColumn(ColumnDescription = "名称", Length = 128)]
public virtual string Name { get; set; }
/// <summary>
/// 分组名称
/// </summary>
[SugarColumn(ColumnDescription = "分组名称")]
public virtual TemplateTypeEnum Type { get; set; }
/// <summary>
/// 编码
/// </summary>
[MaxLength(128)]
[SugarColumn(ColumnDescription = "编码", Length = 128)]
public virtual string Code { get; set; }
/// <summary>
/// 分组名称
/// </summary>
[MaxLength(32)]
[SugarColumn(ColumnDescription = "分组名称", Length = 32)]
public virtual string GroupName { get; set; }
/// <summary>
/// 模板内容
/// </summary>
[SugarColumn(ColumnDescription = "模板内容", ColumnDataType = StaticConfig.CodeFirst_BigString)]
public virtual string Content { get; set; }
/// <summary>
/// 备注
/// </summary>
[MaxLength(128)]
[SugarColumn(ColumnDescription = "备注", Length = 128)]
public virtual string? Remark { get; set; }
/// <summary>
/// 排序
/// </summary>
[SugarColumn(ColumnDescription = "排序")]
public virtual int OrderNo { get; set; } = 100;
}

View File

@@ -0,0 +1,141 @@
namespace YY.Admin.Core;
/// <summary>
/// 系统租户表
/// </summary>
[SugarTable("sys_tenant", "系统租户表")]
[SysTable]
public partial class SysTenant : EntityBase
{
/// <summary>
/// 租管用户Id
/// </summary>
[SugarColumn(ColumnDescription = "租管用户Id")]
public virtual long UserId { get; set; }
/// <summary>
/// 机构Id
/// </summary>
[SugarColumn(ColumnDescription = "机构Id")]
public virtual long OrgId { get; set; }
/// <summary>
/// 域名
/// </summary>
[SugarColumn(ColumnDescription = "域名", Length = 128)]
[MaxLength(128)]
public virtual string? Host { get; set; }
/// <summary>
/// 租户类型
/// </summary>
[SugarColumn(ColumnDescription = "租户类型")]
public virtual TenantTypeEnum TenantType { get; set; }
/// <summary>
/// 数据库类型
/// </summary>
[SugarColumn(ColumnDescription = "数据库类型")]
public virtual DbType DbType { get; set; }
/// <summary>
/// 数据库连接
/// </summary>
[SugarColumn(ColumnDescription = "数据库连接", Length = 256)]
[MaxLength(256)]
public virtual string? Connection { get; set; }
/// <summary>
/// 数据库标识
/// </summary>
[SugarColumn(ColumnDescription = "数据库标识", Length = 64)]
[MaxLength(64)]
public virtual string? ConfigId { get; set; }
/// <summary>
/// 从库连接/读写分离
/// </summary>
[SugarColumn(ColumnDescription = "从库连接/读写分离", ColumnDataType = StaticConfig.CodeFirst_BigString)]
public virtual string? SlaveConnections { get; set; }
/// <summary>
/// 启用注册功能
/// </summary>
[SugarColumn(ColumnDescription = "启用注册功能")]
public virtual YesNoEnum? EnableReg { get; set; } = YesNoEnum.N;
/// <summary>
/// 默认注册方案Id
/// </summary>
[SugarColumn(ColumnDescription = "默认注册方案")]
public virtual long? RegWayId { get; set; }
/// <summary>
/// 图标
/// </summary>
[SugarColumn(ColumnDescription = "图标", Length = 256), MaxLength(256)]
public virtual string? Logo { get; set; }
/// <summary>
/// 标题
/// </summary>
[SugarColumn(ColumnDescription = "标题", Length = 32), MaxLength(32)]
public virtual string? Title { get; set; }
/// <summary>
/// 副标题
/// </summary>
[SugarColumn(ColumnDescription = "副标题", Length = 32), MaxLength(32)]
public virtual string? ViceTitle { get; set; }
/// <summary>
/// 副描述
/// </summary>
[SugarColumn(ColumnDescription = "副描述", Length = 64), MaxLength(64)]
public virtual string? ViceDesc { get; set; }
/// <summary>
/// 水印
/// </summary>
[SugarColumn(ColumnDescription = "水印", Length = 32), MaxLength(32)]
public virtual string? Watermark { get; set; }
/// <summary>
/// 版权信息
/// </summary>
[SugarColumn(ColumnDescription = "版权信息", Length = 64), MaxLength(64)]
public virtual string? Copyright { get; set; }
/// <summary>
/// ICP备案号
/// </summary>
[SugarColumn(ColumnDescription = "ICP备案号", Length = 32), MaxLength(32)]
public virtual string? Icp { get; set; }
/// <summary>
/// ICP地址
/// </summary>
[SugarColumn(ColumnDescription = "ICP地址", Length = 32), MaxLength(32)]
public virtual string? IcpUrl { get; set; }
/// <summary>
/// 排序
/// </summary>
[SugarColumn(ColumnDescription = "排序")]
public virtual int OrderNo { get; set; } = 100;
/// <summary>
/// 备注
/// </summary>
[SugarColumn(ColumnDescription = "备注", Length = 128)]
[MaxLength(128)]
public virtual string? Remark { get; set; }
/// <summary>
/// 状态
/// </summary>
[SugarColumn(ColumnDescription = "状态")]
public virtual StatusEnum Status { get; set; } = StatusEnum.Enable;
}

View File

@@ -0,0 +1,17 @@
namespace YY.Admin.Core;
/// <summary>
/// 系统租户配置参数表
/// </summary>
[SugarTable("sys_tenant_config", "系统租户配置参数表")]
[SysTable]
public partial class SysTenantConfig : SysConfig
{
/// <summary>
/// 无效字段用于忽略实体类的Value字段
/// </summary>
[SugarColumn(IsIgnore = true)]
private new string? Value { get; set; }
}

View File

@@ -0,0 +1,25 @@
namespace YY.Admin.Core;
/// <summary>
/// 系统租户配置参数值表
/// </summary>
[SugarTable("sys_tenant_config_data", "系统租户配置参数值表")]
[SysTable]
[SugarIndex("index_{table}_TC", nameof(TenantId), OrderByType.Asc, nameof(ConfigId), OrderByType.Asc)]
public class SysTenantConfigData : EntityBaseTenantId
{
/// <summary>
/// 配置项Id
/// </summary>
[SugarColumn(ColumnDescription = "配置项Id")]
public long ConfigId { get; set; }
/// <summary>
/// 参数值
/// </summary>
[SugarColumn(ColumnDescription = "参数值", Length = 512)]
[MaxLength(512)]
public string? Value { get; set; }
}

View File

@@ -0,0 +1,23 @@

namespace YY.Admin.Core;
/// <summary>
/// 系统租户菜单表
/// </summary>
[SysTable]
[SugarTable("sys_tenant_menu", "系统租户菜单表")]
public class SysTenantMenu : EntityBaseId
{
/// <summary>
/// 租户Id
/// </summary>
[SugarColumn(ColumnDescription = "租户Id")]
public long TenantId { get; set; }
/// <summary>
/// 菜单Id
/// </summary>
[SugarColumn(ColumnDescription = "菜单Id")]
public long MenuId { get; set; }
}

View File

@@ -0,0 +1,390 @@
namespace YY.Admin.Core;
/// <summary>
/// 系统用户表
/// </summary>
[SugarTable("sys_user", "系统用户表")]
[SysTable]
[SugarIndex("index_{table}_A", nameof(Account), OrderByType.Asc)]
[SugarIndex("index_{table}_P", nameof(Phone), OrderByType.Asc)]
public partial class SysUser : EntityBaseTenantOrg
{
/// <summary>
/// 账号
/// </summary>
[SugarColumn(ColumnDescription = "账号", Length = 32)]
[Required, MaxLength(32)]
public virtual string Account { get; set; }
/// <summary>
/// 密码
/// </summary>
[SugarColumn(ColumnDescription = "密码", Length = 512)]
[MaxLength(512)]
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public virtual string Password { get; set; }
/// <summary>
/// Jeecg 用户表中的 salt用于 PBEWithMD5AndDES 与后台密码字段一致;从 Jeecg 同步时写入
/// </summary>
[SugarColumn(ColumnDescription = "Jeecg密码盐", Length = 64, IsNullable = true)]
[MaxLength(64)]
public string? JeecgPasswordSalt { get; set; }
/// <summary>
/// 真实姓名
/// </summary>
[SugarColumn(ColumnDescription = "真实姓名", Length = 32)]
[MaxLength(32)]
public virtual string RealName { get; set; }
/// <summary>
/// 昵称
/// </summary>
[SugarColumn(ColumnDescription = "昵称", Length = 32)]
[MaxLength(32)]
public string? NickName { get; set; }
/// <summary>
/// 头像
/// </summary>
[SugarColumn(ColumnDescription = "头像", Length = 512)]
[MaxLength(512)]
public string? Avatar { get; set; }
/// <summary>
/// Jeecg 侧用户更新时间(用于增量同步时跳过未变化记录)
/// </summary>
[SugarColumn(ColumnDescription = "Jeecg更新时间", IsNullable = true)]
public DateTime? JeecgUpdateTime { get; set; }
/// <summary>
/// Jeecg/业务后台用户主键(雪花 ID 等,以字符串保存避免溢出)
/// </summary>
[SugarColumn(ColumnDescription = "Jeecg用户ID", Length = 64, IsNullable = true)]
[MaxLength(64)]
public string? JeecgBizUserId { get; set; }
/// <summary>
/// Jeecg 机构编码 orgCode
/// </summary>
[SugarColumn(ColumnDescription = "Jeecg机构编码", Length = 64, IsNullable = true)]
[MaxLength(64)]
public string? JeecgOrgCode { get; set; }
/// <summary>
/// Jeecg 部门 id 列表(逗号分隔的 departIds
/// </summary>
[SugarColumn(ColumnDescription = "Jeecg部门IDs", Length = 512, IsNullable = true)]
[MaxLength(512)]
public string? JeecgDepartIds { get; set; }
/// <summary>
/// 性别-男_1、女_2
/// </summary>
[SugarColumn(ColumnDescription = "性别")]
public GenderEnum? Sex { get; set; }
/// <summary>
/// 年龄
/// </summary>
[SugarColumn(ColumnDescription = "年龄")]
public int Age { get; set; }
/// <summary>
/// 出生日期
/// </summary>
[SugarColumn(ColumnDescription = "出生日期")]
public DateTime? Birthday { get; set; }
/// <summary>
/// 民族
/// </summary>
[SugarColumn(ColumnDescription = "民族", Length = 32)]
[MaxLength(32)]
public string? Nation { get; set; }
/// <summary>
/// 手机号码
/// </summary>
[SugarColumn(ColumnDescription = "手机号码", Length = 16)]
[MaxLength(16)]
public string? Phone { get; set; }
/// <summary>
/// 证件类型
/// </summary>
[SugarColumn(ColumnDescription = "证件类型")]
public CardTypeEnum CardType { get; set; }
/// <summary>
/// 身份证号
/// </summary>
[SugarColumn(ColumnDescription = "身份证号", Length = 32)]
[MaxLength(32)]
public string? IdCardNum { get; set; }
/// <summary>
/// 邮箱
/// </summary>
[SugarColumn(ColumnDescription = "邮箱", Length = 64)]
[MaxLength(64)]
public string? Email { get; set; }
/// <summary>
/// 地址
/// </summary>
[SugarColumn(ColumnDescription = "地址", Length = 256)]
[MaxLength(256)]
public string? Address { get; set; }
/// <summary>
/// 文化程度
/// </summary>
[SugarColumn(ColumnDescription = "文化程度")]
public CultureLevelEnum CultureLevel { get; set; }
/// <summary>
/// 政治面貌
/// </summary>
[SugarColumn(ColumnDescription = "政治面貌", Length = 16)]
[MaxLength(16)]
public string? PoliticalOutlook { get; set; }
/// <summary>
/// 毕业院校
/// </summary>
[SugarColumn(ColumnDescription = "毕业院校", Length = 128)]
[MaxLength(128)]
public string? College { get; set; }
/// <summary>
/// 办公电话
/// </summary>
[SugarColumn(ColumnDescription = "办公电话", Length = 16)]
[MaxLength(16)]
public string? OfficePhone { get; set; }
/// <summary>
/// 紧急联系人
/// </summary>
[SugarColumn(ColumnDescription = "紧急联系人", Length = 32)]
[MaxLength(32)]
public string? EmergencyContact { get; set; }
/// <summary>
/// 紧急联系人电话
/// </summary>
[SugarColumn(ColumnDescription = "紧急联系人电话", Length = 16)]
[MaxLength(16)]
public string? EmergencyPhone { get; set; }
/// <summary>
/// 紧急联系人地址
/// </summary>
[SugarColumn(ColumnDescription = "紧急联系人地址", Length = 256)]
[MaxLength(256)]
public string? EmergencyAddress { get; set; }
/// <summary>
/// 个人简介
/// </summary>
[SugarColumn(ColumnDescription = "个人简介", Length = 512)]
[MaxLength(512)]
public string? Introduction { get; set; }
/// <summary>
/// 排序
/// </summary>
[SugarColumn(ColumnDescription = "排序")]
public int OrderNo { get; set; } = 100;
/// <summary>
/// 状态
/// </summary>
[SugarColumn(ColumnDescription = "状态")]
public StatusEnum Status { get; set; } = StatusEnum.Enable;
/// <summary>
/// 备注
/// </summary>
[SugarColumn(ColumnDescription = "备注", Length = 256)]
[MaxLength(256)]
public string? Remark { get; set; }
/// <summary>
/// 账号类型
/// </summary>
[SugarColumn(ColumnDescription = "账号类型")]
public AccountTypeEnum AccountType { get; set; } = AccountTypeEnum.NormalUser;
///// <summary>
///// 直属机构Id
///// </summary>
//[SugarColumn(ColumnDescription = "直属机构Id")]
//public long OrgId { get; set; }
/// <summary>
/// 直属机构
/// </summary>
[Navigate(NavigateType.OneToOne, nameof(OrgId))]
public SysOrg SysOrg { get; set; }
/// <summary>
/// 直属主管Id
/// </summary>
[SugarColumn(ColumnDescription = "直属主管Id")]
public long? ManagerUserId { get; set; }
/// <summary>
/// 直属主管
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
[Navigate(NavigateType.OneToOne, nameof(ManagerUserId))]
public SysUser ManagerUser { get; set; }
/// <summary>
/// 职位Id
/// </summary>
[SugarColumn(ColumnDescription = "职位Id")]
public long PosId { get; set; }
/// <summary>
/// 职位
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
[Navigate(NavigateType.OneToOne, nameof(PosId))]
public SysPos SysPos { get; set; }
/// <summary>
/// 工号
/// </summary>
[SugarColumn(ColumnDescription = "工号", Length = 32)]
[MaxLength(32)]
public string? JobNum { get; set; }
/// <summary>
/// 职级
/// </summary>
[SugarColumn(ColumnDescription = "职级", Length = 32)]
[MaxLength(32)]
public string? PosLevel { get; set; }
/// <summary>
/// 职称
/// </summary>
[SugarColumn(ColumnDescription = "职称", Length = 32)]
[MaxLength(32)]
public string? PosTitle { get; set; }
/// <summary>
/// 擅长领域
/// </summary>
[SugarColumn(ColumnDescription = "擅长领域", Length = 32)]
[MaxLength(32)]
public string? Expertise { get; set; }
/// <summary>
/// 办公区域
/// </summary>
[SugarColumn(ColumnDescription = "办公区域", Length = 32)]
[MaxLength(32)]
public string? OfficeZone { get; set; }
/// <summary>
/// 办公室
/// </summary>
[SugarColumn(ColumnDescription = "办公室", Length = 32)]
[MaxLength(32)]
public string? Office { get; set; }
/// <summary>
/// 入职日期
/// </summary>
[SugarColumn(ColumnDescription = "入职日期")]
public DateTime? JoinDate { get; set; }
/// <summary>
/// 最新登录Ip
/// </summary>
[SugarColumn(ColumnDescription = "最新登录Ip", Length = 256)]
[MaxLength(256)]
public string? LastLoginIp { get; set; }
/// <summary>
/// 最新登录地点
/// </summary>
[SugarColumn(ColumnDescription = "最新登录地点", Length = 128)]
[MaxLength(128)]
public string? LastLoginAddress { get; set; }
/// <summary>
/// 最新登录时间
/// </summary>
[SugarColumn(ColumnDescription = "最新登录时间")]
public DateTime? LastLoginTime { get; set; }
/// <summary>
/// 最新登录设备
/// </summary>
[SugarColumn(ColumnDescription = "最新登录设备", Length = 128)]
[MaxLength(128)]
public string? LastLoginDevice { get; set; }
/// <summary>
/// 电子签名
/// </summary>
[SugarColumn(ColumnDescription = "电子签名", Length = 512)]
[MaxLength(512)]
public string? Signature { get; set; }
[SugarColumn(IsIgnore = true)]
public string? AccountTypeZh { get {
return this.AccountType.GetDescription();
} }
[SugarColumn(IsIgnore = true)]
public bool IsSuperAdmin
{
get
{
return this.AccountType== AccountTypeEnum.SuperAdmin;
}
}
[SugarColumn(IsIgnore = true)]
public bool IsSysAdmin
{
get
{
return this.AccountType == AccountTypeEnum.SysAdmin;
}
}
/// <summary>
/// 验证超级管理员类型,若账号类型为超级管理员则报错
/// </summary>
/// <param name="errorMsg">自定义错误消息</param>
public void ValidateIsSuperAdminAccountType(ErrorCodeEnum? errorMsg = ErrorCodeEnum.D1014)
{
if (AccountType == AccountTypeEnum.SuperAdmin)
{
throw new Exception(errorMsg.GetDescription());
}
}
/// <summary>
/// 验证用户Id是否相同若用户Id相同则报错
/// </summary>
/// <param name="userId">用户Id</param>
/// <param name="errorMsg">自定义错误消息</param>
public void ValidateIsUserId(long userId, ErrorCodeEnum? errorMsg = ErrorCodeEnum.D1001)
{
if (Id == userId)
{
throw new Exception(errorMsg.GetDescription());
}
}
}

View File

@@ -0,0 +1,17 @@
namespace YY.Admin.Core;
/// <summary>
/// 系统用户配置参数表
/// </summary>
[SugarTable("sys_user_config", "系统用户配置参数表")]
[SysTable]
public partial class SysUserConfig : SysConfig
{
/// <summary>
/// 无效字段用于忽略实体类的Value字段
/// </summary>
[SugarColumn(IsIgnore = true)]
private new string? Value { get; set; }
}

View File

@@ -0,0 +1,31 @@
namespace YY.Admin.Core;
/// <summary>
/// 系统租户配置参数值表
/// </summary>
[SugarTable("sys_user_config_data", "系统租户配置参数值表")]
[SysTable]
[SugarIndex("index_{table}_UC", nameof(UserId), OrderByType.Asc, nameof(ConfigId), OrderByType.Asc)]
public class SysUserConfigData : EntityBaseId
{
/// <summary>
/// 用户Id
/// </summary>
[SugarColumn(ColumnDescription = "用户Id")]
public long UserId { get; set; }
/// <summary>
/// 配置项Id
/// </summary>
[SugarColumn(ColumnDescription = "配置项Id")]
public long ConfigId { get; set; }
/// <summary>
/// 参数值
/// </summary>
[SugarColumn(ColumnDescription = "参数值", Length = 512)]
[MaxLength(512)]
public string? Value { get; set; }
}

View File

@@ -0,0 +1,73 @@

namespace YY.Admin.Core;
/// <summary>
/// 系统用户扩展机构表
/// </summary>
[SugarTable("sys_user_ext_org", "系统用户扩展机构表")]
[SysTable]
public partial class SysUserExtOrg : EntityBaseId
{
/// <summary>
/// 用户Id
/// </summary>
[SugarColumn(ColumnDescription = "用户Id")]
public long UserId { get; set; }
/// <summary>
/// 用户
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
[Navigate(NavigateType.OneToOne, nameof(UserId))]
public SysUser SysUser { get; set; }
/// <summary>
/// 机构Id
/// </summary>
[SugarColumn(ColumnDescription = "机构Id")]
public long OrgId { get; set; }
/// <summary>
/// 机构
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
[Navigate(NavigateType.OneToOne, nameof(OrgId))]
public SysOrg SysOrg { get; set; }
/// <summary>
/// 职位Id
/// </summary>
[SugarColumn(ColumnDescription = "职位Id")]
public long PosId { get; set; }
/// <summary>
/// 职位
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
[Navigate(NavigateType.OneToOne, nameof(PosId))]
public SysPos SysPos { get; set; }
/// <summary>
/// 工号
/// </summary>
[SugarColumn(ColumnDescription = "工号", Length = 32)]
[MaxLength(32)]
public string? JobNum { get; set; }
/// <summary>
/// 职级
/// </summary>
[SugarColumn(ColumnDescription = "职级", Length = 32)]
[MaxLength(32)]
public string? PosLevel { get; set; }
/// <summary>
/// 入职日期
/// </summary>
[SugarColumn(ColumnDescription = "入职日期")]
public DateTime? JoinDate { get; set; }
}

View File

@@ -0,0 +1,76 @@
namespace YY.Admin.Core;
/// <summary>
/// 系统用户域配置表
/// </summary>
[SugarTable("sys_user_ldap", "系统用户域配置表")]
[SysTable]
[SugarIndex("index_{table}_A", nameof(Account), OrderByType.Asc)]
[SugarIndex("index_{table}_U", nameof(UserId), OrderByType.Asc)]
public class SysUserLdap : EntityBaseTenantId
{
/// <summary>
/// 用户Id
/// </summary>
[SugarColumn(ColumnDescription = "用户Id")]
public long UserId { get; set; }
/// <summary>
/// 域账号
/// AD域对应sAMAccountName
/// Ldap对应uid
/// </summary>
[SugarColumn(ColumnDescription = "域账号", Length = 32)]
[Required]
public string Account { get; set; }
/// <summary>
/// 域用户名
/// </summary>
[SugarColumn(ColumnDescription = "域用户名", Length = 32)]
public string UserName { get; set; }
/// <summary>
/// 对应EmployeeId(用于数据导入对照)
/// </summary>
[SugarColumn(ColumnDescription = "对应EmployeeId", Length = 32)]
public string? EmployeeId { get; set; }
/// <summary>
/// 组织代码
/// </summary>
[SugarColumn(ColumnDescription = "组织代码", Length = 64)]
public string? DeptCode { get; set; }
/// <summary>
/// 最后设置密码时间
/// </summary>
[SugarColumn(ColumnDescription = "最后设置密码时间")]
public DateTime? PwdLastSetTime { get; set; }
/// <summary>
/// 邮箱
/// </summary>
[SugarColumn(ColumnDescription = "组织代码", Length = 64)]
public string? Mail { get; set; }
/// <summary>
/// 检查账户是否已过期
/// </summary>
[SugarColumn(ColumnDescription = "检查账户是否已过期")]
public bool AccountExpiresFlag { get; set; } = false;
/// <summary>
/// 密码设置是否永不过期
/// </summary>
[SugarColumn(ColumnDescription = "密码设置是否永不过期")]
public bool DontExpiresFlag { get; set; } = false;
/// <summary>
/// DN
/// </summary>
[SugarColumn(ColumnDescription = "DN", Length = 512)]
public string Dn { get; set; }
}

View File

@@ -0,0 +1,37 @@
namespace YY.Admin.Core;
/// <summary>
/// 系统用户菜单快捷导航表
/// </summary>
[SugarTable("sys_user_menu", "系统用户菜单快捷导航表")]
[SysTable]
public partial class SysUserMenu : EntityBaseId
{
/// <summary>
/// 用户Id
/// </summary>
[SugarColumn(ColumnDescription = "用户Id")]
public long UserId { get; set; }
/// <summary>
/// 用户
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
[Navigate(NavigateType.OneToOne, nameof(UserId))]
public SysUser SysUser { get; set; }
/// <summary>
/// 菜单Id
/// </summary>
[SugarColumn(ColumnDescription = "菜单Id")]
public long MenuId { get; set; }
/// <summary>
/// 菜单
/// </summary>
[Navigate(NavigateType.OneToOne, nameof(MenuId))]
public SysMenu SysMenu { get; set; }
}

View File

@@ -0,0 +1,55 @@
namespace YY.Admin.Core;
/// <summary>
/// 系统用户注册方案表
/// </summary>
[SugarTable("sys_user_reg_way", "系统用户注册方案表")]
[SysTable]
public partial class SysUserRegWay : EntityBaseTenant
{
/// <summary>
/// 方案名称
/// </summary>
[MaxLength(32)]
[SugarColumn(ColumnDescription = "方案名称", Length = 32)]
public virtual string Name { get; set; }
/// <summary>
/// 账号类型
/// </summary>
[SugarColumn(ColumnDescription = "账号类型")]
public virtual AccountTypeEnum AccountType { get; set; } = AccountTypeEnum.NormalUser;
/// <summary>
/// 注册用户默认角色
/// </summary>
[SugarColumn(ColumnDescription = "角色")]
public virtual long RoleId { get; set; }
/// <summary>
/// 注册用户默认机构
/// </summary>
[SugarColumn(ColumnDescription = "机构")]
public virtual long OrgId { get; set; }
/// <summary>
/// 注册用户默认职位
/// </summary>
[SugarColumn(ColumnDescription = "职位")]
public virtual long PosId { get; set; }
/// <summary>
/// 排序
/// </summary>
[SugarColumn(ColumnDescription = "排序")]
public int OrderNo { get; set; } = 100;
/// <summary>
/// 备注
/// </summary>
[MaxLength(128)]
[SugarColumn(ColumnDescription = "备注", Length = 128)]
public string? Remark { get; set; }
}

View File

@@ -0,0 +1,37 @@

namespace YY.Admin.Core;
/// <summary>
/// 系统用户角色表
/// </summary>
[SugarTable("sys_user_role", "系统用户角色表")]
[SysTable]
public class SysUserRole : EntityBaseId
{
/// <summary>
/// 用户Id
/// </summary>
[SugarColumn(ColumnDescription = "用户Id")]
public long UserId { get; set; }
/// <summary>
/// 用户
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
[Navigate(NavigateType.OneToOne, nameof(UserId))]
public SysUser SysUser { get; set; }
/// <summary>
/// 角色Id
/// </summary>
[SugarColumn(ColumnDescription = "角色Id")]
public long RoleId { get; set; }
/// <summary>
/// 角色
/// </summary>
[Navigate(NavigateType.OneToOne, nameof(RoleId))]
public SysRole SysRole { get; set; }
}