mirror of
https://gitee.com/dotnetchina/OpenAuth.Net.git
synced 2026-06-27 06:43:08 +08:00
同步OpenAuth.Core最新代码
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using OpenAuth.App.Interface;
|
||||
using OpenAuth.App.Request;
|
||||
using OpenAuth.Repository.Domain;
|
||||
@@ -28,7 +29,7 @@ namespace OpenAuth.App
|
||||
}
|
||||
|
||||
|
||||
public List<Application> GetList(QueryAppListReq request)
|
||||
public async Task<List<Application>> GetList(QueryAppListReq request)
|
||||
{
|
||||
var applications = UnitWork.Find<Application>(null) ;
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@ namespace OpenAuth.App
|
||||
else
|
||||
{
|
||||
service = _normalAuthStrategy;
|
||||
service.User = _unitWork.FindSingle<User>(u => u.Account == username);
|
||||
service.User = _unitWork.FirstOrDefault<User>(u => u.Account == username);
|
||||
}
|
||||
|
||||
return new AuthStrategyContext(service);
|
||||
|
||||
@@ -18,13 +18,12 @@ namespace OpenAuth.App
|
||||
/// <summary>
|
||||
/// 用于普通的数据库操作
|
||||
/// </summary>
|
||||
/// <value>The repository.</value>
|
||||
protected IRepository<T> Repository;
|
||||
|
||||
/// <summary>
|
||||
/// 用于事务操作
|
||||
/// <para>使用详见:http://doc.openauth.me/core/unitwork.html</para>
|
||||
/// </summary>
|
||||
/// <value>The unit work.</value>
|
||||
protected IUnitWork UnitWork;
|
||||
|
||||
protected IAuth _auth;
|
||||
@@ -47,7 +46,7 @@ namespace OpenAuth.App
|
||||
if (loginUser.User.Account == Define.SYSTEM_USERNAME) return UnitWork.Find<T>(null); //超级管理员特权
|
||||
|
||||
var moduleName = typeof(T).Name;
|
||||
var rule = UnitWork.FindSingle<DataPrivilegeRule>(u => u.SourceCode == moduleName);
|
||||
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)||
|
||||
@@ -82,7 +81,7 @@ namespace OpenAuth.App
|
||||
|
||||
public T Get(string id)
|
||||
{
|
||||
return Repository.FindSingle(u => u.Id == id);
|
||||
return Repository.FirstOrDefault(u => u.Id == id);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -104,7 +103,7 @@ namespace OpenAuth.App
|
||||
|
||||
if (!string.IsNullOrEmpty(entity.ParentId))
|
||||
{
|
||||
var parentOrg = UnitWork.FindSingle<U>(o => o.Id == entity.ParentId);
|
||||
var parentOrg = UnitWork.FirstOrDefault<U>(o => o.Id == entity.ParentId);
|
||||
if (parentOrg != null)
|
||||
{
|
||||
cascadeId = parentOrg.CascadeId + currentCascadeId + ".";
|
||||
|
||||
@@ -29,7 +29,7 @@ namespace OpenAuth.App
|
||||
CaculateCascade(obj);
|
||||
|
||||
//获取旧的的CascadeId
|
||||
var cascadeId = Repository.FindSingle(o => o.Id == obj.Id).CascadeId;
|
||||
var cascadeId = Repository.FirstOrDefault(o => o.Id == obj.Id).CascadeId;
|
||||
//根据CascadeId查询子部门
|
||||
var objs = Repository.Find(u => u.CascadeId.Contains(cascadeId) && u.Id != obj.Id)
|
||||
.OrderBy(u => u.CascadeId).ToList();
|
||||
|
||||
@@ -6,6 +6,7 @@ using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Runtime.Loader;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Infrastructure;
|
||||
using Infrastructure.Extensions;
|
||||
using Infrastructure.Helpers;
|
||||
@@ -76,7 +77,7 @@ namespace OpenAuth.App
|
||||
/// <summary>
|
||||
/// 加载列表
|
||||
/// </summary>
|
||||
public TableResp<BuilderTable> Load(QueryBuilderTableListReq request)
|
||||
public async Task<TableResp<BuilderTable>> Load(QueryBuilderTableListReq request)
|
||||
{
|
||||
var loginContext = _auth.GetCurrentUser();
|
||||
if (loginContext == null)
|
||||
@@ -192,9 +193,12 @@ namespace OpenAuth.App
|
||||
/// <param name="ids"></param>
|
||||
public void DelTableAndcolumns(string[] ids)
|
||||
{
|
||||
UnitWork.Delete<BuilderTable>(u => ids.Contains(u.Id));
|
||||
UnitWork.Delete<BuilderTableColumn>(u => ids.Contains(u.TableId));
|
||||
UnitWork.Save();
|
||||
UnitWork.ExecuteWithTransaction(() =>
|
||||
{
|
||||
UnitWork.Delete<BuilderTable>(u => ids.Contains(u.Id));
|
||||
UnitWork.Delete<BuilderTableColumn>(u => ids.Contains(u.TableId));
|
||||
UnitWork.Save();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -204,7 +208,7 @@ namespace OpenAuth.App
|
||||
/// <returns></returns>
|
||||
public void CreateEntity(CreateEntityReq req)
|
||||
{
|
||||
var sysTableInfo = Repository.FindSingle(u => u.Id == req.Id);
|
||||
var sysTableInfo = Repository.FirstOrDefault(u => u.Id == req.Id);
|
||||
var tableColumns = _builderTableColumnApp.Find(req.Id);
|
||||
if (sysTableInfo == null
|
||||
|| tableColumns == null
|
||||
@@ -223,7 +227,7 @@ namespace OpenAuth.App
|
||||
/// <returns></returns>
|
||||
public void CreateBusiness(CreateBusiReq req)
|
||||
{
|
||||
var sysTableInfo = Repository.FindSingle(u => u.Id == req.Id);
|
||||
var sysTableInfo = Repository.FirstOrDefault(u => u.Id == req.Id);
|
||||
var tableColumns = _builderTableColumnApp.Find(req.Id);
|
||||
if (sysTableInfo == null
|
||||
|| tableColumns == null
|
||||
@@ -512,7 +516,7 @@ namespace OpenAuth.App
|
||||
{
|
||||
throw new Exception("请提供vue项目的根目录,如:C:\\OpenAuth.Pro\\Client");
|
||||
}
|
||||
var sysTableInfo = Repository.FindSingle(u => u.Id == req.Id);
|
||||
var sysTableInfo = Repository.FirstOrDefault(u => u.Id == req.Id);
|
||||
var tableColumns = _builderTableColumnApp.Find(req.Id);
|
||||
if (sysTableInfo == null
|
||||
|| tableColumns == null
|
||||
@@ -617,7 +621,7 @@ namespace OpenAuth.App
|
||||
.Replace("{Temp}", tempBuilder.ToString())
|
||||
.Replace("{DialogFormItem}", dialogStrBuilder.ToString());
|
||||
|
||||
FileHelper.WriteFile(Path.Combine(req.VueProjRootPath, $"src/views/{sysTableInfo.ClassName.ToCamelCase()}s/"),
|
||||
FileHelper.WriteFile(Path.Combine(req.VueProjRootPath, $"src/views/{sysTableInfo.ClassName.ToLower()}s/"),
|
||||
$"index.vue",
|
||||
domainContent);
|
||||
}
|
||||
@@ -633,7 +637,7 @@ namespace OpenAuth.App
|
||||
{
|
||||
throw new Exception("请提供vue项目的根目录,如:C:\\OpenAuth.Pro\\Client");
|
||||
}
|
||||
var sysTableInfo = Repository.FindSingle(u => u.Id == req.Id);
|
||||
var sysTableInfo = Repository.FirstOrDefault(u => u.Id == req.Id);
|
||||
var tableColumns = _builderTableColumnApp.Find(req.Id);
|
||||
if (sysTableInfo == null
|
||||
|| tableColumns == null
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Infrastructure;
|
||||
using OpenAuth.App.Interface;
|
||||
using OpenAuth.App.Request;
|
||||
@@ -21,7 +22,7 @@ namespace OpenAuth.App
|
||||
/// <summary>
|
||||
/// 加载列表
|
||||
/// </summary>
|
||||
public TableResp<BuilderTableColumn> Load(QueryBuilderTableColumnListReq request)
|
||||
public async Task<TableResp<BuilderTableColumn>> Load(QueryBuilderTableColumnListReq request)
|
||||
{
|
||||
if (string.IsNullOrEmpty(request.BuilderTableId))
|
||||
{
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Infrastructure;
|
||||
using OpenAuth.App.Interface;
|
||||
using OpenAuth.App.Request;
|
||||
@@ -16,7 +17,7 @@ namespace OpenAuth.App
|
||||
/// <summary>
|
||||
/// 加载列表
|
||||
/// </summary>
|
||||
public TableData Load(QueryCategoryListReq request)
|
||||
public async Task<TableData> Load(QueryCategoryListReq request)
|
||||
{
|
||||
var loginContext = _auth.GetCurrentUser();
|
||||
if (loginContext == null)
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Infrastructure;
|
||||
using OpenAuth.App.Interface;
|
||||
using OpenAuth.App.Request;
|
||||
@@ -18,7 +19,7 @@ namespace OpenAuth.App
|
||||
/// <summary>
|
||||
/// 加载列表
|
||||
/// </summary>
|
||||
public TableData Load(QueryCategoryTypeListReq request)
|
||||
public async Task<TableData> Load(QueryCategoryTypeListReq request)
|
||||
{
|
||||
var result = new TableData();
|
||||
var objs = UnitWork.Find<CategoryType>(null);
|
||||
@@ -56,9 +57,13 @@ namespace OpenAuth.App
|
||||
|
||||
public new void Delete(string[] ids)
|
||||
{
|
||||
UnitWork.Delete<CategoryType>(u=>ids.Contains(u.Id));
|
||||
UnitWork.Delete<Category>(u=>ids.Contains(u.TypeId));
|
||||
UnitWork.Save();
|
||||
UnitWork.ExecuteWithTransaction(() =>
|
||||
{
|
||||
UnitWork.Delete<CategoryType>(u=>ids.Contains(u.Id));
|
||||
UnitWork.Delete<Category>(u=>ids.Contains(u.TypeId));
|
||||
UnitWork.Save();
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
public List<CategoryType> AllTypes()
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Infrastructure;
|
||||
using OpenAuth.App.Interface;
|
||||
using OpenAuth.App.Request;
|
||||
@@ -16,7 +17,7 @@ namespace OpenAuth.App
|
||||
/// <summary>
|
||||
/// 加载列表
|
||||
/// </summary>
|
||||
public TableData Load(QueryDataPrivilegeRuleListReq request)
|
||||
public async Task<TableData> Load(QueryDataPrivilegeRuleListReq request)
|
||||
{
|
||||
var loginContext = _auth.GetCurrentUser();
|
||||
if (loginContext == null)
|
||||
@@ -51,7 +52,7 @@ namespace OpenAuth.App
|
||||
|
||||
public void Add(AddOrUpdateDataPriviReq req)
|
||||
{
|
||||
if (Repository.IsExist(u => u.SourceCode == req.SourceCode))
|
||||
if (Repository.Any(u => u.SourceCode == req.SourceCode))
|
||||
{
|
||||
throw new Exception($"已经存在{req.SourceCode}的数据规则,如果想调整规制请直接修改");
|
||||
}
|
||||
@@ -85,7 +86,7 @@ namespace OpenAuth.App
|
||||
|
||||
public DataPrivilegeRule GetByModuleName(string moduleName)
|
||||
{
|
||||
return Repository.FindSingle(u=>u.SourceCode == moduleName);
|
||||
return Repository.FirstOrDefault(u=>u.SourceCode == moduleName);
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
|
||||
@@ -134,7 +134,7 @@ namespace OpenAuth.App
|
||||
END AS EntityType,
|
||||
case WHEN CHARACTER_MAXIMUM_LENGTH>8000 THEN 0 ELSE CHARACTER_MAXIMUM_LENGTH end AS Maxlength,
|
||||
CASE
|
||||
WHEN COLUMN_KEY <> '' THEN
|
||||
WHEN COLUMN_KEY = 'PRI' THEN
|
||||
1 ELSE 0
|
||||
END AS IsKey,
|
||||
CASE
|
||||
|
||||
@@ -24,6 +24,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Linq.Expressions;
|
||||
using System.Net.Http;
|
||||
using System.Threading.Tasks;
|
||||
using Infrastructure.Helpers;
|
||||
|
||||
namespace OpenAuth.App
|
||||
@@ -472,7 +473,7 @@ namespace OpenAuth.App
|
||||
Repository.Update(flowScheme);
|
||||
}
|
||||
|
||||
public TableData Load(QueryFlowInstanceListReq request)
|
||||
public async Task<TableData> Load(QueryFlowInstanceListReq request)
|
||||
{
|
||||
var result = new TableData();
|
||||
var user = _auth.GetCurrentUser();
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using OpenAuth.App.Interface;
|
||||
using OpenAuth.App.Request;
|
||||
using OpenAuth.App.Response;
|
||||
@@ -12,7 +13,7 @@ namespace OpenAuth.App
|
||||
{
|
||||
public void Add(FlowScheme flowScheme)
|
||||
{
|
||||
if (Repository.IsExist(u => u.SchemeName == flowScheme.SchemeName))
|
||||
if (Repository.Any(u => u.SchemeName == flowScheme.SchemeName))
|
||||
{
|
||||
throw new Exception("流程名称已经存在");
|
||||
}
|
||||
@@ -25,12 +26,12 @@ namespace OpenAuth.App
|
||||
|
||||
public FlowScheme FindByCode(string code)
|
||||
{
|
||||
return Repository.FindSingle(u => u.SchemeCode == code);
|
||||
return Repository.FirstOrDefault(u => u.SchemeCode == code);
|
||||
}
|
||||
|
||||
public void Update(FlowScheme flowScheme)
|
||||
{
|
||||
if (Repository.IsExist(u => u.SchemeName == flowScheme.SchemeName && u.Id != flowScheme.Id))
|
||||
if (Repository.Any(u => u.SchemeName == flowScheme.SchemeName && u.Id != flowScheme.Id))
|
||||
{
|
||||
throw new Exception("流程名称已经存在");
|
||||
}
|
||||
@@ -48,7 +49,7 @@ namespace OpenAuth.App
|
||||
});
|
||||
}
|
||||
|
||||
public TableData Load(QueryFlowSchemeListReq request)
|
||||
public async Task<TableData> Load(QueryFlowSchemeListReq request)
|
||||
{
|
||||
var result = new TableData();
|
||||
var objs = GetDataPrivilege("u");
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Infrastructure;
|
||||
using Microsoft.Extensions.Options;
|
||||
using OpenAuth.App.Interface;
|
||||
@@ -18,7 +19,7 @@ namespace OpenAuth.App
|
||||
/// <summary>
|
||||
/// 加载列表
|
||||
/// </summary>
|
||||
public TableData Load(QueryFormListReq request)
|
||||
public async Task<TableData> Load(QueryFormListReq request)
|
||||
{
|
||||
var result = new TableData();
|
||||
var forms = GetDataPrivilege("u");
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Infrastructure;
|
||||
using System.Threading.Tasks;
|
||||
using Infrastructure;
|
||||
using OpenAuth.App.Interface;
|
||||
using OpenAuth.App.Request;
|
||||
using OpenAuth.App.Response;
|
||||
@@ -15,11 +16,11 @@ namespace OpenAuth.App
|
||||
/// <summary>
|
||||
/// 加载列表
|
||||
/// </summary>
|
||||
public TableData Load(QueryFrmLeaveReqListReq request)
|
||||
public async Task<TableData> Load(QueryFrmLeaveReqListReq request)
|
||||
{
|
||||
return new TableData
|
||||
{
|
||||
count = Repository.GetCount(null),
|
||||
count = Repository.Count(null),
|
||||
data = Repository.Find(request.page, request.limit, "Id desc")
|
||||
};
|
||||
}
|
||||
|
||||
@@ -8,9 +8,10 @@ using OpenAuth.Repository.Interface;
|
||||
|
||||
namespace OpenAuth.App
|
||||
{
|
||||
public class ModuleManagerApp :BaseTreeApp<Module>
|
||||
public class ModuleManagerApp : BaseTreeApp<Module>
|
||||
{
|
||||
private RevelanceManagerApp _revelanceApp;
|
||||
|
||||
public void Add(Module model)
|
||||
{
|
||||
var loginContext = _auth.GetCurrentUser();
|
||||
@@ -18,20 +19,22 @@ namespace OpenAuth.App
|
||||
{
|
||||
throw new CommonException("登录已过期", Define.INVALID_TOKEN);
|
||||
}
|
||||
|
||||
CaculateCascade(model);
|
||||
|
||||
|
||||
Repository.Add(model);
|
||||
|
||||
AddDefaultMenus(model);
|
||||
//当前登录用户的所有角色自动分配模块
|
||||
loginContext.Roles.ForEach(u =>
|
||||
{
|
||||
{
|
||||
_revelanceApp.Assign(new AssignReq
|
||||
{
|
||||
type=Define.ROLEMODULE,
|
||||
type = Define.ROLEMODULE,
|
||||
firstId = u.Id,
|
||||
secIds = new[]{model.Id}
|
||||
secIds = new[] {model.Id}
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
public void Update(Module obj)
|
||||
@@ -40,10 +43,8 @@ namespace OpenAuth.App
|
||||
}
|
||||
|
||||
|
||||
|
||||
#region 用户/角色分配模块
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 加载特定角色的模块
|
||||
/// </summary>
|
||||
@@ -67,7 +68,7 @@ namespace OpenAuth.App
|
||||
var query = UnitWork.Find<ModuleElement>(u => elementIds.Contains(u.Id));
|
||||
if (!string.IsNullOrEmpty(moduleId))
|
||||
{
|
||||
query = query.Where(u => u.ModuleId == moduleId);
|
||||
query = query.Where(u => u.ModuleId == moduleId);
|
||||
}
|
||||
|
||||
return query;
|
||||
@@ -77,6 +78,7 @@ namespace OpenAuth.App
|
||||
|
||||
|
||||
#region 菜单操作
|
||||
|
||||
/// <summary>
|
||||
/// 删除指定的菜单
|
||||
/// </summary>
|
||||
@@ -87,6 +89,7 @@ namespace OpenAuth.App
|
||||
UnitWork.Save();
|
||||
}
|
||||
|
||||
|
||||
public void AddMenu(ModuleElement model)
|
||||
{
|
||||
var loginContext = _auth.GetCurrentUser();
|
||||
@@ -94,21 +97,24 @@ namespace OpenAuth.App
|
||||
{
|
||||
throw new CommonException("登录已过期", Define.INVALID_TOKEN);
|
||||
}
|
||||
UnitWork.Add(model);
|
||||
|
||||
//当前登录用户的所有角色自动分配菜单
|
||||
loginContext.Roles.ForEach(u =>
|
||||
{
|
||||
_revelanceApp.Assign(new AssignReq
|
||||
|
||||
UnitWork.ExecuteWithTransaction(() =>
|
||||
{
|
||||
UnitWork.Add(model);
|
||||
|
||||
//当前登录用户的所有角色自动分配菜单
|
||||
loginContext.Roles.ForEach(u =>
|
||||
{
|
||||
type=Define.ROLEELEMENT,
|
||||
firstId = u.Id,
|
||||
secIds = new[]{model.Id}
|
||||
_revelanceApp.Assign(new AssignReq
|
||||
{
|
||||
type = Define.ROLEELEMENT,
|
||||
firstId = u.Id,
|
||||
secIds = new[] {model.Id}
|
||||
});
|
||||
});
|
||||
UnitWork.Save();
|
||||
});
|
||||
UnitWork.Save();
|
||||
}
|
||||
#endregion
|
||||
|
||||
public void UpdateMenu(ModuleElement model)
|
||||
{
|
||||
@@ -116,8 +122,51 @@ namespace OpenAuth.App
|
||||
UnitWork.Save();
|
||||
}
|
||||
|
||||
//添加默认按钮
|
||||
private void AddDefaultMenus(Module module)
|
||||
{
|
||||
AddMenu(new ModuleElement
|
||||
{
|
||||
ModuleId = module.Id,
|
||||
DomId = "btnAdd",
|
||||
Script = "add()",
|
||||
Name = "添加",
|
||||
Sort = 1,
|
||||
Icon = "xinzeng",
|
||||
Class = "success",
|
||||
Remark = "新增" + module.Name
|
||||
});
|
||||
AddMenu(new ModuleElement
|
||||
{
|
||||
ModuleId = module.Id,
|
||||
DomId = "btnEdit",
|
||||
Script = "edit()",
|
||||
Name = "编辑",
|
||||
Sort = 2,
|
||||
Icon = "bianji-copy",
|
||||
Class = "primary",
|
||||
Remark = "修改" + module.Name
|
||||
});
|
||||
AddMenu(new ModuleElement
|
||||
{
|
||||
ModuleId = module.Id,
|
||||
DomId = "btnDel",
|
||||
Script = "del()",
|
||||
Name = "删除",
|
||||
Sort = 3,
|
||||
Icon = "shanchu",
|
||||
Class = "danger",
|
||||
Remark = "删除" + module.Name
|
||||
});
|
||||
|
||||
//todo:可以自己添加更多默认按钮
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
public ModuleManagerApp(IUnitWork unitWork, IRepository<Module> repository
|
||||
,RevelanceManagerApp app,IAuth auth) : base(unitWork, repository, auth)
|
||||
, RevelanceManagerApp app, IAuth auth) : base(unitWork, repository, auth)
|
||||
{
|
||||
_revelanceApp = app;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Infrastructure;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using OpenAuth.App.Interface;
|
||||
@@ -23,7 +24,7 @@ namespace OpenAuth.App
|
||||
/// <summary>
|
||||
/// 加载列表
|
||||
/// </summary>
|
||||
public TableData Load(QueryOpenJobListReq request)
|
||||
public async Task<TableData> Load(QueryOpenJobListReq request)
|
||||
{
|
||||
var result = new TableData();
|
||||
var objs = Repository.Find(null);
|
||||
@@ -86,7 +87,7 @@ namespace OpenAuth.App
|
||||
|
||||
public void ChangeJobStatus(ChangeJobStatusReq req)
|
||||
{
|
||||
var job = Repository.FindSingle(u => u.Id == req.Id);
|
||||
var job = Repository.FirstOrDefault(u => u.Id == req.Id);
|
||||
if (job == null)
|
||||
{
|
||||
throw new Exception("任务不存在");
|
||||
@@ -140,7 +141,7 @@ namespace OpenAuth.App
|
||||
/// <param name="jobId"></param>
|
||||
public void RecordRun(string jobId)
|
||||
{
|
||||
var job = Repository.FindSingle(u =>u.Id == jobId);
|
||||
var job = Repository.FirstOrDefault(u =>u.Id == jobId);
|
||||
if (job == null)
|
||||
{
|
||||
_sysLogApp.Add(new SysLog
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Infrastructure;
|
||||
using OpenAuth.App.Interface;
|
||||
using OpenAuth.App.Request;
|
||||
@@ -47,7 +48,7 @@ namespace OpenAuth.App
|
||||
return UnitWork.Find<Resource>(u => elementIds.Contains(u.Id) && (appId == null || appId =="" || u.AppId == appId));
|
||||
}
|
||||
|
||||
public TableData Load(QueryResourcesReq request)
|
||||
public async Task<TableData> Load(QueryResourcesReq request)
|
||||
{
|
||||
var loginContext = _auth.GetCurrentUser();
|
||||
if (loginContext == null)
|
||||
|
||||
@@ -51,7 +51,7 @@ namespace OpenAuth.App.SSO
|
||||
}
|
||||
else
|
||||
{
|
||||
userInfo = _app.FindSingle(u =>u.Account == model.Account);
|
||||
userInfo = _app.FirstOrDefault(u =>u.Account == model.Account);
|
||||
}
|
||||
|
||||
if (userInfo == null)
|
||||
@@ -63,6 +63,11 @@ namespace OpenAuth.App.SSO
|
||||
throw new Exception("密码错误");
|
||||
}
|
||||
|
||||
if (userInfo.Status != 0)
|
||||
{
|
||||
throw new Exception("账号状态异常,可能已停用");
|
||||
}
|
||||
|
||||
var currentSession = new UserAuthSession
|
||||
{
|
||||
Account = model.Account,
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Threading.Tasks;
|
||||
using OpenAuth.App.Request;
|
||||
using OpenAuth.App.Response;
|
||||
using OpenAuth.Repository.Domain;
|
||||
@@ -14,7 +15,7 @@ namespace OpenAuth.App
|
||||
/// <summary>
|
||||
/// 加载列表
|
||||
/// </summary>
|
||||
public TableData Load(QuerySysLogListReq request)
|
||||
public async Task<TableData> Load(QuerySysLogListReq request)
|
||||
{
|
||||
var result = new TableData();
|
||||
var objs = UnitWork.Find<SysLog>(null);
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Infrastructure;
|
||||
using OpenAuth.App.Interface;
|
||||
using OpenAuth.App.Request;
|
||||
@@ -16,7 +17,7 @@ namespace OpenAuth.App
|
||||
/// <summary>
|
||||
/// 加载列表
|
||||
/// </summary>
|
||||
public TableData Load(QuerySysMessageListReq request)
|
||||
public async Task<TableData> Load(QuerySysMessageListReq request)
|
||||
{
|
||||
var loginContext = _auth.GetCurrentUser();
|
||||
if (loginContext == null)
|
||||
|
||||
68
OpenAuth.App/Test/TestAsync.cs
Normal file
68
OpenAuth.App/Test/TestAsync.cs
Normal file
@@ -0,0 +1,68 @@
|
||||
using System;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Infrastructure.Cache;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Moq;
|
||||
using NUnit.Framework;
|
||||
using OpenAuth.App.Request;
|
||||
using OpenAuth.App.SSO;
|
||||
using OpenAuth.Repository.Domain;
|
||||
using OpenAuth.Repository.Interface;
|
||||
|
||||
namespace OpenAuth.App.Test
|
||||
{
|
||||
public class TestDynamic : TestBase
|
||||
{
|
||||
public override ServiceCollection GetService()
|
||||
{
|
||||
var services = new ServiceCollection();
|
||||
|
||||
var cachemock = new Mock<ICacheContext>();
|
||||
cachemock.Setup(x => x.Get<UserAuthSession>("tokentest"))
|
||||
.Returns(new UserAuthSession { Account = "System" });
|
||||
services.AddScoped(x => cachemock.Object);
|
||||
|
||||
var httpContextAccessorMock = new Mock<IHttpContextAccessor>();
|
||||
httpContextAccessorMock.Setup(x => x.HttpContext.Request.Query[Define.TOKEN_NAME])
|
||||
.Returns("tokentest");
|
||||
|
||||
services.AddScoped(x => httpContextAccessorMock.Object);
|
||||
|
||||
return services;
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Async()
|
||||
{
|
||||
Console.WriteLine($"开始异步测试");
|
||||
|
||||
AddOrUpdate();
|
||||
|
||||
Console.WriteLine("异步测试结束");
|
||||
|
||||
//延长主线程,防止程序退出
|
||||
Thread.Sleep(3000);
|
||||
}
|
||||
|
||||
private async Task AddOrUpdate()
|
||||
{
|
||||
var repository = _autofacServiceProvider.GetService<IRepository<User>>();
|
||||
|
||||
var account = "user_" + DateTime.Now.ToString("yyyy_MM_dd HH:mm:ss");
|
||||
|
||||
var user = new User
|
||||
{
|
||||
Account = account,
|
||||
Name = account
|
||||
};
|
||||
await repository.AddAsync(user);
|
||||
|
||||
user.Account = "new_" + user.Account;
|
||||
|
||||
await repository.UpdateAsync(user);
|
||||
Console.WriteLine($"更新完成");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Castle.Core.Internal;
|
||||
using OpenAuth.App.Interface;
|
||||
using OpenAuth.App.Request;
|
||||
@@ -25,14 +26,14 @@ namespace OpenAuth.App
|
||||
|
||||
public User GetByAccount(string account)
|
||||
{
|
||||
return Repository.FindSingle(u => u.Account == account);
|
||||
return Repository.FirstOrDefault(u => u.Account == account);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 加载当前登录用户可访问的一个部门及子部门全部用户
|
||||
/// 如果请求的request.OrgId为空,则可以获取到已被删除机构的用户(即:没有分配任何机构的用户)
|
||||
/// </summary>
|
||||
public TableData Load(QueryUserListReq request)
|
||||
public async Task<TableData> Load(QueryUserListReq request)
|
||||
{
|
||||
var loginUser = _auth.GetCurrentUser();
|
||||
|
||||
@@ -120,7 +121,7 @@ namespace OpenAuth.App
|
||||
requser.CreateId = _auth.GetCurrentUser().User.Id;
|
||||
if (string.IsNullOrEmpty(request.Id))
|
||||
{
|
||||
if (UnitWork.IsExist<User>(u => u.Account == request.Account))
|
||||
if (UnitWork.Any<User>(u => u.Account == request.Account))
|
||||
{
|
||||
throw new Exception("用户账号已存在");
|
||||
}
|
||||
@@ -191,7 +192,7 @@ namespace OpenAuth.App
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
public TableData LoadByRole(QueryUserListByRoleReq request)
|
||||
public async Task<TableData> LoadByRole(QueryUserListByRoleReq request)
|
||||
{
|
||||
var users = from userRole in UnitWork.Find<Relevance>(u =>
|
||||
u.SecondId == request.roleId && u.Key == Define.USERROLE)
|
||||
@@ -211,7 +212,7 @@ namespace OpenAuth.App
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
public TableData LoadByOrg(QueryUserListByOrgReq request)
|
||||
public async Task<TableData> LoadByOrg(QueryUserListByOrgReq request)
|
||||
{
|
||||
var users = from userRole in UnitWork.Find<Relevance>(u =>
|
||||
u.SecondId == request.orgId && u.Key == Define.USERORG)
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Infrastructure;
|
||||
using OpenAuth.App.Interface;
|
||||
using OpenAuth.App.Request;
|
||||
@@ -18,7 +19,7 @@ namespace OpenAuth.App
|
||||
/// <summary>
|
||||
/// 加载列表
|
||||
/// </summary>
|
||||
public TableData Load(QueryWmsInboundOrderDtblListReq request)
|
||||
public async Task<TableData> Load(QueryWmsInboundOrderDtblListReq request)
|
||||
{
|
||||
|
||||
var loginContext = _auth.GetCurrentUser();
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Infrastructure;
|
||||
using OpenAuth.App.Interface;
|
||||
using OpenAuth.App.Request;
|
||||
@@ -18,7 +19,7 @@ namespace OpenAuth.App
|
||||
/// <summary>
|
||||
/// 加载列表
|
||||
/// </summary>
|
||||
public TableData Load(QueryWmsInboundOrderTblListReq request)
|
||||
public async Task<TableData> Load(QueryWmsInboundOrderTblListReq request)
|
||||
{
|
||||
var loginContext = _auth.GetCurrentUser();
|
||||
if (loginContext == null)
|
||||
@@ -67,69 +68,71 @@ namespace OpenAuth.App
|
||||
_wmsInboundOrderDtblApp.AddNoSave(detail);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
UnitWork.Save();
|
||||
}
|
||||
|
||||
public void Update(AddOrUpdateWmsInboundOrderTblReq obj)
|
||||
public void Update(AddOrUpdateWmsInboundOrderTblReq obj)
|
||||
{
|
||||
var user = _auth.GetCurrentUser().User;
|
||||
|
||||
if (obj.WmsInboundOrderDtblReqs != null && obj.WmsInboundOrderDtblReqs.Any())
|
||||
{
|
||||
//id为空的添加
|
||||
foreach (var detail in obj.WmsInboundOrderDtblReqs.Where(u =>string.IsNullOrEmpty(u.Id)))
|
||||
{
|
||||
detail.OrderId = obj.Id;
|
||||
_wmsInboundOrderDtblApp.AddNoSave(detail);
|
||||
}
|
||||
|
||||
//id比数据库少的,删除
|
||||
var containids = obj.WmsInboundOrderDtblReqs.Select(u => u.Id)
|
||||
.Where(u =>!string.IsNullOrEmpty(u)).ToList();
|
||||
if (containids.Any())
|
||||
{
|
||||
UnitWork.Delete<WmsInboundOrderDtbl>(u =>(!containids.Contains(u.Id)) && u.OrderId == obj.Id);
|
||||
}
|
||||
|
||||
|
||||
//更新id相同的
|
||||
foreach (var detail in obj.WmsInboundOrderDtblReqs.Where(u =>!string.IsNullOrEmpty(u.Id)))
|
||||
{
|
||||
_wmsInboundOrderDtblApp.Update(detail);
|
||||
}
|
||||
}
|
||||
|
||||
UnitWork.Update<WmsInboundOrderTbl>(u => u.Id == obj.Id, u => new WmsInboundOrderTbl
|
||||
{
|
||||
ExternalNo = obj.ExternalNo,
|
||||
ExternalType = obj.ExternalType,
|
||||
Status = obj.Status,
|
||||
OrderType = obj.OrderType,
|
||||
GoodsType = obj.GoodsType,
|
||||
PurchaseNo = obj.PurchaseNo,
|
||||
StockId = obj.StockId,
|
||||
OwnerId = obj.OwnerId,
|
||||
ShipperId = obj.ShipperId,
|
||||
SupplierId = obj.SupplierId,
|
||||
ScheduledInboundTime = obj.ScheduledInboundTime,
|
||||
Remark = obj.Remark,
|
||||
Enable = obj.Enable,
|
||||
TransferType = obj.TransferType,
|
||||
InBondedArea = obj.InBondedArea,
|
||||
ReturnBoxNum = obj.ReturnBoxNum,
|
||||
UpdateTime = DateTime.Now,
|
||||
UpdateUserId = user.Id,
|
||||
UpdateUserName = user.Name
|
||||
//todo:补充或调整自己需要的字段
|
||||
});
|
||||
|
||||
UnitWork.Save();
|
||||
|
||||
UnitWork.ExecuteWithTransaction(() =>
|
||||
{
|
||||
if (obj.WmsInboundOrderDtblReqs != null && obj.WmsInboundOrderDtblReqs.Any())
|
||||
{
|
||||
//id为空的添加
|
||||
foreach (var detail in obj.WmsInboundOrderDtblReqs.Where(u => string.IsNullOrEmpty(u.Id)))
|
||||
{
|
||||
detail.OrderId = obj.Id;
|
||||
_wmsInboundOrderDtblApp.AddNoSave(detail);
|
||||
}
|
||||
|
||||
//id比数据库少的,删除
|
||||
var containids = obj.WmsInboundOrderDtblReqs.Select(u => u.Id)
|
||||
.Where(u => !string.IsNullOrEmpty(u)).ToList();
|
||||
if (containids.Any())
|
||||
{
|
||||
UnitWork.Delete<WmsInboundOrderDtbl>(u => (!containids.Contains(u.Id)) && u.OrderId == obj.Id);
|
||||
}
|
||||
|
||||
//更新id相同的
|
||||
foreach (var detail in obj.WmsInboundOrderDtblReqs.Where(u => !string.IsNullOrEmpty(u.Id)))
|
||||
{
|
||||
_wmsInboundOrderDtblApp.Update(detail);
|
||||
}
|
||||
}
|
||||
|
||||
UnitWork.Update<WmsInboundOrderTbl>(u => u.Id == obj.Id, u => new WmsInboundOrderTbl
|
||||
{
|
||||
ExternalNo = obj.ExternalNo,
|
||||
ExternalType = obj.ExternalType,
|
||||
Status = obj.Status,
|
||||
OrderType = obj.OrderType,
|
||||
GoodsType = obj.GoodsType,
|
||||
PurchaseNo = obj.PurchaseNo,
|
||||
StockId = obj.StockId,
|
||||
OwnerId = obj.OwnerId,
|
||||
ShipperId = obj.ShipperId,
|
||||
SupplierId = obj.SupplierId,
|
||||
ScheduledInboundTime = obj.ScheduledInboundTime,
|
||||
Remark = obj.Remark,
|
||||
Enable = obj.Enable,
|
||||
TransferType = obj.TransferType,
|
||||
InBondedArea = obj.InBondedArea,
|
||||
ReturnBoxNum = obj.ReturnBoxNum,
|
||||
UpdateTime = DateTime.Now,
|
||||
UpdateUserId = user.Id,
|
||||
UpdateUserName = user.Name
|
||||
//todo:补充或调整自己需要的字段
|
||||
});
|
||||
|
||||
UnitWork.Save();
|
||||
});
|
||||
}
|
||||
|
||||
public WmsInboundOrderTblApp(IUnitWork unitWork, IRepository<WmsInboundOrderTbl> repository,
|
||||
RevelanceManagerApp app, IAuth auth, WmsInboundOrderDtblApp wmsInboundOrderDtblApp) : base(unitWork, repository,auth)
|
||||
RevelanceManagerApp app, IAuth auth, WmsInboundOrderDtblApp wmsInboundOrderDtblApp) : base(unitWork,
|
||||
repository, auth)
|
||||
{
|
||||
_revelanceApp = app;
|
||||
_wmsInboundOrderDtblApp = wmsInboundOrderDtblApp;
|
||||
|
||||
Reference in New Issue
Block a user