mh_sms/APT.MicroApi/APT.FM.WebApi/Controllers/Api/SyncTaskController.cs
2024-04-12 16:50:28 +08:00

188 lines
6.7 KiB
C#

using APT.Infrastructure.Core;
using APT.BaseData.Domain.Entities.FM;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using APT.Utility;
using APT.BaseData.Domain.Enums;
namespace APT.FM.WebApi.Controllers.Api.FM
{
/// <summary>产品</summary>
[Route("api/FM/SyncTask")]
[APT.Infrastructure.Api.RootOrg]
public class SyncTaskController : AuthorizeApiController<T_FM_SYNC_TASK>
{
/// <summary>
/// 查询
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
[HttpPost, Route("Entities")]
public JsonActionResult<IEnumerable<T_FM_SYNC_TASK>> Entities([FromBody] KeywordFilter filter)
{
return WitEntities(null, filter);
}
/// <summary>
/// 查询
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
///
[HttpPost, Route("OrderEntities")]
public JsonActionResult<IEnumerable<T_FM_SYNC_TASK>> OrderEntities([FromBody] KeywordFilter filter)
{
return WitOrderEntities(null, filter);
}
/// <summary>
/// 查询
/// </summary>
/// <param name="pageFilter"></param>
/// <returns></returns>
[HttpPost, Route("Paged")]
public PagedActionResult<T_FM_SYNC_TASK> Paged([FromBody] KeywordPageFilter pageFilter)
{
return WitPaged(null, pageFilter);
}
/// <summary>
/// 查询
/// </summary>
/// <param name="pageFilter"></param>
/// <returns></returns>
[HttpPost, Route("OrderPaged")]
public PagedActionResult<T_FM_SYNC_TASK> OrderPaged([FromBody] KeywordPageFilter pageFilter)
{
var model = WitOrderPaged(null, pageFilter);
return model;
}
/// <summary>
/// 删除
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet, Route("Delete")]
public JsonActionResult<bool> Delete(string id)
{
return WitRealDelete(id);
}
/// <summary>
/// 更新
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpPost, Route("Update")]
public JsonActionResult<bool> Update([FromBody] T_FM_SYNC_TASK entity)
{
return WitUpdate(entity);
}
/// <summary>
/// 更新
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpPost, Route("BantchUpdate")]
public JsonActionResult<bool> BantchUpdate([FromBody] List<T_FM_SYNC_TASK> entitys)
{
return WitBantchUpdate(entitys);
}
/// <summary>
/// 批量删除
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
[HttpGet, Route("BatchDelete")]
public JsonActionResult<bool> BatchDelete(string ids)
{
return WitRealBatchDelete(ids);
}
/// <summary>
/// 获得单条实体数据
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
[HttpPost, Route("Get")]
public JsonActionResult<T_FM_SYNC_TASK> Get([FromBody] KeywordFilter filter)
{
return WitEntity(null, filter);
}
/// <summary>
/// 查询(redis)
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
///
[HttpPost, Route("RedisEntities")]
public JsonActionResult<IEnumerable<T_FM_SYNC_TASK>> RedisEntities([FromBody] KeywordFilter filter)
{
return SafeExecute<IEnumerable<T_FM_SYNC_TASK>>(() =>
{
if (filter.OrgId == null)
{
return this.GetEntities<T_FM_SYNC_TASK>(i => i.ENABLE_STATUS == (int)FMEnableStatusEnum.
&& i.TASK_START_TIME < DateTime.Now, filter);
}
else
{
return this.GetEntitiesByRedis<T_FM_SYNC_TASK>(i => i.ENABLE_STATUS == (int)FMEnableStatusEnum.
&& i.TASK_START_TIME < DateTime.Now, filter);
}
});
}
/// <summary>
/// 更新
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpPost, Route("Add")]
public JsonActionResult<bool> Add([FromBody] T_FM_SYNC_TASK entity)
{
//entity.NEXT_START_TIME = entity.TASK_START_TIME.AddDays(entity.PERIODIC_TIME);
var dt = entity.TASK_START_TIME;
entity.NEXT_START_TIME = (entity.SYNC_UNIT == (int)TimeUnitEnum.) ? dt.AddSeconds(entity.PERIODIC_TIME) : (entity.SYNC_UNIT == (int)TimeUnitEnum. ? dt.AddMinutes(entity.PERIODIC_TIME) : (entity.SYNC_UNIT == (int)TimeUnitEnum. ? dt.AddHours(entity.PERIODIC_TIME) : dt.AddDays(entity.PERIODIC_TIME)));
return WitUpdate(entity);
}
/// <summary>
///
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
[HttpPost, Route("UpdateSyncStatus")]
public JsonActionResult<bool> UpdateSyncStatus([FromBody] KeywordFilter filter)
{
return SafeExecute<bool>(() =>
{
var task = this.GetEntity<T_FM_SYNC_TASK>(filter.Keyword);
if (task == null) return false;
if (!string.IsNullOrEmpty(filter.Parameter1))
{
var isSynch = LibUtils.ToBoolean(filter.Parameter1);
if (isSynch && task.IS_SYNCING.HasValue && task.IS_SYNCING.Value)
throw new Exception("同步任务[" + task.NAME + "]已在同步中,请稍后重试");
task.IS_SYNCING = isSynch;
}
if (!string.IsNullOrEmpty(filter.Parameter2))
task.CURR_TASK_START_TIME = LibUtils.ToDateTime(filter.Parameter2);
if (!string.IsNullOrEmpty(filter.Parameter3))
task.TASK_END_TIME = LibUtils.ToDateTime(filter.Parameter3).Value;
if (!string.IsNullOrEmpty(filter.Parameter4))
task.NEXT_START_TIME = LibUtils.ToDateTime(filter.Parameter4).Value;
if (!string.IsNullOrEmpty(filter.Parameter5))
task.EXECUTE_NUM = LibUtils.ToInt(filter.Parameter5);
if (!string.IsNullOrEmpty(filter.Parameter6))
task.UPDATE_SUCCES_TIME = LibUtils.ToDateTime(filter.Parameter6);
return this.UpdateEntity(task);
});
}
}
}