shgx_tz_mom/ZR.Service/System/SysUserRoleService.cs

139 lines
4.8 KiB
C#
Raw Permalink Normal View History

2021-08-23 16:57:25 +08:00
using Infrastructure.Attribute;
2022-10-20 18:30:05 +08:00
using Infrastructure.Extensions;
using SqlSugar;
2021-12-17 09:55:48 +08:00
using ZR.Model;
2021-08-23 16:57:25 +08:00
using ZR.Model.System;
2022-09-21 21:43:05 +08:00
using ZR.Model.System.Dto;
2022-10-20 18:30:05 +08:00
using ZR.Repository;
2021-09-16 19:35:17 +08:00
using ZR.Service.System.IService;
2021-08-23 16:57:25 +08:00
namespace ZR.Service.System
{
2021-11-27 09:43:04 +08:00
/// <summary>
/// 用户角色
/// </summary>
2021-12-17 09:55:48 +08:00
[AppService(ServiceType = typeof(ISysUserRoleService), ServiceLifetime = LifeTime.Transient)]
2022-09-21 21:43:05 +08:00
public class SysUserRoleService : BaseService<SysUserRole>, ISysUserRoleService
2021-08-23 16:57:25 +08:00
{
/// <summary>
/// 通过角色ID查询角色使用数量
/// </summary>
/// <param name="roleId"></param>
/// <returns></returns>
public int CountUserRoleByRoleId(long roleId)
{
2022-09-21 21:43:05 +08:00
return Count(it => it.RoleId == roleId);
2021-08-23 16:57:25 +08:00
}
/// <summary>
/// 删除用户角色
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
public int DeleteUserRoleByUserId(int userId)
{
2022-10-20 18:30:05 +08:00
return Delete(it => it.UserId == userId) ? 1 : 0;
2021-08-23 16:57:25 +08:00
}
/// <summary>
/// 批量删除角色对应用户
/// </summary>
/// <param name="roleId"></param>
/// <param name="userIds"></param>
/// <returns></returns>
public int DeleteRoleUserByUserIds(long roleId, List<long> userIds)
{
2022-10-20 18:30:05 +08:00
return Delete(it => it.RoleId == roleId && userIds.Contains(it.UserId)) ? 1 : 0;
2021-08-23 16:57:25 +08:00
}
/// <summary>
/// 添加用户角色
/// </summary>
2022-09-21 21:43:05 +08:00
/// <param name="sysUserRoles"></param>
2021-08-23 16:57:25 +08:00
/// <returns></returns>
2022-09-21 21:43:05 +08:00
public int AddUserRole(List<SysUserRole> sysUserRoles)
2021-08-23 16:57:25 +08:00
{
2022-09-21 21:43:05 +08:00
return Insert(sysUserRoles);
2021-08-23 16:57:25 +08:00
}
/// <summary>
/// 获取用户数据根据角色id
/// </summary>
/// <param name="roleId"></param>
/// <returns></returns>
public List<SysUser> GetSysUsersByRoleId(long roleId)
{
2023-05-18 18:06:19 +08:00
return Context.Queryable<SysUserRole, SysUser>((t1, u) => new JoinQueryInfos(
2022-10-20 18:30:05 +08:00
JoinType.Left, t1.UserId == u.UserId))
2023-05-18 18:06:19 +08:00
.WithCache(60 * 10)
.Where((t1, u) => t1.RoleId == roleId && u.DelFlag == 0)
.Select((t1, u) => u)
.ToList();
2021-08-23 16:57:25 +08:00
}
2021-12-17 09:55:48 +08:00
/// <summary>
/// 获取用户数据根据角色id
/// </summary>
/// <param name="roleUserQueryDto"></param>
/// <returns></returns>
public PagedInfo<SysUser> GetSysUsersByRoleId(RoleUserQueryDto roleUserQueryDto)
{
2022-10-20 18:30:05 +08:00
var query = Context.Queryable<SysUserRole, SysUser>((t1, u) => new JoinQueryInfos(
JoinType.Left, t1.UserId == u.UserId))
2023-05-15 19:52:54 +08:00
.Where((t1, u) => t1.RoleId == roleUserQueryDto.RoleId && u.DelFlag == 0);
2022-10-20 18:30:05 +08:00
if (!string.IsNullOrEmpty(roleUserQueryDto.UserName))
{
query = query.Where((t1, u) => u.UserName.Contains(roleUserQueryDto.UserName));
}
return query.Select((t1, u) => u).ToPage(roleUserQueryDto);
2021-12-17 09:55:48 +08:00
}
/// <summary>
/// 获取尚未指派的用户数据根据角色id
/// </summary>
/// <param name="roleUserQueryDto"></param>
/// <returns></returns>
public PagedInfo<SysUser> GetExcludedSysUsersByRoleId(RoleUserQueryDto roleUserQueryDto)
{
2022-10-20 18:30:05 +08:00
var query = Context.Queryable<SysUser>()
2023-05-15 19:52:54 +08:00
.Where(it => it.DelFlag == 0)
2022-10-20 18:30:05 +08:00
.Where(it => SqlFunc.Subqueryable<SysUserRole>().Where(s => s.UserId == it.UserId && s.RoleId == roleUserQueryDto.RoleId).NotAny())
.WhereIF(roleUserQueryDto.UserName.IsNotEmpty(), it => it.UserName.Contains(roleUserQueryDto.UserName));
return query.ToPage(roleUserQueryDto);
2021-12-17 09:55:48 +08:00
}
2021-08-23 16:57:25 +08:00
/// <summary>
/// 新增用户角色信息
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
public int InsertUserRole(SysUser user)
{
2022-09-21 21:43:05 +08:00
List<SysUserRole> userRoles = new();
2021-08-23 16:57:25 +08:00
foreach (var item in user.RoleIds)
{
userRoles.Add(new SysUserRole() { RoleId = item, UserId = user.UserId });
}
return userRoles.Count > 0 ? AddUserRole(userRoles) : 0;
}
/// <summary>
/// 新增加角色用户
/// </summary>
2022-09-21 21:43:05 +08:00
/// <param name="roleUsersCreateDto"></param>
2021-08-23 16:57:25 +08:00
/// <returns></returns>
public int InsertRoleUser(RoleUsersCreateDto roleUsersCreateDto)
{
2022-10-20 18:30:05 +08:00
List<SysUserRole> userRoles = new();
2021-08-23 16:57:25 +08:00
foreach (var item in roleUsersCreateDto.UserIds)
{
userRoles.Add(new SysUserRole() { RoleId = roleUsersCreateDto.RoleId, UserId = item });
}
return userRoles.Count > 0 ? AddUserRole(userRoles) : 0;
}
}
}