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; } } } } }