数据库: - 新增 odf_checkin/odf_cables/odf_cable_faults/odf_cable_fault_images/odf_user_modules 5张表 - 新增菜单权限和角色分配 SQL 脚本 后台 API (.NET/SqlSugar): - 新增实体模型、DTO、Service、Controller (签到/光缆/故障/图片/用户模块) 前端 APP (UniApp): - 新增 portal/checkin/trunk/cable/fault-list/fault-detail/fault-add/trunk-search/route-plan 9个页面 - 新增 permission/checkin/trunk 服务层 - 新增 navigation/watermark 工具函数 后台管理前端 (ZR.Vue): - 新增光缆管理/干线故障管理/签到记录管理/用户模块权限 4个管理页面 - 新增对应 API 模块和表单组件
75 lines
2.4 KiB
C#
75 lines
2.4 KiB
C#
using Infrastructure.Attribute;
|
||
using ZR.Model.Business;
|
||
using ZR.Model.System;
|
||
using ZR.Repository;
|
||
using ZR.Service.Business.IBusinessService;
|
||
|
||
namespace ZR.Service.Business
|
||
{
|
||
/// <summary>
|
||
/// 用户模块权限Service业务层处理
|
||
/// </summary>
|
||
[AppService(ServiceType = typeof(IOdfUserModulesService), ServiceLifetime = LifeTime.Transient)]
|
||
public class OdfUserModulesService : BaseService<OdfUserModules>, IOdfUserModulesService
|
||
{
|
||
/// <summary>
|
||
/// 获取用户的功能版块列表
|
||
/// </summary>
|
||
/// <param name="userId"></param>
|
||
/// <returns></returns>
|
||
public List<string> GetUserModules(long userId)
|
||
{
|
||
return Queryable()
|
||
.Where(x => x.UserId == userId)
|
||
.Select(x => x.ModuleCode)
|
||
.ToList();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取用户列表(userId, userName)
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public List<dynamic> GetUserList()
|
||
{
|
||
return Context.Queryable<SysUser>()
|
||
.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();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 保存用户模块权限(先删后插,事务保证原子性)
|
||
/// </summary>
|
||
/// <param name="userId"></param>
|
||
/// <param name="modules"></param>
|
||
/// <returns></returns>
|
||
public int SaveUserModules(long userId, List<string> 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;
|
||
}
|
||
}
|
||
}
|