using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Hg.Complaint.Domain
{
///
/// 投诉处理类
///
public class ComplaintEventSingleton
{
private List _complaintEvents = new();
///
/// 投诉处理类
///
public ComplaintEventSingleton()
{
}
///
/// 获取任务队列
///
///
public List GetComplaintEvents() => _complaintEvents;
///
/// 移除任务队列
///
///
///
public List RemoveComplaint(int id)
{
if (_complaintEvents.Any(x => x.Id.Equals(id)))
{
_complaintEvents.Remove(_complaintEvents.First(x => x.Id == id));
}
return _complaintEvents;
}
///
/// 批量移除任务队列
///
///
///
public List RemoveComplaints(List ids)
{
foreach (var id in ids)
{
RemoveComplaint(id);
}
return _complaintEvents;
}
///
/// 获取到期的未处理投诉
///
///
public List GetDueComplaint()
{
var now = DateTime.Now;
var dueHours = DefaultHelper.DueHours;
var data = new List();
foreach (var complaintEvent in _complaintEvents)
{
if (complaintEvent.Ctime.HasValue && (now - complaintEvent.Ctime.Value).TotalHours >= dueHours)
{
data.Add(complaintEvent);
}
}
return data;
}
///
/// 添加需要计时的投诉处理
///
///
public void AddComplaintEvent(ComplaintEventDto complaintEvent)
{
RemoveComplaint(complaintEvent.Id);
_complaintEvents.Add(complaintEvent);
}
///
/// 初始化需要计时的投诉处理
///
///
///
public List InitComplaintEvents(List complaintEvents)
{
_complaintEvents = complaintEvents;
return _complaintEvents;
}
}
}