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); } } }