using Yw.DAL.PostgreSql;
namespace HStation.DAL.PostgreSql
{
///
///
///
public partial class XhsProject : BaseDAL_Paras_Flags_TagName_Sorter_UseStatus, IXhsProject
{
///
///
///
public override ConnectionConfig ConnectionConfig
{
get { return Xhs.ConfigHelper.PostgreSqlConnectionConfig; }
}
///
/// 插入拓展
///
public long InsertEx(Entity.XhsProject project, Entity.XhsProjectItem Item, Entity.XhsProjectItemModel Model, Entity.XhsProjectItemModelMap Map)
{
if (project == null || Item == null || Model == null || Map == null)
{
return default;
}
using (var db = new SqlSugarClient(ConnectionConfig))
{
try
{
db.BeginTran();
var prjlist = db.Queryable().ToList();
if (prjlist.Count > 0)
{
project.SortCode = prjlist.Max(x => x.SortCode) + 1;
}
else
{
project.SortCode = 0;
}
project.UseStatus = 1;
var nowday = prjlist.Where(x => x.CreateTime.Date == DateTime.Now.Date).ToList();
project.PrjNumber = "Prj" + DateTime.Now.ToString("yyyyMMdd") + (nowday.Count + 1).ToString("D4");
var result = db.Insertable(project).ExecuteReturnSnowflakeId();
if (result < 0)
{
db.RollbackTran();
return default;
}
else
{
Item.ProjectID = result;
Item.UseStatus = 1;
var itemlist = db.Queryable().ToList();
if (itemlist.Count > 0)
{
Item.SortCode = itemlist.Max(x => x.SortCode) + 1;
}
else
{
Item.SortCode = 0;
}
var itemresult = db.Insertable(Item).ExecuteReturnSnowflakeId();
if (itemresult < 0)
{
db.RollbackTran();
return default;
}
else
{
Model.ProjectID = result;
Model.UseStatus = 1;
var modellist = db.Queryable().ToList();
if (modellist.Count > 0)
{
Model.SortCode = modellist.Max(x => x.SortCode) + 1;
}
else
{
Model.SortCode = 0;
}
var Modelresult = db.Insertable(Model).ExecuteReturnSnowflakeId();
if (Modelresult < 0)
{
db.RollbackTran();
return default;
}
else
{
Map.ProjectID = result;
Map.ItemID = itemresult;
Map.ModelID = Modelresult;
Map.UseStatus = 1;
var Mapresult = db.Insertable(Map).ExecuteReturnSnowflakeId();
if (Mapresult < 0)
{
db.RollbackTran();
return default;
}
}
}
}
db.CommitTran();
return result;
}
catch (Exception ex)
{
db.RollbackTran();
throw;
}
}
}
///
/// 编辑拓展
///
public bool UpdateEx(Entity.XhsProject project, Entity.XhsProjectItem Item)
{
if (project == null || Item == null)
{
return default;
}
using (var db = new SqlSugarClient(ConnectionConfig))
{
try
{
db.BeginTran();
var result = db.Updateable(project).ExecuteCommand() > 0;
if (!result)
{
db.RollbackTran();
return default;
}
else
{
var itemresult = db.Updateable(Item).ExecuteCommand() > 0;
if (!itemresult)
{
db.RollbackTran();
return default;
}
}
db.CommitTran();
return true;
}
catch (Exception ex)
{
db.RollbackTran();
return default;
throw;
}
}
}
///
/// 删除拓展
///
public bool DeleteEx(long ID)
{
if (ID < 0)
{
return default;
}
using (var db = new SqlSugarClient(ConnectionConfig))
{
try
{
db.BeginTran();
var project = db.Queryable().ToList().Where(x => x.ID == ID).First();
var result = db.Deleteable(project).Where(x => x.ID == project.ID).ExecuteCommand() > 0;
if (!result)
{
db.RollbackTran();
return default;
}
else
{
var Item = db.Queryable().ToList();
var itemresult = db.Deleteable(Item).Where(x => x.ProjectID == project.ID).ExecuteCommand() > 0;
if (!itemresult)
{
db.RollbackTran();
return default;
}
else
{
var Model = db.Queryable().ToList();
var Modelresult = db.Deleteable(Model).Where(x => x.ProjectID == project.ID).ExecuteCommand() > 0;
if (!Modelresult)
{
db.RollbackTran();
return default;
}
else
{
var Map = db.Queryable().ToList();
var Mapresult = db.Deleteable(Map).Where(x => x.ProjectID == project.ID).ExecuteCommand() > 0;
if (!Mapresult)
{
db.RollbackTran();
return default;
}
}
}
}
db.CommitTran();
return result;
}
catch (Exception ex)
{
db.RollbackTran();
throw;
}
}
}
}
}