LqUserProfileAuditService.cs
2.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
using System.Linq;
using System.Threading.Tasks;
using NCC.Common.Core.Manager;
using NCC.Common.Filter;
using NCC.Dependency;
using NCC.DynamicApiController;
using NCC.Extend.Entitys.lq_user_profile_audit;
using NCC.Common.Enum;
using NCC.FriendlyException;
using Microsoft.AspNetCore.Mvc;
using NCC.System.Entitys.Permission;
using SqlSugar;
namespace NCC.Extend
{
/// <summary>
/// 用户主档字段级审计查询(R-001)
/// </summary>
[ApiDescriptionSettings(Tag = "绿纤用户主档审计", Name = "LqUserProfileAudit", Order = 200)]
[Route("api/Extend/[controller]")]
public class LqUserProfileAuditService : IDynamicApiController, ITransient
{
private readonly ISqlSugarClient _db;
private readonly IUserManager _userManager;
public LqUserProfileAuditService(ISqlSugarClient db, IUserManager userManager)
{
_db = db;
_userManager = userManager;
}
/// <summary>
/// 分页查询指定用户的字段级变更记录(需具备目标用户所在机构的数据权限或管理员)。
/// </summary>
[HttpGet("logs")]
public async Task<dynamic> GetLogs([FromQuery] string targetUserId, [FromQuery] PageInputBase page)
{
if (string.IsNullOrWhiteSpace(targetUserId))
{
throw NCCException.Oh("targetUserId 不能为空");
}
page ??= new PageInputBase();
var userInfo = await _userManager.GetUserInfo();
var target = await _db.Queryable<UserEntity>()
.Where(x => x.Id == targetUserId && x.DeleteMark == null)
.FirstAsync();
if (target == null)
{
throw NCCException.Oh("目标用户不存在");
}
if (!userInfo.isAdministrator
&& !userInfo.dataScope.Any(it => it.organizeId == target.OrganizeId && it.Edit == true))
{
throw NCCException.Oh(ErrorCode.D1013);
}
var q = _db.Queryable<LqUserProfileAuditEntity>()
.Where(x => x.TargetUserId == targetUserId)
.OrderBy(x => x.OperateTime, OrderByType.Desc);
var data = await q.ToPagedListAsync(page.currentPage, page.pageSize);
return PageResult<LqUserProfileAuditEntity>.SqlSugarPageResult(data);
}
}
}