using Dapper;
using Estsh.Core.Dapper;
using Estsh.Core.Models;
using Estsh.Core.Repository.IRepositories;
using Estsh.Core.Services.IServices;
using Estsh.Core.Util;
using System.Collections;
/***************************************************************************************************
*
* 更新人:sitong.dong
* 描述:角色模块业务处理类
* 修改时间:2022.06.22
* 修改日志:系统迭代升级
*
**************************************************************************************************/
namespace Estsh.Core.Services
{
///
/// 角色模块管理业务处理类
///
public class RoleService : BaseService, IRoleService
{
private readonly IRoleRepository repository;
public RoleService(IRoleRepository _repository) : base(_repository)
{
repository = _repository;
}
#region 角色管理
///
/// 根据分页条件获取角色列表
///
///
///
///
///
///
public Hashtable getRoleListByPage(String role_name, Pager pager, String direction, String sort, String enabled)
{
Hashtable result = new Hashtable();
String strWhere = " 1=1 ";
if (role_name != null && !role_name.Trim().Equals(""))
{
strWhere += " and role_name like '%" + role_name.Trim() + "%'";
}
if (enabled != null && !enabled.Trim().Equals(""))
{
strWhere += " and a.enabled = '" + enabled + "'";
}
String orderBy = "";
if (sort != null && !"".Equals(sort.Trim()))
{
orderBy += typeof(SysRole).GetEntityColumnName(sort.Trim()) + " " + direction;
}
else
{
orderBy += typeof(SysRole).GetEntityColumnName("RoleId") + " " + direction;
}
result = repository.getRoleListByPage(pager.pageSize, pager.pageNo, strWhere, orderBy);
return result;
}
///
/// 根据角色ID获取角色的功能树信息
///
///
///
public ArrayList getRoleMenuTree(String role_id)
{
role_id= String.IsNullOrEmpty(role_id) ? "" : role_id;
List dt = repository.getRoleMenuTree(role_id);
ArrayList treeNodes = new ArrayList();
Hashtable node ;
for (int i = 0; i < dt.Count; i++)
{
node = new Hashtable();
node.Add("id", dt[i].MenuId);
node.Add("name", dt[i].Name);
node.Add("parentId", dt[i].ParentId);
//if (dt.Rows[i]["parent_id"] == null || "0".Equals(dt.Rows[i]["parent_id"].ToString().Trim()))
//{
node.Add("open", true);
//}
if (dt[i].RoleId != null && role_id.Equals(dt[i].RoleId.ToString().Trim()) && !role_id.Equals(""))
{
node.Add("checked" , true);
}
treeNodes.Add(node);
}
List dtOp = repository.getRoleMenuOpTree(role_id);
foreach (SysProgramFunOp dr in dtOp)
{
node = new Hashtable();
node.Add("id", dr.OpId.ToString());
node.Add("name", dr.OpName.ToString());
node.Add("parentId", dr.ParentId.ToString());
if (dr.RoleId != null && role_id.Equals(dr.RoleId.ToString().Trim()) && !role_id.Equals(""))
{
node.Add("checked", true);
}
treeNodes.Add(node);
}
return treeNodes;
}
///
/// 根据角色ID获取角色信息
///
///
///
public List getRoleDetail(String role_id)
{
List result = repository.getRoleInfoById(role_id);
return result; ;
}
///
/// 保存角色数据
///
///
///
public int saveRoleInfo(SysRole htParams, string menuTreeInfo, string opMenuTreeInfo)
{
return repository.saveRoleInfo(htParams, menuTreeInfo, opMenuTreeInfo);
}
///
/// 更新角色数据
///
///
///
public int updateRoleInfo(SysRole htParams, string menuTreeInfo, string opMenuTreeInfo)
{
return repository.updateRoleInfo(htParams, menuTreeInfo, opMenuTreeInfo);
}
///
/// 删除角色
///
///
///
public int deleteRole(String ids)
{
String[] idArray = ids.Split(',');
int count = 0;
foreach (String id in idArray)
{
if (!"".Equals(id))
{
count += this.repository.deleteRole(id);
}
}
return count;
}
///
/// 启用
///
///
///
public int EnableData(String ids)
{
ids = ids.Substring(0, ids.Length - 1);
return this.repository.EnableData(ids);
}
///
/// 禁用
///
///
///
public int DisableData(String ids)
{
ids = ids.Substring(0, ids.Length - 1);
return this.repository.DisableData(ids);
}
#endregion
}
}