odf_new/server/ZR.Service/Business/OdfUserModulesService.cs
zpc 7c4d7d5978 feat: ODF v1.0.2 功能更新 - 签到、干线故障、光缆管理、用户模块权限
数据库:
- 新增 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 模块和表单组件
2026-03-04 14:08:48 +08:00

75 lines
2.4 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;
}
}
}