sunpengfei
2025-08-11 bbd4b2cecc2d8b9b141ffdf45ef5db51a0a0f53e
feat:开发
2个文件已添加
5个文件已修改
292 ■■■■■ 已修改文件
FlexJobApi.Core/Entities/UserServer/Users/User.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Enums/Users/EnumUserRealMethod.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/FlexJobApi.Core.xml 130 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Models/UserServer/Auths/Commands/PasswordLoginCommand.cs 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Models/UserServer/Users/Queries/GetPersonalLoginInfoQuery.cs 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.UserServer.Application/Auths/Commands/LoginCommandHandler.cs 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Entities/UserServer/Users/User.cs
@@ -1,4 +1,5 @@
using Furion.DatabaseAccessor;
using FlexJobApi.Core.Enums.Users;
using Furion.DatabaseAccessor;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using System;
@@ -122,6 +123,11 @@
        public bool IsReal { get; set; }
        /// <summary>
        /// 实名方式
        /// </summary>
        public EnumUserRealMethod? RealMethod { get; set; }
        /// <summary>
        /// 手机号
        /// </summary>
        /// <remarks>联系电话</remarks>
FlexJobApi.Core/Enums/Users/EnumUserRealMethod.cs
New file
@@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FlexJobApi.Core.Enums.Users
{
    /// <summary>
    /// 用户实名方式
    /// </summary>
    public enum EnumUserRealMethod
    {
        /// <summary>
        /// 个人手机号三要素
        /// </summary>
        Identity3 = 10,
        /// <summary>
        /// 银行卡多要素
        /// </summary>
        Identity4 = 20,
        /// <summary>
        /// 刷脸认证
        /// </summary>
        Face = 30
    }
}
FlexJobApi.Core/FlexJobApi.Core.xml
@@ -1750,6 +1750,11 @@
            是否实名
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.User.RealMethod">
            <summary>
            实名方式
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.User.ContactPhoneNumber">
            <summary>
            手机号
@@ -2029,6 +2034,26 @@
        <member name="F:FlexJobApi.Core.Enums.Common.EnumFileStoreAccess.AliyunOSS">
            <summary>
            阿里云OSS
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.Enums.Users.EnumUserRealMethod">
            <summary>
            用户实名方式
            </summary>
        </member>
        <member name="F:FlexJobApi.Core.Enums.Users.EnumUserRealMethod.Identity3">
            <summary>
            个人手机号三要素
            </summary>
        </member>
        <member name="F:FlexJobApi.Core.Enums.Users.EnumUserRealMethod.Identity4">
            <summary>
            银行卡多要素
            </summary>
        </member>
        <member name="F:FlexJobApi.Core.Enums.Users.EnumUserRealMethod.Face">
            <summary>
            刷脸认证
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.EnumFileType">
@@ -3896,21 +3921,6 @@
            <param name="logier"></param>
            <returns></returns>
        </member>
        <member name="T:FlexJobApi.Core.BindPhoneNumberCommand">
            <summary>
            绑定手机号
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.BindPhoneNumberCommand.PhoneNumber">
            <summary>
            手机号码
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.BindPhoneNumberCommand.VerifyCode">
            <summary>
            验证码
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.BindWxmpUserInfoCommand">
            <summary>
            绑定微信小程序用户信息
@@ -3929,6 +3939,21 @@
        <member name="P:FlexJobApi.Core.BindWxmpUserInfoCommand.SessionKey">
            <summary>
            获取会话密钥
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.ChangePhoneNumberCommand">
            <summary>
            更换手机号
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.ChangePhoneNumberCommand.PhoneNumber">
            <summary>
            手机号码
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.ChangePhoneNumberCommand.VerifyCode">
            <summary>
            验证码
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.PasswordLoginCommand">
@@ -3976,6 +4001,26 @@
            刷新令牌
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.LoginCommandCallback.IsBindPhoneNumber">
            <summary>
            是否已绑定手机号
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.RegisterPersonalUserCommand">
            <summary>
            注册个人账号
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.RegisterPersonalUserCommand.PhoneNumber">
            <summary>
            手机号码
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.RegisterPersonalUserCommand.VerifyCode">
            <summary>
            验证码
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.SendLoginOrRegisterVerifyCodeCommand">
            <summary>
            发送登录或注册短信
@@ -4009,6 +4054,16 @@
        <member name="P:FlexJobApi.Core.SmsLoginCommand.ClientType">
            <summary>
            客户端类型
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.UpdatePhoneNumberVerifyCodeCommand">
            <summary>
            发送更换手机号短信
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.UpdatePhoneNumberVerifyCodeCommand.PhoneNumber">
            <summary>
            手机号码
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.WxmpLoginCommand">
@@ -6119,6 +6174,51 @@
            名称
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.GetPersonalLoginInfoQuery">
            <summary>
            查询个人用户登录信息
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.GetPersonalLoginInfoQueryResult">
            <summary>
            查询个人用户信息-结果
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetPersonalLoginInfoQueryResult.Id">
            <summary>
            Id
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetPersonalLoginInfoQueryResult.Name">
            <summary>
            姓名
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetPersonalLoginInfoQueryResult.IsReal">
            <summary>
            是否实名
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetPersonalLoginInfoQueryResult.RealMethod">
            <summary>
            实名方式
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetPersonalLoginInfoQueryResult.TaskCount">
            <summary>
            我的报名
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetPersonalLoginInfoQueryResult.HirePassTaskCount">
            <summary>
            已录用
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetPersonalLoginInfoQueryResult.HireRefuseTaskCount">
            <summary>
            已取消
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.GetUserInfoRolesQuery">
            <summary>
            查询用户角色列表
FlexJobApi.Core/Models/UserServer/Auths/Commands/PasswordLoginCommand.cs
@@ -59,7 +59,12 @@
        public string RefreshToken { get; set; }
        /// <summary>
        /// 是否已绑定手机号
        /// 会话秘钥(仅用于微信小程序授权登录)
        /// </summary>
        public string SessionKey { get; set; }
        /// <summary>
        /// 是否已绑定手机号(仅用于微信小程序授权登录)
        /// </summary>
        public bool IsBindPhoneNumber { get; set; }
    }
FlexJobApi.Core/Models/UserServer/Users/Queries/GetPersonalLoginInfoQuery.cs
New file
@@ -0,0 +1,60 @@
using FlexJobApi.Core.Enums.Users;
using MediatR;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FlexJobApi.Core
{
    /// <summary>
    /// 查询个人用户登录信息
    /// </summary>
    [Resource([EnumResourceController.Auth])]
    public class GetPersonalLoginInfoQuery : IRequest<GetPersonalLoginInfoQueryResult>
    {
    }
    /// <summary>
    /// 查询个人用户信息-结果
    /// </summary>
    public class GetPersonalLoginInfoQueryResult
    {
        /// <summary>
        /// Id
        /// </summary>
        public Guid Id { get; set; }
        /// <summary>
        /// 姓名
        /// </summary>
        public string Name { get; set; }
        /// <summary>
        /// 是否实名
        /// </summary>
        public bool IsReal { get; set; }
        /// <summary>
        /// 实名方式
        /// </summary>
        public EnumUserRealMethod? RealMethod { get; set; }
        /// <summary>
        /// 我的报名
        /// </summary>
        public int TaskCount { get; set; }
        /// <summary>
        /// 已录用
        /// </summary>
        public int HirePassTaskCount { get; set; }
        /// <summary>
        /// 已取消
        /// </summary>
        public int HireRefuseTaskCount { get; set; }
    }
}
FlexJobApi.UserServer.Application/Auths/Commands/LoginCommandHandler.cs
@@ -27,7 +27,8 @@
        IRequestHandler<WxmpLoginCommand, LoginCommandCallback>,
        IRequestHandler<BindWxmpUserInfoCommand, LoginCommandCallback>,
        IRequestHandler<ChangePhoneNumberCommand, bool>,
        IRequestHandler<RegisterPersonalUserCommand, bool>
        IRequestHandler<RegisterPersonalUserCommand, bool>,
        IRequestHandler<GetPersonalLoginInfoQuery, GetPersonalLoginInfoQueryResult>
    {
        private readonly IRepository<User> rep = rep;
        private readonly SmsUtils smsUtils = smsUtils;
@@ -104,7 +105,7 @@
                throw Oops.Oh(EnumUserErrorCodeType.u1000);
            if (user.Status == EnumUserStatus.Disabled)
                throw Oops.Oh(EnumUserErrorCodeType.u1001);
            return GetCurrentLogier(user, EnumClientType.Wxmp);
            return GetCurrentLogier(user, EnumClientType.Wxmp, snsJscode2session.session_key);
        }
        /// <summary>
@@ -243,12 +244,31 @@
        }
        /// <summary>
        /// 查询个人用户登录信息
        /// </summary>
        /// <param name="request"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public async Task<GetPersonalLoginInfoQueryResult> Handle(GetPersonalLoginInfoQuery request, CancellationToken cancellationToken)
        {
            var model = await rep.GetPersonalQueryable(true)
                .GetDetail<User, GetPersonalLoginInfoQueryResult>(cancellationToken);
            var taskUserQueryable = rep.Change<TaskInfoUser>().AsQueryable().AsNoTracking()
                .Where(it => it.UserId == model.Id);
            model.TaskCount = await taskUserQueryable.CountAsync();
            model.HirePassTaskCount = await taskUserQueryable.CountAsync(it => it.HireStatus == EnumTaskUserHireStatus.Pass);
            model.HireRefuseTaskCount = await taskUserQueryable.CountAsync(it => it.HireStatus == EnumTaskUserHireStatus.Refuse);
            return model;
        }
        /// <summary>
        /// 获取当前登录用户
        /// </summary>
        /// <param name="user"></param>
        /// <param name="clientType"></param>
        /// <param name="session_key"></param>
        /// <returns></returns>
        private LoginCommandCallback GetCurrentLogier(User user, EnumClientType clientType)
        private LoginCommandCallback GetCurrentLogier(User user, EnumClientType clientType, string? session_key = null)
        {
            var logier = new CurrentLogier
            {
@@ -269,6 +289,7 @@
                Id = logier.Id,
                AccessToken = logier.AccessToken,
                RefreshToken = logier.RefreshToken,
                SessionKey = session_key,
                IsBindPhoneNumber = logier.PhoneNumber.IsNotNull()
            };
        }
FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml
@@ -38,9 +38,9 @@
            <param name="cancellationToken"></param>
            <returns></returns>
        </member>
        <member name="M:FlexJobApi.UserServer.Application.LoginCommandHandler.Handle(FlexJobApi.Core.BindPhoneNumberCommand,System.Threading.CancellationToken)">
        <member name="M:FlexJobApi.UserServer.Application.LoginCommandHandler.Handle(FlexJobApi.Core.ChangePhoneNumberCommand,System.Threading.CancellationToken)">
            <summary>
            绑定手机号
            更换手机号
            </summary>
            <param name="request"></param>
            <param name="cancellationToken"></param>
@@ -54,6 +54,22 @@
            <param name="cancellationToken"></param>
            <returns></returns>
            <exception cref="T:System.NotImplementedException"></exception>
        </member>
        <member name="M:FlexJobApi.UserServer.Application.LoginCommandHandler.Handle(FlexJobApi.Core.RegisterPersonalUserCommand,System.Threading.CancellationToken)">
            <summary>
            注册个人账号
            </summary>
            <param name="request"></param>
            <param name="cancellationToken"></param>
            <returns></returns>
        </member>
        <member name="M:FlexJobApi.UserServer.Application.LoginCommandHandler.Handle(FlexJobApi.Core.GetPersonalLoginInfoQuery,System.Threading.CancellationToken)">
            <summary>
            查询个人用户登录信息
            </summary>
            <param name="request"></param>
            <param name="cancellationToken"></param>
            <returns></returns>
        </member>
        <member name="M:FlexJobApi.UserServer.Application.LoginCommandHandler.GetCurrentLogier(FlexJobApi.Core.User,FlexJobApi.Core.EnumClientType)">
            <summary>
@@ -76,6 +92,14 @@
        <member name="M:FlexJobApi.UserServer.Application.VerifyCodeCommandHandler.Handle(FlexJobApi.Core.SendLoginOrRegisterVerifyCodeCommand,System.Threading.CancellationToken)">
            <summary>
            发送登录或注册短信
            </summary>
            <param name="request"></param>
            <param name="cancellationToken"></param>
            <returns></returns>
        </member>
        <member name="M:FlexJobApi.UserServer.Application.VerifyCodeCommandHandler.Handle(FlexJobApi.Core.UpdatePhoneNumberVerifyCodeCommand,System.Threading.CancellationToken)">
            <summary>
            发送更换手机号短信
            </summary>
            <param name="request"></param>
            <param name="cancellationToken"></param>
@@ -209,6 +233,11 @@
            账号已禁用
            </summary>
        </member>
        <member name="F:FlexJobApi.UserServer.Application.EnumUserErrorCodeType.u1010">
            <summary>
            该手机号已被注册
            </summary>
        </member>
        <member name="F:FlexJobApi.UserServer.Application.EnumUserErrorCodeType.u1100">
            <summary>
            当前账号未绑定微信小程序