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
{
///
/// 新增角色
///
///
///
[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);
}
///
/// 获取角色列表
///
///
///
[HttpPost]
public IActionResult GetRoleList([FromBody] GetRoleListRequest request)
{
var expression = Expressionable.Create().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 response = new List();
if(!history.IsNull()&& history.Count>0)
{
response = JSONUtil.JsonToObject>(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);
}
///
/// 删除角色
///
///
///
[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);
}
///
/// 修改角色
///
///
///
[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);
}
///
/// 获取角色详情
///
///
///
[HttpPost]
public IActionResult GetRoleDetail([FromBody] GetRoleDetailRequset request)
{
var res = new RoleSetDAL().GetById(request.RoleId);
return Success(res);
}
[HttpPost]
public IActionResult GetMenuRole()
{
List response = new List();
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 getMenuRoleTrees = new List();
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);
}
}
}