using learun.iapplication; using System; using System.Collections.Generic; using System.Text; using System.Threading.Tasks; namespace learun.application { /// <summary> /// 版 本 EasyCode EC管理后台 /// Copyright (c) 2019-present EC管理有限公司 /// 创建人:tobin /// 日 期:2019.09.25 /// 描 述:用户关联对象 /// </summary> public class UserRelationService : ServiceBase { #region 构造函数和属性 private readonly string fieldSql; /// <summary> /// /// </summary> public UserRelationService() { fieldSql = @" t.F_UserRelationId, t.F_UserId, t.F_Category, t.F_ObjectId, t.F_CreateDate, t.F_CreateUserId, t.F_CreateUserName "; } #endregion 构造函数和属性 #region 获取数据 /// <summary> /// 获取对象主键列表信息 /// </summary> /// <param name="userId">用户主键</param> /// <param name="category">分类:1-角色2-岗位</param> /// <returns></returns> public Task<IEnumerable<UserRelationEntity>> GetObjectIdList(string userId, int category) { var strSql = new StringBuilder(); strSql.Append(" SELECT "); strSql.Append(fieldSql); strSql.Append(" FROM LR_Base_UserRelation t WHERE t.F_UserId = @userId AND t.F_Category = @category "); return this.BaseRepository().FindList<UserRelationEntity>(strSql.ToString(), new { userId, category }); } /// <summary> /// 获取用户主键列表信息 /// </summary> /// <param name="objectId">关联角色或岗位组件</param> /// <returns></returns> public Task<IEnumerable<UserRelationEntity>> GetUserIdList(string objectId) { var strSql = new StringBuilder(); strSql.Append(" SELECT "); strSql.Append(fieldSql); strSql.Append(" FROM LR_Base_UserRelation t WHERE t.F_ObjectId = @objectId"); return this.BaseRepository().FindList<UserRelationEntity>(strSql.ToString(), new { objectId }); } /// <summary> /// 获取用户主键列表信息 /// </summary> /// <param name="objectIdList">关联角色或岗位组件</param> /// <returns></returns> public Task<IEnumerable<UserRelationEntity>> GetUserIdList(IEnumerable<string> objectIdList) { var strSql = new StringBuilder(); strSql.Append(" SELECT "); strSql.Append(fieldSql); strSql.Append(" FROM LR_Base_UserRelation t where 1=1 "); List<string> objectIdList2 = (List<string>)objectIdList; if (objectIdList2.Count > 0) { strSql.Append(" AND ( "); int num = 0; foreach (var item in objectIdList) { if (num > 0) { strSql.Append(" OR "); } strSql.Append(" F_ObjectId = '" + item + "'"); num++; } strSql.Append(" ) "); } return this.BaseRepository().FindList<UserRelationEntity>(strSql.ToString()); } #endregion 获取数据 #region 提交数据 /// <summary> /// 保存用户对应对象数据 /// </summary> /// <param name="objectId">人员和角色主键</param> /// <param name="userRelationEntityList">列表</param> public async Task SaveEntityList(string objectId, IEnumerable<UserRelationEntity> userRelationEntityList) { var db = this.BaseRepository().BeginTrans(); try { await db.DeleteAny<UserRelationEntity>(new { F_ObjectId = objectId }); foreach (UserRelationEntity userRelationEntity in userRelationEntityList) { await db.Insert(userRelationEntity); } db.Commit(); } catch (Exception) { db.Rollback(); throw; } } #endregion 提交数据 } }