using Competition.Common.Util; using CompetitionAPI.Util; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System.Text; namespace CompetitionAPI.Controllers.back { [Route("api/[controller]")] [ApiController] public class AddExamRosterListController : Controller { Competition.Mysql.BLL.admin_user user_bll = new Competition.Mysql.BLL.admin_user(); public AddExamRosterListController() { } /// /// 获取新增考试名单列表接口 /// /// 考试id /// 姓名 /// 账号 /// 页码/param> /// 每页数量/param> /// [Authorize] [HttpGet] [APIFilter] public JsonResult Index(int PageIndex, int PageSize, string ExamId, string Name = "", string Account = "") { try { var query = new StringBuilder(" 1 = 1 and role_id='2' "); var total_query = new StringBuilder(" 1 = 1 and role_id='2' "); if (!string.IsNullOrWhiteSpace(Name)) { query.AppendFormat(" AND real_name LIKE '%{0}%' ", Name); total_query.AppendFormat(" AND real_name LIKE '%{0}%' ", Name); } if (!string.IsNullOrWhiteSpace(Account)) { query.AppendFormat(" AND login_name LIKE '%{0}%' ", Account); total_query.AppendFormat(" AND login_name LIKE '%{0}%' ", Account); } query.AppendFormat(" and user_id not in (select UserId from pow_exam_users where ExamId='{0}') ", ExamId); total_query.AppendFormat(" and user_id not in (select UserId from pow_exam_users where ExamId='{0}') ", ExamId); //已发布并配置过考试,不让添加 query.AppendFormat(" and user_id not in (select UserId from pow_exam_users where ExamId in (select ExamId from pow_exam where Status!='已结束')) "); total_query.AppendFormat(" and user_id not in (select UserId from pow_exam_users where ExamId in (select ExamId from pow_exam where Status!='已结束')) "); var offset = (PageIndex - 1) * PageSize; query.AppendFormat(" order by create_time desc LIMIT {0} OFFSET {1} ", PageSize, offset); var total = user_bll.GetRecordCount(total_query.ToString()); var list = user_bll.GetModelList(query.ToString()); var data = (from l in list select new { UserId = l.user_id, LoginName = l.login_name, RealName = l.real_name, Sex = l.sex, OwnCity = l.OwnCity, unit_name = l.unit_name }).ToList(); return Json(Tool.GetJsonWithCode(APICode.Success, new { total = total, list = data })); } catch (Exception ex) { LogHelper.WriteLog(ex.Message + ",行号:" + ex.StackTrace); return Json(Tool.GetJsonWithCode(APICode.Fail, "发生错误,请联系管理员。")); } } } }