using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Edu.Common.API;
using Edu.Common.Enum.User;
using Edu.Common.Plugin;
using Edu.Model.ViewModel.Flow;
using Edu.Module.System;
using Edu.WebApi.Filter;
using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json.Linq;
namespace Edu.WebApi.Controllers.Public
{
///
/// 流程设置相关接口
///
[Route("api/[controller]/[action]")]
[ApiExceptionFilter]
[ApiController]
[EnableCors("AllowCors")]
public class FlowController : BaseController
{
///
/// 流程设置处理类对象
///
private readonly BasicFlowModule basicFlowModule = AOP.AOPHelper.CreateAOPObject();
///
/// 获取退课流程
///
///
[HttpPost]
public ApiResult GetBackClassFlow()
{
var FlowId = base.ParmJObj.GetInt("FlowId");
var flowModel = basicFlowModule.GetFlowModule(FlowId);
return ApiResult.Success(data: flowModel);
}
///
/// 新增修改退课流程
///
///
[HttpPost]
public ApiResult SetBackClassFlow()
{
var extModel = new RB_Flow_ViewModel()
{
FlowId = base.ParmJObj.GetInt("FlowId"),
FlowName = base.ParmJObj.GetStringValue("FlowName"),
Group_Id = base.UserInfo.Group_Id,
CreateBy = base.UserInfo.Id,
CreateTime = DateTime.Now,
Status = Common.Enum.DateStateEnum.Normal,
UpdateBy = base.UserInfo.Id,
UpdateTime = DateTime.Now,
};
extModel.FlowNodeList = new List();
JArray jArray = JArray.Parse(base.ParmJObj.GetStringValue("FlowNodeList"));
foreach (var jItem in jArray)
{
JObject jObj = JObject.Parse(jItem.ToString());
RB_Flow_Node_ViewModel model = new RB_Flow_Node_ViewModel()
{
FlowId=jObj.GetInt("FlowId"),
NodeId=jObj.GetInt("NodeId"),
NodeName=jObj.GetStringValue("NodeName"),
SortNum=jObj.GetInt("SortNum"),
};
model.FlowAduitList = new List();
//审核人数组
JArray subArray= JArray.Parse(jObj.GetStringValue("FlowAduitList"));
foreach (var sItem in subArray)
{
JObject sObj = JObject.Parse(sItem.ToString());
model.FlowAduitList.Add(new RB_Flow_AduitInfo_ViewModel()
{
CheckId = sObj.GetInt("CheckId"),
NodeId=sObj.GetInt("NodeId"),
FlowId=sObj.GetInt("FlowId"),
AduitName=sObj.GetStringValue("AduitName"),
AuditType=(WFTAuditTypeEnum)sObj.GetInt("AuditType"),
UserId=sObj.GetInt("UserId"),
IsSpecNode=sObj.GetInt("IsSpecNode"),
PostType=sObj.GetInt("PostType"),
AuditWay=(WFTAuditWayEnum)sObj.GetInt("AuditWay"),
});
}
}
if (!string.IsNullOrEmpty(base.ParmJObj.GetStringValue("FlowNodeList")))
{
try
{
extModel.FlowNodeList = Common.Plugin.JsonHelper.DeserializeObject>(base.ParmJObj.GetStringValue("FlowNodeList"));
}
catch (Exception ex)
{
Common.Plugin.LogHelper.Write(ex, "SetBackClassFlow_FlowNodeList");
}
}
var flag = basicFlowModule.SetFlowModule(extModel);
return flag ? ApiResult.Success(data: extModel) : ApiResult.Failed();
}
///
/// 获取调课流程
///
///
[HttpPost]
public ApiResult GetChangeClassFlow()
{
var FlowId = base.ParmJObj.GetInt("FlowId");
var flowModel = basicFlowModule.GetFlowModule(FlowId);
return ApiResult.Success(data: flowModel);
}
///
/// 新增修改调课流程
///
///
[HttpPost]
public ApiResult SetChangeClassFlow()
{
var extModel = new RB_Flow_ViewModel()
{
FlowId = base.ParmJObj.GetInt("FlowId"),
FlowName = base.ParmJObj.GetStringValue("FlowName"),
Group_Id = base.UserInfo.Group_Id,
CreateBy = base.UserInfo.Id,
CreateTime = DateTime.Now,
Status = Common.Enum.DateStateEnum.Normal,
UpdateBy = base.UserInfo.Id,
UpdateTime = DateTime.Now,
};
if (!string.IsNullOrEmpty(base.ParmJObj.GetStringValue("FlowNodeList")))
{
try
{
extModel.FlowNodeList = Common.Plugin.JsonHelper.DeserializeObject>(base.ParmJObj.GetStringValue("FlowNodeList"));
}
catch (Exception ex)
{
Common.Plugin.LogHelper.Write(ex, "SetChangeClassFlow_FlowNodeList");
}
}
var flag = basicFlowModule.SetFlowModule(extModel);
return flag ? ApiResult.Success(data: extModel) : ApiResult.Failed();
}
}
}