using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Reflection;
namespace Inventory.Services
{
/// <summary>
/// 调用导出任务接口
/// </summary>
public interface IExportPoliyService
{
void RunTask(ETaskType type);
void RunTask(ExportFileTaskTable task);
}
/// <summary>
/// 调用导出任务
/// </summary>
public class ExportPoliyService : IExportPoliyService
{
private IList<IExportTaskPoliy> _poliyList;
public ExportPoliyService(IList<IExportTaskPoliy> poliyList)
{
_poliyList = poliyList;
}
public void RunTask(ETaskType type)
{
var service = _poliyList.Where(x => x.Type == type).FirstOrDefault();
if (service != null)
service.Handle(null);
else
throw new Exception("");
}
public void RunTask(ExportFileTaskTable task)
{
var service = _poliyList.Where(x => x.Type == task.TaskType).FirstOrDefault();
if (service != null)
service.Handle(task);
else
throw new Exception("");
}
}
/// <summary>
/// 导出任务策略接口
/// </summary>
public interface IExportTaskPoliy
{
ETaskType Type { get; }
void Handle(GeneratetFileTask task);
}
/// <summary>
/// 预订活动导出策略
/// </summary>
public class BookingProductExportPoliy : IExportTaskPoliy
{
public ETaskType Type { get => ETaskType.预订活动列表导出; }
public void Handle(GeneratetFileTask task)
{
//处理导出任务逻辑
throw new NotImplementedException();
}
}
/// <summary>
/// 商品导出策略
/// </summary>
public class ProductExportPoliy : IExportTaskPoliy
{
public ETaskType Type { get => ETaskType.商品导出Excel; }
public void Handle(GeneratetFileTask task)
{
//处理导出任务逻辑
throw new NotImplementedException();
}
}
/// <summary>
/// 任务类型
/// </summary>
public enum ETaskType
{
商品导出Excel = 1,
订单导出Excel = 2,
商家订单报表导出Excel = 3,
商家订单报表明细导出Excel = 4,
库存报表导出Excel = 5,
业务员管理列表 = 6,
业务员发展线下店业绩 = 7,
业务员发展线下店购买订单详情 = 8,
商家营业额报表导出 = 9,
商家营业额明细报表导出 = 10,
预订活动列表导出 = 11,
}
/// <summary>
/// 任务数据表
/// </summary>
public class ExportFileTaskTable
{
/// <summary>
/// 任务名称
/// </summary>
public string TaskName { get; set; }
/// <summary>
/// 客户端类型:0商家端,1买家端
/// </summary>
public EClientType ClientType { get; set; }
/// <summary>
/// 任务类型:1商品导出,
/// </summary>
public ETaskType TaskType { get; set; }
/// <summary>
/// 请求参数
/// </summary>
public string Args { get; set; }
/// <summary>
/// 导出文件的头信息
/// </summary>
public string Headers { get; set; }
/// <summary>
/// 重试次数
/// </summary>
public int RetryCount { get; set; }
/// <summary>
/// 重试时间
/// </summary>
public DateTime? RetryTime { get; set; }
/// <summary>
/// 任务执行结果 0 未执行 1 成功 2失败
/// </summary>
public ETaskResultStatus ResultStatus { get; set; }
/// <summary>
/// 文件路径
/// </summary>
public string FileName { get; set; }
/// <summary>
/// 导入文件地址
/// </summary>
public string ImportFileUrl { get; set; }
/// <summary>
/// 下载文件名
/// </summary>
public string DwonloadFileName { get; set; }
/// <summary>
/// 下载文件方式
/// </summary>
public EDwonloadFileWay DwonloadFileWay { get; set; }
/// <summary>
/// 是否阅读
/// </summary>
public bool IsRead { get; set; }
/// <summary>
/// Desc:创建人
/// Default:0
/// Nullable:False
/// </summary>
public int Creator { get; set; }
/// <summary>
/// Desc:创建时间
/// </summary>
public DateTime CreateTime { get; set; }
}
}