Admin.NET/Admin.NET.Application/Configuration/Database.json
@@ -27,14 +27,14 @@ // } //], "DbSettings": { "EnableInitDb": false, // 启用库初始化(若实体没有变化建议关闭) "EnableInitDb": true, // 启用库初始化(若实体没有变化建议关闭) "EnableInitView": false, // 启用视图初始化(若实体和视图没有变化建议关闭) "EnableDiffLog": false, // 启用库表差异日志 "EnableUnderLine": false, // 启用驼峰转下划线 "EnableConnEncrypt": false // 启用数据库连接串加密(国密SM2加解密) }, "TableSettings": { "EnableInitTable": false, // 启用表初始化(若实体没有变化建议关闭) "EnableInitTable": true, // 启用表初始化(若实体没有变化建议关闭) "EnableIncreTable": true // 启用表增量更新(只更新贴了特性[IncreTable]的实体表) }, "SeedSettings": { Admin.NET/Admin.NET.Core/Const/ClaimConst.cs
@@ -65,4 +65,16 @@ /// 登录模式PC、APP /// </summary> public const string LoginMode = "LoginMode"; /// <summary> /// 用户类型 /// </summary> public const string UserType = "UserType"; /// <summary> /// 客户登录类型 /// </summary> public const string CustomerLogoinType = "CustomerLogoinType"; } Admin.NET/Admin.NET.Web.Core/Admin.NET.Web.Core.csproj
@@ -16,6 +16,7 @@ <ItemGroup> <ProjectReference Include="..\Admin.NET.Application\Admin.NET.Application.csproj" /> <ProjectReference Include="..\FZCZTB.TSCL.Application\FZCZTB.TSCL.Application.csproj" /> </ItemGroup> </Project> Admin.NET/Admin.NET.Web.Core/Startup.cs
@@ -351,7 +351,7 @@ { foreach (var groupInfo in SpecificationDocumentBuilder.GetOpenApiGroups()) { groupInfo.Description += "<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>"; groupInfo.Description += "<br/><u><b><font color='FF0000'> 欢迎欢迎</font></b></u>"; } }); Admin.NET/Admin.NET.Web.Entry/Admin.NET.Web.Entry.csproj
@@ -62,7 +62,6 @@ <ItemGroup> <ProjectReference Include="..\Admin.NET.Web.Core\Admin.NET.Web.Core.csproj" /> <ProjectReference Include="..\FZCZTB.TSCL.Application\FZCZTB.TSCL.Application.csproj" /> </ItemGroup> </Project> Admin.NET/FZCZTB.NET.MD/CutomerMd/FB_Customer.cs
New file @@ -0,0 +1,357 @@ // Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。 // // 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。 // // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! using Admin.NET.Core; using Furion.FriendlyException; using SqlSugar; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FZCZTB.NET.MD.CutomerMd; /// <summary> /// 客户表 /// </summary> [SugarTable("FB_Customer", "客户表")] [SugarIndex("index_{table}_A", nameof(Account), OrderByType.Asc)] [SugarIndex("index_{table}_P", nameof(Phone), OrderByType.Asc)] [IncreTable] public partial class FB_Customer : EntityBaseTenant { /// <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> /// 真实姓名 /// </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> /// 性别-男_1、女_2 /// </summary> [SugarColumn(ColumnDescription = "性别")] public GenderEnum Sex { get; set; } = GenderEnum.Male; /// <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 = 512)] [MaxLength(512)] public string? IdCardPath { 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>COLLEGE [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; } ///// <summary> ///// 验证超级管理员类型,若账号类型为超级管理员则报错 ///// </summary> ///// <param name="errorMsg">自定义错误消息</param> //public void ValidateIsSuperAdminAccountType(ErrorCodeEnum? errorMsg = ErrorCodeEnum.D1014) //{ // if (AccountType == AccountTypeEnum.SuperAdmin) // { // throw Oops.Oh(errorMsg); // } //} /// <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 Oops.Oh(errorMsg); } } } Admin.NET/FZCZTB.NET.MD/CutomerMd/FB_CustomerRole.cs
New file @@ -0,0 +1,45 @@ // Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。 // // 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。 // // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! using Admin.NET.Core; using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FZCZTB.NET.MD.CutomerMd; [SugarTable("FB_CustomerRole", "客户菜单表")] [IncreTable] public class FB_CustomerRole : EntityBaseId { /// <summary> /// 用户Id /// </summary> [SugarColumn(ColumnDescription = "用户Id")] public long CutomerId { get; set; } /// <summary> /// 用户 /// </summary> [Newtonsoft.Json.JsonIgnore] [System.Text.Json.Serialization.JsonIgnore] [Navigate(NavigateType.OneToOne, nameof(CutomerId))] 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; } } Admin.NET/FZCZTB.NET.MD/CutomerMd/FB_ExRole.cs
New file @@ -0,0 +1,65 @@ // Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。 // // 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。 // // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! using Admin.NET.Core; using SqlSugar; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FZCZTB.NET.MD.CutomerMd; /// <summary> /// 登录即要选择的校色 /// </summary> [SugarTable("FB_TenantMenu", "客户主分类角色")] [SugarIndex("index_{table}_N", nameof(Name), OrderByType.Asc)] [SugarIndex("index_{table}_C", nameof(Code), OrderByType.Asc)] [IncreTable] public class FB_ExRole: EntityBaseTenantId { /// <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.All; /// <summary> /// 备注 /// </summary> [SugarColumn(ColumnDescription = "备注", Length = 128)] [MaxLength(128)] public string? Remark { get; set; } /// <summary> /// 状态 /// </summary> [SugarColumn(ColumnDescription = "状态")] public StatusEnum Status { get; set; } = StatusEnum.Enable; } Admin.NET/FZCZTB.NET.MD/CutomerMd/FB_ExRoleMenu.cs
New file @@ -0,0 +1,34 @@ // Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。 // // 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。 // // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! using Admin.NET.Core; using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FZCZTB.NET.MD.CutomerMd; /// <summary> /// 系统租户菜单表 /// </summary> [SugarTable("FB_TenantMenu", "系统租户菜单表")] [IncreTable] class FB_ExRoleMenu: EntityBaseId { /// <summary> /// 租户Id /// </summary> [SugarColumn(ColumnDescription = "租户Id")] public long ExRoleId { get; set; } /// <summary> /// 菜单Id /// </summary> [SugarColumn(ColumnDescription = "菜单Id")] public long MenuId { get; set; } } Admin.NET/FZCZTB.NET.MD/CutomerMd/FB_Menu.cs
New file @@ -0,0 +1,142 @@ // Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。 // // 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。 // // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! using Admin.NET.Core; using SqlSugar; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FZCZTB.NET.MD.CutomerMd; /// <summary> /// /// </summary> [SugarTable("FB_Menu", "客户系统菜单表")] [SugarIndex("index_{table}_T", nameof(Title), OrderByType.Asc)] [SugarIndex("index_{table}_T2", nameof(Type), OrderByType.Asc)] [IncreTable] public class FB_Menu: EntityBaseTenantId { /// <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(); } Admin.NET/FZCZTB.NET.MD/CutomerMd/FB_Role.cs
New file @@ -0,0 +1,63 @@ // Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。 // // 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。 // // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! using Admin.NET.Core; using SqlSugar; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; using static SKIT.FlurlHttpClient.Wechat.Api.Models.ComponentTCBBatchCreateContainerServiceVersionRequest.Types; namespace FZCZTB.NET.MD.CutomerMd; [SugarTable("FB_Role", "客户个性化角色")] [SugarIndex("index_{table}_N", nameof(Name), OrderByType.Asc)] [SugarIndex("index_{table}_C", nameof(Code), OrderByType.Asc)] [IncreTable] public class FB_Role : 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; } Admin.NET/FZCZTB.NET.MD/CutomerMd/FB_RoleMenu.cs
New file @@ -0,0 +1,40 @@ // Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。 // // 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。 // // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! using Admin.NET.Core; using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FZCZTB.NET.MD.CutomerMd; [IncreTable] [SugarTable("FB_Role", "个性化校色菜单")] public class FB_RoleMenu: 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; } } Admin.NET/FZCZTB.NET.MD/ProcurementComplaint.cs
@@ -76,7 +76,7 @@ /// <summary> /// 投诉事项 /// </summary> [Navigate(NavigateType.OneToMany,nameof(ProcurementComplaintItems.ComplaintId), nameof(ProcurementComplaint.Id))] [Navigate(NavigateType.OneToMany,nameof(ProcurementComplaintItems.ComplaintId))] public List<ProcurementComplaintItems>? Complaints { get; set; } } @@ -109,7 +109,7 @@ /// 处理结果 /// </summary> [SugarColumn(IsNullable = true, ColumnDescription = "处理结果")] public PComplaintStatus HandlingStatus { get; set; } public PComplaintStatus? HandlingStatus { get; set; } /// <summary> /// 处理描述 /// </summary> @@ -148,7 +148,7 @@ [Description("部分成立")] PartiallyValid = 3 } public class basemodelNoId Admin.NET/FZCZTB.TSCL.Application/Service/ProcurementComplaint/Dto/ProcurementComplaintInput.cs
@@ -122,6 +122,13 @@ /// 选中主键列表 /// </summary> public List<Guid> SelectKeyList { get; set; } /// <summary> /// 是否成立 /// </summary> public PComplaintStatus? Status { get; set; } } /// <summary> Admin.NET/FZCZTB.TSCL.Application/Service/ProcurementComplaint/Dto/ProcurementComplaintOutput.cs
@@ -3,6 +3,7 @@ // 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。 // // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! using FZCZTB.NET.MD; using Magicodes.ExporterAndImporter.Core; namespace FZCZTB.TSCL.Application; @@ -84,10 +85,14 @@ /// <summary> /// 修改者姓名 /// </summary> public string? UpdateUserName { get; set; } public string? UpdateUserName { get; set; } public List<ProcurementComplaintItems>? Complaints { get; set; } /// <summary> /// 是否成立 /// </summary> public PComplaintStatus Status { get; set; } } /// <summary> Admin.NET/FZCZTB.TSCL.Application/Service/ProcurementComplaint/ProcurementComplaintService.cs
@@ -23,6 +23,7 @@ using System.Linq; using NewLife.Xml; using AngleSharp.Dom; using static Elastic.Clients.Elasticsearch.JoinField; namespace FZCZTB.TSCL.Application; /// <summary> @@ -50,8 +51,8 @@ public async Task<SqlSugarPagedList<ProcurementComplaintOutput>> Page(PageProcurementComplaintInput input) { input.Keyword = input.Keyword?.Trim(); var query = _procurementComplaintRep.AsQueryable().Includes(x=>x.Complaints) .WhereIF(!string.IsNullOrWhiteSpace(input.Keyword), u => u.Complaints.Any(uu=>uu.ItemDescription.Contains(input.Keyword))) var query = _procurementComplaintRep.AsQueryable().Includes(u => u.Complaints) .WhereIF(!string.IsNullOrWhiteSpace(input.Keyword), u => u.Complaints.Any(uu => uu.ItemDescription.Contains(input.Keyword))) .WhereIF(!string.IsNullOrWhiteSpace(input.ProjectCode), u => u.ProjectCode.Contains(input.ProjectCode.Trim())) .WhereIF(!string.IsNullOrWhiteSpace(input.ProjectName), u => u.ProjectName.Contains(input.ProjectName.Trim())) .WhereIF(!string.IsNullOrWhiteSpace(input.Purchaser), u => u.Purchaser.Contains(input.Purchaser.Trim())) @@ -60,7 +61,21 @@ .WhereIF(!string.IsNullOrWhiteSpace(input.ProcurementSupervisionDepartment), u => u.ProcurementSupervisionDepartment.Contains(input.ProcurementSupervisionDepartment.Trim())) .WhereIF(!string.IsNullOrWhiteSpace(input.Url), u => u.Url.Contains(input.Url.Trim())) .WhereIF(input.DecisionDateRange?.Length == 2, u => u.DecisionDate >= input.DecisionDateRange[0] && u.DecisionDate <= input.DecisionDateRange[1]) .Select<ProcurementComplaintOutput>(); .WhereIF(input.Status != null && input.Status == PComplaintStatus.Valid, u =>( u.Complaints.Any(uu => uu.HandlingStatus == PComplaintStatus.Valid))) .WhereIF(input.Status != null && input.Status == PComplaintStatus.Rejected, u => ( !u.Complaints.Any(uu=>uu.HandlingStatus== PComplaintStatus.Other||uu.HandlingStatus== PComplaintStatus.Valid||uu.HandlingStatus==null))) .WhereIF(input.Status != null && input.Status == PComplaintStatus.Other, u =>!( u.Complaints.Any(uu=>uu.HandlingStatus== PComplaintStatus.Valid)|| (!u.Complaints.Any(uu => uu.HandlingStatus == PComplaintStatus.Other || uu.HandlingStatus == PComplaintStatus.Valid || uu.HandlingStatus == null)))) .Select(n => new ProcurementComplaintOutput { Complaints = n.Complaints },true) .Mapper(n => { n.Status =n.Complaints==null? PComplaintStatus.Other:n.Complaints.Any(x => x.HandlingStatus == PComplaintStatus.Valid) ? PComplaintStatus.Valid : n.Complaints.All(x => x.HandlingStatus == PComplaintStatus.Rejected) ? PComplaintStatus.Rejected : PComplaintStatus.Other ; n.Complaints = null; } ); return await query.OrderBuilder(input).ToPagedListAsync(input.Page, input.PageSize); } Admin.NET/Plugins/Admin.NET.Plugin.ApprovalFlow/Admin.NET.Plugin.ApprovalFlow.csproj
@@ -1,7 +1,7 @@ <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFrameworks>net8.0;net9.0</TargetFrameworks> <TargetFrameworks>net8.0</TargetFrameworks> <NoWarn>1701;1702;1591;8632</NoWarn> <ImplicitUsings>enable</ImplicitUsings> <Nullable>disable</Nullable> Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/Admin.NET.Plugin.DingTalk.csproj
@@ -1,7 +1,7 @@ <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFrameworks>net8.0;net9.0</TargetFrameworks> <TargetFrameworks>net8.0</TargetFrameworks> <NoWarn>1701;1702;1591;8632</NoWarn> <ImplicitUsings>enable</ImplicitUsings> <Nullable>disable</Nullable> Admin.NET/Plugins/Admin.NET.Plugin.GoView/Admin.NET.Plugin.GoView.csproj
@@ -1,7 +1,7 @@ <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFrameworks>net8.0;net9.0</TargetFrameworks> <TargetFrameworks>net8.0</TargetFrameworks> <NoWarn>1701;1702;1591;8632</NoWarn> <ImplicitUsings>enable</ImplicitUsings> <Nullable>disable</Nullable> Admin.NET/Plugins/Admin.NET.Plugin.K3Cloud/Admin.NET.Plugin.K3Cloud.csproj
@@ -1,7 +1,7 @@ <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFrameworks>net8.0;net9.0</TargetFrameworks> <TargetFrameworks>net8.0</TargetFrameworks> <NoWarn>1701;1702;1591;8632</NoWarn> <ImplicitUsings>enable</ImplicitUsings> <Nullable>disable</Nullable> Admin.NET/Plugins/Admin.NET.Plugin.ReZero/Admin.NET.Plugin.ReZero.csproj
@@ -1,7 +1,7 @@ <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFrameworks>net8.0;net9.0</TargetFrameworks> <TargetFrameworks>net8.0</TargetFrameworks> <NoWarn>1701;1702;1591;8632</NoWarn> <ImplicitUsings>enable</ImplicitUsings> <Nullable>disable</Nullable> Admin.NET/Plugins/Admin.NET.Plugin.WorkWeixin/Admin.NET.Plugin.WorkWeixin.csproj
@@ -1,7 +1,7 @@ <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFrameworks>net8.0;net9.0</TargetFrameworks> <TargetFrameworks>net8.0</TargetFrameworks> <NoWarn>1701;1702;1591;8632</NoWarn> <ImplicitUsings>enable</ImplicitUsings> <Nullable>disable</Nullable>