sunpengfei
2025-08-01 dade4ec44ae9a42d6447589d34124a38f264100a
feat:菜单
7个文件已修改
108 ■■■■■ 已修改文件
FlexJobApi.Core/Utils/DbUtils/DbUtils.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.User.Application/Auths/AuthAppService.cs 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.User.Application/Auths/Commands/AuthPasswordLoginCommandHandler.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.User.Application/FlexJobApi.User.Application.xml 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.User.Application/Menus/Commands/MenuSaveCommandHandler.cs 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.User.Application/Menus/MenuAppService.cs 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.User.Application/Menus/Queries/MenuAllQueryHandler.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
                    }
                    // 赋值用户信息Id
@@ -178,7 +178,7 @@
                        : EnumDbAuditOperate.Deleted,
                    TraceId = App.GetTraceId(),
                    CreatedTime = DateTime.Now,
                    CreatedUserInfoId = logier.UserInfoId,
                    CreatedUserInfoId = logier?.UserInfoId,
                });
            }
        }
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>
        /// 密码登录
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()
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>
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;
        }
    }
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>
        /// 查询所有菜单
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();