namespace YLErp.Modules.TradeModule
{
///
/// 交易审核日志
///
public class TradeAuditLogService : YLBaseService
{
public TradeAuditLogService(OptUserInfo userInfo) : base(userInfo)
{
}
public TradeAuditLogService(YLBaseService baseService) : base(baseService)
{
}
///
/// 获取成交确认字段变更信息
///
public IEnumerable GetLastConfirmChangeMsg(int tradeId)
{
var lastConfirmId = DbContext.TradeAuditLog
.Where(n => n.TradeId == tradeId && n.OptType.Contains("确认交易"))
.OrderByDescending(n => n.id)
.Select(n => (long?)n.id).FirstOrDefault();
IEnumerable changes = null;
if (lastConfirmId.HasValue)
{
var datas = DbContext.TradeAuditLog
.Where(n => n.TradeId == tradeId && (n.AuditFlag & TradeAuditFlag.changMsg) == TradeAuditFlag.changMsg)
.OrderBy(n => n.id).Select(n => new { n.DataType, n.Changes }).ToArray();
foreach (var data in datas)
{
TradeChangeInfo[] changes2 = null;
if (data.DataType == "C02")
{
var arr = JsonHelper.ToObject(data.Changes);
List list = new List();
foreach (var item in arr)
{
if (item[4] != "1")
{
continue;
}
list.Add(new TradeChangeInfo()
{
PropName = item[0],
DisplayName = item[1],
OldValue = item[2],
NewValue = item[3],
AuditFlag = TradeAuditFlag.changMsg
});
}
changes2 = list.ToArray();
}
else
{
changes2 = TradeChangeUtil.DeserializeChanges(data.Changes).Where(n => n.IsChangeMsg).ToArray();
}
if (changes == null)
{
changes = changes2;
}
else
{
changes = TradeChangeUtil.MergeChanges(changes, changes2);
}
}
}
return changes;
}
}
}