using Infrastructure.Attribute; using SqlSugar; using System.Collections.Generic; using ZR.Model.System; namespace ZR.Repository.System { /// /// 角色操作类 /// [AppService(ServiceLifetime = LifeTime.Transient)] public class SysRoleRepository : BaseRepository { /// /// 根据条件分页查询角色数据 /// /// public List SelectRoleList(SysRole sysRole) { return Db.Queryable() .Where(role => role.DelFlag == "0") .WhereIF(!string.IsNullOrEmpty(sysRole.RoleName), role => role.RoleName.Contains(sysRole.RoleName)) .WhereIF(!string.IsNullOrEmpty(sysRole.Status), role => role.Status == sysRole.Status) .WhereIF(!string.IsNullOrEmpty(sysRole.RoleKey), role => role.RoleKey == sysRole.RoleKey) .OrderBy(role => role.RoleSort) .ToList(); } /// /// 根据用户查询 /// /// /// public List SelectRolePermissionByUserId(long userId) { return Db.Queryable() .Where(role => role.DelFlag == "0") .Where(it => SqlFunc.Subqueryable().Where(s => s.UserId == userId).Any()) .OrderBy(role => role.RoleSort) .ToList(); } /// /// 查询所有角色 /// /// public List SelectRoleAll() { return Db.Queryable().OrderBy(it => it.RoleSort).ToList(); } /// /// 通过角色ID查询角色 /// /// 角色编号 /// public SysRole SelectRoleById(long roleId) { return Db.Queryable().InSingle(roleId); } /// /// 通过角色ID删除角色 /// /// /// public int DeleteRoleByRoleIds(long[] roleId) { return Db.Deleteable().In(roleId).ExecuteCommand(); } /// /// 获取用户所有角色信息 /// /// /// public List SelectUserRoleListByUserId(long userId) { return Db.Queryable((ur, r) => new SqlSugar.JoinQueryInfos( SqlSugar.JoinType.Left, ur.RoleId == r.RoleId )).Where((ur, r) => ur.UserId == userId) .Select((ur, r) => r).ToList(); } #region 用户角色对应菜单 用户N-1角色 /// /// 根据角色获取菜单id /// /// /// public List SelectRoleMenuByRoleId(long roleId) { return Db.Queryable().Where(it => it.Role_id == roleId).ToList(); } /// /// 批量插入用户菜单 /// /// /// public int AddRoleMenu(List sysRoleMenus) { return Db.Insertable(sysRoleMenus).ExecuteCommand(); } /// /// 删除角色与菜单关联 /// /// /// public int DeleteRoleMenuByRoleId(long roleId) { return Db.Deleteable().Where(it => it.Role_id == roleId).ExecuteCommand(); } #endregion /// /// 添加角色 /// /// /// public long InsertRole(SysRole sysRole) { sysRole.Create_time = Db.GetDate(); return Db.Insertable(sysRole).ExecuteReturnBigIdentity(); } /// /// 修改用户角色 /// /// /// public int UpdateSysRole(SysRole sysRole) { var db = Db; sysRole.Update_time = db.GetDate(); return db.Updateable() .SetColumns(it => it.Update_time == sysRole.Update_time) .SetColumns(it => it.Remark == sysRole.Remark) .SetColumns(it => it.Update_by == sysRole.Update_by) .SetColumnsIF(!string.IsNullOrEmpty(sysRole.RoleName), it => it.RoleName == sysRole.RoleName) .SetColumnsIF(!string.IsNullOrEmpty(sysRole.RoleKey), it => it.RoleKey == sysRole.RoleKey) .SetColumnsIF(sysRole.RoleSort >= 0, it => it.RoleSort == sysRole.RoleSort) .Where(it => it.RoleId == sysRole.RoleId) .ExecuteCommand(); } /// /// 更改角色权限状态 /// /// /// /// public int UpdateRoleStatus(SysRole role) { return Db.Updateable(role).UpdateColumns(t => new { t.Status }).ExecuteCommand(); } /// /// 检查角色权限是否存在 /// /// 角色权限 /// public SysRole CheckRoleKeyUnique(string roleKey) { return Db.Queryable().Where(it => it.RoleKey == roleKey).Single(); } /// /// 校验角色名称是否唯一 /// /// 角色名称 /// public SysRole CheckRoleNameUnique(string roleName) { return Db.Queryable().Where(it => it.RoleName == roleName).Single(); } } }