接口优化

master
xiaochanghai 7 months ago
parent 6a7db80d9f
commit b4b924b558
  1. 45
      Tiobon.Core.Api/Controllers/Ghrh/Ghrh_ResumeController.cs
  2. 17
      Tiobon.Core.Api/Tiobon.Core.xml
  3. 8
      Tiobon.Core.IServices/Ghrh/IGhrh_ResumeServices.cs
  4. 200
      Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs
  5. 17
      Tiobon.Core/Tiobon.Core.xml

@ -249,7 +249,7 @@ public class Ghrh_ResumeController : BaseController<IGhrh_ResumeServices, Ghrh_R
#region 安排面试
/// <summary>
/// 面试官约面
/// 安排面试
/// </summary>
/// <param name="id">简历Id</param>
/// <param name="body"></param>
@ -274,10 +274,10 @@ public class Ghrh_ResumeController : BaseController<IGhrh_ResumeServices, Ghrh_R
/// <summary>
/// 待面试提醒
/// </summary>
/// <param name="id">简历Id</param>
/// <param name="ids">简历Id,列表</param>
/// <returns></returns>
[HttpPost, Route("RemindWaitInterview/{id}")]
public async Task<ServiceResult> RemindWaitInterview(long id) => await _service.RemindWaitInterview(id);
[HttpPost, Route("RemindWaitInterview")]
public async Task<ServiceResult> RemindWaitInterview([FromBody] List<long> ids) => await _service.RemindWaitInterview(ids);
#endregion
#region 重新安排面试-直接发起
@ -337,12 +337,12 @@ public class Ghrh_ResumeController : BaseController<IGhrh_ResumeServices, Ghrh_R
/// <summary>
/// 发offer
/// </summary>
/// <param name="id">简历Id</param>
/// <param name="ids">简历Id,列表</param>
/// <returns></returns>
[HttpPost, Route("SendOffer/{id}")]
public async Task<ServiceResult> SendOffer(long id)
[HttpPost, Route("SendOffer")]
public async Task<ServiceResult> SendOffer([FromBody] List<long> ids)
{
return await _service.SendOffer(id);
return await _service.SendOffer(ids);
}
#endregion
@ -350,12 +350,12 @@ public class Ghrh_ResumeController : BaseController<IGhrh_ResumeServices, Ghrh_R
/// <summary>
/// 已发offer提醒
/// </summary>
/// <param name="id">简历Id</param>
/// <param name="ids">简历Id,列表</param>
/// <returns></returns>
[HttpPost, Route("RemindHasOffer/{id}")]
public async Task<ServiceResult> RemindHasOffer(long id)
[HttpPost, Route("RemindHasOffer")]
public async Task<ServiceResult> RemindHasOffer([FromBody] List<long> ids)
{
return await _service.SendOffer(id);
return await _service.RemindHasOffer(ids);
}
#endregion
@ -366,10 +366,10 @@ public class Ghrh_ResumeController : BaseController<IGhrh_ResumeServices, Ghrh_R
/// <param name="id">简历Id</param>
/// <param name="value">已报到传true,未报到传false</param>
/// <returns></returns>
[HttpPost, Route("ModifyIsOffer/{id}/{value}")]
public async Task<ServiceResult> ModifyIsOffer(long id, bool value)
[HttpPost, Route("ModifyIsOffer/{value}")]
public async Task<ServiceResult> ModifyIsOffer([FromBody] List<long> ids, bool value)
{
return await _service.ModifyIsOffer(id, value);
return await _service.ModifyIsOffer(ids, value);
}
#endregion
@ -387,6 +387,7 @@ public class Ghrh_ResumeController : BaseController<IGhrh_ResumeServices, Ghrh_R
/// <summary>
/// ESS端查询面试记录
/// </summary>
/// <param name="body">body</param>
/// <param name="status">状态</param>
/// <returns></returns>
[HttpPost, Route("QueryESS/{status}")]
@ -395,21 +396,21 @@ public class Ghrh_ResumeController : BaseController<IGhrh_ResumeServices, Ghrh_R
var condition = "1!=1";
switch (status)
{
case DIC_INTERVIEW_ORDER_STATUS.HasRecommended://待筛选
condition = $"B.Status ='{DIC_INTERVIEW_ORDER_STATUS.HasRecommended}' AND B.IsPass IS NULL";
break;
//case DIC_INTERVIEW_ORDER_STATUS.HasRecommended://待筛选
// condition = $"A.Status ='{DIC_INTERVIEW_ORDER_STATUS.HasRecommended}'";
// break;
//case DIC_INTERVIEW_ORDER_STATUS.WaitAppointment://待预约
// condition = $"Status ='{DIC_INTERVIEW_ORDER_STATUS.WaitAppointment}' ";
// break;
case "Fail"://不合适
condition = $"(Status ='{status}' OR Status ='{DIC_INTERVIEW_ORDER_STATUS.WaitSendOffer}' OR Status ='{DIC_INTERVIEW_ORDER_STATUS.HasSendOffer}' OR Status ='{DIC_INTERVIEW_ORDER_STATUS.HasOffer}')";
break;
//case "Fail"://不合适
// condition = $"(A.Status ='{status}' OR Status ='{DIC_INTERVIEW_ORDER_STATUS.WaitSendOffer}' OR Status ='{DIC_INTERVIEW_ORDER_STATUS.HasSendOffer}' OR Status ='{DIC_INTERVIEW_ORDER_STATUS.HasOffer}')";
// break;
//case DIC_INTERVIEW_ORDER_STATUS.WaitInterview://待面试
// condition = $"Status ='{DIC_INTERVIEW_ORDER_STATUS.WaitInterview}' ";
// break;
default:
condition = $"Status ='{status}' ";
condition = $"A.Status ='{status}' ";
break;
}
return await _service.QueryESS(body, condition);

@ -1367,7 +1367,7 @@
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.ScheduleInterview(System.Int64,Tiobon.Core.Model.ViewModels.Extend.ResumeScheduleInterviewForm)">
<summary>
面试官约面
安排面试
</summary>
<param name="id">简历Id</param>
<param name="body"></param>
@ -1381,11 +1381,11 @@
<param name="time">时间段,2024/10/12 10:00~2024/10/12 11:00</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.RemindWaitInterview(System.Int64)">
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.RemindWaitInterview(System.Collections.Generic.List{System.Int64})">
<summary>
待面试提醒
</summary>
<param name="id">简历Id</param>
<param name="ids">简历Id,列表</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.RescheduleInterview(System.Int64,Tiobon.Core.Model.ViewModels.Extend.ResumeRescheduleInterviewForm)">
@ -1420,21 +1420,21 @@
<param name="InterviewStaffs">面试官列表</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.SendOffer(System.Int64)">
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.SendOffer(System.Collections.Generic.List{System.Int64})">
<summary>
发offer
</summary>
<param name="id">简历Id</param>
<param name="ids">简历Id,列表</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.RemindHasOffer(System.Int64)">
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.RemindHasOffer(System.Collections.Generic.List{System.Int64})">
<summary>
已发offer提醒
</summary>
<param name="id">简历Id</param>
<param name="ids">简历Id,列表</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.ModifyIsOffer(System.Int64,System.Boolean)">
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.ModifyIsOffer(System.Collections.Generic.List{System.Int64},System.Boolean)">
<summary>
已报到/未报道接口
</summary>
@ -1453,6 +1453,7 @@
<summary>
ESS端查询面试记录
</summary>
<param name="body">body</param>
<param name="status">状态</param>
<returns></returns>
</member>

@ -42,7 +42,7 @@ public interface IGhrh_ResumeServices : IBaseServices<Ghrh_Resume, Ghrh_ResumeDt
Task<ServiceResult> ModifyInterviewTime(long id, string time);
Task<ServiceResult> RemindWaitInterview(long id);
Task<ServiceResult> RemindWaitInterview(List<long> ids);
Task<ServiceResult> RescheduleInterview(long id, ResumeRescheduleInterviewForm input, string type);
@ -50,11 +50,11 @@ public interface IGhrh_ResumeServices : IBaseServices<Ghrh_Resume, Ghrh_ResumeDt
Task<ServiceResult> ModifyInterviewer(long id, List<ResumeRecommendFormStaff> InterviewStaffs);
Task<ServiceResult> SendOffer(long id);
Task<ServiceResult> SendOffer(List<long> ids);
Task<ServiceResult> RemindHasOffer(long id);
Task<ServiceResult> RemindHasOffer(List<long> ids);
Task<ServiceResult> ModifyIsOffer(long id, bool isOffer);
Task<ServiceResult> ModifyIsOffer(List<long> ids, bool isOffer);
Task<ServicePageResult<object>> QueryESS(QueryBody filter, string condition);

@ -1242,16 +1242,12 @@ END";
for (int m = 0; m < recommend.ids.Count; m++)
{
var id = recommend.ids[m];
if (await AnyAsync(x => x.Status == DIC_INTERVIEW_ORDER_STATUS.HasRecommended ||
if (await AnyAsync(x => x.Id == id && (x.Status == DIC_INTERVIEW_ORDER_STATUS.HasRecommended ||
x.Status == DIC_INTERVIEW_ORDER_STATUS.HasRecommended ||
x.Status == DIC_INTERVIEW_ORDER_STATUS.WaitAppointment ||
x.Status == DIC_INTERVIEW_ORDER_STATUS.WaitInterview ||
x.Status == DIC_INTERVIEW_ORDER_STATUS.HasInterview))
x.Status == DIC_INTERVIEW_ORDER_STATUS.HasInterview)))
continue;
await Db.Updateable<Ghrh_InterviewOrder>()
.SetColumns(it => it.IsEnable == 0)
.Where(it => it.ResumeId == id)
.ExecuteCommandAsync();
var orderId = await _ghrh_InterviewOrderServices.Add(new InsertGhrh_InterviewOrderInput()
{
@ -1272,6 +1268,10 @@ END";
Status = DIC_INTERVIEW_ORDER_STATUS.HasRecommended,
StaffId = recommend.InterviewStaffs[i].StaffId,
});
var entity = await base.QueryById(id);
entity.Status = DIC_INTERVIEW_ORDER_STATUS.HasRecommended;
await Update(entity, ["Status"]);
}
return ServiceResult.OprateSuccess();
@ -1346,6 +1346,10 @@ END";
var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id);
if (order != null)
{
order.Status = DIC_INTERVIEW_ORDER_STATUS.WaitAppointment;
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++)
{
@ -1490,32 +1494,36 @@ END";
#endregion
#region 待面试提醒
public async Task<ServiceResult> RemindWaitInterview(long id)
public async Task<ServiceResult> RemindWaitInterview(List<long> ids)
{
var entity = await base.QueryById(id);
if (entity == null)
return ServiceResult.OprateFailed("无效的简历ID!");
if (entity.Status != DIC_INTERVIEW_ORDER_STATUS.WaitInterview)
return ServiceResult.OprateFailed("非【待面试】状态下简历不可发送提醒!");
var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id);
if (order != null)
for (int m = 0; m < ids.Count; m++)
{
var records = await _ghrh_InterviewRecordServices.Query(x => x.Round == order.Round && x.OrderId == order.Id);
var id = ids[m];
var entity = await base.QueryById(id);
if (entity == null)
return ServiceResult.OprateFailed("无效的简历ID!");
for (int i = 0; i < records.Count; i++)
{
if (records[i].FirstViewTime.IsNotEmptyOrNull())
await SendMessage([records[i].StaffId.Value], "简历提醒", "您有个简历【待面试】,请及时查看面试时间!");
}
if (entity.Status != DIC_INTERVIEW_ORDER_STATUS.WaitInterview)
return ServiceResult.OprateFailed("非【待面试】状态下简历不可发送提醒!");
var usser = await GetUser();
await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput()
var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id);
if (order != null)
{
OrderId = order.Id,
RemarkSz = $"用户【{usser?.UserName ?? App.User.ID.ToString()}】发送待面试提醒!"
});
var records = await _ghrh_InterviewRecordServices.Query(x => x.Round == order.Round && x.OrderId == order.Id);
for (int i = 0; i < records.Count; i++)
{
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()}】发送待面试提醒!"
});
}
}
return ServiceResult.OprateSuccess();
@ -1675,60 +1683,68 @@ END";
#endregion
#region 发offer
public async Task<ServiceResult> SendOffer(long id)
public async Task<ServiceResult> SendOffer(List<long> ids)
{
var entity = await base.QueryById(id);
if (entity == null)
return ServiceResult.OprateFailed("无效的简历ID!");
for (int i = 0; i < ids.Count; i++)
{
var id = ids[i];
var entity = await base.QueryById(id);
if (entity == null)
return ServiceResult.OprateFailed("无效的简历ID!");
entity.Status = DIC_INTERVIEW_ORDER_STATUS.HasSendOffer;
await Update(entity, ["Status"]);
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 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 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!"
});
var usser = await GetUser();
await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput()
{
OrderId = order.Id,
RemarkSz = $"用户【{usser?.UserName ?? App.User.ID.ToString()}】变更状态为:已发offer!"
});
}
return ServiceResult.OprateSuccess();
}
#endregion
#region 已发offer提醒
public async Task<ServiceResult> RemindHasOffer(long id)
public async Task<ServiceResult> RemindHasOffer(List<long> ids)
{
var entity = await base.QueryById(id);
if (entity == null)
return ServiceResult.OprateFailed("无效的简历ID!");
if (entity.Status != DIC_INTERVIEW_ORDER_STATUS.HasSendOffer)
return ServiceResult.OprateFailed("非【已发offer】状态下简历不可发送提醒!");
var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id);
if (order != null)
for (int i = 0; i < ids.Count; i++)
{
//var record = await _ghrh_InterviewRecordServices.QuerySingle(x => x.Round == order.Round && x.OrderId == order.Id);
var id = ids[i];
var entity = await base.QueryById(id);
if (entity == null)
return ServiceResult.OprateFailed("无效的简历ID!");
//if (record.ReceiverIds.IsNotEmptyOrNull())
//{
// var staffs = JsonHelper.JsonToObj<List<ResumeRecommendFormStaff>>(record.ReceiverIds);
// await SendMessage(staffs.Select(x => x.StaffId).ToList(), "简历提醒", "您有个简历【待面试】,请及时查看面试时间!");
//}
if (entity.Status != DIC_INTERVIEW_ORDER_STATUS.HasSendOffer)
return ServiceResult.OprateFailed("非【已发offer】状态下简历不可发送提醒!");
var usser = await GetUser();
await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput()
var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id);
if (order != null)
{
OrderId = order.Id,
RemarkSz = $"用户【{usser?.UserName ?? App.User.ID.ToString()}】发送待已发offer提醒!"
});
//var record = await _ghrh_InterviewRecordServices.QuerySingle(x => x.Round == order.Round && x.OrderId == order.Id);
//if (record.ReceiverIds.IsNotEmptyOrNull())
//{
// 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()}】发送待已发offer提醒!"
});
}
}
return ServiceResult.OprateSuccess();
@ -1736,36 +1752,40 @@ END";
#endregion
#region 变更是否报道
public async Task<ServiceResult> ModifyIsOffer(long id, bool isOffer)
public async Task<ServiceResult> ModifyIsOffer(List<long> ids, bool isOffer)
{
var entity = await base.QueryById(id);
if (entity == null)
return ServiceResult.OprateFailed("无效的简历ID!");
for (int i = 0; i < ids.Count; i++)
{
var id = ids[i];
var entity = await base.QueryById(id);
if (entity == null)
return ServiceResult.OprateFailed("无效的简历ID!");
//if (entity.Status != DIC_INTERVIEW_ORDER_STATUS.HasSendOffer)
// return ServiceResult.OprateFailed("非【已发offer】状态下简历不可发送提醒!");
//if (entity.Status != DIC_INTERVIEW_ORDER_STATUS.HasSendOffer)
// return ServiceResult.OprateFailed("非【已发offer】状态下简历不可发送提醒!");
var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id);
if (order != null)
{
var records = await _ghrh_InterviewRecordServices.Query(x => x.Round == order.Round && x.OrderId == order.Id);
if (isOffer)
var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id);
if (order != null)
{
entity.Status = DIC_INTERVIEW_ORDER_STATUS.HasOffer;
order.Status = DIC_INTERVIEW_ORDER_STATUS.HasOffer;
records.ForEach(record => record.Status = DIC_INTERVIEW_ORDER_STATUS.HasOffer);
}
var records = await _ghrh_InterviewRecordServices.Query(x => x.Round == order.Round && x.OrderId == order.Id);
if (isOffer)
{
entity.Status = DIC_INTERVIEW_ORDER_STATUS.HasOffer;
order.Status = DIC_INTERVIEW_ORDER_STATUS.HasOffer;
records.ForEach(record => record.Status = DIC_INTERVIEW_ORDER_STATUS.HasOffer);
}
await Update(entity, ["Status"]);
await _ghrh_InterviewOrderServices.Update(order, ["Status"]);
await _ghrh_InterviewRecordServices.Update(records, ["Status"]);
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()}】变更是否报道!"
});
var usser = await GetUser();
await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput()
{
OrderId = order.Id,
RemarkSz = $"用户【{usser?.UserName ?? App.User.ID.ToString()}】变更是否报道!"
});
}
}
return ServiceResult.OprateSuccess();

@ -1367,7 +1367,7 @@
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.ScheduleInterview(System.Int64,Tiobon.Core.Model.ViewModels.Extend.ResumeScheduleInterviewForm)">
<summary>
面试官约面
安排面试
</summary>
<param name="id">简历Id</param>
<param name="body"></param>
@ -1381,11 +1381,11 @@
<param name="time">时间段,2024/10/12 10:00~2024/10/12 11:00</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.RemindWaitInterview(System.Int64)">
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.RemindWaitInterview(System.Collections.Generic.List{System.Int64})">
<summary>
待面试提醒
</summary>
<param name="id">简历Id</param>
<param name="ids">简历Id,列表</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.RescheduleInterview(System.Int64,Tiobon.Core.Model.ViewModels.Extend.ResumeRescheduleInterviewForm)">
@ -1420,21 +1420,21 @@
<param name="InterviewStaffs">面试官列表</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.SendOffer(System.Int64)">
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.SendOffer(System.Collections.Generic.List{System.Int64})">
<summary>
发offer
</summary>
<param name="id">简历Id</param>
<param name="ids">简历Id,列表</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.RemindHasOffer(System.Int64)">
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.RemindHasOffer(System.Collections.Generic.List{System.Int64})">
<summary>
已发offer提醒
</summary>
<param name="id">简历Id</param>
<param name="ids">简历Id,列表</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.ModifyIsOffer(System.Int64,System.Boolean)">
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.ModifyIsOffer(System.Collections.Generic.List{System.Int64},System.Boolean)">
<summary>
已报到/未报道接口
</summary>
@ -1453,6 +1453,7 @@
<summary>
ESS端查询面试记录
</summary>
<param name="body">body</param>
<param name="status">状态</param>
<returns></returns>
</member>

Loading…
Cancel
Save