From dade4ec44ae9a42d6447589d34124a38f264100a Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期五, 01 八月 2025 16:35:21 +0800
Subject: [PATCH] feat:菜单

---
 FlexJobApi.Core/Utils/DbUtils/DbUtils.cs                                      |    6 +-
 FlexJobApi.User.Application/FlexJobApi.User.Application.xml                   |   34 +++++++++++++++++
 FlexJobApi.User.Application/Menus/Queries/MenuAllQueryHandler.cs              |   13 ++----
 FlexJobApi.User.Application/Auths/Commands/AuthPasswordLoginCommandHandler.cs |   18 +++-----
 FlexJobApi.User.Application/Menus/Commands/MenuSaveCommandHandler.cs          |   19 ++++-----
 FlexJobApi.User.Application/Menus/MenuAppService.cs                           |    9 +---
 FlexJobApi.User.Application/Auths/AuthAppService.cs                           |    9 +---
 7 files changed, 62 insertions(+), 46 deletions(-)

diff --git a/FlexJobApi.Core/Utils/DbUtils/DbUtils.cs b/FlexJobApi.Core/Utils/DbUtils/DbUtils.cs
index ffb3bae..1547067 100644
--- a/FlexJobApi.Core/Utils/DbUtils/DbUtils.cs
+++ b/FlexJobApi.Core/Utils/DbUtils/DbUtils.cs
@@ -101,7 +101,7 @@
                     var prop = entity.Property(nameof(CommonEntity.CreatedTime));
                     if (prop != null && prop.CurrentValue?.ToDateTime() == null)
                     {
-                        prop.CurrentValue = DateTime.Now;
+                        prop.CurrentValue = DateTimeOffset.Now;
                     }
 
                     // 鐢熸垚Id
@@ -125,7 +125,7 @@
                     var prop = entity.Property(nameof(CommonEntity.UpdatedTime));
                     if (prop != null && prop.CurrentValue?.ToDateTime() == null)
                     {
-                        prop.CurrentValue = DateTime.Now;
+                        prop.CurrentValue = DateTimeOffset.Now;
                     }
 
                     // 璧嬪�肩敤鎴蜂俊鎭疘d
@@ -178,7 +178,7 @@
                         : EnumDbAuditOperate.Deleted,
                     TraceId = App.GetTraceId(),
                     CreatedTime = DateTime.Now,
-                    CreatedUserInfoId = logier.UserInfoId,
+                    CreatedUserInfoId = logier?.UserInfoId,
                 });
             }
         }
diff --git a/FlexJobApi.User.Application/Auths/AuthAppService.cs b/FlexJobApi.User.Application/Auths/AuthAppService.cs
index 24379f4..2b2495f 100644
--- a/FlexJobApi.User.Application/Auths/AuthAppService.cs
+++ b/FlexJobApi.User.Application/Auths/AuthAppService.cs
@@ -12,14 +12,9 @@
     /// 璁よ瘉
     /// </summary>
     [Route("api/user/[controller]")]
-    public class AuthAppService : IDynamicApiController
+    public class AuthAppService(IMediator mediator) : IDynamicApiController
     {
-        private readonly IMediator mediator;
-
-        public AuthAppService(IMediator mediator)
-        {
-            this.mediator = mediator;
-        }
+        private readonly IMediator mediator = mediator;
 
         /// <summary>
         /// 瀵嗙爜鐧诲綍
diff --git a/FlexJobApi.User.Application/Auths/Commands/AuthPasswordLoginCommandHandler.cs b/FlexJobApi.User.Application/Auths/Commands/AuthPasswordLoginCommandHandler.cs
index 018d847..a2a1a45 100644
--- a/FlexJobApi.User.Application/Auths/Commands/AuthPasswordLoginCommandHandler.cs
+++ b/FlexJobApi.User.Application/Auths/Commands/AuthPasswordLoginCommandHandler.cs
@@ -16,19 +16,15 @@
     /// <summary>
     /// 瀵嗙爜鐧诲綍
     /// </summary>
-    public class AuthPasswordLoginCommandHandler : IRequestHandler<AuthPasswordLoginCommand, AuthPasswordLoginCallback>
+    public class AuthPasswordLoginCommandHandler(
+        IRepository<UserAuth> userAuthRep,
+        IRepository<UserInfo> userInfoRep) 
+        : IRequestHandler<AuthPasswordLoginCommand, AuthPasswordLoginCallback>
     {
-        private readonly IRepository<UserAuth> userAuthRep;
-        private readonly IRepository<UserInfo> userInfoRep;
+        private readonly IRepository<UserAuth> userAuthRep = userAuthRep;
+        private readonly IRepository<UserInfo> userInfoRep = userInfoRep;
 
-        public AuthPasswordLoginCommandHandler(
-            IRepository<UserAuth> userAuthRep,
-            IRepository<UserInfo> userInfoRep)
-        {
-            this.userAuthRep = userAuthRep;
-            this.userInfoRep = userInfoRep;
-        }
-
+        /// <inheritdoc/>
         public async Task<AuthPasswordLoginCallback> Handle(AuthPasswordLoginCommand request, CancellationToken cancellationToken)
         {
             var userInfo = await userInfoRep.AsQueryable().AsNoTracking()
diff --git a/FlexJobApi.User.Application/FlexJobApi.User.Application.xml b/FlexJobApi.User.Application/FlexJobApi.User.Application.xml
index 9f844af..be1b05f 100644
--- a/FlexJobApi.User.Application/FlexJobApi.User.Application.xml
+++ b/FlexJobApi.User.Application/FlexJobApi.User.Application.xml
@@ -9,6 +9,11 @@
             璁よ瘉
             </summary>
         </member>
+        <member name="M:FlexJobApi.User.Application.AuthAppService.#ctor(MediatR.IMediator)">
+            <summary>
+            璁よ瘉
+            </summary>
+        </member>
         <member name="M:FlexJobApi.User.Application.AuthAppService.PasswordLogin(FlexJobApi.Core.AuthPasswordLoginCommand)">
             <summary>
             瀵嗙爜鐧诲綍
@@ -20,6 +25,14 @@
             <summary>
             瀵嗙爜鐧诲綍
             </summary>
+        </member>
+        <member name="M:FlexJobApi.User.Application.AuthPasswordLoginCommandHandler.#ctor(Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.UserAuth},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.UserInfo})">
+            <summary>
+            瀵嗙爜鐧诲綍
+            </summary>
+        </member>
+        <member name="M:FlexJobApi.User.Application.AuthPasswordLoginCommandHandler.Handle(FlexJobApi.Core.AuthPasswordLoginCommand,System.Threading.CancellationToken)">
+            <inheritdoc/>
         </member>
         <member name="F:FlexJobApi.User.Application.EnumUserErrorCodeType.s100">
             <summary>
@@ -36,7 +49,20 @@
             淇濆瓨鑿滃崟
             </summary>
         </member>
+        <member name="M:FlexJobApi.User.Application.MenuSaveCommandHandler.#ctor(Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.Menu})">
+            <summary>
+            淇濆瓨鑿滃崟
+            </summary>
+        </member>
+        <member name="M:FlexJobApi.User.Application.MenuSaveCommandHandler.Handle(FlexJobApi.Core.MenuSaveCommand,System.Threading.CancellationToken)">
+            <inheritdoc/>
+        </member>
         <member name="T:FlexJobApi.User.Application.MenuAppService">
+            <summary>
+            鑿滃崟
+            </summary>
+        </member>
+        <member name="M:FlexJobApi.User.Application.MenuAppService.#ctor(MediatR.IMediator)">
             <summary>
             鑿滃崟
             </summary>
@@ -60,5 +86,13 @@
             鏌ヨ鎵�鏈夎彍鍗�
             </summary>
         </member>
+        <member name="M:FlexJobApi.User.Application.MenuAllQueryHandler.#ctor(Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.Menu})">
+            <summary>
+            鏌ヨ鎵�鏈夎彍鍗�
+            </summary>
+        </member>
+        <member name="M:FlexJobApi.User.Application.MenuAllQueryHandler.Handle(FlexJobApi.Core.MenuAllQuery,System.Threading.CancellationToken)">
+            <inheritdoc/>
+        </member>
     </members>
 </doc>
diff --git a/FlexJobApi.User.Application/Menus/Commands/MenuSaveCommandHandler.cs b/FlexJobApi.User.Application/Menus/Commands/MenuSaveCommandHandler.cs
index 480faa0..4ab1616 100644
--- a/FlexJobApi.User.Application/Menus/Commands/MenuSaveCommandHandler.cs
+++ b/FlexJobApi.User.Application/Menus/Commands/MenuSaveCommandHandler.cs
@@ -15,16 +15,13 @@
     /// <summary>
     /// 淇濆瓨鑿滃崟
     /// </summary>
-    public class MenuSaveCommandHandler : IRequestHandler<MenuSaveCommand, Guid>
+    public class MenuSaveCommandHandler(
+        IRepository<Menu> menuRep)
+        : IRequestHandler<MenuSaveCommand, Guid>
     {
-        private readonly IRepository<Menu> menuRep;
+        private readonly IRepository<Menu> menuRep = menuRep;
 
-        public MenuSaveCommandHandler(
-            IRepository<Menu> menuRep)
-        {
-            this.menuRep = menuRep;
-        }
-
+        /// <inheritdoc/>
         public async Task<Guid> Handle(MenuSaveCommand request, CancellationToken cancellationToken)
         {
             var menu =
@@ -32,8 +29,10 @@
                 ? await menuRep.AsQueryable().FirstOrDefaultAsync(it => it.Id == request.Id, cancellationToken)
                 : new Menu();
             if (menu == null) throw Oops.Oh(EnumUserErrorCodeType.s100, "鑿滃崟");
-            menu.Adapt(request);
-            await menuRep.SaveNowAsync(cancellationToken);
+            request.Adapt(menu);
+            var result = request.Id == null
+                ? await menuRep.InsertNowAsync(menu, cancellationToken: cancellationToken)
+                : await menuRep.UpdateNowAsync(menu, cancellationToken: cancellationToken);
             return menu.Id;
         }
     }
diff --git a/FlexJobApi.User.Application/Menus/MenuAppService.cs b/FlexJobApi.User.Application/Menus/MenuAppService.cs
index 5b2104f..0344b35 100644
--- a/FlexJobApi.User.Application/Menus/MenuAppService.cs
+++ b/FlexJobApi.User.Application/Menus/MenuAppService.cs
@@ -14,14 +14,9 @@
     /// 鑿滃崟
     /// </summary>
     [Route("api/user/[controller]")]
-    public class MenuAppService : IDynamicApiController
+    public class MenuAppService(IMediator mediator) : IDynamicApiController
     {
-        private readonly IMediator mediator;
-
-        public MenuAppService(IMediator mediator)
-        {
-            this.mediator = mediator;
-        }
+        private readonly IMediator mediator = mediator;
 
         /// <summary>
         /// 鏌ヨ鎵�鏈夎彍鍗�
diff --git a/FlexJobApi.User.Application/Menus/Queries/MenuAllQueryHandler.cs b/FlexJobApi.User.Application/Menus/Queries/MenuAllQueryHandler.cs
index d2bba62..42eeb76 100644
--- a/FlexJobApi.User.Application/Menus/Queries/MenuAllQueryHandler.cs
+++ b/FlexJobApi.User.Application/Menus/Queries/MenuAllQueryHandler.cs
@@ -14,16 +14,13 @@
     /// <summary>
     /// 鏌ヨ鎵�鏈夎彍鍗�
     /// </summary>
-    public class MenuAllQueryHandler : IRequestHandler<MenuAllQuery, MenuAllCallback>
+    public class MenuAllQueryHandler(
+        IRepository<Menu> menuRep) 
+        : IRequestHandler<MenuAllQuery, MenuAllCallback>
     {
-        private readonly IRepository<Menu> menuRep;
+        private readonly IRepository<Menu> menuRep = menuRep;
 
-        public MenuAllQueryHandler(
-            IRepository<Menu> menuRep)
-        {
-            this.menuRep = menuRep;
-        }
-
+        /// <inheritdoc/>
         public async Task<MenuAllCallback> Handle(MenuAllQuery request, CancellationToken cancellationToken)
         {
             var config = new TypeAdapterConfig();

--
Gitblit v1.9.1