using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Configuration; using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using TaskManager.Entity; using TaskManager.EntityFramework; using Wood.Entity; using Wood.Util; namespace Wood.Service { public class CommonService : ControllerBase, IScoped { protected readonly JobDbContext _context; protected readonly IServiceProvider _builder; protected readonly IConfiguration _configuration; public CommonService(JobDbContext context, IServiceProvider builder, IConfiguration configuration) { _builder = builder; _context = context; _configuration = configuration; } /// /// 生成TaskSub /// /// 任务明细数量 /// /// [HttpGet] public TaskSub BuildTaskSub(int dataCount, string taskName) { TaskConifgure? taskConfigureObj = _context.Set().FirstOrDefault(itm => itm.TaskName == taskName); if (taskConfigureObj == null) { throw new Exception($"任务配置表没有'{taskName}'任务"); } TaskSub taskSub = new TaskSub(); taskSub.TableName = taskConfigureObj.TableName; //关联的数据表名称(如:订单表、用户表等,可为空) taskSub.TaskName = taskConfigureObj.TaskName; //任务名称(用于业务层面标识任务,如:数据同步任务、报表生成任务) taskSub.DataCount = dataCount; //数据总量(任务处理的数据条目数) taskSub.Subscriber = taskConfigureObj.Client; //发布给那个客户 taskSub.FailedCount = 0; //失败次数(任务执行失败的累计次数) taskSub.FailedInfo = ""; //失败详情(记录失败原因、异常堆栈等信息,支持长文本) taskSub.Domain = ""; //所属域(多租户场景下标识租户,如:租户A、租户B) taskSub.Site = ""; //站点标识(多站点部署时标识所属站点,如:Site1、Site2) taskSub.CreateUser = CommonHelper.UserName; //从那个内部系统创建系统 taskSub.CreateTime = CommonHelper.CurrentTime; //创建时间(任务创建的时间戳) taskSub.Remark = ""; //备注信息(任务相关的补充说明,支持长文本) taskSub.UpdateUser = ""; //最后更新人(记录任务最后修改者) taskSub.UpdateTime = null; //最后更新时间(任务最后修改的时间戳,可为空) taskSub.SyncedPageCount = 0; //已同步页数 taskSub.ReadState = true; taskSub.CreationTime = CommonHelper.CurrentTime; taskSub.TaskId = CommonHelper.NewGuid; return taskSub; } } }