新增Offer模板预览接口

新增查询Offer支持的字段
master
xiaochanghai 7 months ago
parent 9e59a506a1
commit 3378152774
  1. 14
      Tiobon.Core.Api/Controllers/Ghrh/Ghrh_ResumeController.cs
  2. 18
      Tiobon.Core.Api/Controllers/Ghrh/Ghrh_TemplateController.cs
  3. 45
      Tiobon.Core.Api/Tiobon.Core.Model.xml
  4. 28
      Tiobon.Core.Api/Tiobon.Core.xml
  5. 59
      Tiobon.Core.Common/Helper/StringHelper.cs
  6. 1
      Tiobon.Core.IServices/Ghrh/IGhrh_ResumeServices.cs
  7. 4
      Tiobon.Core.IServices/Ghrh/IGhrh_TemplateServices.cs
  8. 57
      Tiobon.Core.Model/ViewModels/Extend/CustomFieldView.cs
  9. 2
      Tiobon.Core.Services/CommonServices.cs
  10. 15
      Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs
  11. 25
      Tiobon.Core.Services/Ghrh/Ghrh_TemplateServices.cs
  12. 45
      Tiobon.Core/Tiobon.Core.Model.xml
  13. 28
      Tiobon.Core/Tiobon.Core.xml

@ -346,6 +346,20 @@ public class Ghrh_ResumeController : BaseController<IGhrh_ResumeServices, Ghrh_R
}
#endregion
#region 发offer
/// <summary>
/// 发offer
/// </summary>
/// <param name="id">简历Id</param>
/// <param name="content">Offer内容</param>
/// <returns></returns>
[HttpPost, Route("SendOffer/{id}")]
public async Task<ServiceResult> SendOffer(long id, [FromBody] string content)
{
return await _service.SendOffer(id, content);
}
#endregion
#region 已发offer提醒
/// <summary>
/// 已发offer提醒

@ -22,4 +22,22 @@ public class Ghrh_TemplateController : BaseController<IGhrh_TemplateServices, Gh
[HttpPost("SwitchPublish/{id}/{isPublish}")]
public async Task<ServiceResult> SwitchPublish(long id, int? isPublish) => await _service.SwitchPublish(id, isPublish);
#endregion
#region 查询Offer支持的字段
/// <summary>
/// Offer支持的字段
/// </summary>
/// <returns></returns>
[HttpPost("QueryOfferTags")]
public async Task<ServiceResult<List<CustomFieldView>>> QueryOfferTags() => await _service.QueryOfferTags();
#endregion
#region 预览
/// <summary>
/// Offer支持的字段
/// </summary>
/// <returns></returns>
[HttpPost("Preview/{resumeId}")]
public async Task<ServiceResult<string>> Preview(string resumeId) => await _service.Preview(resumeId);
#endregion
}

@ -25760,6 +25760,51 @@
</summary>
</member>
<member name="P:Tiobon.Core.Model.CustomFieldView.GroupName">
<summary>
分组
</summary>
</member>
<member name="P:Tiobon.Core.Model.CustomFieldView.Fields">
<summary>
字段
</summary>
</member>
<member name="T:Tiobon.Core.Model.ModelTagView2Item">
<summary>
标签对应的描述
</summary>
</member>
<member name="P:Tiobon.Core.Model.ModelTagView2Item.Name">
<summary>
描述
</summary>
</member>
<member name="P:Tiobon.Core.Model.ModelTagView2Item.Code">
<summary>
字段
</summary>
</member>
<member name="P:Tiobon.Core.Model.OfferTemplate.StaffName">
<summary>
姓名
</summary>
</member>
<member name="P:Tiobon.Core.Model.OfferTemplate.Mobile">
<summary>
电话
</summary>
</member>
<member name="P:Tiobon.Core.Model.OfferTemplate.Email">
<summary>
邮箱
</summary>
</member>
<member name="P:Tiobon.Core.Model.OfferTemplate.IdCardNo">
<summary>
身份证号码
</summary>
</member>
<member name="P:Tiobon.Core.Model.DefaultGhre_ExamInput.UpdateDataInfo">
<summary>
修改信息 黄一名 于 2024-05-10 15:02 最后修改

@ -1460,6 +1460,14 @@
<param name="ids">简历Id,列表</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.SendOffer(System.Int64,System.String)">
<summary>
发offer
</summary>
<param name="id">简历Id</param>
<param name="content">Offer内容</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.RemindHasOffer(System.Collections.Generic.List{System.Int64})">
<summary>
已发offer提醒
@ -1650,6 +1658,26 @@
招聘模板(Controller)
</summary>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_TemplateController.SwitchPublish(System.Int64,System.Nullable{System.Int32})">
<summary>
是否开启
</summary>
<param name="id"></param>
<param name="isPublish"></param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_TemplateController.QueryOfferTags">
<summary>
Offer支持的字段
</summary>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_TemplateController.Preview(System.String)">
<summary>
Offer支持的字段
</summary>
<returns></returns>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghrh_YearHumanSettingsController">
<summary>
年度人力配置(Controller)

@ -1,4 +1,6 @@
using System.Text;
using System.ComponentModel;
using System.Reflection;
using System.Text;
namespace Tiobon.Core.Common.Helper;
@ -232,4 +234,59 @@ public class StringHelper
catch (Exception) { throw; }
}
#endregion
#region 获取字段描述
/// <summary>
/// 对象字段描述
/// </summary>
private static Dictionary<string, Dictionary<string, string>> m_FieldDesc = new Dictionary<string, Dictionary<string, string>>();
/// <summary>
/// 获取字段的描述(描述 - 列名)
/// </summary>
/// <typeparam name="T"></typeparam>
/// <returns></returns>
public static Dictionary<string, string> GetFieldDesc<T>()
{
var type = typeof(T).ToString();
lock (m_FieldDesc)
{
if (m_FieldDesc.ContainsKey(type))
return m_FieldDesc[type];
}
Dictionary<string, string> dic = new Dictionary<string, string>();
try
{
PropertyInfo[] peroperties = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);
if (peroperties != null)
{
foreach (PropertyInfo property in peroperties)
{
object[] objs = property.GetCustomAttributes(typeof(DescriptionAttribute), true);
if (objs.Length > 0)
{
var desc = ((DescriptionAttribute)objs[0]).Description.Trim();
if (!dic.ContainsKey(desc))
{
dic.Add(desc, property.Name);
}
else
{
dic[desc] = property.Name;
}
}
}
}
}
catch //(Exception ex)
{
}
lock (m_FieldDesc)
{
if (!m_FieldDesc.ContainsKey(type))
m_FieldDesc.Add(type, dic);
}
return dic;
}
#endregion
}

@ -53,6 +53,7 @@ public interface IGhrh_ResumeServices : IBaseServices<Ghrh_Resume, Ghrh_ResumeDt
Task<ServiceResult> ModifyInterviewer(long id, List<ResumeRecommendFormStaff> InterviewStaffs);
Task<ServiceResult> SendOffer(List<long> ids);
Task<ServiceResult> SendOffer(long id, string content);
Task<ServiceResult> RemindHasOffer(List<long> ids);

@ -10,4 +10,8 @@ namespace Tiobon.Core.IServices;
public interface IGhrh_TemplateServices : IBaseServices<Ghrh_Template, Ghrh_TemplateDto, InsertGhrh_TemplateInput, EditGhrh_TemplateInput>
{
Task<ServiceResult> SwitchPublish(long id, int? isPublish);
Task<ServiceResult<List<CustomFieldView>>> QueryOfferTags();
Task<ServiceResult<string>> Preview(string resumeId);
}

@ -0,0 +1,57 @@
namespace Tiobon.Core.Model;
public class CustomFieldView
{
/// <summary>
/// 分组
/// </summary>
public string GroupName { get; set; }
/// <summary>
/// 字段
/// </summary>
public List<ModelTagView2Item> Fields { get; set; }
}
/// <summary>
/// 标签对应的描述
/// </summary>
public class ModelTagView2Item
{
/// <summary>
/// 描述
/// </summary>
public string Name { get; set; }
/// <summary>
/// 字段
/// </summary>
public string Code { set; get; }
}
public class OfferTemplate
{
/// <summary>
/// 姓名
/// </summary>
[Description("姓名")]
public string StaffName { get; set; }
/// <summary>
/// 电话
/// </summary>
[Description("电话")]
public string Mobile { get; set; }
/// <summary>
/// 邮箱
/// </summary>
[Description("邮箱")]
public string Email { get; set; }
/// <summary>
/// 身份证号码
/// </summary>
[Description("身份证号码")]
public string IdCardNo { get; set; }
}

@ -1729,6 +1729,8 @@ public partial class CommonServices : BaseServices<RootEntityTkey<int>>, ICommon
if (toolbar != null) toolbar.fnKey = "TBD2YN";
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "DetailYN").FirstOrDefault();
if (toolbar != null) toolbar.fnKey = "TBD3YN";
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "CopyYN").FirstOrDefault();
if (toolbar != null) toolbar.fnKey = "TBD4YN";
break;
}

@ -1885,6 +1885,21 @@ END";
}
return ServiceResult.OprateSuccess();
}
public async Task<ServiceResult> SendOffer(long id, string content)
{
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);
await LogRecord(order.Id, "变更状态为:已发offer!");
return ServiceResult.OprateSuccess();
}
#endregion
#region 已发offer提醒

@ -41,4 +41,29 @@ public class Ghrh_TemplateServices : BaseServices<Ghrh_Template, Ghrh_TemplateDt
return ServiceResult.OprateSuccess();
}
#endregion
#region 获取Offer模板字段
public async Task<ServiceResult<List<CustomFieldView>>> QueryOfferTags()
{
var list = new List<CustomFieldView>()
{
new CustomFieldView { GroupName = "中文", Fields = StringHelper.GetFieldDesc<OfferTemplate>().Select(o => new ModelTagView2Item { Name=o.Key,Code=o.Key}).ToList() },
new CustomFieldView { GroupName = "英文", Fields = StringHelper.GetFieldDesc<OfferTemplate>().Select(o => new ModelTagView2Item { Name=o.Value+"_EN",Code=o.Value+"_EN"}).ToList() },
};
return await Task.FromResult(ServiceResult<List<CustomFieldView>>.OprateSuccess("查询成功!", list));
}
#endregion
#region 预览Offer简历
public async Task<ServiceResult<string>> Preview(string resumeId)
{
var result = string.Empty;
var template = await base.QuerySingle(x => x.IsPublish == 1);
if (template != null)
{
result = template.TemplateContent;
}
return await Task.FromResult(ServiceResult<string>.OprateSuccess("查询成功!", result));
}
#endregion
}

@ -25760,6 +25760,51 @@
</summary>
</member>
<member name="P:Tiobon.Core.Model.CustomFieldView.GroupName">
<summary>
分组
</summary>
</member>
<member name="P:Tiobon.Core.Model.CustomFieldView.Fields">
<summary>
字段
</summary>
</member>
<member name="T:Tiobon.Core.Model.ModelTagView2Item">
<summary>
标签对应的描述
</summary>
</member>
<member name="P:Tiobon.Core.Model.ModelTagView2Item.Name">
<summary>
描述
</summary>
</member>
<member name="P:Tiobon.Core.Model.ModelTagView2Item.Code">
<summary>
字段
</summary>
</member>
<member name="P:Tiobon.Core.Model.OfferTemplate.StaffName">
<summary>
姓名
</summary>
</member>
<member name="P:Tiobon.Core.Model.OfferTemplate.Mobile">
<summary>
电话
</summary>
</member>
<member name="P:Tiobon.Core.Model.OfferTemplate.Email">
<summary>
邮箱
</summary>
</member>
<member name="P:Tiobon.Core.Model.OfferTemplate.IdCardNo">
<summary>
身份证号码
</summary>
</member>
<member name="P:Tiobon.Core.Model.DefaultGhre_ExamInput.UpdateDataInfo">
<summary>
修改信息 黄一名 于 2024-05-10 15:02 最后修改

@ -1460,6 +1460,14 @@
<param name="ids">简历Id,列表</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.SendOffer(System.Int64,System.String)">
<summary>
发offer
</summary>
<param name="id">简历Id</param>
<param name="content">Offer内容</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.RemindHasOffer(System.Collections.Generic.List{System.Int64})">
<summary>
已发offer提醒
@ -1650,6 +1658,26 @@
招聘模板(Controller)
</summary>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_TemplateController.SwitchPublish(System.Int64,System.Nullable{System.Int32})">
<summary>
是否开启
</summary>
<param name="id"></param>
<param name="isPublish"></param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_TemplateController.QueryOfferTags">
<summary>
Offer支持的字段
</summary>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_TemplateController.Preview(System.String)">
<summary>
Offer支持的字段
</summary>
<returns></returns>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghrh_YearHumanSettingsController">
<summary>
年度人力配置(Controller)

Loading…
Cancel
Save