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

128 lines
4.3 KiB
C#

using Furion.DependencyInjection;
using Furion.DistributedIDGenerator;
using Furion.DynamicApiController;
using Furion.FriendlyException;
using Mapster;
using Microsoft.AspNetCore.Mvc;
using Myshipping.Application.Entity;
using Myshipping.Core;
using System;
using System.Collections.Generic;
using System.DirectoryServices.ActiveDirectory;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace Myshipping.Application.Service.TaskManagePlat
{
/// <summary>
/// 租户任务流程配置
/// </summary>
[ApiDescriptionSettings("Application", Name = "TaskFlowTenant", Order = 10)]
public class TaskFlowTenantService : IDynamicApiController, ITransient
{
private readonly SqlSugarRepository<TaskFlowTenant> _rep;
public TaskFlowTenantService(SqlSugarRepository<TaskFlowTenant> rep)
{
_rep = rep;
}
/// <summary>
/// 分页查询租户任务流程配置
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
[ApiDescriptionSettings(Name = "Page")]
public async Task<SqlSugarPagedList<TaskFlowTenant>> Page(TaskFlowTenantInput input)
{
var query = _rep.AsQueryable()
.Select(u => new TaskFlowTenant
{
PK_ID = u.PK_ID,
FlowCode = u.FlowCode,
MethodName = u.MethodName,
PId = u.PId,
IsMain = u.IsMain,
IsBoolReturn = u.IsBoolReturn,
TrueMethod = u.TrueMethod,
FalseMethod = u.FalseMethod,
TaskApiId = u.TaskApiId,
SYSTEM_CODE = u.SYSTEM_CODE,
SYSTEM_NAME = u.SYSTEM_NAME
});
return await query.ToPagedListAsync(input.PageNo, input.PageSize);
}
/// <summary>
/// 增加租户任务流程配置
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
[ApiDescriptionSettings(Name = "Add")]
public async Task Add(AddTaskFlowTenantInput input)
{
var entity = input.Adapt<TaskFlowTenant>();
entity.PK_ID = IDGen.NextID().ToString();
await _rep.InsertAsync(entity);
}
/// <summary>
/// 删除租户任务流程配置
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
[ApiDescriptionSettings(Name = "Delete")]
public async Task Delete(DeleteTaskFlowTenantInput input)
{
var entity = await _rep.FirstOrDefaultAsync(u => u.PK_ID == input.PK_ID) ?? throw Oops.Oh("数据不存在");
entity.IsDeleted = true;
await _rep.UpdateAsync(entity);
}
/// <summary>
/// 更新租户任务流程配置
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
[ApiDescriptionSettings(Name = "Update")]
public async Task Update(UpdateTaskFlowTenantInput input)
{
var entity = input.Adapt<TaskFlowTenant>();
await _rep.AsUpdateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
}
/// <summary>
/// 获取租户任务流程配置
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
[ApiDescriptionSettings(Name = "Detail")]
public async Task<TaskFlowTenant> Get(GetTaskFlowTenantInfoInput input)
{
return await _rep.FirstOrDefaultAsync(u => u.PK_ID == input.PK_ID);
}
/// <summary>
/// 获取租户任务流程配置
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpGet]
[ApiDescriptionSettings(Name = "List")]
public async Task<List<TaskFlowTenant>> List([FromQuery] TaskFlowTenantInput input)
{
return await _rep.AsQueryable().Select<TaskFlowTenant>().ToListAsync();
}
}
}