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