1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- using Mapster;
- using SqlSugar;
- using System.Text;
- using WMS.BZModels.Dto.UserCenterManager.AclUserRelationDtos;
- using WMS.BZModels.Dto.UserCenterManager.UserInfoDtos;
- using WMS.BZModels.Models.UserCenterManager;
- using WMS.BZSqlSugar;
- namespace WMS.BZServices.UserCenterManager
- {
- public class ACLUserRelationService
- {
- private readonly Repository<AclUserRelation> _aclUserRelationRepository;
- private readonly Repository<AclUserInfo> _acluserInfoRepository;
- public ACLUserRelationService(Repository<AclUserRelation> aclUserRelationRepository, Repository<AclUserInfo> acluserInfoRepository)
- {
- _aclUserRelationRepository = aclUserRelationRepository;
- _acluserInfoRepository = acluserInfoRepository;
- }
- /// <summary>
- /// 获取对象主键列表信息
- /// </summary>
- /// <param name="userId">用户主键</param>
- /// <param name="category">分类:1-角色2-用户组</param>
- /// <returns></returns>
- public IEnumerable<AclUserRelationDto> GetObjectIdList(long userId, int category = 0)
- {
- var predicate = Expressionable.Create<AclUserRelation>();
- predicate = predicate.AndIF(category>0, m => m.ObjectTypeNum == category);
- predicate = predicate.AndIF(userId > 0, m => m.UserId == userId);
- return _aclUserRelationRepository.Queryable().Where(predicate.ToExpression()).ToList().Adapt<List<AclUserRelationDto>>();
- }
- /// <summary>
- /// 获取对象主键列表信息
- /// </summary>
- /// <param name="userId">用户主键</param>
- /// <param name="category">分类:1-角色2-岗位</param>
- /// <returns></returns>
- public string GetObjectIds(long userId, int category)
- {
- StringBuilder sb = new StringBuilder();
- var list = GetObjectIdList(userId);
- foreach (var item in list)
- {
- if (sb.Length > 0)
- {
- sb.Append(",");
- }
- sb.Append(item.ObjectId);
- }
- return sb.ToString();
- }
- public List<AclUserinfoListDto> GetUserList(string objectno, ACLObjType ACLObjType)
- {
- if (!long.TryParse(objectno, out long id))
- {
- throw new ArgumentException("参数错误。");
- }
- var predicate = Expressionable.Create<AclUserInfo>();
- var list = _acluserInfoRepository.Queryable().Where(it => SqlFunc.Subqueryable<AclUserRelation>().Where(s => s.ObjectTypeNum == (int)ACLObjType && s.ObjectId == id && s.UserId == it.Id).Any()).ToList();
- return list.Adapt<List<AclUserinfoListDto>>();
- }
- public void SaveEntityList(string objectno, ACLObjType eACLObjType, List<string> UserNos)
- {
- if (!long.TryParse(objectno, out long id))
- {
- throw new ArgumentException("参数错误。");
- }
- _aclUserRelationRepository.Deleteable().Where(it => it.ObjectTypeNum == (int)eACLObjType && it.ObjectId == id).ExecuteCommand();
- if (UserNos != null && UserNos.Count > 0)
- {
- List<AclUserRelation> lists = new List<AclUserRelation>();
- foreach (string s in UserNos)
- {
- lists.Add(new AclUserRelation()
- {
- ObjectId = id,
- ObjectTypeNum = (int)eACLObjType,
- UserId = long.Parse(s)
- });
- }
- _aclUserRelationRepository.Insert(lists);
- }
- }
- }
- }
|