using Yw.DAL.PostgreSql;
namespace HStation.DAL.PostgreSql
{
///
///
///
public class AssetsPackagePartMain : BaseDAL_Code_Sorter, IAssetsPackagePartMain
{
///
///
///
public override ConnectionConfig ConnectionConfig
{
get { return Assets.ConfigHelper.PostgreSqlConnectionConfig; }
}
//插入拓展
public long InsertsEx(Entity.AssetsPackagePartMain part, List AssetsPackagePropContents, Entity.AssetsPackageMainAndPartMapping partmap)
{
if (part == null)
{
return default;
}
using (var db = new SqlSugarClient(ConnectionConfig))
{
try
{
db.BeginTran();
var result = db.Insertable(part).ExecuteReturnSnowflakeId();
if (result < 0)
{
db.RollbackTran();
return default;
}
else
{
if (partmap != null)
{
partmap.PartID = result;
var mainandpartmap = db.Insertable(partmap).ExecuteReturnSnowflakeId();
if (mainandpartmap < 0)
{
db.RollbackTran();
return default;
}
else
{
if (AssetsPackagePropContents != null)
{
foreach (var item in AssetsPackagePropContents)
{
item.PartID = result;
}
var content = db.Insertable(AssetsPackagePropContents).ExecuteReturnSnowflakeId();
if (content < 0)
{
db.RollbackTran();
return default;
}
}
}
}
}
db.CommitTran();
return result;
}
catch (Exception ex)
{
db.RollbackTran();
throw;
}
}
}
//编辑拓展
public bool UpdateEx(Entity.AssetsPackagePartMain part, List AssetsPackagePropContents)
{
if (part == null)
{
return default;
}
using (var db = new SqlSugarClient(ConnectionConfig))
{
try
{
db.BeginTran();
var result = db.Updateable(part).ExecuteCommandHasChange();
if (!result)
{
db.RollbackTran();
return default;
}
else
{
if (AssetsPackagePropContents != null)
{
bool iscountiue = false;
foreach (var item in AssetsPackagePropContents)
{
// 查询数据库中是否存在相应的记录
var isHave = db.Queryable()
.Any(x => x.ID == item.ID);
if (isHave)
{
// 更新记录
var updateResult = db.Updateable(item)
.Where(x => x.ID == item.ID)
.ExecuteCommandHasChange();
iscountiue = updateResult;
}
else
{
// 插入新记录
var insertResult = db.Insertable(item).ExecuteReturnEntity();
}
}
// var propresult = db.Updateable(AssetsPackagePropContents).ExecuteCommandHasChange();
if (!iscountiue)
{
db.RollbackTran();
return default;
}
}
}
db.CommitTran();
return result;
}
catch (Exception ex)
{
db.RollbackTran();
throw;
}
}
}
//删除拓展 (删除产品表及属性表)
public bool DeleteEx(Entity.AssetsPackagePartMain part, List AssetsPackagePropContents)
{
if (part == null)
{
return default;
}
using (var db = new SqlSugarClient(ConnectionConfig))
{
try
{
db.BeginTran();
var result = db.Deleteable(part).ExecuteCommand() > 0;
if (!result)
{
db.RollbackTran();
return default;
}
else
{
if (AssetsPackagePropContents != null)
{
var propresult = db.Deleteable(AssetsPackagePropContents).ExecuteCommand() > 0;
if (!propresult)
{
db.RollbackTran();
return default;
}
}
}
db.CommitTran();
return result;
}
catch (Exception ex)
{
db.RollbackTran();
throw;
}
}
}
}
}