using Competition.Common.Util;
using CompetitionAPI.Util;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using NPOI.POIFS.Crypt.Dsig;
using System.Text;
namespace CompetitionAPI.Controllers.back.system
{
[Route("api/[controller]")]
[ApiController]
public class GetUserListController : Controller
{
Competition.Mysql.BLL.admin_user user_bll = new Competition.Mysql.BLL.admin_user();
Competition.Mysql.BLL.admin_unit unit_bll = new Competition.Mysql.BLL.admin_unit();
public GetUserListController()
{
}
///
/// 获取考试列表接口
///
/// 姓名
/// 选手编号
/// 页码/param>
/// 每页数量/param>
///
[Authorize]
[HttpGet]
[APIFilter]
public JsonResult Index(int PageIndex, int PageSize, string RealName = "", string PlayerCode = "")
{
try
{
var query = new StringBuilder(" role_id ='2' ");
var total_query = new StringBuilder(" role_id ='2' ");
if (!string.IsNullOrWhiteSpace(RealName))
{
query.AppendFormat(" AND real_name LIKE '%{0}%' ", RealName);
total_query.AppendFormat(" AND real_name LIKE '%{0}%' ", RealName);
}
if (!string.IsNullOrWhiteSpace(PlayerCode))
{
query.AppendFormat(" AND login_name = '{0}' ", PlayerCode);
total_query.AppendFormat(" AND login_name = '{0}' ", PlayerCode);
}
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 = new List();
foreach (var user in list)
{
user.role_name_dsc = Tool.DicRole.ContainsKey(user.role_id) ? Tool.DicRole[user.role_id] : "";
if (!user_bll.IsAdministrator(user))
{
user.IsAdministrator = false;
if (!string.IsNullOrEmpty(user.unit_id) && string.IsNullOrEmpty(user.unit_name))
{
var unit = unit_bll.GetModel(user.unit_id);
if (null != unit)
{
user.unit_name = unit.unit_name;
user.province = unit.province;
user.city = unit.city;
}
}
data.Add(user);
}
else
{
user.IsAdministrator = true;
}
}
var new_data = (from l in data
select new
{
UserId = l.user_id,
RealName = l.real_name,
PlayerCode = l.login_name,
OwnCity = l.OwnCity,
ErpCode = l.ErpCode,
UnitId = l.unit_id,
UnitName = l.unit_name,
DepName = l.dep_name,
GZGW = l.GZGW,
Mobile = l.mobile,
WorkDate = l.WorkDate,
Education = l.Education,
NowMajorGrade = l.NowMajorGrade,
NowJobGrade = l.NowJobGrade,
IdCard = l.id_card,
Sex = l.sex,
Remark = l.r1
}).ToList();
return Json(Tool.GetJsonWithCode(APICode.Success, new { total = total, list = new_data }));
}
catch (Exception ex)
{
LogHelper.WriteLog(ex.Message + ",行号:" + ex.StackTrace);
return Json(Tool.GetJsonWithCode(APICode.Fail, "发生错误,请联系管理员。"));
}
}
}
}