using CommonUtil;
|
using Microsoft.AspNetCore.Mvc;
|
using Operater.DAL;
|
using Operater.DbModel;
|
using Operater.DTO.System;
|
using SqlSugar;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Threading.Tasks;
|
|
namespace Api.Operater.Controllers
|
{
|
|
[Route(TopConstants.API_ROUTE)]
|
public class RoleManageController : BaseController
|
{
|
/// <summary>
|
/// 新增角色
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult AddRoleSet([FromBody] AddRoleSetRequest request)
|
{
|
var isExect = new RoleSetDAL().IsExist(t => t.Name == request.Name && t.IsDe == 0);
|
if (isExect)
|
{
|
return Error("角色名已存在,请修改!");
|
}
|
RoleSet roleSet = new RoleSet()
|
{
|
Id = Guid.NewGuid().ToString(),
|
Name = request.Name,
|
CreateTime = DateTime.Now,
|
IsDe = 0,
|
Memo = request.Memo,
|
Roles = request.Roles
|
};
|
new RoleSetDAL().Insert(roleSet);
|
return Success(true);
|
}
|
|
/// <summary>
|
/// 获取角色列表
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult GetRoleList([FromBody] GetRoleListRequest request)
|
{
|
var expression = Expressionable.Create<RoleSet>().And(t => t.IsDe == 0)
|
.AndIF(!request.Name.IsNull(), t => request.Name.Contains(t.Name))
|
.ToExpression();
|
int totalCount = 0;
|
var history = new RoleSetDAL().ListPageGet(expression, t => t.CreateTime, DbEnum.OrderType.Desc, request.PageNo, request.PageSize, ref totalCount);
|
List<GetRoleListResponse> response = new List<GetRoleListResponse>();
|
if(!history.IsNull()&& history.Count>0)
|
{
|
response = JSONUtil.JsonToObject<List<GetRoleListResponse>>(JSONUtil.ObjectToJson(history));
|
var countList = new UserInfoDAL().GetRoleIdCount();
|
foreach (var res in response)
|
{
|
var count = countList.Where(t=>t.RoleId==res.Id).ToList();
|
res.UserCount = (count.IsNull() || count.Count == 0) ? 0 : count[0].Sum;
|
}
|
}
|
return Success(response, request.PageNo, request.PageSize, totalCount);
|
}
|
|
/// <summary>
|
/// 删除角色
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult DelRole([FromBody] DelRoleRequest request)
|
{
|
RoleSet set = new RoleSet
|
{
|
IsDe = 1
|
};
|
var res = new RoleSetDAL().Update(set, i => new { i.IsDe }, t => t.Id == request.RoleId);
|
return Success(res == 1);
|
}
|
|
/// <summary>
|
/// 修改角色
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult EditRole([FromBody] EditRoleRequest request)
|
{
|
RoleSet roleSet = new RoleSet()
|
{
|
Name = request.Name,
|
CreateTime = DateTime.Now,
|
IsDe = 0,
|
Memo = request.Memo,
|
Roles = request.Roles
|
};
|
var res = new RoleSetDAL().Update(roleSet, i => new { i.Name, i.IsDe, i.Memo, i.Roles }, t => t.Id == request.RoleId);
|
return Success(res == 1);
|
}
|
|
/// <summary>
|
/// 获取角色详情
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult GetRoleDetail([FromBody] GetRoleDetailRequset request)
|
{
|
var res = new RoleSetDAL().GetById(request.RoleId);
|
return Success(res);
|
}
|
|
[HttpPost]
|
public IActionResult GetMenuRole()
|
{
|
List<GetMenuRoleResponse> response = new List<GetMenuRoleResponse>();
|
var menu = new MenuSetDAL().ListGet(t => t.Id != null);
|
var menuOne = menu.Where(t => t.MenuLevel == 1).OrderBy(t => t.OrdIndex);
|
foreach (var m in menuOne)
|
{
|
GetMenuRoleResponse res = new GetMenuRoleResponse()
|
{
|
title = m.MenuName,
|
value = m.MenuRole,
|
key = m.MenuRole
|
};
|
var menuSecond = menu.Where(t => t.ParentId == m.Id).OrderBy(t => t.OrdIndex).ToList();
|
if (!menuSecond.IsNull() && menuSecond.Count > 0)
|
{
|
List<GetMenuRoleTree> getMenuRoleTrees = new List<GetMenuRoleTree>();
|
foreach (var te in menuSecond)
|
{
|
GetMenuRoleTree getMenuRoleTree = new GetMenuRoleTree()
|
{
|
title = te.MenuName,
|
value = te.MenuRole,
|
key = te.MenuRole
|
};
|
getMenuRoleTrees.Add(getMenuRoleTree);
|
}
|
res.children = getMenuRoleTrees;
|
}
|
response.Add(res);
|
}
|
return Success(response);
|
}
|
}
|
}
|