FlexJobApi.CommonServer.Application/Dictionaries/Queries/DictionaryDatasQueryHandler.cs
@@ -4,11 +4,13 @@ using Mapster; using MediatR; using Microsoft.EntityFrameworkCore; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using static Microsoft.EntityFrameworkCore.DbLoggerCategory; namespace FlexJobApi.CommonServer.Application { @@ -74,55 +76,57 @@ /// <returns></returns> public async Task<List<SelectOption<string, GetDictionaryDataSelectQueryResultOption>>> Handle(GetDictionaryDataSelectQuery request, CancellationToken cancellationToken) { var models = await request.GetSelect<DictionaryData, string, GetDictionaryDataSelectQueryResultOption>( it => it.Code, it => it.Content, q => { q = q .OrderBy(it => it.Sort) .Where(it => !it.IsDisabled); if (request.All != true) { q = q.Where(it => it.ParentId == request.ParentId); } if (request.MaxDeep.HasValue) { q = q.Where(it => it.Deep <= request.MaxDeep); } if (request.Keywords.IsNotNull()) { q = q.Where(it => it.Code.Contains(request.Keywords) || it.Content.Contains(request.Keywords) || it.Field1.Contains(request.Keywords) || it.Field2.Contains(request.Keywords) || it.Field3.Contains(request.Keywords) || it.Field4.Contains(request.Keywords) || it.Field5.Contains(request.Keywords)); } if (request.CategoryId.HasValue) { q = q.Where(it => it.CategoryId == request.CategoryId); } else if (request.CategoryCode.IsNotNull()) { q = q.Where(it => it.Category.Code == request.CategoryCode); } else { throw Oops.Oh(EnumErrorCodeType.s400, "请填写类别Id或编号"); } return q; }, cancellationToken); var sql = @"SELECT d.* FROM DictionaryData d INNER JOIN DictionaryCategory c ON d.CategoryId = c.Id WHERE d.IsDisabled = 0"; if (request.All != true) { sql += " AND d.ParentId = @ParentId"; } if (request.MaxDeep.HasValue) { sql += " AND d.Deep <= @MaxDeep"; } if (request.Keywords.IsNotNull()) { sql += @" AND (d.Code LIKE @Keywords OR d.Content LIKE @Keywords OR d.Field1 LIKE @Keywords OR d.Field2 LIKE @Keywords OR d.Field3 LIKE @Keywords OR d.Field4 LIKE @Keywords OR d.Field5 LIKE @Keywords)"; } if (request.CategoryId.HasValue) { sql += " AND d.CategoryId = @CategoryId"; } else if (request.CategoryCode.IsNotNull()) { sql += " AND c.Code = @CategoryCode"; } else { throw Oops.Oh(EnumErrorCodeType.s400, "请填写类别Id或编号"); } sql += " ORDER BY d.Sort"; var models = await rep.SqlQueriesAsync<GetDictionaryDataSelectQueryResultOption>(sql, request, cancellationToken); var options = new List<SelectOption<string, GetDictionaryDataSelectQueryResultOption>>(); foreach (var model in models) { var option = new SelectOption<string, GetDictionaryDataSelectQueryResultOption>(); option.Data = model; option.Value = model.Code; option.Label = model.Content; options.Add(option); } if (request.WithChildren) { var parents = models.Where(it => it.Data.ParentId == null).ToList(); LoopChildrens(parents, models); var parents = options.Where(it => it.Data.ParentId == null).ToList(); LoopChildrens(parents, options); return parents; } return models; return options; } /// <summary> FlexJobApi.Core/Entities/FlexJobServer/Tasks/TaskInfoUser.cs
@@ -42,13 +42,38 @@ public DateTime? HireTime { get; set; } /// <summary> /// 签约状态 /// 灵工签约状态 /// </summary> public EnumTaskUserSignContractStatus? SignContractStatus { get; set; } public EnumTaskUserSignContractStatus? UserSignContractStatus { get; set; } /// <summary> /// 签约时间 /// 灵工签约时间 /// </summary> public DateTime? SignContractTime { get; set; } public DateTime? UserSignContractTime { get; set; } /// <summary> /// 企业签约状态 /// </summary> public EnumTaskUserSignContractStatus? EnterpriseSignContractStatus { get; set; } /// <summary> /// 企业签约时间 /// </summary> public DateTime? EnterpriseSignContractTime { get; set; } /// <summary> /// 电子合同 /// </summary> public string ContractUrl { get; set; } /// <summary> /// 安排状态 /// </summary> public EnumTaskUserArrangeStatus? ArrangeStatus { get; set; } /// <summary> /// 安排状态 /// </summary> public DateTime? ArrangeTime { get; set; } } } FlexJobApi.Core/Entities/UserServer/Users/User.cs
@@ -123,6 +123,11 @@ public bool IsReal { get; set; } /// <summary> /// 实名时间 /// </summary> public DateTime? RealTime { get; set; } /// <summary> /// 实名方式 /// </summary> public EnumUserRealMethod? RealMethod { get; set; } FlexJobApi.Core/Enums/Tasks/EnumTaskUserArrangeStatus.cs
New file @@ -0,0 +1,23 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FlexJobApi.Core { /// <summary> /// 任务用户安排状态 /// </summary> public enum EnumTaskUserArrangeStatus { /// <summary> /// 未安排 /// </summary> Wait = 10, /// <summary> /// 已安排 /// </summary> Complete = 20 } } FlexJobApi.Core/FlexJobApi.Core.xml
@@ -939,14 +939,39 @@ 录用时间 </summary> </member> <member name="P:FlexJobApi.Core.TaskInfoUser.SignContractStatus"> <member name="P:FlexJobApi.Core.TaskInfoUser.UserSignContractStatus"> <summary> 签约状态 灵工签约状态 </summary> </member> <member name="P:FlexJobApi.Core.TaskInfoUser.SignContractTime"> <member name="P:FlexJobApi.Core.TaskInfoUser.UserSignContractTime"> <summary> 签约时间 灵工签约时间 </summary> </member> <member name="P:FlexJobApi.Core.TaskInfoUser.EnterpriseSignContractStatus"> <summary> 企业签约状态 </summary> </member> <member name="P:FlexJobApi.Core.TaskInfoUser.EnterpriseSignContractTime"> <summary> 企业签约时间 </summary> </member> <member name="P:FlexJobApi.Core.TaskInfoUser.ContractUrl"> <summary> 电子合同 </summary> </member> <member name="P:FlexJobApi.Core.TaskInfoUser.ArrangeStatus"> <summary> 安排状态 </summary> </member> <member name="P:FlexJobApi.Core.TaskInfoUser.ArrangeTime"> <summary> 安排状态 </summary> </member> <member name="T:FlexJobApi.Core.UserTaskCollect"> @@ -1775,6 +1800,11 @@ 是否实名 </summary> </member> <member name="P:FlexJobApi.Core.User.RealTime"> <summary> 实名时间 </summary> </member> <member name="P:FlexJobApi.Core.User.RealMethod"> <summary> 实名方式 @@ -2492,6 +2522,21 @@ </summary> </member> <member name="F:FlexJobApi.Core.EnumTaskStatus.Complete"> <summary> 已安排 </summary> </member> <member name="T:FlexJobApi.Core.EnumTaskUserArrangeStatus"> <summary> 任务用户安排状态 </summary> </member> <member name="F:FlexJobApi.Core.EnumTaskUserArrangeStatus.Wait"> <summary> 未安排 </summary> </member> <member name="F:FlexJobApi.Core.EnumTaskUserArrangeStatus.Complete"> <summary> 已安排 </summary> @@ -3675,6 +3720,11 @@ <member name="P:FlexJobApi.Core.GetTaskInfoQueryResult.EnterpriseEnterpriseName"> <summary> 企业全称 </summary> </member> <member name="P:FlexJobApi.Core.GetTaskInfoQueryResult.EnterpriseContactPhoneNumber"> <summary> 联系电话 </summary> </member> <member name="P:FlexJobApi.Core.GetTaskInfoQueryResult.TaskCount"> @@ -6204,6 +6254,56 @@ 经历 </summary> </member> <member name="P:FlexJobApi.Core.GetUserResumeQueryResult.CreatedTime"> <summary> 报名时间 </summary> </member> <member name="P:FlexJobApi.Core.GetUserResumeQueryResult.HireStatus"> <summary> 录用状态 </summary> </member> <member name="P:FlexJobApi.Core.GetUserResumeQueryResult.HireTime"> <summary> 录用时间 </summary> </member> <member name="P:FlexJobApi.Core.GetUserResumeQueryResult.ArrangeStatus"> <summary> 安排状态 </summary> </member> <member name="P:FlexJobApi.Core.GetUserResumeQueryResult.ArrangeTime"> <summary> 安排状态 </summary> </member> <member name="P:FlexJobApi.Core.GetUserResumeQueryResult.UserSignContractStatus"> <summary> 灵工签约状态 </summary> </member> <member name="P:FlexJobApi.Core.GetUserResumeQueryResult.UserSignContractTime"> <summary> 灵工签约时间 </summary> </member> <member name="P:FlexJobApi.Core.GetUserResumeQueryResult.EnterpriseSignContractStatus"> <summary> 企业签约状态 </summary> </member> <member name="P:FlexJobApi.Core.GetUserResumeQueryResult.EnterpriseSignContractTime"> <summary> 企业签约时间 </summary> </member> <member name="P:FlexJobApi.Core.GetUserResumeQueryResult.ContractUrl"> <summary> 电子合同 </summary> </member> <member name="T:FlexJobApi.Core.GetUserResumeQueryResultExpectJob"> <summary> 查询用户简历-结果 @@ -6405,6 +6505,16 @@ </summary> <remarks>联系电话</remarks> </member> <member name="P:FlexJobApi.Core.GetUserResumesQueryResultItem.Identity"> <summary> 身份证号 </summary> </member> <member name="P:FlexJobApi.Core.GetUserResumesQueryResultItem.Age"> <summary> 年龄 </summary> </member> <member name="P:FlexJobApi.Core.GetUserResumesQueryResultItem.Gender"> <summary> 性别 @@ -6415,9 +6525,9 @@ 是否实名 </summary> </member> <member name="P:FlexJobApi.Core.GetUserResumesQueryResultItem.Age"> <member name="P:FlexJobApi.Core.GetUserResumesQueryResultItem.RealTime"> <summary> 年龄 实名时间 </summary> </member> <member name="P:FlexJobApi.Core.GetUserResumesQueryResultItem.PersonalIdentityCode"> @@ -6460,6 +6570,41 @@ 录用状态 </summary> </member> <member name="P:FlexJobApi.Core.GetUserResumesQueryResultItem.HireTime"> <summary> 录用时间 </summary> </member> <member name="P:FlexJobApi.Core.GetUserResumesQueryResultItem.ArrangeStatus"> <summary> 安排状态 </summary> </member> <member name="P:FlexJobApi.Core.GetUserResumesQueryResultItem.ArrangeTime"> <summary> 安排状态 </summary> </member> <member name="P:FlexJobApi.Core.GetUserResumesQueryResultItem.UserSignContractStatus"> <summary> 灵工签约状态 </summary> </member> <member name="P:FlexJobApi.Core.GetUserResumesQueryResultItem.UserSignContractTime"> <summary> 灵工签约时间 </summary> </member> <member name="P:FlexJobApi.Core.GetUserResumesQueryResultItem.EnterpriseSignContractStatus"> <summary> 企业签约状态 </summary> </member> <member name="P:FlexJobApi.Core.GetUserResumesQueryResultItem.EnterpriseSignContractTime"> <summary> 企业签约时间 </summary> </member> <member name="T:FlexJobApi.Core.GetUserResumeWorkExperienceQuery"> <summary> 查询用户简历-工作经验 FlexJobApi.Core/Models/CommonServer/Dictionaries/Queries/GetAreaSelectQuery.cs
@@ -51,7 +51,15 @@ /// <summary> /// 子级 /// </summary> public List<GetAreaSelectQueryResultOption> Children => Data.Children.Adapt<List<GetAreaSelectQueryResultOption>>(); public List<GetAreaSelectQueryResultOption> Children { get { var children = Data.Children.Adapt<List<GetAreaSelectQueryResultOption>>(); if (children.IsNull()) return null; else return children; } } /// <summary> /// Id FlexJobApi.Core/Models/CommonServer/Dictionaries/Queries/GetDictionaryDataSelectQuery.cs
@@ -53,7 +53,7 @@ { public GetDictionaryDataSelectQueryResultOption() { Children = []; } /// <summary> FlexJobApi.Core/Models/UserServer/UserResumes/Queries/GetUserResumeQuery.cs
@@ -185,6 +185,57 @@ /// 经历 /// </summary> public List<GetUserResumeQueryResultExperience> TaskInfoUsers { get; set; } /// <summary> /// 报名时间 /// </summary> public DateTime? CreatedTime { get; set; } /// <summary> /// 录用状态 /// </summary> public EnumTaskUserHireStatus? HireStatus { get; set; } /// <summary> /// 录用时间 /// </summary> public DateTime? HireTime { get; set; } /// <summary> /// 安排状态 /// </summary> public EnumTaskUserArrangeStatus? ArrangeStatus { get; set; } /// <summary> /// 安排状态 /// </summary> public DateTime? ArrangeTime { get; set; } /// <summary> /// 灵工签约状态 /// </summary> public EnumTaskUserSignContractStatus? UserSignContractStatus { get; set; } /// <summary> /// 灵工签约时间 /// </summary> public DateTime? UserSignContractTime { get; set; } /// <summary> /// 企业签约状态 /// </summary> public EnumTaskUserSignContractStatus? EnterpriseSignContractStatus { get; set; } /// <summary> /// 企业签约时间 /// </summary> public DateTime? EnterpriseSignContractTime { get; set; } /// <summary> /// 电子合同 /// </summary> public string ContractUrl { get; set; } } /// <summary> FlexJobApi.Core/Models/UserServer/UserResumes/Queries/GetUserResumesQuery.cs
@@ -91,6 +91,16 @@ public string ContactPhoneNumber { get; set; } /// <summary> /// 身份证号 /// </summary> public string Identity { get; set; } /// <summary> /// 年龄 /// </summary> public int? Age { get; set; } /// <summary> /// 性别 /// </summary> public EnumUserGender? Gender { get; set; } @@ -101,9 +111,9 @@ public bool IsReal { get; set; } /// <summary> /// 年龄 /// 实名时间 /// </summary> public int? Age { get; set; } public DateTime? RealTime { get; set; } /// <summary> /// 身份编号 @@ -146,5 +156,40 @@ /// </summary> public EnumTaskUserHireStatus? HireStatus { get; set; } /// <summary> /// 录用时间 /// </summary> public DateTime? HireTime { get; set; } /// <summary> /// 安排状态 /// </summary> public EnumTaskUserArrangeStatus? ArrangeStatus { get; set; } /// <summary> /// 安排状态 /// </summary> public DateTime? ArrangeTime { get; set; } /// <summary> /// 灵工签约状态 /// </summary> public EnumTaskUserSignContractStatus? UserSignContractStatus { get; set; } /// <summary> /// 灵工签约时间 /// </summary> public DateTime? UserSignContractTime { get; set; } /// <summary> /// 企业签约状态 /// </summary> public EnumTaskUserSignContractStatus? EnterpriseSignContractStatus { get; set; } /// <summary> /// 企业签约时间 /// </summary> public DateTime? EnterpriseSignContractTime { get; set; } } } FlexJobApi.FlexJobServer.Application/TaskUsers/Commands/TaskUserCommandHandler.cs
@@ -107,7 +107,12 @@ entity.HireStatus = request.HireStatus; if (entity.HireStatus == EnumTaskUserHireStatus.Pass) { entity.SignContractStatus = EnumTaskUserSignContractStatus.Pass; entity.HireTime = DateTime.Now; entity.UserSignContractStatus = EnumTaskUserSignContractStatus.Pass; entity.UserSignContractTime = DateTime.Now; entity.EnterpriseSignContractStatus = EnumTaskUserSignContractStatus.Pass; entity.EnterpriseSignContractTime = DateTime.Now; entity.ArrangeStatus = EnumTaskUserArrangeStatus.Wait; } } await rep.UpdateAsync(entities); FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs
@@ -148,7 +148,7 @@ AddressDetail = t.AddressDetail, Latitude = t.Latitude, Longitude = t.Longitude, UserCount = t.TaskInfoUsers.Count(tu => tu.SignContractStatus == EnumTaskUserSignContractStatus.Pass), UserCount = t.TaskInfoUsers.Count(), Status = t.Status, BeginTime = t.BeginTime, EndTime = t.EndTime, FlexJobApi.UserServer.Application/UserResumes/Queries/UserResumeQueryHandler.cs
@@ -90,7 +90,10 @@ WorkExperience = it.WorkExperience, HireStatus = request.TaskInfoId.HasValue ? it.TaskInfoUsers.Where(it => it.TaskInfoId == request.TaskInfoId).Select(it => it.HireStatus as EnumTaskUserHireStatus?).FirstOrDefault() : null : null, ArrangeStatus = request.TaskInfoId.HasValue ? it.TaskInfoUsers.Where(it => it.TaskInfoId == request.TaskInfoId).Select(it => it.ArrangeStatus).FirstOrDefault() : null, }); var result = await request.PageModel.GetPagedListAsync<GetUserResumesQueryResult, GetUserResumesQueryResultItem>(s, cancellationToken); return result;