重大更新

This commit is contained in:
qianhao.xu 2024-07-05 16:55:06 +08:00
parent 3b4abc97fb
commit 9615c8297a
13 changed files with 93 additions and 13 deletions

View File

@ -34,7 +34,7 @@ namespace DOAN.Admin.WebApi.Controllers
/// <param name="parm"></param>
/// <returns></returns>
[HttpGet("list")]
[ActionPermissionFilter(Permission = "deviceManagement:deviceinspect:list")]
public IActionResult QueryDeviceInspect([FromQuery] DeviceInspectQueryDto parm)
{
var response = _DeviceInspectService.GetList(parm);

View File

@ -31,7 +31,7 @@ namespace DOAN.Admin.WebApi.Controllers
/// <param name="parm"></param>
/// <returns></returns>
[HttpGet("list")]
[ActionPermissionFilter(Permission = "business:devicemaintenancerecord:list")]
// [ActionPermissionFilter(Permission = "business:devicemaintenancerecord:list")]
public IActionResult QueryDeviceMaintenanceRecord([FromQuery] DeviceMaintenanceRecordQueryDto parm)
{
var response = _DeviceMaintenanceRecordService.GetList(parm);

View File

@ -31,7 +31,7 @@ namespace DOAN.Admin.WebApi.Controllers
/// <param name="parm"></param>
/// <returns></returns>
[HttpGet("list")]
[ActionPermissionFilter(Permission = "deviceManagement:devicepointinspectionplan:list")]
public IActionResult QueryDevicePointInspectionPlan([FromQuery] DevicePointInspectionPlanQueryDto parm)
{
var response = _DevicePointInspectionPlanService.GetList(parm);

View File

@ -31,7 +31,7 @@ namespace DOAN.Admin.WebApi.Controllers
/// <param name="parm"></param>
/// <returns></returns>
[HttpPost("list")]
[ActionPermissionFilter(Permission = "business:devicerepair:list")]
public IActionResult QueryDeviceRepair([FromBody] DeviceRepairQueryDto parm)
{
var response = _DeviceRepairService.GetList(parm);

View File

@ -31,7 +31,7 @@ namespace DOAN.Admin.WebApi.Controllers
/// <param name="parm"></param>
/// <returns></returns>
[HttpGet("list")]
[ActionPermissionFilter(Permission = "deviceManagement:devicerouteinspectionplan:list")]
public IActionResult QueryDeviceRouteInspectionPlan([FromQuery] DeviceRouteInspectionPlanQueryDto parm)
{
var response = _DeviceRouteInspectionPlanService.GetList(parm);

View File

@ -35,7 +35,7 @@ namespace DOAN.Admin.WebApi.Controllers
/// <param name="parm"></param>
/// <returns></returns>
[HttpPost("list")]
[ActionPermissionFilter(Permission = "deviceManagement:devicetaskexecute:list")]
public IActionResult QueryDeviceTaskExecute([FromBody] DeviceTaskExecuteQueryDto parm)
{
var response = _DeviceTaskExecuteService.GetList(parm);
@ -83,6 +83,8 @@ namespace DOAN.Admin.WebApi.Controllers
[Log(Title = "任务执行", BusinessType = BusinessType.UPDATE)]
public IActionResult UpdateDeviceTaskExecute([FromBody] DeviceTaskExecuteDto parm)
{
Console.WriteLine(HttpContext.User?.Identity?.Name);
var modal = parm.Adapt<DeviceTaskExecute>().ToUpdate(HttpContext);
var response = _DeviceTaskExecuteService.UpdateDeviceTaskExecute(modal);
@ -308,7 +310,7 @@ namespace DOAN.Admin.WebApi.Controllers
{
return SUCCESS(null);
}
result.ToUpdate(HttpContext);
result.ToUpdate_nickName(HttpContext);
int res=_DeviceTaskExecuteService.UpdateFormResult(result);
return SUCCESS(res);
}

View File

@ -33,7 +33,7 @@ namespace DOAN.Admin.WebApi.Controllers
/// <param name="parm"></param>
/// <returns></returns>
[HttpGet("list")]
[ActionPermissionFilter(Permission = "deviceManagement:devicetaskexecuteresult1:list")]
public IActionResult QueryDeviceTaskExecuteResult1([FromQuery] DeviceTaskExecuteResultQueryDto parm)
{
var response = _DeviceTaskExecuteResultService.GetList(parm);

View File

@ -76,7 +76,9 @@ namespace DOAN.Admin.WebApi.Controllers.System
List<string> permissions = permissionService.GetMenuPermission(user);
TokenModel loginUser = new(user.Adapt<TokenModel>(), roles.Adapt<List<Roles>>());
loginUser.NickName = user.NickName;
CacheService.SetUserPerms(GlobalConstant.UserPermKEY + user.UserId, permissions);
//TODO 生成token HttpContext.User的赋值
return SUCCESS(JwtUtil.GenerateJwtToken(JwtUtil.AddClaims(loginUser)));
}

View File

@ -21,8 +21,24 @@ builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
//注入HttpContextAccessor
builder.Services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
//注入HttpContextAccessor TODO 这地方就是配置httpcontext https://blog.csdn.net/iqifenxia/article/details/121740805
//builder.Services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
builder.Services.AddHttpContextAccessor();
/*
ASP.NET Core中`IHttpContextAccessor`访HTTP请求上下文的接口`HttpContextAccessor``IHttpContextAccessor`
1. `Services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>()``HttpContextAccessor``IHttpContextAccessor`使singleton`HttpContextAccessor`
2. `Services.AddHttpContextAccessor()`ASP.NET Core提供的一种快捷方法`HttpContextAccessor``IHttpContextAccessor`Scoped生命周期Scoped生命周期意味着在同一个请求范围内`HttpContextAccessor`
使`Services.AddHttpContextAccessor()``HttpContextAccessor`ASP.NET Core的标准做法
*/
// 跨域配置
builder.Services.AddCors(builder.Configuration);
// 显示logo
@ -35,8 +51,8 @@ builder.Services.AddCaptcha(builder.Configuration);
//IPRatelimit
builder.Services.AddIPRate(builder.Configuration);
//builder.Services.AddSession();
builder.Services.AddHttpContextAccessor();
//builder.Services.AddSession();
//绑定整个对象到Model上
builder.Services.Configure<OptionsSetting>(builder.Configuration);

View File

@ -130,7 +130,7 @@ namespace Infrastructure
if (jwtSecurityToken == null) return null;
IEnumerable<Claim> claims = jwtSecurityToken?.Claims;
TokenModel loginUser = null;
//TODO 取出ClaimTypes.UserData 用户数据信息
var userData = claims.FirstOrDefault(x => x.Type == ClaimTypes.UserData)?.Value;
if (userData != null)
{
@ -157,6 +157,7 @@ namespace Infrastructure
{
new Claim(ClaimTypes.PrimarySid, user.UserId.ToString()),
new Claim(ClaimTypes.Name, user.UserName),
new Claim(ClaimTypes.UserData, JsonConvert.SerializeObject(user))
};

View File

@ -9,6 +9,7 @@ namespace Infrastructure.Model
public long UserId { get; set; }
public long DeptId { get; set; }
public string UserName { get; set; }
public string NickName { get; set; }
/// <summary>
/// 角色集合
/// </summary>

View File

@ -25,6 +25,29 @@ namespace Infrastructure
return source;
}
/// <summary>
/// 用昵称创造
/// </summary>
/// <typeparam name="TSource"></typeparam>
/// <param name="source"></param>
/// <param name="context"></param>
/// <returns></returns>
public static TSource ToCreate_nickName<TSource>(this TSource source, HttpContext? context = null)
{
var types = source?.GetType();
if (types == null || context == null) return source;
BindingFlags flag = BindingFlags.Public | BindingFlags.IgnoreCase | BindingFlags.Instance;
types.GetProperty("CreateTime", flag)?.SetValue(source, DateTime.Now, null);
types.GetProperty("CreatedTime", flag)?.SetValue(source, DateTime.Now, null);
types.GetProperty("AddTime", flag)?.SetValue(source, DateTime.Now, null);
types.GetProperty("CreateBy", flag)?.SetValue(source, context.GetNickName(), null);
types.GetProperty("CreatedBy", flag)?.SetValue(source, context.GetNickName(), null);
types.GetProperty("Create_by", flag)?.SetValue(source, context.GetNickName(), null);
types.GetProperty("UserId", flag)?.SetValue(source, context.GetNickName(), null);
return source;
}
public static TSource ToUpdate<TSource>(this TSource source, HttpContext? context = null)
{
@ -41,6 +64,28 @@ namespace Infrastructure
return source;
}
/// <summary>
/// 用昵称更新
/// </summary>
/// <typeparam name="TSource"></typeparam>
/// <param name="source"></param>
/// <param name="context"></param>
/// <returns></returns>
public static TSource ToUpdate_nickName<TSource>(this TSource source, HttpContext? context = null)
{
var types = source?.GetType();
if (types == null || context == null) return source;
BindingFlags flag = BindingFlags.Public | BindingFlags.IgnoreCase | BindingFlags.Instance;
types.GetProperty("UpdateTime", flag)?.SetValue(source, DateTime.Now, null);
types.GetProperty("UpdatedTime", flag)?.SetValue(source, DateTime.Now, null);
types.GetProperty("Update_time", flag)?.SetValue(source, DateTime.Now, null);
types.GetProperty("UpdateBy", flag)?.SetValue(source, context.GetNickName(), null);
types.GetProperty("UpdatedBy", flag)?.SetValue(source, context.GetNickName(), null);
types.GetProperty("Update_by", flag)?.SetValue(source, context.GetNickName(), null);
return source;
}
}
}

View File

@ -8,6 +8,8 @@ using System.Security.Claims;
using System.Text;
using System.Text.RegularExpressions;
using UAParser;
using Infrastructure;
using Infrastructure.Model;
namespace Infrastructure.Extensions
{
@ -89,9 +91,20 @@ namespace Infrastructure.Extensions
{
var uid = context.User?.Identity?.Name;
return uid;
}
// 把获取 username 改成昵称
public static string GetNickName(this HttpContext context)
{
TokenModel tokenModel= JwtUtil.GetLoginUser(context);
return tokenModel?.NickName;
}
/// <summary>
/// 判断是否是管理员
/// </summary>