添加工作单元测试
This commit is contained in:
@@ -111,11 +111,10 @@ namespace Yi.Framework.ApiMicroservice.Controllers
|
|||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
|
|
||||||
public async Task<Result> TestUnitOfWork()
|
public async Task<Result> TestUnitOfWork()
|
||||||
{
|
{
|
||||||
var userId = await _iUserService.AddInfo(new DTOModel.UserInfoDto { User = new UserEntity { Address = "", UserName = "lisi", Password = "123456" }.BuildPassword() });
|
await _iRoleService.UowTest();
|
||||||
throw new ApplicationException("测试uow");
|
|
||||||
await _iRoleService._repository.InsertReturnSnowflakeIdAsync(new RoleEntity { RoleName = "测试", RoleCode = "tt" });
|
|
||||||
return Result.Success();
|
return Result.Success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@@ -15,6 +15,12 @@ namespace Yi.Framework.Interface
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task<List<RoleEntity>> DbTest();
|
Task<List<RoleEntity>> DbTest();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 工作单元测试
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
Task<bool> UowTest();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 通过角色id获取角色实体包含菜单
|
/// 通过角色id获取角色实体包含菜单
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ using Yi.Framework.DTOModel;
|
|||||||
using Yi.Framework.Interface;
|
using Yi.Framework.Interface;
|
||||||
using Yi.Framework.Model.Models;
|
using Yi.Framework.Model.Models;
|
||||||
using Yi.Framework.Repository;
|
using Yi.Framework.Repository;
|
||||||
|
using Yi.Framework.Uow.Interceptors;
|
||||||
|
|
||||||
namespace Yi.Framework.Service
|
namespace Yi.Framework.Service
|
||||||
{
|
{
|
||||||
@@ -17,13 +18,22 @@ namespace Yi.Framework.Service
|
|||||||
{
|
{
|
||||||
return await _repository._Db.Queryable<RoleEntity>().ToListAsync();
|
return await _repository._Db.Queryable<RoleEntity>().ToListAsync();
|
||||||
}
|
}
|
||||||
|
//添加工作单元特性
|
||||||
|
[UnitOfWork]
|
||||||
|
public async Task<bool> UowTest()
|
||||||
|
{
|
||||||
|
var res = await _repository.InsertReturnSnowflakeIdAsync(new RoleEntity { RoleName = "测试", RoleCode = "tt" });
|
||||||
|
throw new ApplicationException("测试uow");
|
||||||
|
return res>0;
|
||||||
|
}
|
||||||
|
|
||||||
public async Task<bool> GiveRoleSetMenu(List<long> roleIds, List<long> menuIds)
|
public async Task<bool> GiveRoleSetMenu(List<long> roleIds, List<long> menuIds)
|
||||||
{
|
{
|
||||||
var _repositoryRoleMenu= _repository.ChangeRepository<Repository<RoleMenuEntity>>();
|
var _repositoryRoleMenu = _repository.ChangeRepository<Repository<RoleMenuEntity>>();
|
||||||
//多次操作,需要事务确保原子性
|
//多次操作,需要事务确保原子性
|
||||||
return await _repositoryRoleMenu.UseTranAsync(async () =>
|
return await _repositoryRoleMenu.UseTranAsync(async () =>
|
||||||
{ //删除用户之前所有的用户角色关系(物理删除,没有恢复的必要)
|
{ //删除用户之前所有的用户角色关系(物理删除,没有恢复的必要)
|
||||||
await _repositoryRoleMenu.DeleteAsync(u => roleIds.Contains((long)u.RoleId) );
|
await _repositoryRoleMenu.DeleteAsync(u => roleIds.Contains((long)u.RoleId));
|
||||||
|
|
||||||
//遍历用户
|
//遍历用户
|
||||||
foreach (var roleId in roleIds)
|
foreach (var roleId in roleIds)
|
||||||
@@ -32,7 +42,7 @@ namespace Yi.Framework.Service
|
|||||||
List<RoleMenuEntity> roleMenuEntity = new();
|
List<RoleMenuEntity> roleMenuEntity = new();
|
||||||
foreach (var menu in menuIds)
|
foreach (var menu in menuIds)
|
||||||
{
|
{
|
||||||
roleMenuEntity.Add(new RoleMenuEntity() { RoleId = roleId,MenuId=menu });
|
roleMenuEntity.Add(new RoleMenuEntity() { RoleId = roleId, MenuId = menu });
|
||||||
}
|
}
|
||||||
|
|
||||||
//一次性批量添加
|
//一次性批量添加
|
||||||
@@ -58,7 +68,7 @@ namespace Yi.Framework.Service
|
|||||||
.WhereIF(!string.IsNullOrEmpty(role.RoleName), u => u.RoleName.Contains(role.RoleName))
|
.WhereIF(!string.IsNullOrEmpty(role.RoleName), u => u.RoleName.Contains(role.RoleName))
|
||||||
.WhereIF(!string.IsNullOrEmpty(role.RoleCode), u => u.RoleCode.Contains(role.RoleCode))
|
.WhereIF(!string.IsNullOrEmpty(role.RoleCode), u => u.RoleCode.Contains(role.RoleCode))
|
||||||
.WhereIF(page.StartTime.IsNotNull() && page.EndTime.IsNotNull(), u => u.CreateTime >= page.StartTime && u.CreateTime <= page.EndTime)
|
.WhereIF(page.StartTime.IsNotNull() && page.EndTime.IsNotNull(), u => u.CreateTime >= page.StartTime && u.CreateTime <= page.EndTime)
|
||||||
.WhereIF(role.IsDeleted.IsNotNull(), u => u.IsDeleted == role.IsDeleted)
|
.WhereIF(role.IsDeleted.IsNotNull(), u => u.IsDeleted == role.IsDeleted)
|
||||||
.OrderBy(u => u.OrderNum, OrderByType.Desc)
|
.OrderBy(u => u.OrderNum, OrderByType.Desc)
|
||||||
.ToPageListAsync(page.PageNum, page.PageSize, total);
|
.ToPageListAsync(page.PageNum, page.PageSize, total);
|
||||||
|
|
||||||
@@ -74,7 +84,7 @@ namespace Yi.Framework.Service
|
|||||||
return !0.Equals(res1) && res2;
|
return !0.Equals(res1) && res2;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<bool> GiveRoleSetDept(List<long> roleIds,List<long> deptIds)
|
public async Task<bool> GiveRoleSetDept(List<long> roleIds, List<long> deptIds)
|
||||||
{
|
{
|
||||||
var _repositoryRoleDept = _repository.ChangeRepository<Repository<RoleDeptEntity>>();
|
var _repositoryRoleDept = _repository.ChangeRepository<Repository<RoleDeptEntity>>();
|
||||||
//多次操作,需要事务确保原子性
|
//多次操作,需要事务确保原子性
|
||||||
@@ -103,12 +113,12 @@ namespace Yi.Framework.Service
|
|||||||
var res1 = await _repository.UpdateIgnoreNullAsync(roleDto.Role);
|
var res1 = await _repository.UpdateIgnoreNullAsync(roleDto.Role);
|
||||||
var res2 = await GiveRoleSetMenu(new List<long> { roleDto.Role.Id }, roleDto.MenuIds);
|
var res2 = await GiveRoleSetMenu(new List<long> { roleDto.Role.Id }, roleDto.MenuIds);
|
||||||
var res3 = await GiveRoleSetDept(new List<long> { roleDto.Role.Id }, roleDto.DeptIds);
|
var res3 = await GiveRoleSetDept(new List<long> { roleDto.Role.Id }, roleDto.DeptIds);
|
||||||
return res1 && res2&& res3;
|
return res1 && res2 && res3;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<bool> UpdateDataScpoce(RoleInfoDto roleDto)
|
public async Task<bool> UpdateDataScpoce(RoleInfoDto roleDto)
|
||||||
{
|
{
|
||||||
var role= new RoleEntity();
|
var role = new RoleEntity();
|
||||||
role.Id = roleDto.Role.Id;
|
role.Id = roleDto.Role.Id;
|
||||||
role.DataScope = roleDto.Role.DataScope;
|
role.DataScope = roleDto.Role.DataScope;
|
||||||
var res1 = await _repository.UpdateIgnoreNullAsync(role);
|
var res1 = await _repository.UpdateIgnoreNullAsync(role);
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\Yi.Framework.Interface\Yi.Framework.Interface.csproj" />
|
<ProjectReference Include="..\Yi.Framework.Interface\Yi.Framework.Interface.csproj" />
|
||||||
|
<ProjectReference Include="..\Yi.Framework.Uow\Yi.Framework.Uow.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ namespace Yi.Framework.WebCore.AutoFacExtend
|
|||||||
.AsImplementedInterfaces()
|
.AsImplementedInterfaces()
|
||||||
.InstancePerLifetimeScope()
|
.InstancePerLifetimeScope()
|
||||||
.EnableInterfaceInterceptors()
|
.EnableInterfaceInterceptors()
|
||||||
|
//开启工作单元拦截
|
||||||
.InterceptedBy(typeof(UnitOfWorkInterceptor));
|
.InterceptedBy(typeof(UnitOfWorkInterceptor));
|
||||||
|
|
||||||
///反射注册任务调度层
|
///反射注册任务调度层
|
||||||
|
|||||||
Reference in New Issue
Block a user