71 lines
2.5 KiB
C#
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;
|
|
}
|
|
}
|