77 lines
2.7 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|