using Competition.Mysql.api;
using Competition.Mysql.api.Post;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System.Diagnostics.Eventing.Reader;
using System.Transactions;
namespace CompetitionAPI.Controllers
{
[Route("api/[action]")]
[ApiController]
public class StudentTaskController : 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_user bll_user=new Competition.BLL.task_user();
Competition.BLL.task_manager bll_task=new Competition.BLL.task_manager();
Competition.BLL.task_result bll_result=new Competition.BLL.task_result();
///
/// 获取学生任务
///
///
///
///
[HttpGet]
public IActionResult GetStudentTask(string LoginId="",string TaskName="")
{
var res = new get_student_task();
try
{
var data=new List();
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.CreateTime=DateTime.Now;
logmodel.Identity = loglist.IdentityName;
logmodel.SchoolId = loglist.SchoolId;
logmodel.UserName= loglist.UserName;
logmodel.LogInfo = loglist.UserName + "获取任务名称:'"+TaskName+"'成功";
bll_log.Add(logmodel);
var list = bll_user.GetModelList(" UserId='" + LoginId + "'").ToList();
foreach (var item in list)
{
var alist = bll_task.GetModelList(" TaskId='" + item.TaskId + "' and TaskName like '%"+TaskName+"%'").ToList();
foreach (var aitem in alist)
{
if (aitem.TaskIssue == "1")
{
var model = new student_taskData();
model.TaskUserId = item.TaskUserId;
model.TaskName = aitem.TaskName;
model.StartTime = Convert.ToDateTime(aitem.StartTime);
model.EndTime = Convert.ToDateTime(aitem.EndTime);
data.Add(model);
}
}
}
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.CreateTime = DateTime.Now;
logmodel.Identity = loglist.IdentityName;
logmodel.SchoolId = loglist.IdentityName;
logmodel.LogInfo = loglist.UserName + "获取所有任务成功";
bll_log.Add(logmodel);
var list = bll_user.GetModelList(" UserId='" + LoginId + "'").ToList();
foreach (var item in list)
{
var alist = bll_task.GetModelList(" TaskId='" + item.TaskId + "'").ToList();
foreach (var aitem in alist)
{
if (aitem.TaskIssue == "1")
{
var model = new student_taskData();
model.TaskUserId = item.TaskUserId;
model.TaskName = aitem.TaskName;
model.StartTime = Convert.ToDateTime(aitem.StartTime);
model.EndTime = Convert.ToDateTime(aitem.EndTime);
data.Add(model);
}
}
}
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);
}
///
/// 开始任务
///
///
///
[HttpPost]
public IActionResult StartStudentTask(start_student_task task)
{
var res=new result_data();
try
{
using (var scope = new TransactionScope())
{
if (!string.IsNullOrEmpty(task.TaskUserId) && !string.IsNullOrEmpty(task.LoginId))
{
var loglist = bll.GetModelList(" UserId='" + task.LoginId + "'").FirstOrDefault();
if (loglist.IdentityName == "学生")
{
var tasklist = bll_user.GetModelList(" TaskUserId='" + task.TaskUserId + "'").FirstOrDefault();
var list = bll_task.GetModelList(" TaskId='" + tasklist.TaskId + "'").FirstOrDefault();
var now = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
if (list.StartTime <= Convert.ToDateTime(now) && list.EndTime > Convert.ToDateTime(now))
{
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 + "开始任务:'" + tasklist.TaskId + "'成功";
bll_log.Add(logmodel);
var model = new Competition.Model.task_result();
model.TaskResultId = Guid.NewGuid().ToString();
model.TaskUserId = task.TaskUserId;
//model.TaskDefinition= task.TaskDefinition;
model.TaskResult = "0";
bll_result.Add(model);
scope.Complete();
res.code = 200;
res.msg = "开始任务成功";
}
else
{
res.code = 201;
res.msg = "未到开始时间或超过了结束时间";
}
}
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);
}
///
/// 任务详情
///
///
[HttpGet]
public IActionResult GetStudentInfo(string LoginId="",string TaskUserId="")
{
var res=new get_student_info();
try
{
var data=new List();
var loglist = bll.GetModelList(" UserId='" + LoginId + "'").FirstOrDefault();
if (loglist.IdentityName == "学生")
{
var list = bll_user.GetModelList(" TaskUserId='" + TaskUserId + "'").FirstOrDefault();
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.TaskId+"'成功";
bll_log.Add(logmodel);
var tasklist = bll_task.GetModelList(" TaskId='" + list.TaskId + "'").FirstOrDefault();
var alist = bll_result.GetModelList(" TaskUserId='" + list.TaskUserId + "'").FirstOrDefault();
var model = new student_infoData();
model.TaskResultId = alist.TaskResultId;
model.TaskName = tasklist.TaskName;
model.TaskParticulars = tasklist.TaskParticulars;
data.Add(model);
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);
}
///
/// 提交任务
///
///
///
[HttpPost]
public IActionResult EndStudentTask(end_student_task task)
{
var res=new result_data();
try
{
using (var scope = new TransactionScope())
{
if (!string.IsNullOrEmpty(task.LoginId) && !string.IsNullOrEmpty(task.TaskDefinition) && !string.IsNullOrEmpty(task.TaskResultId))
{
var loglist = bll.GetModelList(" UserId='" + task.LoginId + "'").FirstOrDefault();
if (loglist.IdentityName == "学生")
{
var list = bll_result.GetModelList(" TaskResultId='" + task.TaskResultId + "'").FirstOrDefault();
var tasklist = bll_user.GetModelList(" TaskUserId='" + list.TaskUserId + "'").FirstOrDefault();
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 + "提交任务:'" + tasklist.TaskId + "'成功";
bll_log.Add(logmodel);
list.TaskDefinition = task.TaskDefinition;
list.TaskResult = "1";
bll_result.Update(list);
scope.Complete();
res.code = 200;
res.msg = "提交任务成功";
}
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);
}
}
}