using SqlSugar;
|
using System;
|
using System.Collections.Generic;
|
using System.Data;
|
using System.Linq;
|
|
namespace IStation.DAL
|
{
|
/// <summary>
|
/// 附加属性映射
|
/// </summary>
|
public partial class SpecialPropertyMapping : CorpDAL<Entity.SpecialPropertyMapping>
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public override ConnectionConfig ConnectionConfig
|
{
|
get { return ConfigHelper.DefaultConnectionConfig; }
|
|
}
|
|
/// <summary>
|
/// 通过 CatalogID 获取
|
/// </summary>
|
public List<Entity.SpecialPropertyMapping> GetByCatalogID(long CorpID, long CatalogID)
|
{
|
using (var db = new SqlSugarClient(ConnectionConfig))
|
{
|
return db.Queryable<Entity.SpecialPropertyMapping>()
|
.Where(x => x.CorpID == CorpID && x.CatalogID == CatalogID).ToList();
|
}
|
}
|
|
/// <summary>
|
/// 通过 CatalogIds 获取
|
/// </summary>
|
public List<Entity.SpecialPropertyMapping> GetByCatalogIds(long CorpID, List<long> CatalogIds)
|
{
|
if (CatalogIds == null || CatalogIds.Count() < 1)
|
return default;
|
using (var db = new SqlSugarClient(ConnectionConfig))
|
{
|
return db.Queryable<Entity.SpecialPropertyMapping>()
|
.Where(x => x.CorpID == CorpID && CatalogIds.Contains(x.CatalogID)).ToList();
|
}
|
}
|
|
/// <summary>
|
/// 通过 PropertyID 获取
|
/// </summary>
|
public List<Entity.SpecialPropertyMapping> GetByPropertyID(long CorpID, long PropertyID)
|
{
|
using (var db = new SqlSugarClient(ConnectionConfig))
|
{
|
return db.Queryable<Entity.SpecialPropertyMapping>()
|
.Where(x => x.CorpID == CorpID && x.PropertyID == PropertyID).ToList();
|
}
|
}
|
|
/// <summary>
|
/// 通过 PropertyIds 获取
|
/// </summary>
|
public List<Entity.SpecialPropertyMapping> GetByPropertyIds(long CorpID, List<long> PropertyIds)
|
{
|
if (PropertyIds == null || PropertyIds.Count() < 1)
|
return default;
|
using (var db = new SqlSugarClient(ConnectionConfig))
|
{
|
return db.Queryable<Entity.SpecialPropertyMapping>()
|
.Where(x => x.CorpID == CorpID && PropertyIds.Contains(x.PropertyID)).ToList();
|
}
|
}
|
|
/// <summary>
|
/// 通过 CatalogID 和 PropertyID 获取
|
/// </summary>
|
public Entity.SpecialPropertyMapping GetByCatalogIDAndPropertyID(long CorpID, long CatalogID, long PropertyID)
|
{
|
using (var db = new SqlSugarClient(ConnectionConfig))
|
{
|
return db.Queryable<Entity.SpecialPropertyMapping>()
|
.First(x => x.CorpID == CorpID && x.CatalogID == CatalogID && x.PropertyID == PropertyID);
|
}
|
}
|
|
/// <summary>
|
/// 设置
|
/// </summary>
|
public bool Set(List<Entity.SpecialPropertyMappingSelected> list)
|
{
|
if (list == null || list.Count() < 1)
|
return false;
|
var corpIds = list.Select(x => x.CorpID).Distinct().ToList();
|
if (corpIds.Count != 1)
|
return false;
|
using (var db = new SqlSugarClient(ConnectionConfig))
|
{
|
try
|
{
|
db.BeginTran();
|
foreach (var item in list)
|
{
|
var bol = db.Queryable<Entity.SpecialPropertyMapping>()
|
.Where(x => x.CorpID == item.CorpID && x.CatalogID == item.CatalogID && x.PropertyID == item.PropertyID).Count() > 0;
|
if (bol)//已存在
|
{
|
if (!item.Selected)//未选择
|
{
|
var result = db.Deleteable<Entity.SpecialPropertyMapping>()
|
.Where(x => x.CorpID == item.CorpID && x.CatalogID == item.CatalogID && x.PropertyID == item.PropertyID).ExecuteCommandHasChange();
|
if (!result)
|
{
|
db.RollbackTran();
|
return false;
|
}
|
}
|
}
|
else//不存在
|
{
|
if (item.Selected)//选择
|
{
|
var entity = new Entity.SpecialPropertyMapping();
|
entity.CorpID = item.CorpID;
|
entity.CatalogID = item.CatalogID;
|
entity.PropertyID = item.PropertyID;
|
var id = db.Insertable(entity).ExecuteReturnSnowflakeId();
|
if (id < 1)
|
{
|
db.RollbackTran();
|
return false;
|
}
|
}
|
}
|
}
|
db.CommitTran();
|
return true;
|
}
|
catch
|
{
|
db.RollbackTran();
|
throw;
|
}
|
}
|
}
|
|
|
}
|
}
|