Files
jinko.yikatong/Src/Dlhis.Basic/Organization/Services/Implements/GainfoStore.cs
2024-01-08 11:36:38 +08:00

71 lines
2.5 KiB
C#

using System.Reflection;
using Dlhis.Entity.Basic.Entity;
using Dlhis.Entity.Basic.Enums;
using Kurisu.SqlSugar.Services;
using SqlSugar;
namespace Dlhis.Basic.Organization.Services.Implements;
public class GainfoStore : IGainfoStore
{
private readonly IDbContext _dbContext;
private readonly ISqlSugarOptionsService _sqlSugarOptionsService;
public GainfoStore(IDbContext dbContext, ISqlSugarOptionsService sqlSugarOptionsService)
{
_dbContext = dbContext;
_sqlSugarOptionsService = sqlSugarOptionsService;
}
/// <summary>
/// 档案表查询分表(按类型)
/// </summary>
/// <param name="gainfoStatus"></param>
/// <returns></returns>
public ISugarQueryable<GainfoEntity> Queryable(GainfoStatusEnumType? gainfoStatus)
{
if (gainfoStatus.HasValue && gainfoStatus != GainfoStatusEnumType.Working)
{
var tableName = typeof(GainfoEntity).GetCustomAttribute<SugarTable>().TableName;
return _dbContext.Queryable<GainfoEntity>().AS(tableName + gainfoStatus);
}
return _dbContext.Queryable<GainfoEntity>();
}
public async Task InsertAsync(GainfoStatusEnumType? gainfoStatus, List<GainfoEntity> entities)
{
await _dbContext.Client.Insertable(entities).AS(GetTableName(gainfoStatus)).EnableDiffLogEventIF(_sqlSugarOptionsService.Diff).ExecuteCommandAsync();
}
public async Task UpdateAsync(GainfoStatusEnumType? gainfoStatus, List<GainfoEntity> entities)
{
await _dbContext.Client.Updateable(entities).AS(GetTableName(gainfoStatus)).EnableDiffLogEventIF(_sqlSugarOptionsService.Diff).ExecuteCommandAsync();
}
public async Task DeleteAsync(GainfoStatusEnumType? gainfoStatus, List<GainfoEntity> entities)
{
await _dbContext.Client.Deleteable(entities).AS(GetTableName(gainfoStatus)).EnableDiffLogEventIF(_sqlSugarOptionsService.Diff).ExecuteCommandAsync();
}
//*************************************************************** help method *********************************************************************************
/// <summary>
/// 获取表名称
/// </summary>
/// <param name="gainfoStatus"></param>
/// <returns></returns>
private static string GetTableName(GainfoStatusEnumType? gainfoStatus)
{
var tableName = typeof(GainfoEntity).GetCustomAttribute<SugarTable>().TableName;
if (gainfoStatus.HasValue && gainfoStatus != GainfoStatusEnumType.Working)
{
return tableName + "_" + gainfoStatus;
}
return tableName;
}
}