2021-10-11 21:50:50 +08:00
|
|
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
using Yi.Framework.Interface;
|
|
|
|
|
|
using Yi.Framework.Model.Models;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Yi.Framework.Service
|
|
|
|
|
|
{
|
2021-10-17 17:35:18 +08:00
|
|
|
|
public partial class RoleService:BaseService<role>, IRoleService
|
2021-10-11 21:50:50 +08:00
|
|
|
|
{
|
|
|
|
|
|
public async Task<bool> DelListByUpdateAsync(List<int> _ids)
|
|
|
|
|
|
{
|
2021-10-12 13:45:24 +08:00
|
|
|
|
var userList = await GetEntitiesAsync(u=>_ids.Contains(u.id));
|
|
|
|
|
|
userList.ToList().ForEach(u => u.is_delete =(short)Common.Enum.DelFlagEnum.Deleted);
|
|
|
|
|
|
return await UpdateListAsync(userList);
|
2021-10-11 21:50:50 +08:00
|
|
|
|
}
|
|
|
|
|
|
public async Task<IEnumerable<role>> GetAllEntitiesTrueAsync()
|
|
|
|
|
|
{
|
2021-10-12 18:05:01 +08:00
|
|
|
|
return await GetEntitiesAsync(u => u.is_delete == (short)Common.Enum.DelFlagEnum.Normal);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public async Task<List<menu>> GetMenusByRole(role _role)
|
2021-10-12 21:44:50 +08:00
|
|
|
|
{
|
|
|
|
|
|
var role_data =await _Db.Set<role>().Include(u => u.menus)
|
|
|
|
|
|
.Where(u => u.id == _role.id && u.is_delete == (short)Common.Enum.DelFlagEnum.Normal).FirstOrDefaultAsync();
|
2021-10-19 18:30:56 +08:00
|
|
|
|
var menuList =role_data.menus.Where(u => u.is_delete == (short)Common.Enum.DelFlagEnum.Normal)
|
2021-10-18 16:46:40 +08:00
|
|
|
|
.ToList();
|
2021-10-17 17:35:18 +08:00
|
|
|
|
return menuList;
|
2021-10-12 18:05:01 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public async Task<List<user>> GetUsersByRole(role _role)
|
|
|
|
|
|
{
|
2021-10-12 21:44:50 +08:00
|
|
|
|
var role_data = await _Db.Set<role>().Include(u => u.users)
|
|
|
|
|
|
.Where(u => u.id == _role.id && u.is_delete == (short)Common.Enum.DelFlagEnum.Normal).FirstOrDefaultAsync();
|
|
|
|
|
|
return role_data.users.ToList();
|
2021-10-12 18:05:01 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2021-10-17 23:17:07 +08:00
|
|
|
|
public async Task<bool> SetMenusByRolesId(List<int> menuIds,List<int> roleIds)
|
2021-10-12 18:05:01 +08:00
|
|
|
|
{
|
2021-10-17 23:17:07 +08:00
|
|
|
|
var role_data = await _Db.Set<role>().Include(u=>u.menus)
|
|
|
|
|
|
.Where(u =>roleIds.Contains(u.id) && u.is_delete == (short)Common.Enum.DelFlagEnum.Normal).ToListAsync();
|
2021-10-12 18:05:01 +08:00
|
|
|
|
if (role_data == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
2021-10-16 14:48:55 +08:00
|
|
|
|
var menuList = await _Db.Set<menu>().Where(u => menuIds.Contains(u.id)&&u.is_delete == (short)Common.Enum.DelFlagEnum.Normal).ToListAsync();
|
2021-10-17 23:17:07 +08:00
|
|
|
|
foreach(var role in role_data)
|
|
|
|
|
|
{
|
|
|
|
|
|
role.menus =menuList;
|
|
|
|
|
|
}
|
|
|
|
|
|
return await UpdateListAsync(role_data);
|
2021-10-11 21:50:50 +08:00
|
|
|
|
}
|
2021-10-19 18:30:56 +08:00
|
|
|
|
public async Task<List<menu>> GetMenusByRoleId(int roleId)
|
2021-10-19 17:33:55 +08:00
|
|
|
|
{
|
2021-10-19 18:30:56 +08:00
|
|
|
|
var role_data = await _Db.Set<role>().Include(u=>u.menus)
|
|
|
|
|
|
.Where(u =>u.id==roleId && u.is_delete == (short)Common.Enum.DelFlagEnum.Normal).FirstOrDefaultAsync();
|
|
|
|
|
|
var menuList = role_data.menus.ToList();
|
|
|
|
|
|
menuList.ForEach(u => u.roles = null);
|
2021-10-19 17:33:55 +08:00
|
|
|
|
return menuList;
|
|
|
|
|
|
}
|
2021-10-11 21:50:50 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|