mirror of
https://gitee.com/dotnetchina/OpenAuth.Net.git
synced 2025-04-05 17:38:01 +08:00
增加对数据库自动生成主键的支持;
优化基础业务类结构;
This commit is contained in:
parent
f652d533aa
commit
127d86616f
@ -13,7 +13,7 @@ namespace OpenAuth.App
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 分类管理
|
/// 分类管理
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class AppManager : BaseApp<Application,OpenAuthDBContext>
|
public class AppManager : BaseStringApp<Application,OpenAuthDBContext>
|
||||||
{
|
{
|
||||||
public void Add(Application Application)
|
public void Add(Application Application)
|
||||||
{
|
{
|
||||||
|
@ -28,7 +28,7 @@ namespace OpenAuth.App
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 普通用户授权策略
|
/// 普通用户授权策略
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class NormalAuthStrategy :BaseApp<User,OpenAuthDBContext>, IAuthStrategy
|
public class NormalAuthStrategy :BaseStringApp<User,OpenAuthDBContext>, IAuthStrategy
|
||||||
{
|
{
|
||||||
|
|
||||||
protected User _user;
|
protected User _user;
|
||||||
|
@ -30,7 +30,7 @@ namespace OpenAuth.App
|
|||||||
/// <para>超级管理员权限</para>
|
/// <para>超级管理员权限</para>
|
||||||
/// <para>超级管理员使用guid.empty为ID,可以根据需要修改</para>
|
/// <para>超级管理员使用guid.empty为ID,可以根据需要修改</para>
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class SystemAuthStrategy : BaseApp<User,OpenAuthDBContext>, IAuthStrategy
|
public class SystemAuthStrategy : BaseStringApp<User,OpenAuthDBContext>, IAuthStrategy
|
||||||
{
|
{
|
||||||
protected User _user;
|
protected User _user;
|
||||||
private DbExtension _dbExtension;
|
private DbExtension _dbExtension;
|
||||||
|
@ -9,12 +9,7 @@ using OpenAuth.Repository.Interface;
|
|||||||
|
|
||||||
namespace OpenAuth.App
|
namespace OpenAuth.App
|
||||||
{
|
{
|
||||||
/// <summary>
|
public abstract class BaseApp<T, TDbContext> where T : class where TDbContext: DbContext
|
||||||
/// 业务层基类,UnitWork用于事务操作,Repository用于普通的数据库操作
|
|
||||||
/// <para>如用户管理:Class UserManagerApp:BaseApp<User></para>
|
|
||||||
/// </summary>
|
|
||||||
/// <typeparam name="T"></typeparam>
|
|
||||||
public class BaseApp<T, TDbContext> where T : StringEntity where TDbContext: DbContext
|
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 用于普通的数据库操作
|
/// 用于普通的数据库操作
|
||||||
@ -70,21 +65,7 @@ namespace OpenAuth.App
|
|||||||
return UnitWork.Find<T>(null).GenerateFilter(parametername,
|
return UnitWork.Find<T>(null).GenerateFilter(parametername,
|
||||||
JsonHelper.Instance.Deserialize<FilterGroup>(rule.PrivilegeRules));
|
JsonHelper.Instance.Deserialize<FilterGroup>(rule.PrivilegeRules));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 按id批量删除
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="ids"></param>
|
|
||||||
public virtual void Delete(string[] ids)
|
|
||||||
{
|
|
||||||
Repository.Delete(u => ids.Contains(u.Id));
|
|
||||||
}
|
|
||||||
|
|
||||||
public T Get(string id)
|
|
||||||
{
|
|
||||||
return Repository.FirstOrDefault(u => u.Id == id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 计算实体更新的层级信息
|
/// 计算实体更新的层级信息
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
41
OpenAuth.App/Base/BaseIntAutoGenApp.cs
Normal file
41
OpenAuth.App/Base/BaseIntAutoGenApp.cs
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
using System;
|
||||||
|
using System.Linq;
|
||||||
|
using Infrastructure;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using OpenAuth.App.Interface;
|
||||||
|
using OpenAuth.Repository.Core;
|
||||||
|
using OpenAuth.Repository.Domain;
|
||||||
|
using OpenAuth.Repository.Interface;
|
||||||
|
|
||||||
|
namespace OpenAuth.App
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 数据库Id为numberic且为数据库自动生成的业务类型
|
||||||
|
/// <para>该场景通常为SqlServer的自动增长类型和Oracle自带的Sequence</para>
|
||||||
|
/// 业务层基类,UnitWork用于事务操作,Repository用于普通的数据库操作
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="T"></typeparam>
|
||||||
|
public class BaseIntAutoGenApp<T, TDbContext> :BaseApp<T,TDbContext> where T : IntAutoGenEntity where TDbContext: DbContext
|
||||||
|
{
|
||||||
|
public BaseIntAutoGenApp(IUnitWork<TDbContext> unitWork, IRepository<T,TDbContext> repository, IAuth auth) : base(unitWork, repository, auth)
|
||||||
|
{
|
||||||
|
UnitWork = unitWork;
|
||||||
|
Repository = repository;
|
||||||
|
_auth = auth;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 按id批量删除
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="ids"></param>
|
||||||
|
public void Delete(int[] ids)
|
||||||
|
{
|
||||||
|
Repository.Delete(u => ids.Contains(u.Id));
|
||||||
|
}
|
||||||
|
|
||||||
|
public T Get(int id)
|
||||||
|
{
|
||||||
|
return Repository.FirstOrDefault(u => u.Id == id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -12,10 +12,9 @@ namespace OpenAuth.App
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// ⭐⭐数据库Id为numberic类型的数据表相关业务使用该基类⭐⭐
|
/// ⭐⭐数据库Id为numberic类型的数据表相关业务使用该基类⭐⭐
|
||||||
/// 业务层基类,UnitWork用于事务操作,Repository用于普通的数据库操作
|
/// 业务层基类,UnitWork用于事务操作,Repository用于普通的数据库操作
|
||||||
/// <para>如用户管理:Class UserManagerApp:BaseApp<User></para>
|
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <typeparam name="T"></typeparam>
|
/// <typeparam name="T"></typeparam>
|
||||||
public class BaseLongApp<T, TDbContext> where T : LongEntity where TDbContext: DbContext
|
public class BaseLongApp<T, TDbContext> :BaseApp<T,TDbContext> where T : LongEntity where TDbContext: DbContext
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 用于普通的数据库操作
|
/// 用于普通的数据库操作
|
||||||
@ -30,53 +29,19 @@ namespace OpenAuth.App
|
|||||||
|
|
||||||
protected IAuth _auth;
|
protected IAuth _auth;
|
||||||
|
|
||||||
public BaseLongApp(IUnitWork<TDbContext> unitWork, IRepository<T,TDbContext> repository, IAuth auth)
|
public BaseLongApp(IUnitWork<TDbContext> unitWork, IRepository<T,TDbContext> repository, IAuth auth) : base(unitWork, repository,auth)
|
||||||
{
|
{
|
||||||
UnitWork = unitWork;
|
UnitWork = unitWork;
|
||||||
Repository = repository;
|
Repository = repository;
|
||||||
_auth = auth;
|
_auth = auth;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 获取当前登录用户的数据访问权限
|
|
||||||
/// </summary>
|
|
||||||
/// <param name=""parameterName>linq表达式参数的名称,如u=>u.name中的"u"</param>
|
|
||||||
/// <returns></returns>
|
|
||||||
protected IQueryable<T> GetDataPrivilege(string parametername)
|
|
||||||
{
|
|
||||||
var loginUser = _auth.GetCurrentUser();
|
|
||||||
if (loginUser.User.Account == Define.SYSTEM_USERNAME) return UnitWork.Find<T>(null); //超级管理员特权
|
|
||||||
|
|
||||||
var moduleName = typeof(T).Name;
|
|
||||||
var rule = UnitWork.FirstOrDefault<DataPrivilegeRule>(u => u.SourceCode == moduleName);
|
|
||||||
if (rule == null) return UnitWork.Find<T>(null); //没有设置数据规则,那么视为该资源允许被任何主体查看
|
|
||||||
if (rule.PrivilegeRules.Contains(Define.DATAPRIVILEGE_LOGINUSER) ||
|
|
||||||
rule.PrivilegeRules.Contains(Define.DATAPRIVILEGE_LOGINROLE)||
|
|
||||||
rule.PrivilegeRules.Contains(Define.DATAPRIVILEGE_LOGINORG))
|
|
||||||
{
|
|
||||||
|
|
||||||
//即把{loginUser} =='xxxxxxx'换为 loginUser.User.Id =='xxxxxxx',从而把当前登录的用户名与当时设计规则时选定的用户id对比
|
|
||||||
rule.PrivilegeRules = rule.PrivilegeRules.Replace(Define.DATAPRIVILEGE_LOGINUSER, loginUser.User.Id);
|
|
||||||
|
|
||||||
var roles = loginUser.Roles.Select(u => u.Id).ToList();
|
|
||||||
roles.Sort(); //按字母排序,这样可以进行like操作
|
|
||||||
rule.PrivilegeRules = rule.PrivilegeRules.Replace(Define.DATAPRIVILEGE_LOGINROLE,
|
|
||||||
string.Join(',',roles));
|
|
||||||
|
|
||||||
var orgs = loginUser.Orgs.Select(u => u.Id).ToList();
|
|
||||||
orgs.Sort();
|
|
||||||
rule.PrivilegeRules = rule.PrivilegeRules.Replace(Define.DATAPRIVILEGE_LOGINORG,
|
|
||||||
string.Join(',',orgs));
|
|
||||||
}
|
|
||||||
return UnitWork.Find<T>(null).GenerateFilter(parametername,
|
|
||||||
JsonHelper.Instance.Deserialize<FilterGroup>(rule.PrivilegeRules));
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 按id批量删除
|
/// 按id批量删除
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="ids"></param>
|
/// <param name="ids"></param>
|
||||||
public virtual void Delete(long[] ids)
|
public void Delete(long[] ids)
|
||||||
{
|
{
|
||||||
Repository.Delete(u => ids.Contains(u.Id));
|
Repository.Delete(u => ids.Contains(u.Id));
|
||||||
}
|
}
|
||||||
@ -85,44 +50,5 @@ namespace OpenAuth.App
|
|||||||
{
|
{
|
||||||
return Repository.FirstOrDefault(u => u.Id == id);
|
return Repository.FirstOrDefault(u => u.Id == id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 计算实体更新的层级信息
|
|
||||||
/// </summary>
|
|
||||||
/// <typeparam name="U">U必须是一个继承TreeEntity的结构</typeparam>
|
|
||||||
/// <param name="entity"></param>
|
|
||||||
public void CaculateCascade<U>(U entity) where U : TreeEntity
|
|
||||||
{
|
|
||||||
if (entity.ParentId == "") entity.ParentId = null;
|
|
||||||
string cascadeId;
|
|
||||||
int currentCascadeId = 1; //当前结点的级联节点最后一位
|
|
||||||
var sameLevels = UnitWork.Find<U>(o => o.ParentId == entity.ParentId && o.Id != entity.Id);
|
|
||||||
foreach (var obj in sameLevels)
|
|
||||||
{
|
|
||||||
int objCascadeId = int.Parse(obj.CascadeId.TrimEnd('.').Split('.').Last());
|
|
||||||
if (currentCascadeId <= objCascadeId) currentCascadeId = objCascadeId + 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(entity.ParentId))
|
|
||||||
{
|
|
||||||
var parentOrg = UnitWork.FirstOrDefault<U>(o => o.Id == entity.ParentId);
|
|
||||||
if (parentOrg != null)
|
|
||||||
{
|
|
||||||
cascadeId = parentOrg.CascadeId + currentCascadeId + ".";
|
|
||||||
entity.ParentName = parentOrg.Name;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
throw new Exception("未能找到该组织的父节点信息");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
cascadeId = ".0." + currentCascadeId + ".";
|
|
||||||
entity.ParentName = "根节点";
|
|
||||||
}
|
|
||||||
|
|
||||||
entity.CascadeId = cascadeId;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
54
OpenAuth.App/Base/BaseStringApp.cs
Normal file
54
OpenAuth.App/Base/BaseStringApp.cs
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
using System;
|
||||||
|
using System.Linq;
|
||||||
|
using Infrastructure;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using OpenAuth.App.Interface;
|
||||||
|
using OpenAuth.Repository.Core;
|
||||||
|
using OpenAuth.Repository.Domain;
|
||||||
|
using OpenAuth.Repository.Interface;
|
||||||
|
|
||||||
|
namespace OpenAuth.App
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 业务层基类,UnitWork用于事务操作,Repository用于普通的数据库操作
|
||||||
|
/// <para>如用户管理:Class UserManagerApp:BaseApp<User></para>
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="T"></typeparam>
|
||||||
|
public class BaseStringApp<T, TDbContext> :BaseApp<T,TDbContext> where T : StringEntity where TDbContext: DbContext
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 用于普通的数据库操作
|
||||||
|
/// </summary>
|
||||||
|
protected IRepository<T, TDbContext> Repository;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 用于事务操作
|
||||||
|
/// <para>使用详见:http://doc.openauth.me/core/unitwork.html</para>
|
||||||
|
/// </summary>
|
||||||
|
protected IUnitWork<TDbContext> UnitWork;
|
||||||
|
|
||||||
|
protected IAuth _auth;
|
||||||
|
|
||||||
|
public BaseStringApp(IUnitWork<TDbContext> unitWork, IRepository<T,TDbContext> repository, IAuth auth) : base(unitWork, repository, auth)
|
||||||
|
{
|
||||||
|
UnitWork = unitWork;
|
||||||
|
Repository = repository;
|
||||||
|
_auth = auth;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 按id批量删除
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="ids"></param>
|
||||||
|
public virtual void Delete(string[] ids)
|
||||||
|
{
|
||||||
|
Repository.Delete(u => ids.Contains(u.Id));
|
||||||
|
}
|
||||||
|
|
||||||
|
public T Get(string id)
|
||||||
|
{
|
||||||
|
return Repository.FirstOrDefault(u => u.Id == id);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -10,7 +10,7 @@ namespace OpenAuth.App
|
|||||||
/// 树状结构处理
|
/// 树状结构处理
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <typeparam name="T"></typeparam>
|
/// <typeparam name="T"></typeparam>
|
||||||
public class BaseTreeApp<T,TDbContext> :BaseApp<T,TDbContext> where T : TreeEntity where TDbContext :DbContext
|
public class BaseTreeApp<T,TDbContext> :BaseStringApp<T,TDbContext> where T : TreeEntity where TDbContext :DbContext
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ using OpenAuth.Repository.Interface;
|
|||||||
|
|
||||||
namespace OpenAuth.App
|
namespace OpenAuth.App
|
||||||
{
|
{
|
||||||
public class BuilderTableApp : BaseApp<BuilderTable,OpenAuthDBContext>
|
public class BuilderTableApp : BaseStringApp<BuilderTable,OpenAuthDBContext>
|
||||||
{
|
{
|
||||||
private BuilderTableColumnApp _builderTableColumnApp;
|
private BuilderTableColumnApp _builderTableColumnApp;
|
||||||
private CategoryApp _categoryApp;
|
private CategoryApp _categoryApp;
|
||||||
|
@ -13,7 +13,7 @@ using OpenAuth.Repository.Interface;
|
|||||||
|
|
||||||
namespace OpenAuth.App
|
namespace OpenAuth.App
|
||||||
{
|
{
|
||||||
public class BuilderTableColumnApp : BaseApp<BuilderTableColumn,OpenAuthDBContext>
|
public class BuilderTableColumnApp : BaseStringApp<BuilderTableColumn,OpenAuthDBContext>
|
||||||
{
|
{
|
||||||
public BuilderTableColumnApp(IUnitWork<OpenAuthDBContext> unitWork, IRepository<BuilderTableColumn,OpenAuthDBContext> repository,
|
public BuilderTableColumnApp(IUnitWork<OpenAuthDBContext> unitWork, IRepository<BuilderTableColumn,OpenAuthDBContext> repository,
|
||||||
IAuth auth) : base(unitWork, repository,auth)
|
IAuth auth) : base(unitWork, repository,auth)
|
||||||
|
@ -13,7 +13,7 @@ using OpenAuth.Repository.Interface;
|
|||||||
|
|
||||||
namespace OpenAuth.App
|
namespace OpenAuth.App
|
||||||
{
|
{
|
||||||
public class CategoryApp : BaseApp<Category,OpenAuthDBContext>
|
public class CategoryApp : BaseStringApp<Category,OpenAuthDBContext>
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 加载列表
|
/// 加载列表
|
||||||
|
@ -13,7 +13,7 @@ using OpenAuth.Repository.Interface;
|
|||||||
|
|
||||||
namespace OpenAuth.App
|
namespace OpenAuth.App
|
||||||
{
|
{
|
||||||
public class CategoryTypeApp : BaseApp<CategoryType,OpenAuthDBContext>
|
public class CategoryTypeApp : BaseStringApp<CategoryType,OpenAuthDBContext>
|
||||||
{
|
{
|
||||||
private RevelanceManagerApp _revelanceApp;
|
private RevelanceManagerApp _revelanceApp;
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ using OpenAuth.Repository.Interface;
|
|||||||
|
|
||||||
namespace OpenAuth.App
|
namespace OpenAuth.App
|
||||||
{
|
{
|
||||||
public class DataPrivilegeRuleApp : BaseApp<DataPrivilegeRule,OpenAuthDBContext>
|
public class DataPrivilegeRuleApp : BaseStringApp<DataPrivilegeRule,OpenAuthDBContext>
|
||||||
{
|
{
|
||||||
private RevelanceManagerApp _revelanceApp;
|
private RevelanceManagerApp _revelanceApp;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -21,7 +21,7 @@ namespace OpenAuth.App
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 文件管理
|
/// 文件管理
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class FileApp : BaseApp<UploadFile,OpenAuthDBContext>
|
public class FileApp : BaseStringApp<UploadFile,OpenAuthDBContext>
|
||||||
{
|
{
|
||||||
private ILogger<FileApp> _logger;
|
private ILogger<FileApp> _logger;
|
||||||
private string _filePath;
|
private string _filePath;
|
||||||
|
@ -33,7 +33,7 @@ namespace OpenAuth.App
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 工作流实例表操作
|
/// 工作流实例表操作
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class FlowInstanceApp : BaseApp<FlowInstance,OpenAuthDBContext>
|
public class FlowInstanceApp : BaseStringApp<FlowInstance,OpenAuthDBContext>
|
||||||
{
|
{
|
||||||
private RevelanceManagerApp _revelanceApp;
|
private RevelanceManagerApp _revelanceApp;
|
||||||
private FlowSchemeApp _flowSchemeApp;
|
private FlowSchemeApp _flowSchemeApp;
|
||||||
|
@ -10,7 +10,7 @@ using OpenAuth.Repository.Interface;
|
|||||||
|
|
||||||
namespace OpenAuth.App
|
namespace OpenAuth.App
|
||||||
{
|
{
|
||||||
public class FlowSchemeApp :BaseApp<FlowScheme,OpenAuthDBContext>
|
public class FlowSchemeApp :BaseStringApp<FlowScheme,OpenAuthDBContext>
|
||||||
{
|
{
|
||||||
public void Add(FlowScheme flowScheme)
|
public void Add(FlowScheme flowScheme)
|
||||||
{
|
{
|
||||||
|
@ -13,7 +13,7 @@ using OpenAuth.Repository.Interface;
|
|||||||
|
|
||||||
namespace OpenAuth.App
|
namespace OpenAuth.App
|
||||||
{
|
{
|
||||||
public class FormApp : BaseApp<Form,OpenAuthDBContext>
|
public class FormApp : BaseStringApp<Form,OpenAuthDBContext>
|
||||||
{
|
{
|
||||||
private IAuth _auth;
|
private IAuth _auth;
|
||||||
private IOptions<AppSetting> _appConfiguration;
|
private IOptions<AppSetting> _appConfiguration;
|
||||||
|
@ -10,7 +10,7 @@ using OpenAuth.Repository.Interface;
|
|||||||
|
|
||||||
namespace OpenAuth.App
|
namespace OpenAuth.App
|
||||||
{
|
{
|
||||||
public class FrmLeaveReqApp : BaseApp<FrmLeaveReq,OpenAuthDBContext>, ICustomerForm
|
public class FrmLeaveReqApp : BaseStringApp<FrmLeaveReq,OpenAuthDBContext>, ICustomerForm
|
||||||
{
|
{
|
||||||
private RevelanceManagerApp _revelanceApp;
|
private RevelanceManagerApp _revelanceApp;
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ using Quartz;
|
|||||||
|
|
||||||
namespace OpenAuth.App
|
namespace OpenAuth.App
|
||||||
{
|
{
|
||||||
public class OpenJobApp : BaseApp<OpenJob, OpenAuthDBContext>
|
public class OpenJobApp : BaseStringApp<OpenJob, OpenAuthDBContext>
|
||||||
{
|
{
|
||||||
private SysLogApp _sysLogApp;
|
private SysLogApp _sysLogApp;
|
||||||
private IScheduler _scheduler;
|
private IScheduler _scheduler;
|
||||||
|
@ -15,7 +15,7 @@ namespace OpenAuth.App
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 分类管理
|
/// 分类管理
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class ResourceApp:BaseApp<Resource,OpenAuthDBContext>
|
public class ResourceApp:BaseStringApp<Resource,OpenAuthDBContext>
|
||||||
{
|
{
|
||||||
private RevelanceManagerApp _revelanceApp;
|
private RevelanceManagerApp _revelanceApp;
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ using OpenAuth.Repository.Interface;
|
|||||||
|
|
||||||
namespace OpenAuth.App
|
namespace OpenAuth.App
|
||||||
{
|
{
|
||||||
public class RevelanceManagerApp : BaseApp<Relevance,OpenAuthDBContext>
|
public class RevelanceManagerApp : BaseStringApp<Relevance,OpenAuthDBContext>
|
||||||
{
|
{
|
||||||
private readonly ILogger<RevelanceManagerApp> _logger;
|
private readonly ILogger<RevelanceManagerApp> _logger;
|
||||||
public RevelanceManagerApp(IUnitWork<OpenAuthDBContext> unitWork, IRepository<Relevance,OpenAuthDBContext> repository, IAuth auth, ILogger<RevelanceManagerApp> logger) : base(unitWork,
|
public RevelanceManagerApp(IUnitWork<OpenAuthDBContext> unitWork, IRepository<Relevance,OpenAuthDBContext> repository, IAuth auth, ILogger<RevelanceManagerApp> logger) : base(unitWork,
|
||||||
|
@ -11,7 +11,7 @@ using OpenAuth.Repository;
|
|||||||
|
|
||||||
namespace OpenAuth.App
|
namespace OpenAuth.App
|
||||||
{
|
{
|
||||||
public class RoleApp : BaseApp<Role,OpenAuthDBContext>
|
public class RoleApp : BaseStringApp<Role,OpenAuthDBContext>
|
||||||
{
|
{
|
||||||
private RevelanceManagerApp _revelanceApp;
|
private RevelanceManagerApp _revelanceApp;
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ using OpenAuth.Repository.Interface;
|
|||||||
|
|
||||||
namespace OpenAuth.App
|
namespace OpenAuth.App
|
||||||
{
|
{
|
||||||
public class SysLogApp : BaseApp<SysLog,OpenAuthDBContext>
|
public class SysLogApp : BaseStringApp<SysLog,OpenAuthDBContext>
|
||||||
{
|
{
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -11,7 +11,7 @@ using OpenAuth.Repository.Interface;
|
|||||||
|
|
||||||
namespace OpenAuth.App
|
namespace OpenAuth.App
|
||||||
{
|
{
|
||||||
public class SysMessageApp : BaseApp<SysMessage,OpenAuthDBContext>
|
public class SysMessageApp : BaseStringApp<SysMessage,OpenAuthDBContext>
|
||||||
{
|
{
|
||||||
private RevelanceManagerApp _revelanceApp;
|
private RevelanceManagerApp _revelanceApp;
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ using OpenAuth.Repository.Interface;
|
|||||||
|
|
||||||
namespace OpenAuth.App
|
namespace OpenAuth.App
|
||||||
{
|
{
|
||||||
public class UserManagerApp : BaseApp<User,OpenAuthDBContext>
|
public class UserManagerApp : BaseStringApp<User,OpenAuthDBContext>
|
||||||
{
|
{
|
||||||
private RevelanceManagerApp _revelanceApp;
|
private RevelanceManagerApp _revelanceApp;
|
||||||
private OrgManagerApp _orgManagerApp;
|
private OrgManagerApp _orgManagerApp;
|
||||||
|
@ -12,7 +12,7 @@ using OpenAuth.Repository.Interface;
|
|||||||
|
|
||||||
namespace OpenAuth.App
|
namespace OpenAuth.App
|
||||||
{
|
{
|
||||||
public class WmsInboundOrderDtblApp : BaseApp<WmsInboundOrderDtbl,OpenAuthDBContext>
|
public class WmsInboundOrderDtblApp : BaseStringApp<WmsInboundOrderDtbl,OpenAuthDBContext>
|
||||||
{
|
{
|
||||||
private RevelanceManagerApp _revelanceApp;
|
private RevelanceManagerApp _revelanceApp;
|
||||||
private DbExtension _dbExtension;
|
private DbExtension _dbExtension;
|
||||||
|
@ -12,7 +12,7 @@ using OpenAuth.Repository.Interface;
|
|||||||
|
|
||||||
namespace OpenAuth.App
|
namespace OpenAuth.App
|
||||||
{
|
{
|
||||||
public class WmsInboundOrderTblApp : BaseApp<WmsInboundOrderTbl,OpenAuthDBContext>
|
public class WmsInboundOrderTblApp : BaseStringApp<WmsInboundOrderTbl,OpenAuthDBContext>
|
||||||
{
|
{
|
||||||
private RevelanceManagerApp _revelanceApp;
|
private RevelanceManagerApp _revelanceApp;
|
||||||
private WmsInboundOrderDtblApp _wmsInboundOrderDtblApp;
|
private WmsInboundOrderDtblApp _wmsInboundOrderDtblApp;
|
||||||
|
26
OpenAuth.Repository/Core/IntAutoGenEntity.cs
Normal file
26
OpenAuth.Repository/Core/IntAutoGenEntity.cs
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
using System.ComponentModel;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
namespace OpenAuth.Repository.Core
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 数据库Id为numberic且为数据库自动生成的数据实体使用该基类,用法同Entity
|
||||||
|
/// <para>该场景通常为SqlServer的自动增长类型和Oracle自带的Sequence</para>
|
||||||
|
/// </summary>
|
||||||
|
public class IntAutoGenEntity :BaseEntity
|
||||||
|
{
|
||||||
|
[Browsable(false)]
|
||||||
|
[Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||||
|
public int Id { get; set; }
|
||||||
|
public override bool KeyIsNull()
|
||||||
|
{
|
||||||
|
return Id == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void GenerateDefaultKeyVal()
|
||||||
|
{
|
||||||
|
//主键自动增长类型,可以不用该方法生成主键,设置该方法为空方法即可
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user