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