代碼優化

master
xiaochanghai 7 months ago
parent e1b052125b
commit c7b19ac3ef
  1. 4
      Tiobon.Core.Api/Controllers/Ghrh/Ghrh_ResumeController.cs
  2. 10
      Tiobon.Core.Api/Tiobon.Core.Model.xml
  3. 4
      Tiobon.Core.Api/Tiobon.Core.xml
  4. 2
      Tiobon.Core.IServices/Ghrh/IGhrh_ResumeServices.cs
  5. 17
      Tiobon.Core.Model/ViewModels/Extend/ResumeViewTab.cs
  6. 187
      Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs
  7. 15
      Tiobon.Core/Tiobon.Core.Model.xml
  8. 12
      Tiobon.Core/Tiobon.Core.xml

@ -240,10 +240,10 @@ public class Ghrh_ResumeController : BaseController<IGhrh_ResumeServices, Ghrh_R
/// 面试官约面
/// </summary>
/// <param name="id">简历Id</param>
/// <param name="times">时间段列表,["2024/10/12 10:00~2024/10/12 11:00"],最多三个,超过三个取前三</param>
/// <param name="times"></param>
/// <returns></returns>
[HttpPost, Route("SubscribeInterview/{id}")]
public async Task<ServiceResult> SubscribeInterview(long id, [FromBody] List<string> times) => await _service.SubscribeInterview(id, times);
public async Task<ServiceResult> SubscribeInterview(long id, [FromBody] ResumeSubscribeInterviewForm form) => await _service.SubscribeInterview(id, form);
#endregion

@ -23147,6 +23147,16 @@
评估内容
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.ResumeSubscribeInterviewForm.Times">
<summary>
时间段列表,["2024/10/12 10:00~2024/10/12 11:00"],最多三个,超过三个取前三
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.ResumeSubscribeInterviewForm.Remark">
<summary>
备注
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.ResumeCancelInterviewForm.CancelReason">
<summary>
取消原因

@ -1357,12 +1357,12 @@
<param name="id">简历Id</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.SubscribeInterview(System.Int64,System.Collections.Generic.List{System.String})">
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.SubscribeInterview(System.Int64,Tiobon.Core.Model.ViewModels.Extend.ResumeSubscribeInterviewForm)">
<summary>
面试官约面
</summary>
<param name="id">简历Id</param>
<param name="times">时间段列表,["2024/10/12 10:00~2024/10/12 11:00"],最多三个,超过三个取前三</param>
<param name="times"></param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.ScheduleInterview(System.Int64,Tiobon.Core.Model.ViewModels.Extend.ResumeScheduleInterviewForm)">

@ -37,7 +37,7 @@ public interface IGhrh_ResumeServices : IBaseServices<Ghrh_Resume, Ghrh_ResumeDt
Task<ServiceResult> RemindHasRecommend(List<long> id);
Task<ServiceResult> SubscribeInterview(long id, List<string> times);
Task<ServiceResult> SubscribeInterview(long id, ResumeSubscribeInterviewForm form);
Task<ServiceResult> ScheduleInterview(long id, ResumeScheduleInterviewForm body);
Task<ServiceResult> ModifyInterviewTime(long id, string time);

@ -209,8 +209,23 @@ public class ResumeAssessInterviewForm
}
public class ResumeSubscribeInterviewForm
{
/// <summary>
/// 时间段列表,["2024/10/12 10:00~2024/10/12 11:00"],最多三个,超过三个取前三
/// </summary>
public List<string> Times { get; set; }
/// <summary>
/// 备注
/// </summary>
public string Remark { get; set; }
}
public class ResumeCancelInterviewForm
{
{
/// <summary>
/// 取消原因

@ -1304,13 +1304,7 @@ END";
if (records[i].FirstViewTime.IsNotEmptyOrNull())
await SendMessage([records[i].StaffId.Value], "简历提醒", "您有个简历推荐,请及时查看!");
}
var usser = await GetUser();
await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput()
{
OrderId = order.Id,
RemarkSz = $"用户【{usser?.UserName ?? App.User.ID.ToString()}】发送简历推荐提醒!"
});
await LogRecord(order.Id, $"发送简历推荐提醒");
}
}
@ -1319,7 +1313,7 @@ END";
#endregion
#region 面试官约面
public async Task<ServiceResult> SubscribeInterview(long id, List<string> times)
public async Task<ServiceResult> SubscribeInterview(long id, ResumeSubscribeInterviewForm form)
{
var entity = await base.QueryById(id);
if (entity == null)
@ -1328,7 +1322,7 @@ END";
if (entity.Status != DIC_INTERVIEW_ORDER_STATUS.HasRecommended)
return ServiceResult.OprateFailed("【已推荐】状态下才能约面!");
times.ForEach(x =>
form.Times.ForEach(x =>
{
if (x.IndexOf("~") < 0)
throw new Exception($"传入时间【{x}】无效,请检查格式!");
@ -1352,25 +1346,24 @@ END";
await _ghrh_InterviewOrderServices.Update(order, ["Status"]);
var records = await _ghrh_InterviewRecordServices.Query(x => x.Round == order.Round && x.OrderId == order.Id);
for (int i = 0; i < times.Count; i++)
for (int i = 0; i < form.Times.Count; i++)
{
if (i == 0)
records.ForEach(record => record.PlanInterviewTime1 = times[i]);
records.ForEach(record => record.PlanInterviewTime1 = form.Times[i]);
else if (i == 1)
records.ForEach(record => record.PlanInterviewTime2 = times[i]);
records.ForEach(record => record.PlanInterviewTime2 = form.Times[i]);
else if (i == 2)
records.ForEach(record => record.PlanInterviewTime3 = times[i]);
records.ForEach(record => record.PlanInterviewTime3 = form.Times[i]);
}
records.ForEach(record => record.Status = DIC_INTERVIEW_ORDER_STATUS.WaitAppointment);
records.ForEach(record =>
{
record.Status = DIC_INTERVIEW_ORDER_STATUS.WaitAppointment;
record.RemarkSz = form.Remark;
});
await _ghrh_InterviewRecordServices.Update(records[0], ["PlanInterviewTime1", "PlanInterviewTime2", "PlanInterviewTime3", "Status"]);
var usser = await GetUser();
await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput()
{
OrderId = order.Id,
RemarkSz = $"用户【{usser?.UserName ?? App.User.ID.ToString()}】预约面试,面试时间:{string.Join("", times)}!"
});
await LogRecord(order.Id, $"预约面试,面试时间:{string.Join("", form.Times)}");
entity.Status = DIC_INTERVIEW_ORDER_STATUS.WaitAppointment;
await Update(entity, ["Status"]);
@ -1419,12 +1412,7 @@ END";
});
await _ghrh_InterviewRecordServices.Update(records, ["InterviewTime", "InterviewBeginTime", "InterviewEndTime", "Status"]);
var usser = await GetUser();
await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput()
{
OrderId = order.Id,
RemarkSz = $"用户【{usser?.UserName ?? App.User.ID.ToString()}】安排面试,面试时间:{body.Time}!"
});
await LogRecord(order.Id, $"安排面试,面试时间:{body.Time}");
entity.Status = DIC_INTERVIEW_ORDER_STATUS.WaitInterview;
await Update(entity, ["Status"]);
@ -1477,14 +1465,8 @@ END";
//{
// var staffs = JsonHelper.JsonToObj<List<ResumeRecommendFormStaff>>(record.ReceiverIds);
// await SendMessage(staffs.Select(x => x.StaffId).ToList(), "简历提醒", "您有个简历【待面试】,请及时查看面试时间!");
//}
var usser = await GetUser();
await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput()
{
OrderId = order.Id,
RemarkSz = $"用户【{usser?.UserName ?? App.User.ID.ToString()}】变更面试时间,面试时间:{time}!"
});
//}
await LogRecord(order.Id, $"变更面试时间,面试时间:{time}");
entity.Status = DIC_INTERVIEW_ORDER_STATUS.WaitInterview;
await Update(entity, ["Status"]);
@ -1517,13 +1499,7 @@ END";
if (records[i].FirstViewTime.IsNotEmptyOrNull())
await SendMessage([records[i].StaffId.Value], "简历提醒", "您有个简历【待面试】,请及时查看面试时间!");
}
var usser = await GetUser();
await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput()
{
OrderId = order.Id,
RemarkSz = $"用户【{usser?.UserName ?? App.User.ID.ToString()}】发送待面试提醒!"
});
await LogRecord(order.Id, $"发送待面试提醒");
}
}
@ -1578,13 +1554,7 @@ END";
});
}
var usser = await GetUser();
await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput()
{
OrderId = order.Id,
RemarkSz = $"用户【{usser?.UserName ?? App.User.ID.ToString()}】发起一个新的面试,面试时间:{input.Time}!"
});
await LogRecord(order.Id, $"发起一个新的面试,面试时间:{input.Time}");
entity.Status = DIC_INTERVIEW_ORDER_STATUS.WaitInterview;
await Update(entity, ["Status"]);
@ -1643,12 +1613,8 @@ END";
record.Status = DIC_INTERVIEW_ORDER_STATUS.HasInterview;
await _ghrh_InterviewRecordServices.Update(record, ["AssessTime", "Status", "IsPass", "InterviewResult"]);
var usser = await GetUser();
await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput()
{
OrderId = order.Id,
RemarkSz = $"用户【{usser?.UserName ?? App.User.ID.ToString()}】填写了面试评估,轮数:{order.Round},是否通过:{(input.IsPass == true ? "" : "")},内容:{input.Content}!"
});
await LogRecord(order.Id, "填写了面试评估,轮数:{order.Round},是否通过:{(input.IsPass == true ? \"通过\" : \"不通过\")},内容:{input.Content}!");
return ServiceResult.OprateSuccess();
}
@ -1673,12 +1639,7 @@ END";
await _ghrh_InterviewRecordServices.Add(insertRecord);
}
var usser = await GetUser();
await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput()
{
OrderId = order.Id,
RemarkSz = $"用户【{usser?.UserName ?? App.User.ID.ToString()}】变更面试官!"
});
await LogRecord(order.Id, "变更状态为:变更面试官!");
return ServiceResult.OprateSuccess();
}
#endregion
@ -1692,24 +1653,13 @@ END";
var entity = await base.QueryById(id);
if (entity == null)
return ServiceResult.OprateFailed("无效的简历ID!");
await UpdateResumeStatus(entity, DIC_INTERVIEW_ORDER_STATUS.HasSendOffer);
var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id);
await UpdateInterviewOrderStatus(order, DIC_INTERVIEW_ORDER_STATUS.HasSendOffer);
await UpdateInterviewRecordStatus(order, DIC_INTERVIEW_ORDER_STATUS.HasSendOffer);
entity.Status = DIC_INTERVIEW_ORDER_STATUS.HasSendOffer;
await Update(entity, ["Status"]);
var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id);
order.Status = DIC_INTERVIEW_ORDER_STATUS.HasSendOffer;
await _ghrh_InterviewOrderServices.Update(order, ["Status"]);
var records = await _ghrh_InterviewRecordServices.Query(x => x.Round == order.Round && x.OrderId == order.Id);
records.ForEach(record => record.Status = DIC_INTERVIEW_ORDER_STATUS.HasSendOffer);
await _ghrh_InterviewRecordServices.Update(records, ["Status"]);
var usser = await GetUser();
await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput()
{
OrderId = order.Id,
RemarkSz = $"用户【{usser?.UserName ?? App.User.ID.ToString()}】变更状态为:已发offer!"
});
await LogRecord(order.Id, "变更状态为:已发offer!");
}
return ServiceResult.OprateSuccess();
}
@ -1737,14 +1687,9 @@ END";
//{
// var staffs = JsonHelper.JsonToObj<List<ResumeRecommendFormStaff>>(record.ReceiverIds);
// await SendMessage(staffs.Select(x => x.StaffId).ToList(), "简历提醒", "您有个简历【待面试】,请及时查看面试时间!");
//}
//}
await LogRecord(order.Id, "发送待已发offer提醒!");
var usser = await GetUser();
await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput()
{
OrderId = order.Id,
RemarkSz = $"用户【{usser?.UserName ?? App.User.ID.ToString()}】发送待已发offer提醒!"
});
}
}
@ -1779,13 +1724,7 @@ END";
await Update(entity, ["Status"]);
await _ghrh_InterviewOrderServices.Update(order, ["Status"]);
await _ghrh_InterviewRecordServices.Update(records, ["Status"]);
var usser = await GetUser();
await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput()
{
OrderId = order.Id,
RemarkSz = $"用户【{usser?.UserName ?? App.User.ID.ToString()}】变更是否报道!"
});
await LogRecord(order.Id, "变更是否报道!");
}
}
@ -1800,23 +1739,13 @@ END";
if (entity == null)
return ServiceResult.OprateFailed("无效的简历ID!");
entity.Status = DIC_INTERVIEW_ORDER_STATUS.Fail;
await Update(entity, ["Status"]);
await UpdateResumeStatus(entity, DIC_INTERVIEW_ORDER_STATUS.Fail);
var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id);
order.Status = DIC_INTERVIEW_ORDER_STATUS.Fail;
await _ghrh_InterviewOrderServices.Update(order, ["Status"]);
await UpdateInterviewOrderStatus(order, DIC_INTERVIEW_ORDER_STATUS.Fail);
await UpdateInterviewRecordStatus(order, DIC_INTERVIEW_ORDER_STATUS.Fail);
var records = await _ghrh_InterviewRecordServices.Query(x => x.Round == order.Round && x.OrderId == order.Id);
records.ForEach(record => record.Status = DIC_INTERVIEW_ORDER_STATUS.Fail);
await _ghrh_InterviewRecordServices.Update(records, ["Status"]);
var usser = await GetUser();
await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput()
{
OrderId = order.Id,
RemarkSz = $"用户【{usser?.UserName ?? App.User.ID.ToString()}】变更状态为:不合适!"
});
await LogRecord(order.Id, "变更状态为:不合适!");
return ServiceResult.OprateSuccess();
}
#endregion
@ -1836,12 +1765,8 @@ END";
record.IsCancel = true;
record.CancelReason = input.CancelReason;
var usser = await GetUser();
await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput()
{
OrderId = order.Id,
RemarkSz = $"用户【{usser?.UserName ?? App.User.ID.ToString()}】取消面试!"
});
await LogRecord(order.Id, "取消面试!");
return ServiceResult.OprateSuccess();
}
#endregion
@ -2124,4 +2049,44 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1";
return ServiceResult<ResumeScheduleInterviewResult>.OprateSuccess("查询成功", result);
}
#endregion
#region 通用方法
/// <summary>
/// 记录日志
/// </summary>
/// <param name="orderId">面试单ID</param>
/// <param name="content">内容</param>
/// <returns></returns>
public async Task LogRecord(long orderId, string content)
{
var usser = await GetUser();
await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput()
{
OrderId = orderId,
RemarkSz = $"用户【{usser?.UserName ?? App.User.ID.ToString()}】" + content
});
}
public async Task UpdateResumeStatus(Ghrh_Resume entity, string Status)
{
entity.Status = Status;
await Update(entity, ["Status"]);
}
public async Task UpdateInterviewOrderStatus(Ghrh_InterviewOrder order, string Status)
{
order.Status = Status;
await _ghrh_InterviewOrderServices.Update(order, ["Status"]);
}
/// <summary>
/// 修改面试记录状态
/// </summary>
/// <param name="order"></param>
/// <param name="Status"></param>
/// <returns></returns>
public async Task UpdateInterviewRecordStatus(Ghrh_InterviewOrder order, string Status)
{
var records = await _ghrh_InterviewRecordServices.Query(x => x.Round == order.Round && x.OrderId == order.Id);
records.ForEach(record => record.Status = Status);
await _ghrh_InterviewRecordServices.Update(records, ["Status"]);
}
#endregion
}

@ -23147,6 +23147,21 @@
评估内容
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.ResumeSubscribeInterviewForm.Times">
<summary>
时间段列表,["2024/10/12 10:00~2024/10/12 11:00"],最多三个,超过三个取前三
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.ResumeSubscribeInterviewForm.Remark">
<summary>
备注
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.ResumeCancelInterviewForm.CancelReason">
<summary>
取消原因
</summary>
</member>
<member name="T:Tiobon.Core.Model.ViewModels.GuestbookViewModels">
<summary>
留言信息展示类

@ -1357,12 +1357,12 @@
<param name="id">简历Id</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.SubscribeInterview(System.Int64,System.Collections.Generic.List{System.String})">
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.SubscribeInterview(System.Int64,Tiobon.Core.Model.ViewModels.Extend.ResumeSubscribeInterviewForm)">
<summary>
面试官约面
</summary>
<param name="id">简历Id</param>
<param name="times">时间段列表,["2024/10/12 10:00~2024/10/12 11:00"],最多三个,超过三个取前三</param>
<param name="times"></param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.ScheduleInterview(System.Int64,Tiobon.Core.Model.ViewModels.Extend.ResumeScheduleInterviewForm)">
@ -1464,6 +1464,14 @@
<param name="id">简历ID</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.CancelInterview(System.Int64,Tiobon.Core.Model.ViewModels.Extend.ResumeCancelInterviewForm)">
<summary>
取消面试
</summary>
<param name="id">简历ID</param>
<param name="body">body</param>
<returns></returns>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghrh_ResumeEduBGController">
<summary>
教育背景(Controller)

Loading…
Cancel
Save