namespace Tiobon.Core.Services;
///
/// Ghra_Staff (服务)
///
public class Ghra_StaffServices : BaseServices, IGhra_StaffServices
{
private readonly IBaseRepository _dal;
private IGhra_StaffLicenceServices _ghra_StaffLicenceServices;
public Ghra_StaffServices(ICaching caching,
IGhra_StaffLicenceServices ghra_StaffLicenceServices,
IBaseRepository dal)
{
this._dal = dal;
base.BaseDal = dal;
base._caching = caching;
_ghra_StaffLicenceServices = ghra_StaffLicenceServices;
}
public override async Task> QueryFilterPage(QueryBody filter, string condition, bool? IsEnable = true)
{
var result = await base.QueryFilterPage(filter, condition, IsEnable);
var deptIds = result.result.DT_TableDataT1.Where(x => x.DeptID != null).Select(x => x.DeptID.Value).ToList();
var depts = await Db.Queryable().Where(x => x.DeptID != null && deptIds.Contains(x.DeptID.Value)).ToListAsync();
var titleIds = result.result.DT_TableDataT1.Where(x => x.TitleID != null).Select(x => x.TitleID.Value).ToList();
var titles = await Db.Queryable().Where(x => x.TitleID != null && titleIds.Contains(x.TitleID.Value)).ToListAsync();
for (int i = 0; i < result.result.DT_TableDataT1.Count; i++)
{
result.result.DT_TableDataT1[i].GenderLabel = await GetParaLabel("Gender", result.result.DT_TableDataT1[i].Gender);
result.result.DT_TableDataT1[i].IndateLabel = DateTimeHelper.ConvertToDayString(result.result.DT_TableDataT1[i].Indate);
result.result.DT_TableDataT1[i].StaffType1Label = await GetParaLabel(result.result.DT_TableDataT1[i].StaffType1);
result.result.DT_TableDataT1[i].StaffType2Label = await GetParaLabel(result.result.DT_TableDataT1[i].StaffType2);
if (result.result.DT_TableDataT1[i].DeptID != null)
result.result.DT_TableDataT1[i].DeptName = depts.Where(o => o.DeptID == result.result.DT_TableDataT1[i].DeptID).FirstOrDefault()?.DeptName;
if (result.result.DT_TableDataT1[i].TitleID != null)
result.result.DT_TableDataT1[i].TitleName = titles.Where(o => o.TitleID == result.result.DT_TableDataT1[i].TitleID).FirstOrDefault()?.TitleName;
}
return result;
}
public async Task> QuerySimple(int id)
{
var entity = await Db.Ado.SqlQuerySingleAsync($"SELECT * FROM Ghra_Staff WHERE StaffID='{id}' ");
if (entity != null)
{
entity.TitleId = entity.TitleID;
entity.DeptId = entity.DeptID;
if (entity.DeptId != null)
{
var dept = await Db.Queryable().Where(x => x.DeptID == entity.DeptId).FirstAsync();
if (dept != null)
entity.DeptName = dept.DeptName;
dept = await Db.Queryable().Where(x => x.ParentDeptID == entity.DeptId).FirstAsync();
if (dept != null)
entity.ParentDeptName = dept.DeptName;
}
var licences = await Db.Ado.SqlQueryAsync($"SELECT * FROM Ghra_StaffLicence WHERE StaffID='{id}' AND IsEnable=1");
//var licences = await _ghra_StaffLicenceServices.QueryDto(x => x.StaffID == id);
licences.ForEach(x =>
{
if (!string.IsNullOrWhiteSpace(x.AttachmentIDs))
x.Attachments = JsonHelper.JsonToObj>(x.AttachmentIDs);
});
entity.Licences = licences;
}
return ServiceResult.OprateSuccess("查询成功!", entity);
}
public async Task> QueryEmail(int id)
{
string email = string.Empty;
var entity = await Db.Ado.SqlQuerySingleAsync($"SELECT * FROM Ghra_Staff WHERE StaffID='{id}' ");
if (entity != null)
email = entity.Email;
return ServiceResult.OprateSuccess("查询成功!", email);
}
}