243 lines
7.6 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Learun.Util;
using Learun.Util.SqlSugar;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DbType = System.Data.DbType;
namespace Learun.Application.Organization
{
/// <summary>
/// 版 本 PIT-ADMS V7.0.3 敏捷开发框架
/// Copyright (c) 2013-2018 Hexagon PPM
/// 创建人:研发部
/// 日 期2017.03.04
/// 描 述:角色管理
/// </summary>
public class RoleService
{
#region
Repository<RoleEntity> _roleRepository => new Repository<RoleEntity>();
#endregion
#region
private string fieldSql;
public RoleService()
{
fieldSql = @"
t.F_RoleId,
t.F_Category,
t.F_EnCode,
t.F_FullName,
t.F_SortCode,
t.F_DeleteMark,
t.F_EnabledMark,
t.F_Description,
t.F_CreateDate,
t.F_CreateUserId,
t.F_CreateUserName,
t.F_ModifyDate,
t.F_ModifyUserId,
t.F_ModifyUserName
";
}
#endregion
#region
/// <summary>
/// 获取角色数据列表
/// </summary>
/// <returns></returns>
public List<RoleEntity> GetList(string ProjectId)
{
try
{
//var dp = new DynamicParameters(new { });
var list = _roleRepository.GetList().Where(x => x.F_EnabledMark == 1 && x.F_DeleteMark == 0);
if (!string.IsNullOrEmpty(ProjectId))
{
list = list.Where(x => x.ProjectId == ProjectId);
}
return list.OrderBy(x => x.F_FullName).ToList();
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
public List<RoleEntity> GetPageList(Pagination pagination, string queryJson)
{
try
{
var strSql = new StringBuilder();
strSql.Append("SELECT ");
strSql.Append(fieldSql);
strSql.Append(@",(SELECT GROUP_CONCAT(st1.F_RealName) FROM lr_base_user st1
LEFT JOIN lr_base_userrelation st2 on st1.F_UserId = st2.F_UserId
WHERE FIND_IN_SET(st2.F_ObjectId,t.F_RoleId)) AS MemberName");
strSql.Append(" FROM LR_Base_Role t ");
strSql.Append(" WHERE t.F_EnabledMark = 1 AND t.F_DeleteMark = 0 ");
var queryParam = queryJson.ToJObject();
// 虚拟参数
//var dp = new DynamicParameters(new { });
var dp = new List<SugarParameter>();
if (!queryParam["ProjectId"].IsEmpty())
{
dp.Add(new SugarParameter("ProjectId", queryParam["ProjectId"].ToString(), DbType.String));
strSql.Append("AND t.ProjectId = @ProjectId ");
}
else
{
strSql.Append("AND IFNULL(t.ProjectId,'')=''");
}
if (!queryParam["keyword"].IsEmpty())
{
dp.Add(new SugarParameter("keyword", "%" + queryParam["keyword"].ToString() + "%", DbType.String));
strSql.Append(" AND( t.F_FullName like @keyword or t.F_EnCode like @keyword ) ");
}
//return this.BaseRepository().FindList<RoleEntity>(strSql.ToString(),dp, pagination);
return SqlSugarHelper.Db.SqlQueryable<RoleEntity>(strSql.ToString()).AddParameters(dp).ToPageList(pagination.page, pagination.rows);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
/// <summary>
/// 获取角色数据列表
/// </summary>
/// <param name="roleIds">主键串</param>
/// <returns></returns>
public IEnumerable<RoleEntity> GetListByRoleIds(string roleIds)
{
try
{
return _roleRepository.GetList(t => roleIds.Contains(t.F_RoleId));
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
/// <summary>
/// 获取实体数据
/// </summary>
/// <param name="keyValue">主键</param>
/// <returns></returns>
public RoleEntity GetEntity(string keyValue)
{
try
{
return _roleRepository.GetById(keyValue);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
#endregion
#region
/// <summary>
/// 虚拟删除角色
/// </summary>
/// <param name="keyValue">主键</param>
public void VirtualDelete(string keyValue)
{
SqlSugarHelper.Db.BeginTran();
try
{
RoleEntity entity = new RoleEntity()
{
F_RoleId = keyValue,
F_DeleteMark = 1
};
_roleRepository.Update(entity);
SqlSugarHelper.Db.Ado.ExecuteCommand(" Delete From LR_BASE_USERRELATION where F_OBJECTID = @keyValue ", new { keyValue = keyValue });
SqlSugarHelper.Db.CommitTran();
}
catch (Exception ex)
{
SqlSugarHelper.Db.RollbackTran();
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
/// <summary>
/// 保存角色(新增、修改)
/// </summary>
/// <param name="keyValue">主键值</param>
/// <param name="roleEntity">角色实体</param>
/// <returns></returns>
public void SaveEntity(string keyValue, ref RoleEntity roleEntity)
{
try
{
if (!string.IsNullOrEmpty(keyValue))
{
roleEntity.Modify(keyValue);
_roleRepository.Update(roleEntity);
}
else
{
roleEntity.Create();
_roleRepository.Insert(roleEntity);
}
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
#endregion
}
}