using Infrastructure.Attribute;
using ZR.Model.Business;
using ZR.Model.System;
using ZR.Repository;
using ZR.Service.Business.IBusinessService;
namespace ZR.Service.Business
{
///
/// 用户模块权限Service业务层处理
///
[AppService(ServiceType = typeof(IOdfUserModulesService), ServiceLifetime = LifeTime.Transient)]
public class OdfUserModulesService : BaseService, IOdfUserModulesService
{
///
/// 获取用户的功能版块列表
///
///
///
public List GetUserModules(long userId)
{
return Queryable()
.Where(x => x.UserId == userId)
.Select(x => x.ModuleCode)
.ToList();
}
///
/// 获取用户列表(userId, userName)
///
///
public List GetUserList()
{
return Context.Queryable()
.Where(u => u.DelFlag == 0 && u.Status == 0)
.Select(u => new { u.UserId, u.NickName })
.ToList()
.Select(u => (dynamic)new { u.UserId, userName = u.NickName })
.ToList();
}
///
/// 保存用户模块权限(先删后插,事务保证原子性)
///
///
///
///
public int SaveUserModules(long userId, List modules)
{
var result = UseTran(() =>
{
// 先删除该用户的所有模块权限
Deleteable()
.Where(x => x.UserId == userId)
.ExecuteCommand();
// 再插入新的模块权限
if (modules != null && modules.Count > 0)
{
var list = modules.Select(m => new OdfUserModules
{
UserId = userId,
ModuleCode = m,
CreatedAt = DateTime.Now
}).ToList();
Insert(list);
}
});
return result.IsSuccess ? 1 : 0;
}
}
}