using Competition.Mysql.api;
using Competition.Mysql.api.Post;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Diagnostics;
using System.Transactions;
namespace CompetitionAPI.Controllers
{
///
/// 任务管理
///
[Route("api/[action]")]
[ApiController]
public class TaskController : ControllerBase
{
Competition.BLL.user_login bll = new Competition.BLL.user_login();
Competition.BLL.daily_record bll_log = new Competition.BLL.daily_record();
Competition.BLL.task_manager bll_task=new Competition.BLL.task_manager();
Competition.BLL.task_user bll_user=new Competition.BLL.task_user();
Competition.BLL.task_result bll_result=new Competition.BLL.task_result();
///
/// 添加任务
///
///
///
//[Authorize]
[HttpPost]
public IActionResult AddTaskManager(add_task_manager task)
{
var res = new result_data();
try
{
using (var scope = new TransactionScope())
{
if (!string.IsNullOrEmpty(task.LoginId) && !string.IsNullOrEmpty(task.TaskName) && !string.IsNullOrEmpty(task.TaskParticulars))
{
var loglist = bll.GetModelList(" UserId='" + task.LoginId + "'").FirstOrDefault();
if (loglist.IdentityName == "老师")
{
var logmodel = new Competition.Model.daily_record();
logmodel.LogId = Guid.NewGuid().ToString();
logmodel.Identity = loglist.IdentityName;
logmodel.SchoolId = loglist.SchoolId;
logmodel.UserName = loglist.UserName;
logmodel.CreateTime = DateTime.Now;
logmodel.LogInfo = loglist.UserName + "创建任务名称为:" + task.TaskName + "的任务成功";
bll_log.Add(logmodel);
var model = new Competition.Model.task_manager();
model.TaskId = Guid.NewGuid().ToString();
model.TaskName = task.TaskName;
model.TaskIssue = "0";
model.TaskParticulars = task.TaskParticulars;
model.IssueUser = loglist.UserName;
model.UserId = loglist.UserId;
model.SchoolId = loglist.SchoolId;
model.ClassId = loglist.ClassId;
model.StartTime = task.StartTime;
model.EndTime = task.EndTime;
bll_task.Add(model);
//事务提交回滚
scope.Complete();
res.code = 200;
res.msg = "添加成功";
}
else
{
res.code = 201;
res.msg = "身份不对";
}
}
else
{
res.code = 201;
res.msg = "参数不能为空";
}
}
}
catch (Exception ex)
{
res.code = 500;
res.msg = "失败" + ex.Message;
}
return Ok(res);
}
///
/// 获取任务
///
///
///
///
[Authorize]
[HttpGet]
public IActionResult GetTaskManager(string LoginId="",string TaskName="")
{
var res=new get_task_manager();
try
{
var data=new List();
using (var scope = new TransactionScope())
{
if (!string.IsNullOrEmpty(LoginId) && !string.IsNullOrEmpty(TaskName))
{
var loglist = bll.GetModelList(" UserId='" + LoginId + "'").FirstOrDefault();
if (loglist.IdentityName == "老师")
{
var logmodel = new Competition.Model.daily_record();
logmodel.LogId = Guid.NewGuid().ToString();
logmodel.Identity = loglist.IdentityName;
logmodel.SchoolId = loglist.SchoolId;
logmodel.UserName = loglist.UserName;
logmodel.CreateTime = DateTime.Now;
logmodel.LogInfo = loglist.UserName + "根据条件:" + TaskName + "查询数据成功";
bll_log.Add(logmodel);
var list = bll_task.GetModelList(" TaskName like '%" + TaskName + "%' and ClassId='" + loglist.ClassId + "' and SchoolId='" + loglist.SchoolId + "' and UserId='" + loglist.UserId + "'").ToList();
foreach (var item in list)
{
var model = new task_managerData();
model.TaskId = item.TaskId;
model.TaskName = item.TaskName;
model.TaskParticulars = item.TaskParticulars;
if (item.TaskIssue == "0")
{
model.TaskIssue = "未发布";
}
if (item.TaskIssue == "1")
{
model.TaskIssue = "已发布";
}
model.StartTime = Convert.ToDateTime(item.StartTime);
model.EndTime = Convert.ToDateTime(item.EndTime);
data.Add(model);
}
//事务提交回滚
scope.Complete();
res.code = 200;
res.msg = "成功";
res.data = data;
}
else
{
res.code = 201;
res.msg = "身份不对";
}
}
else if (!string.IsNullOrEmpty(LoginId))
{
var loglist = bll.GetModelList(" UserId='" + LoginId + "'").FirstOrDefault();
if (loglist.IdentityName == "老师")
{
var logmodel = new Competition.Model.daily_record();
logmodel.LogId = Guid.NewGuid().ToString();
logmodel.Identity = loglist.IdentityName;
logmodel.SchoolId = loglist.SchoolId;
logmodel.UserName = loglist.UserName;
logmodel.CreateTime = DateTime.Now;
logmodel.LogInfo = loglist.UserName + "获取所有数据成功";
bll_log.Add(logmodel);
var list = bll_task.GetModelList(" ClassId='" + loglist.ClassId + "' and SchoolId='" + loglist.SchoolId + "' and UserId='" + loglist.UserId + "'").ToList();
foreach (var item in list)
{
var model = new task_managerData();
model.TaskId = item.TaskId;
model.TaskName = item.TaskName;
model.TaskParticulars = item.TaskParticulars;
if (item.TaskIssue == "0")
{
model.TaskIssue = "未发布";
}
if (item.TaskIssue == "1")
{
model.TaskIssue = "已发布";
}
model.StartTime = Convert.ToDateTime(item.StartTime);
model.EndTime = Convert.ToDateTime(item.EndTime);
data.Add(model);
}
//事务提交回滚
scope.Complete();
res.code = 200;
res.msg = "成功";
res.data = data;
}
else
{
res.code = 201;
res.msg = "身份不对";
}
}
}
}
catch (Exception ex)
{
res.code = 500;
res.msg = "失败" + ex.Message;
}
return Ok(res);
}
///
/// 任务发布
///
///
///
///
[Authorize]
[HttpGet]
public IActionResult GetTaskIssue(string LoginId="",string TaskId = "")
{
var res=new result_data();
try
{
using (var scope = new TransactionScope())
{
if (!string.IsNullOrEmpty(LoginId) && !string.IsNullOrEmpty(TaskId))
{
var loglist = bll.GetModelList(" UserId='" + LoginId + "'").FirstOrDefault();
var list = bll_task.GetModelList(" TaskId='" + TaskId + "'").FirstOrDefault();
if (loglist.IdentityName == "老师")
{
var logmodel = new Competition.Model.daily_record();
logmodel.LogId = Guid.NewGuid().ToString();
logmodel.Identity = loglist.IdentityName;
logmodel.SchoolId = loglist.SchoolId;
logmodel.UserName = loglist.UserName;
logmodel.CreateTime = DateTime.Now;
logmodel.LogInfo = loglist.UserName + "发布任务" + list.TaskName + "成功";
bll_log.Add(logmodel);
list.TaskIssue = "1";
bll_task.Update(list);
//事务提交回滚
scope.Complete();
res.code = 200;
res.msg = "发布成功";
}
else
{
res.code = 201;
res.msg = "身份不对";
}
}
else
{
res.code = 201;
res.msg = "参数不能为空";
}
}
}
catch (Exception ex)
{
res.code = 500;
res.msg = "失败" + ex.Message;
}
return Ok(res);
}
///
/// 删除任务
///
///
///
///
[Authorize]
[HttpGet]
public IActionResult DelTaskManager(string LoginId="",string TaskId = "")
{
var res=new result_data();
try
{
using (var scope = new TransactionScope())
{
if (!string.IsNullOrEmpty(LoginId) && !string.IsNullOrEmpty(TaskId))
{
var loglist = bll.GetModelList(" UserId='" + LoginId + "'").FirstOrDefault();
if (loglist.IdentityName == "老师")
{
var list = bll_task.GetModelList(" TaskId='" + TaskId + "'").FirstOrDefault();
if (list == null) { res.code = 201; res.msg = "无此数据"; }
else
{
bll_task.Delete(TaskId);
var logmodel = new Competition.Model.daily_record();
logmodel.LogId = Guid.NewGuid().ToString();
logmodel.Identity = loglist.IdentityName;
logmodel.SchoolId = loglist.SchoolId;
logmodel.UserName = loglist.UserName;
logmodel.CreateTime = DateTime.Now;
logmodel.LogInfo = loglist.UserName + "删除任务名称:'" + list.TaskName + "'成功";
bll_log.Add(logmodel);
//事务提交回滚
scope.Complete();
res.code = 200;
res.msg = "删除成功";
}
}
else
{
res.code = 201;
res.msg = "身份不对";
}
}
else
{
res.code = 201;
res.msg = "参数不能为空";
}
}
}
catch (Exception ex)
{
res.code = 500;
res.msg = "失败" + ex.Message;
}
return Ok(res);
}
///
/// 反填任务
///
///
///
///
[Authorize]
[HttpGet]
public IActionResult FindTaskManager(string LoginId="",string TaskId = "")
{
var res=new find_task_manager();
try
{
var data = new List();
using (var scope = new TransactionScope())
{
if (!string.IsNullOrEmpty(LoginId) && !string.IsNullOrEmpty(TaskId))
{
var loglist = bll.GetModelList(" UserId='" + LoginId + "'").FirstOrDefault();
if (loglist.IdentityName == "老师")
{
var list = bll_task.GetModelList(" TaskId='" + TaskId + "'").FirstOrDefault();
var model = new find_task_managerData();
model.TaskId = list.TaskId;
model.TaskName = list.TaskName;
model.TaskParticulars = list.TaskParticulars;
model.TaskIssue = list.TaskIssue;
model.StartTime = Convert.ToDateTime(list.StartTime);
model.EndTime = Convert.ToDateTime(list.EndTime);
data.Add(model);
var logmodel = new Competition.Model.daily_record();
logmodel.LogId = Guid.NewGuid().ToString();
logmodel.CreateTime = DateTime.Now;
logmodel.SchoolId = loglist.SchoolId;
logmodel.Identity = loglist.IdentityName;
logmodel.UserName = loglist.UserName;
logmodel.LogInfo = loglist.UserName + "反填任务:'" + list.TaskName + "'成功";
bll_log.Add(logmodel);
//事务提交回滚
scope.Complete();
res.code = 200;
res.msg = "成功";
res.data = data;
}
else
{
res.code = 201;
res.msg = "身份不对";
}
}
else
{
res.code = 200;
res.msg = "参数不能为空";
}
}
}
catch (Exception ex)
{
res.code = 500;
res.msg = "失败" + ex.Message;
}
return Ok(res);
}
///
/// 修改任务
///
///
///
[Authorize]
[HttpPost]
public IActionResult UpdateTaskManager(update_task_manager task)
{
var res=new result_data();
try
{
using (var scope = new TransactionScope())
{
if (!string.IsNullOrEmpty(task.LoginId) && !string.IsNullOrEmpty(task.TaskId) && !string.IsNullOrEmpty(task.TaskName) && !string.IsNullOrEmpty(task.TaskIssue) && !string.IsNullOrEmpty(task.TaskParticulars))
{
var loglist = bll.GetModelList(" UserId='" + task.LoginId + "'").FirstOrDefault();
if (loglist.IdentityName == "老师")
{
var list = bll_task.GetModelList(" TaskId='" + task.TaskId + "'").FirstOrDefault();
list.TaskName = task.TaskName;
list.TaskIssue = task.TaskIssue;
list.TaskParticulars = task.TaskParticulars;
list.StartTime = task.StartTime;
list.EndTime = task.EndTime;
bll_task.Update(list);
var logmodel = new Competition.Model.daily_record();
logmodel.LogId = Guid.NewGuid().ToString();
logmodel.Identity = loglist.IdentityName;
logmodel.SchoolId = loglist.SchoolId;
logmodel.UserName = loglist.UserName;
logmodel.CreateTime = DateTime.Now;
logmodel.LogInfo = loglist.UserName + "修改任务名称:'" + task.TaskName + "'成功";
bll_log.Add(logmodel);
//事务提交回滚
scope.Complete();
res.code = 200;
res.msg = "修改成功";
}
else
{
res.code = 201;
res.msg = "身份不对";
}
}
else
{
res.code = 201;
res.msg = "参数不能为空";
}
}
}
catch (Exception ex)
{
res.code = 500;
res.msg = "失败" + ex.Message;
}
return Ok(res);
}
///
/// 添加任务用户
///
///
///
//[Authorize]
[HttpPost]
public IActionResult AddTaskUser(add_task_user task)
{
var res = new result_data();
try
{
using (var scope = new TransactionScope())
{
if (!string.IsNullOrEmpty(task.LoginId) && !string.IsNullOrEmpty(task.TaskId) && !string.IsNullOrEmpty(task.UserId))
{
var loglist = bll.GetModelList(" UserId='" + task.LoginId + "'").FirstOrDefault();
if (loglist.IdentityName == "老师")
{
var UserList = task.UserId.Split(',');
var count = UserList.Count();
var list = bll_task.GetModelList(" TaskId='" + task.TaskId + "' and SchoolId='" + loglist.SchoolId + "' and ClassId='" + loglist.ClassId + "' and UserId='" + loglist.UserId + "'").FirstOrDefault();
foreach (var item in UserList)
{
var model = new Competition.Model.task_user();
model.TaskUserId = Guid.NewGuid().ToString();
model.TaskId = list.TaskId;
var user = bll.GetModelList(" UserId='" + item + "'").FirstOrDefault();
if (user.IdentityName == "学生")
{
model.UserId = user.UserId;
}
bll_user.Add(model);
}
var logmodel = new Competition.Model.daily_record();
logmodel.LogId = Guid.NewGuid().ToString();
logmodel.Identity = loglist.IdentityName;
logmodel.SchoolId = loglist.SchoolId;
logmodel.UserName = loglist.UserName;
logmodel.CreateTime = DateTime.Now;
logmodel.LogInfo = loglist.UserName + "为任务:'" + list.TaskName + "'添加'" + count + "'人";
bll_log.Add(logmodel);
//事务提交回滚
scope.Complete();
res.code = 200;
res.msg = "添加成功";
}
else
{
res.code = 201;
res.msg = "身份不对";
}
}
else
{
res.code = 200;
res.msg = "参数不能为空";
}
}
}
catch (Exception ex)
{
res.code = 500;
res.msg = "失败" + ex.Message;
}
return Ok(res);
}
///
/// 获取所有任务结果
///
///
///
[HttpGet]
public IActionResult GetTaskResult(string LoginId="")
{
var res=new get_task_result();
try
{
var data=new List();
if (!string.IsNullOrEmpty(LoginId))
{
var loglist = bll.GetModelList(" UserId='" + LoginId + "'").FirstOrDefault();
if (loglist.IdentityName == "老师")
{
var logmodel = new Competition.Model.daily_record();
logmodel.LogId=Guid.NewGuid().ToString();
logmodel.Identity=loglist.IdentityName;
logmodel.SchoolId=loglist.SchoolId;
logmodel.UserName=loglist.UserName;
logmodel.CreateTime=DateTime.Now;
logmodel.LogInfo = loglist.UserName + "获取任务详情";
bll_log.Add(logmodel);
var list = bll_task.GetModelList(" UserId='" + loglist.UserId + "'").ToList();
foreach (var item in list)
{
var alist = bll_user.GetModelList(" TaskId='" + item.TaskId + "'").ToList();
foreach (var aitem in alist)
{
var userlist = bll.GetModelList(" UserId='" + aitem.UserId + "'").FirstOrDefault();
var tasklist = bll_result.GetModelList(" TaskUserId='" + aitem.TaskUserId + "' and TaskResult='1'").FirstOrDefault();
if(userlist != null && tasklist != null)
{
var model = new task_resultData();
model.TaskResultId = tasklist.TaskResultId;
model.TaskName = item.TaskName;
model.UserName = userlist.UserName;
data.Add(model);
}
}
}
res.code = 200;
res.msg = "成功";
res.data = data;
}
else
{
res.code = 201;
res.msg = "身份不对";
}
}
else
{
res.code = 500;
res.msg = "参数不能为空";
}
}
catch (Exception ex)
{
res.code = 500;
res.msg = "失败" + ex.Message;
}
return Ok(res);
}
///
/// 获取任务结果详情
///
///
///
///
[HttpGet]
public IActionResult GetResultInfo(string LoginId="",string TaskResultId = "")
{
var res = new get_result_info();
try
{
var data = new List();
if(!string.IsNullOrEmpty(LoginId)&&!string.IsNullOrEmpty(TaskResultId))
{
var loglist = bll.GetModelList(" UserId='" + LoginId + "'").FirstOrDefault();
if (loglist.IdentityName == "老师")
{
var logmodel = new Competition.Model.daily_record();
logmodel.LogId = Guid.NewGuid().ToString();
logmodel.Identity = loglist.IdentityName;
logmodel.SchoolId = loglist.SchoolId;
logmodel.UserName = loglist.UserName;
logmodel.CreateTime= DateTime.Now;
logmodel.LogInfo = loglist.UserName + "获取任务详情:'" + TaskResultId + "'成功";
bll_log.Add(logmodel);
var list = bll_result.GetModelList(" TaskResultId='" + TaskResultId + "'").FirstOrDefault();
var userlist = bll_user.GetModelList(" TaskUserId='" + list.TaskUserId + "'").FirstOrDefault();
var tasklist = bll_task.GetModelList(" TaskId='" + userlist.TaskId + "'").FirstOrDefault();
var model = new result_infoData();
model.TaskResultId=list.TaskResultId;
model.TaskName = tasklist.TaskName;
model.TaskParticulars = tasklist.TaskParticulars;
model.TaskDefinition = list.TaskDefinition;
data.Add(model);
res.code = 200;
res.msg = "成功";
res.data = data;
}
else
{
res.code = 200;
res.msg = "身份不对";
}
}
else
{
res.code = 201;
res.msg = "参数不能为空";
}
}
catch (Exception ex)
{
res.code = 500;
res.msg = "失败" + ex.Message;
}
return Ok(res);
}
}
}