Files
zszq-trs/YLErpDAL/Modules/TradeModule/TradeAuditLogService.cs
T
2024-05-09 14:06:26 +08:00

77 lines
2.7 KiB
C#

namespace YLErp.Modules.TradeModule
{
/// <summary>
/// 交易审核日志
/// </summary>
public class TradeAuditLogService : YLBaseService
{
public TradeAuditLogService(OptUserInfo userInfo) : base(userInfo)
{
}
public TradeAuditLogService(YLBaseService baseService) : base(baseService)
{
}
/// <summary>
/// 获取成交确认字段变更信息
/// </summary>
public IEnumerable<TradeChangeInfo> 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<TradeChangeInfo> 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<string[][]>(data.Changes);
List<TradeChangeInfo> list = new List<TradeChangeInfo>();
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;
}
}
}