using SqlSugar;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
|
namespace TProduct.DAL
|
{
|
/// <summary>
|
/// 测试项目
|
/// </summary>
|
public class AutoAdjustScheme : BaseLiteSqlDAL<Entity.AutoAdjustScheme>
|
{
|
public override ISqlSugarClient Connection
|
{
|
get { return TProduct.DAL.SQLite.ConfigHelper.MainConn; }
|
}
|
|
/// <summary>
|
/// 插入包含扩展信息
|
/// </summary>
|
public long InsertEx(Entity.AutoAdjustScheme main, List<Entity.AutoAdjustSchemeDetail> details)
|
{
|
if (main == null)
|
return default;
|
|
using (ISqlSugarClient db = Connection)
|
{
|
try
|
{
|
|
long scheme_id = 0;
|
if (details == null || details.Count() == 0)
|
{
|
db.Ado.BeginTran();
|
scheme_id = db.Insertable(main).ExecuteReturnSnowflakeId();
|
if (scheme_id < 1)
|
{
|
db.Ado.RollbackTran();
|
return default;
|
}
|
main.ID = scheme_id;
|
}
|
else
|
{
|
db.Ado.BeginTran();
|
scheme_id = db.Insertable(main).ExecuteReturnSnowflakeId();
|
if (scheme_id < 1)
|
{
|
db.Ado.RollbackTran();
|
return default;
|
}
|
main.ID = scheme_id;
|
|
//
|
foreach (var detail in details)
|
{
|
detail.SchemeID = main.ID;
|
var result1 = db.Insertable(detail).ExecuteReturnSnowflakeId() > 0;
|
if (!result1)
|
{
|
db.Ado.RollbackTran();
|
return default;
|
}
|
}
|
}
|
|
db.Ado.CommitTran();
|
return scheme_id;
|
}
|
catch
|
{
|
db.Ado.RollbackTran();
|
return default;
|
}
|
}
|
}
|
|
|
/// <summary>
|
/// 更新包含扩展信息
|
/// </summary>
|
public bool UpdateEx(Entity.AutoAdjustScheme main, List<Entity.AutoAdjustSchemeDetail> details)
|
{
|
if (main == null)
|
return default;
|
var old_details = GetBySchemeID(main.ID);
|
|
using (ISqlSugarClient db = Connection)
|
{
|
try
|
{
|
db.Ado.BeginTran();
|
|
main.UpdateTime = DateTime.Now;
|
db.Updateable(main).IgnoreColumns(it => new { it.CreateTime, it.CreateUserID }).ExecuteCommand();
|
|
|
if (old_details == null || old_details.Count() == 0)
|
{
|
foreach (var detail in details)
|
{
|
detail.SchemeID = main.ID;
|
var result1 = db.Insertable(detail).ExecuteReturnSnowflakeId() > 0;
|
if (!result1)
|
{
|
db.Ado.RollbackTran();
|
return default;
|
}
|
}
|
}
|
else
|
{
|
foreach (var old_detail in old_details)
|
{
|
var f_n = details.Find(x => x.ID == old_detail.ID);
|
if (f_n == null)
|
{//没 表示已删除
|
db.Deleteable<Entity.AutoAdjustSchemeDetail>().Where(it => it.ID == old_detail.ID).ExecuteCommand();
|
}
|
}
|
foreach (var detail in details)
|
{
|
if (detail.ID <= 0)
|
{
|
detail.SchemeID = main.ID;
|
var result1 = db.Insertable(detail).ExecuteReturnSnowflakeId() > 0;
|
if (!result1)
|
{
|
db.Ado.RollbackTran();
|
return default;
|
}
|
}
|
else
|
{
|
db.Updateable(detail).ExecuteCommand();
|
}
|
}
|
}
|
|
|
db.Ado.CommitTran();
|
return true;
|
}
|
catch
|
{
|
db.Ado.RollbackTran();
|
return default;
|
}
|
}
|
}
|
|
/// <summary>
|
/// 通拓id列表获取
|
/// </summary>
|
/// <returns></returns>
|
public List<Entity.AutoAdjustSchemeDetail> GetBySchemeID(long SchemeID)
|
{
|
using (ISqlSugarClient db = Connection)
|
{
|
return db.Queryable<Entity.AutoAdjustSchemeDetail>().Where(x => x.SchemeID == SchemeID)?.ToList();
|
}
|
}
|
/// <summary>
|
/// 通拓id列表获取
|
/// </summary>
|
/// <returns></returns>
|
public List<Entity.AutoAdjustSchemeDetail> GetAllDetails()
|
{
|
using (ISqlSugarClient db = Connection)
|
{
|
return db.Queryable<Entity.AutoAdjustSchemeDetail>()?.ToList();
|
}
|
}
|
}
|
}
|