简历操作日志新增记录员工信息

master
xiaochanghai 6 months ago
parent f4da275967
commit 94cfeed36c
  1. 1407
      Model/Tiobon.Web.pdm
  2. 11
      Tiobon.Core.Api/Controllers/Authorize/AuthorizeController.cs
  3. 4
      Tiobon.Core.Api/Controllers/CommonController.cs
  4. 20
      Tiobon.Core.Api/Tiobon.Core.Model.xml
  5. 2
      Tiobon.Core.Api/Tiobon.Core.xml
  6. 27
      Tiobon.Core.Common/HttpContextUser/AspNetUser.cs
  7. 6
      Tiobon.Core.Common/HttpContextUser/IUser.cs
  8. 13
      Tiobon.Core.Model/Base/Ghrh/Ghrh_InterviewLog.Dto.Base.cs
  9. 13
      Tiobon.Core.Model/Models/Ghrh/Ghrh_InterviewLog.cs
  10. 5
      Tiobon.Core.Model/View/Ghrs/Ghrs_User.Dto.View.cs
  11. 2
      Tiobon.Core.Services/BASE/BaseServices.cs
  12. 5
      Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs
  13. 18
      Tiobon.Core.Services/Ghrs/Ghrs_UserServices.cs

File diff suppressed because it is too large Load Diff

@ -278,14 +278,17 @@ public class AuthorizeController : BaseApiController
try try
{ {
var user = await _ghrs_UserServices.Query(d => d.UserId == Id); var user = await _ghrs_UserServices.QuerySingleDto(d => d.UserId == Id);
if (user.Count > 0) if (user != null)
{ {
//如果是基于用户的授权策略,这里要添加用户;如果是基于角色的授权策略,这里要添加角色 //如果是基于用户的授权策略,这里要添加用户;如果是基于角色的授权策略,这里要添加角色
var claims = new List<Claim> { var claims = new List<Claim> {
new Claim(ClaimTypes.Name, user.FirstOrDefault().UserName.ToString()), new Claim(ClaimTypes.Name, user.UserName.ToString()),
new Claim(JwtRegisteredClaimNames.Jti, user.FirstOrDefault().UserId.ToString()), new Claim(JwtRegisteredClaimNames.Jti, user.UserId.ToString()),
new Claim("TenantId", "0"), new Claim("TenantId", "0"),
new Claim("StaffId", user.UserStaffID.ToString()),
new Claim("StaffName",user.StaffName),
new Claim("StaffNo", user.StaffNo),
new Claim(JwtRegisteredClaimNames.Iat, DateTime.Now.DateToTimeStamp()), new Claim(JwtRegisteredClaimNames.Iat, DateTime.Now.DateToTimeStamp()),
new Claim(ClaimTypes.Expiration, DateTime.Now.AddSeconds(_requirement.Expiration.TotalSeconds).ToString()) new Claim(ClaimTypes.Expiration, DateTime.Now.AddSeconds(_requirement.Expiration.TotalSeconds).ToString())
}; };

@ -1,7 +1,5 @@
using Confluent.Kafka; using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Linq;
using System.Data; using System.Data;
using System.Net;
using Tiobon.Core.Common.DB.Dapper; using Tiobon.Core.Common.DB.Dapper;
using Tiobon.Core.Common.DB.Dapper.DBManager; using Tiobon.Core.Common.DB.Dapper.DBManager;

@ -7400,6 +7400,16 @@
简历ID 简历ID
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewLogBase.StaffId">
<summary>
员工ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewLogBase.StaffName">
<summary>
员工名称
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewLogBase.UserId"> <member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewLogBase.UserId">
<summary> <summary>
用户ID 用户ID
@ -20901,6 +20911,16 @@
简历ID 简历ID
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewLog.StaffId">
<summary>
员工ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewLog.StaffName">
<summary>
员工名称
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewLog.UserId"> <member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewLog.UserId">
<summary> <summary>
用户ID 用户ID

@ -1563,7 +1563,7 @@
</member> </member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.ApplyOfferApproval(System.Collections.Generic.List{System.Int64})"> <member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.ApplyOfferApproval(System.Collections.Generic.List{System.Int64})">
<summary> <summary>
发起录用审批 转入待发Offer
</summary> </summary>
<param name="ids">简历ID</param> <param name="ids">简历ID</param>
<returns></returns> <returns></returns>

@ -1,8 +1,7 @@
using System.IdentityModel.Tokens.Jwt; using Microsoft.AspNetCore.Http;
using System.Security.Claims;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Newtonsoft.Json; using System.IdentityModel.Tokens.Jwt;
using System.Security.Claims;
using Tiobon.Core.Common.Swagger; using Tiobon.Core.Common.Swagger;
using Tiobon.Core.Model; using Tiobon.Core.Model;
@ -146,4 +145,24 @@ public class AspNetUser : IUser
where item.Type == ClaimType where item.Type == ClaimType
select item.Value).ToList(); select item.Value).ToList();
} }
public string StaffNo => GetStaffNo();
private string GetStaffNo()
{
return GetClaimValueByType("StaffNo").FirstOrDefault(); ;
}
public string StaffName => GetStaffName();
private string GetStaffName()
{
return GetClaimValueByType("StaffName").FirstOrDefault();
}
public int StaffId => GetStaffId();
private int GetStaffId()
{
return GetClaimValueByType("StaffId").FirstOrDefault().ObjToInt();
}
} }

@ -9,6 +9,12 @@ public interface IUser
int ID { get; } int ID { get; }
long TenantId { get; } long TenantId { get; }
bool IsAuthenticated(); bool IsAuthenticated();
int StaffId { get; }
string StaffName { get; }
string StaffNo { get; }
IEnumerable<Claim> GetClaimsIdentity(); IEnumerable<Claim> GetClaimsIdentity();
List<string> GetClaimValueByType(string ClaimType); List<string> GetClaimValueByType(string ClaimType);

@ -6,7 +6,7 @@
* *
* Ver * Ver
* *
*V0.01 2024/12/13 14:18:56 SimonHsiao *V0.01 2024/12/17 17:31:46 SimonHsiao
* *
* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved. * Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
* *
@ -38,6 +38,17 @@ public class Ghrh_InterviewLogBase
/// </summary> /// </summary>
public long? ResumeId { get; set; } public long? ResumeId { get; set; }
/// <summary>
/// 员工ID
/// </summary>
public int? StaffId { get; set; }
/// <summary>
/// 员工名称
/// </summary>
[Display(Name = "StaffName"), Description("员工名称"), MaxLength(32, ErrorMessage = "员工名称 不能超过 32 个字符")]
public string StaffName { get; set; }
/// <summary> /// <summary>
/// 用户ID /// 用户ID
/// </summary> /// </summary>

@ -6,7 +6,7 @@
* *
* Ver * Ver
* *
*V0.01 2024/12/13 14:18:56 SimonHsiao *V0.01 2024/12/17 17:31:46 SimonHsiao
* *
* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved. * Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
* *
@ -39,6 +39,17 @@ public class Ghrh_InterviewLog : BasePoco
/// </summary> /// </summary>
public long? ResumeId { get; set; } public long? ResumeId { get; set; }
/// <summary>
/// 员工ID
/// </summary>
public int? StaffId { get; set; }
/// <summary>
/// 员工名称
/// </summary>
[Display(Name = "StaffName"), Description("员工名称"), MaxLength(32, ErrorMessage = "员工名称 不能超过 32 个字符")]
public string StaffName { get; set; }
/// <summary> /// <summary>
/// 用户ID /// 用户ID
/// </summary> /// </summary>

@ -23,4 +23,9 @@ namespace Tiobon.Core.Model.Models;
/// </summary> /// </summary>
public class Ghrs_UserDto : Ghrs_User public class Ghrs_UserDto : Ghrs_User
{ {
public string StaffNo { get; set; }
public string StaffName { get; set; }
} }

@ -582,7 +582,7 @@ public class BaseServices<TEntity, TEntityDto, TInsertDto, TEditDto> : IBaseServ
return default; return default;
else return entity; else return entity;
} }
public async Task<TEntityDto> QuerySingleDto(Expression<Func<TEntity, bool>> whereExpression) public virtual async Task<TEntityDto> QuerySingleDto(Expression<Func<TEntity, bool>> whereExpression)
{ {
var entity = await QuerySingle(whereExpression); var entity = await QuerySingle(whereExpression);
if (entity == null) if (entity == null)

@ -2,6 +2,7 @@
using DinkToPdf.Contracts; using DinkToPdf.Contracts;
using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Hosting;
using NPOI.OpenXmlFormats.Wordprocessing;
using System.IO.Compression; using System.IO.Compression;
using static Tiobon.Core.Model.Consts; using static Tiobon.Core.Model.Consts;
@ -2265,6 +2266,8 @@ END";
{ {
InterviewOrderId = order.Id, InterviewOrderId = order.Id,
ResumeId = id, ResumeId = id,
StaffId = App.User.StaffId,
StaffName = App.User.StaffName + "(" + App.User.StaffNo + ")",
Source = "SendOffer", Source = "SendOffer",
Reverse1 = entity.OfferFileUrl, Reverse1 = entity.OfferFileUrl,
UserId = App.User.ID, UserId = App.User.ID,
@ -3678,6 +3681,8 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status";
{ {
InterviewOrderId = orderId, InterviewOrderId = orderId,
InterviewRecordId = recordId, InterviewRecordId = recordId,
StaffId = App.User.StaffId,
StaffName = App.User.StaffName + "(" + App.User.StaffNo + ")",
ResumeId = resumeId, ResumeId = resumeId,
Source = source, Source = source,
UserId = App.User.ID, UserId = App.User.ID,

@ -11,4 +11,22 @@ public class Ghrs_UserServices : BaseServices<Ghrs_User, Ghrs_UserDto, InsertGhr
this._dal = dal; this._dal = dal;
base.BaseDal = dal; base.BaseDal = dal;
} }
public override async Task<Ghrs_UserDto> QuerySingleDto(Expression<Func<Ghrs_User, bool>> whereExpression)
{
var entity = await base.QuerySingleDto(whereExpression);
if (entity != null)
{
var staff = await Db.Queryable<Ghra_Staff>().Where(x => x.StaffID == entity.UserStaffID).FirstAsync();
if (staff != null)
{
entity.StaffNo = staff.StaffNo;
entity.StaffName = staff.StaffName;
}
}
return entity;
}
} }
Loading…
Cancel
Save