diff --git a/DOAN.Admin.WebApi/Controllers/MES/dev/DeviceInspectController.cs b/DOAN.Admin.WebApi/Controllers/MES/dev/DeviceInspectController.cs
index 1678ea9..e647f76 100644
--- a/DOAN.Admin.WebApi/Controllers/MES/dev/DeviceInspectController.cs
+++ b/DOAN.Admin.WebApi/Controllers/MES/dev/DeviceInspectController.cs
@@ -34,7 +34,7 @@ namespace DOAN.Admin.WebApi.Controllers
///
///
[HttpGet("list")]
- [ActionPermissionFilter(Permission = "deviceManagement:deviceinspect:list")]
+
public IActionResult QueryDeviceInspect([FromQuery] DeviceInspectQueryDto parm)
{
var response = _DeviceInspectService.GetList(parm);
diff --git a/DOAN.Admin.WebApi/Controllers/MES/dev/DeviceMaintenanceRecordController.cs b/DOAN.Admin.WebApi/Controllers/MES/dev/DeviceMaintenanceRecordController.cs
index f155322..6819c71 100644
--- a/DOAN.Admin.WebApi/Controllers/MES/dev/DeviceMaintenanceRecordController.cs
+++ b/DOAN.Admin.WebApi/Controllers/MES/dev/DeviceMaintenanceRecordController.cs
@@ -31,7 +31,7 @@ namespace DOAN.Admin.WebApi.Controllers
///
///
[HttpGet("list")]
- [ActionPermissionFilter(Permission = "business:devicemaintenancerecord:list")]
+ // [ActionPermissionFilter(Permission = "business:devicemaintenancerecord:list")]
public IActionResult QueryDeviceMaintenanceRecord([FromQuery] DeviceMaintenanceRecordQueryDto parm)
{
var response = _DeviceMaintenanceRecordService.GetList(parm);
diff --git a/DOAN.Admin.WebApi/Controllers/MES/dev/DevicePointInspectionPlanController.cs b/DOAN.Admin.WebApi/Controllers/MES/dev/DevicePointInspectionPlanController.cs
index a9c7c45..b420410 100644
--- a/DOAN.Admin.WebApi/Controllers/MES/dev/DevicePointInspectionPlanController.cs
+++ b/DOAN.Admin.WebApi/Controllers/MES/dev/DevicePointInspectionPlanController.cs
@@ -31,7 +31,7 @@ namespace DOAN.Admin.WebApi.Controllers
///
///
[HttpGet("list")]
- [ActionPermissionFilter(Permission = "deviceManagement:devicepointinspectionplan:list")]
+
public IActionResult QueryDevicePointInspectionPlan([FromQuery] DevicePointInspectionPlanQueryDto parm)
{
var response = _DevicePointInspectionPlanService.GetList(parm);
diff --git a/DOAN.Admin.WebApi/Controllers/MES/dev/DeviceRepairController.cs b/DOAN.Admin.WebApi/Controllers/MES/dev/DeviceRepairController.cs
index 203410b..8176ed3 100644
--- a/DOAN.Admin.WebApi/Controllers/MES/dev/DeviceRepairController.cs
+++ b/DOAN.Admin.WebApi/Controllers/MES/dev/DeviceRepairController.cs
@@ -31,7 +31,7 @@ namespace DOAN.Admin.WebApi.Controllers
///
///
[HttpPost("list")]
- [ActionPermissionFilter(Permission = "business:devicerepair:list")]
+
public IActionResult QueryDeviceRepair([FromBody] DeviceRepairQueryDto parm)
{
var response = _DeviceRepairService.GetList(parm);
diff --git a/DOAN.Admin.WebApi/Controllers/MES/dev/DeviceRouteInspectionPlanController.cs b/DOAN.Admin.WebApi/Controllers/MES/dev/DeviceRouteInspectionPlanController.cs
index 3a84452..6a6fece 100644
--- a/DOAN.Admin.WebApi/Controllers/MES/dev/DeviceRouteInspectionPlanController.cs
+++ b/DOAN.Admin.WebApi/Controllers/MES/dev/DeviceRouteInspectionPlanController.cs
@@ -31,7 +31,7 @@ namespace DOAN.Admin.WebApi.Controllers
///
///
[HttpGet("list")]
- [ActionPermissionFilter(Permission = "deviceManagement:devicerouteinspectionplan:list")]
+
public IActionResult QueryDeviceRouteInspectionPlan([FromQuery] DeviceRouteInspectionPlanQueryDto parm)
{
var response = _DeviceRouteInspectionPlanService.GetList(parm);
diff --git a/DOAN.Admin.WebApi/Controllers/MES/dev/DeviceTaskExecuteController.cs b/DOAN.Admin.WebApi/Controllers/MES/dev/DeviceTaskExecuteController.cs
index 3bb7c6b..1297654 100644
--- a/DOAN.Admin.WebApi/Controllers/MES/dev/DeviceTaskExecuteController.cs
+++ b/DOAN.Admin.WebApi/Controllers/MES/dev/DeviceTaskExecuteController.cs
@@ -35,7 +35,7 @@ namespace DOAN.Admin.WebApi.Controllers
///
///
[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().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);
}
diff --git a/DOAN.Admin.WebApi/Controllers/MES/dev/DeviceTaskExecuteResultController.cs b/DOAN.Admin.WebApi/Controllers/MES/dev/DeviceTaskExecuteResultController.cs
index 8437b29..7144c5e 100644
--- a/DOAN.Admin.WebApi/Controllers/MES/dev/DeviceTaskExecuteResultController.cs
+++ b/DOAN.Admin.WebApi/Controllers/MES/dev/DeviceTaskExecuteResultController.cs
@@ -33,7 +33,7 @@ namespace DOAN.Admin.WebApi.Controllers
///
///
[HttpGet("list")]
- [ActionPermissionFilter(Permission = "deviceManagement:devicetaskexecuteresult1:list")]
+
public IActionResult QueryDeviceTaskExecuteResult1([FromQuery] DeviceTaskExecuteResultQueryDto parm)
{
var response = _DeviceTaskExecuteResultService.GetList(parm);
diff --git a/DOAN.Admin.WebApi/Controllers/System/SysLoginController.cs b/DOAN.Admin.WebApi/Controllers/System/SysLoginController.cs
index c26d95c..a823acd 100644
--- a/DOAN.Admin.WebApi/Controllers/System/SysLoginController.cs
+++ b/DOAN.Admin.WebApi/Controllers/System/SysLoginController.cs
@@ -76,7 +76,9 @@ namespace DOAN.Admin.WebApi.Controllers.System
List permissions = permissionService.GetMenuPermission(user);
TokenModel loginUser = new(user.Adapt(), roles.Adapt>());
+ loginUser.NickName = user.NickName;
CacheService.SetUserPerms(GlobalConstant.UserPermKEY + user.UserId, permissions);
+ //TODO 生成token (HttpContext.User的赋值)
return SUCCESS(JwtUtil.GenerateJwtToken(JwtUtil.AddClaims(loginUser)));
}
diff --git a/DOAN.Admin.WebApi/Program.cs b/DOAN.Admin.WebApi/Program.cs
index 04b25c4..dde3ee4 100644
--- a/DOAN.Admin.WebApi/Program.cs
+++ b/DOAN.Admin.WebApi/Program.cs
@@ -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();
+//注入HttpContextAccessor TODO 这地方就是配置httpcontext https://blog.csdn.net/iqifenxia/article/details/121740805
+//builder.Services.AddSingleton();
+builder.Services.AddHttpContextAccessor();
+/*
+ 在ASP.NET Core中,`IHttpContextAccessor`是用于访问HTTP请求上下文的接口,而`HttpContextAccessor`是`IHttpContextAccessor`接口的一个默认实现。
+
+区别在于:
+1. `Services.AddSingleton()`会将`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(builder.Configuration);
diff --git a/Infrastructure/JwtUtil.cs b/Infrastructure/JwtUtil.cs
index bf6a71d..78802c6 100644
--- a/Infrastructure/JwtUtil.cs
+++ b/Infrastructure/JwtUtil.cs
@@ -130,7 +130,7 @@ namespace Infrastructure
if (jwtSecurityToken == null) return null;
IEnumerable 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))
};
diff --git a/Infrastructure/Model/TokenModel.cs b/Infrastructure/Model/TokenModel.cs
index bdfd86a..e624778 100644
--- a/Infrastructure/Model/TokenModel.cs
+++ b/Infrastructure/Model/TokenModel.cs
@@ -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; }
///
/// 角色集合
///
diff --git a/Infrastructure/WebExtensions/EntityExtension.cs b/Infrastructure/WebExtensions/EntityExtension.cs
index c946e6d..6c47528 100644
--- a/Infrastructure/WebExtensions/EntityExtension.cs
+++ b/Infrastructure/WebExtensions/EntityExtension.cs
@@ -25,6 +25,29 @@ namespace Infrastructure
return source;
}
+ ///
+ /// 用昵称创造
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static TSource ToCreate_nickName(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(this TSource source, HttpContext? context = null)
{
@@ -41,6 +64,28 @@ namespace Infrastructure
return source;
}
+ ///
+ /// 用昵称更新
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static TSource ToUpdate_nickName(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;
+ }
+
}
}
diff --git a/Infrastructure/WebExtensions/HttpContextExtension.cs b/Infrastructure/WebExtensions/HttpContextExtension.cs
index 23efa03..a6e42cf 100644
--- a/Infrastructure/WebExtensions/HttpContextExtension.cs
+++ b/Infrastructure/WebExtensions/HttpContextExtension.cs
@@ -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;
+ }
///
/// 判断是否是管理员
///