You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

66 lines
3.0 KiB

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;
}
/// <summary>
/// 生成TaskSub
/// </summary>
/// <param name="dataCount">任务明细数量</param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
[HttpGet]
public TaskSub BuildTaskSub(int dataCount, string taskName)
{
TaskConifgure? taskConfigureObj = _context.Set<TaskConifgure>().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;
}
}
}