using Yw.DAL.PostgreSql; namespace HStation.DAL.PostgreSql { /// /// /// public partial class XhsProject : BaseDAL_Paras_Flags_TagName_TreeSorter, IXhsProject { /// /// /// public override ConnectionConfig ConnectionConfig { get { return Xhs.ConfigHelper.PostgreSqlConnectionConfig; } } /// /// 插入拓展 /// public long InsertEx(Entity.XhsProject entityProject, List entityProjectSiteList) { if (entityProject == null) { return default; } using (var db = new SqlSugarClient(ConnectionConfig)) { try { db.BeginTran(); if (entityProject.ID < 1) { entityProject.ID = db.Insertable(entityProject).ExecuteReturnSnowflakeId(); if (entityProject.ID < 1) { db.RollbackTran(); return default; } } else { var bol = db.Insertable(entityProject).ExecuteCommand() > 0; if (!bol) { db.RollbackTran(); return default; } } if (entityProjectSiteList != null && entityProjectSiteList.Count > 0) { foreach (var entityProjectSite in entityProjectSiteList) { entityProjectSite.ProjectID = entityProject.ID; if (entityProjectSite.ID < 1) { entityProjectSite.ID = db.Insertable(entityProjectSite).ExecuteReturnSnowflakeId(); if (entityProjectSite.ID < 1) { db.RollbackTran(); return default; } } else { var bol = db.Insertable(entityProjectSite).ExecuteCommand() >= 0; if (!bol) { db.RollbackTran(); return default; } } } } return entityProject.ID; } catch { db.RollbackTran(); throw; } } } /// /// 编辑拓展 /// public bool UpdateEx(Entity.XhsProject entityProject, List entityProjectSiteList) { if (entityProject == null) { return false; } if (entityProject.ID < 1) { return false; } using (var db = new SqlSugarClient(ConnectionConfig)) { try { db.BeginTran(); var bol = db.Updateable(entityProject).ExecuteCommandHasChange(); if (!bol) { db.RollbackTran(); return false; } if (entityProjectSiteList != null && entityProjectSiteList.Count > 0) { foreach (var entityProjectSite in entityProjectSiteList) { entityProjectSite.ProjectID = entityProject.ID; if (entityProjectSite.ID < 1) { db.RollbackTran(); return false; } bol = db.Updateable(entityProjectSite).ExecuteCommandHasChange(); if (!bol) { db.RollbackTran(); return false; } } } return true; } catch { db.RollbackTran(); throw; } } } /// /// 更新开始时间 /// public virtual bool UpdateStartTime(long ID, DateTime StartTime) { using (SqlSugarClient db = new(ConnectionConfig)) { return db.Updateable() .SetColumns(x => x.StartTime == StartTime) .Where(x => x.ID == ID) .ExecuteCommand() > 0; } } /// /// 更新结束时间 /// public virtual bool UpdateEndTime(long ID, DateTime EndTime) { using (SqlSugarClient db = new(ConnectionConfig)) { return db.Updateable() .SetColumns(x => x.EndTime == EndTime) .Where(x => x.ID == ID) .ExecuteCommand() > 0; } } /// /// 通过 ID 删除 (拓展) /// public bool DeleteExByID(long ID) { if (ID < 1) { return false; } using (var db = new SqlSugarClient(ConnectionConfig)) { try { db.BeginTran(); var bol = db.Deleteable().Where(x => x.ID == ID).ExecuteCommandHasChange(); if (!bol) { db.RollbackTran(); return false; } db.Deleteable().Where(x => x.ProjectID == ID).ExecuteCommandHasChange(); db.CommitTran(); return true; } catch { db.RollbackTran(); throw; } } } } }