public IActionResult change_job_state(string id, bool state = true) { ErrorRequestData err = null; if (string.IsNullOrWhiteSpace(id)) { err = new ErrorRequestData() { HttpStatusCode = 401, ErrorMessage = nameof(id) + "参数错误" }; return(new ContentResult() { Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType, StatusCode = err.HttpStatusCode }); } try { var jobtype = dbContext.job_type.Where(x => x.uuid.Equals(id)).FirstOrDefault(); if (jobtype != null && jobtype.user_id.Equals(signedUser.user_uuid)) { jobtype.is_enabled = state; dbContext.SaveChanges(); return(Content("修改成功")); } } catch (DbUpdateException dbex) { if (dbex.InnerException is PostgresException npge) { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = npge.Detail }; } else { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = dbex.Message }; } return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } catch (Exception ex) { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = ex.Message }; return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } return(Content("修改失败")); }
/// <summary> /// 设置用户的笔试题分数 /// </summary> /// <param name="id"></param> /// <param name="score"></param> /// <returns></returns> public IActionResult set_user_score(string id, int score = 0) { ErrorRequestData err = null; if (string.IsNullOrWhiteSpace(id)) { err = new ErrorRequestData() { HttpStatusCode = 401, ErrorMessage = nameof(id) + "或者参数错误" }; return(new ContentResult() { Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType, StatusCode = err.HttpStatusCode }); } try { var m = dbContext.user_score.Where(x => x.id.Equals(id)).FirstOrDefault(); if (m != null) { m.eq_score = score; dbContext.SaveChanges(); } return(Content("设置成功")); } catch (DbUpdateException dbex) { if (dbex.InnerException is PostgresException npge) { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = npge.Detail }; } else { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = dbex.Message }; } return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } catch (Exception ex) { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = ex.Message }; return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } }
public IActionResult AddJobType(string job_name) { ErrorRequestData err = null; if (string.IsNullOrWhiteSpace(job_name)) { err = new ErrorRequestData() { HttpStatusCode = 401, ErrorMessage = "参数错误" }; return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } try { job_type jt = new job_type() { job_name = job_name, addtime = DateTime.Now, user_id = signedUser.user_uuid, uuid = UUID.getUUID() }; dbContext.job_type.Add(jt); dbContext.SaveChanges(); var list = dbContext.job_type.Where(x => x.user_id.Equals(signedUser.user_uuid)).ToList(); return(Json(list)); } catch (DbUpdateException dbex) { if (dbex.InnerException is PostgresException npge) { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = npge.Detail }; } else { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = dbex.Message }; } return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } catch (Exception ex) { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = ex.Message }; return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } }
/// <summary> /// 分页显示测试题 /// </summary> /// <param name="job_id"></param> /// <param name="page"></param> /// <returns></returns> public IActionResult get_exam_data(string job_id, int page = 1) { ErrorRequestData err = null; if (string.IsNullOrWhiteSpace(job_id) || page < 1) { err = new ErrorRequestData() { HttpStatusCode = 401, ErrorMessage = nameof(job_id) + "或者" + nameof(page) + "参数错误" }; return(new ContentResult() { Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType, StatusCode = err.HttpStatusCode }); } try { var p = new EFPaging <exam_data>(); var q = dbContext.exam_data.Where(x => x.job_id.Equals(job_id) && x.user_id.Equals(signedUser.user_uuid)).OrderByDescending(x => x.is_enabled).OrderBy(x => x.exam_type); var list = p.getPageList(q, "/api/company/get_exam_data?job_id=" + job_id, page); var pages = p.pageAjaxHref; return(Json(new { list, pages })); } catch (DbUpdateException dbex) { if (dbex.InnerException is PostgresException npge) { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = npge.Detail }; } else { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = dbex.Message }; } return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } catch (Exception ex) { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = ex.Message }; return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } }
/// <summary> /// 获取邀请码列表 /// </summary> /// <returns></returns> public IActionResult get_invitation_code_list() { ErrorRequestData err = null; try { var list = from s in dbContext.user_score join t in dbContext.job_type on s.job_id equals t.uuid join u in dbContext.recruit_user on t.user_id equals u.uuid where s.user_id.Equals(signedUser.user_uuid) && s.invitation_code.Length > 0 orderby s.addtime select new { u.company_name, u.company_address, u.company_contact, s.invitation_code, t.job_name }; return(Json(list.ToList())); } catch (DbUpdateException dbex) { if (dbex.InnerException is PostgresException npge) { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = npge.Detail }; } else { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = dbex.Message }; } return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } catch (Exception ex) { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = ex.Message }; return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } }
/// <summary> /// 获取所有的岗位列表 /// </summary> /// <returns></returns> public IActionResult get_job_names() { ErrorRequestData err = null; try { var list = dbContext.job_type.Where(x => x.user_id.Equals(signedUser.user_uuid)).OrderByDescending(x => x.is_enabled).ToList(); return(Json(list)); } catch (DbUpdateException dbex) { if (dbex.InnerException is PostgresException npge) { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = npge.Detail }; } else { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = dbex.Message }; } return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } catch (Exception ex) { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = ex.Message }; return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } }
/// <summary> /// 根据 user_score 的id获取 user_answer 所有答题的记录 /// </summary> /// <param name="id"></param> /// <returns></returns> public IActionResult get_user_answer_by_id(string id) { ErrorRequestData err = null; if (string.IsNullOrWhiteSpace(id)) { err = new ErrorRequestData() { HttpStatusCode = 401, ErrorMessage = nameof(id) + "或者参数错误" }; return(new ContentResult() { Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType, StatusCode = err.HttpStatusCode }); } try { // 此处应改为联合查询, 加载测试题的数据 var list = from a in dbContext.user_answer join e in dbContext.exam_data on a.exam_id equals e.id where a.user_score_id.Equals(id) orderby e.exam_type select new { a.id, a.addtime, a.exam_answer, a.exam_type, e.exam_content, e.exam_cq_anwser, e.exam_eq_answer }; return(Json(list.ToList())); } catch (DbUpdateException dbex) { if (dbex.InnerException is PostgresException npge) { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = npge.Detail }; } else { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = dbex.Message }; } return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } catch (Exception ex) { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = ex.Message }; return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } }
/// <summary> /// 根据岗位id查找 用户的测试题答案 /// </summary> /// <param name="id"></param> /// <returns></returns> public IActionResult get_user_answer(string id, int page = 1) { ErrorRequestData err = null; if (string.IsNullOrWhiteSpace(id) || page < 1) { err = new ErrorRequestData() { HttpStatusCode = 401, ErrorMessage = nameof(id) + "或者参数错误" }; return(new ContentResult() { Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType, StatusCode = err.HttpStatusCode }); } try { var q = from s in dbContext.user_score join u in dbContext.recruit_user on s.user_id equals u.uuid where s.job_id == id select new user_score_info { uname = u.uname, cq_score = s.cq_score, eq_score = s.eq_score, invitation_code = s.invitation_code, addtime = s.addtime, phone = u.phone, email = u.email, id = s.id }; var p = new EFPaging <user_score_info>(); // 需要定义视图模型 var list = p.getPageList(q, "/api/company/get_user_answer/" + id, page); var pages = p.pageAjaxHref; return(Json(new { list, pages })); } catch (DbUpdateException dbex) { if (dbex.InnerException is PostgresException npge) { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = npge.Detail }; } else { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = dbex.Message }; } return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } catch (Exception ex) { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = ex.Message }; return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } }
public IActionResult add_exam_data(exam_data model) { ErrorRequestData err = null; if (model == null) { err = new ErrorRequestData() { HttpStatusCode = 401, ErrorMessage = nameof(model) + "参数错误" }; return(new ContentResult() { Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType, StatusCode = err.HttpStatusCode }); } if ("cq".Equals(model.exam_type)) { if (string.IsNullOrWhiteSpace(model.exam_content) || string.IsNullOrWhiteSpace(model.exam_cq_anwser) || string.IsNullOrWhiteSpace(model.anwser_a) || string.IsNullOrWhiteSpace(model.anwser_b) || string.IsNullOrWhiteSpace(model.anwser_c) || string.IsNullOrWhiteSpace(model.anwser_d)) { err = new ErrorRequestData() { HttpStatusCode = 401, ErrorMessage = nameof(model) + "参数错误" }; return(new ContentResult() { Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType, StatusCode = err.HttpStatusCode }); } model.exam_eq_answer = string.Empty; } else if ("eq".Equals(model.exam_type)) { if (string.IsNullOrWhiteSpace(model.exam_content) || string.IsNullOrWhiteSpace(model.exam_eq_answer)) { err = new ErrorRequestData() { HttpStatusCode = 401, ErrorMessage = nameof(model) + "参数错误" }; return(new ContentResult() { Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType, StatusCode = err.HttpStatusCode }); } model.exam_cq_anwser = string.Empty; model.anwser_a = string.Empty; model.anwser_b = string.Empty; model.anwser_c = string.Empty; model.anwser_d = string.Empty; } try { model.user_id = signedUser.user_uuid; dbContext.exam_data.Add(model); dbContext.SaveChanges(); return(Content("添加成功")); } catch (DbUpdateException dbex) { if (dbex.InnerException is PostgresException npge) { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = npge.Detail }; } else { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = dbex.Message }; } return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } catch (Exception ex) { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = ex.Message }; return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } }
public IActionResult Login([FromForm] string uname, [FromForm] string pwd) { var err = new ErrorRequestData(); err.Description = HttpContext.Request.GetAbsoluteUri(); if (string.IsNullOrWhiteSpace(uname) || string.IsNullOrEmpty(pwd)) { err.HttpStatusCode = 401; err.ErrorType = ConstantTypeString.TokenError; err.ErrorMessage = "参数错误"; return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } var user = dbContext.recruit_user.Where(x => (x.nickname.Equals(uname) || x.email.Equals(uname) || x.phone.Equals(uname)) && x.pwd.Equals(Sha1.getSha1String(pwd))).FirstOrDefault(); if (user == null) { err.HttpStatusCode = 403; err.ErrorType = ConstantTypeString.NormalError; err.ErrorMessage = "用户或者密码错误"; return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } try { var guid = Guid.NewGuid().ToString(); // 唯一标识 var payload = new Dictionary <string, object>() { { "jti", guid } }; string secret = jwtTokenConfig.Secret; IJwtAlgorithm algorithm = new HMACSHA256Algorithm(); IJsonSerializer serializer = new JsonNetSerializer(); IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder(); IJwtEncoder encoder = new JwtEncoder(algorithm, serializer, urlEncoder); var jwtToken = encoder.Encode(payload, secret); // 生成jwtToken DateTime utcNow = DateTime.UtcNow; // 可以添加多个role , 但是role type 必须相同, 如果是正式的产品, 这里需要单独提取一张权限表, 仅做测试阶段使用 var userClaims = new List <Claim>(); if (user.auth_role.Equals("admin")) { userClaims.Add(new Claim(nameof(TokenAttribute.role), user.auth_role)); userClaims.Add(new Claim(nameof(TokenAttribute.role), "user")); userClaims.Add(new Claim(nameof(TokenAttribute.role), "company")); } else if (user.auth_role.Equals("company")) { userClaims.Add(new Claim(nameof(TokenAttribute.role), user.auth_role)); userClaims.Add(new Claim(nameof(TokenAttribute.role), "user")); } else { userClaims.Add(new Claim(nameof(TokenAttribute.role), user.auth_role)); } // 将用户token保存到内存缓存 MemoryCacheService.SetChacheValue(guid, new SignedUser() { guid = guid, Audience = jwtTokenConfig.Audience, Issuer = jwtTokenConfig.Issuer, utc_time = utcNow, user_token = jwtToken, user_uuid = user.uuid, user_claims = userClaims, Validity = jwtTokenConfig.Validity, TokenType = jwtTokenConfig.TokenType }); // 将token写入响应流中 var response = new { token = jwtToken, expires_in = jwtTokenConfig.Validity, token_type = jwtTokenConfig.TokenType, user.auth_role }; return(Json(response)); } catch (Exception ex) { err.HttpStatusCode = 500; err.ErrorType = ConstantTypeString.TokenError; err.ErrorMessage = ex.Message; return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } }
public IActionResult get_company_list(int page = 1) { ErrorRequestData err = null; if (page < 1) { err = new ErrorRequestData() { HttpStatusCode = 401, ErrorMessage = nameof(page) + "参数错误" }; return(new ContentResult() { Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType, StatusCode = err.HttpStatusCode }); } try { var p = new EFPaging <recruit_user>(); // 查询公司数据 var q = dbContext.recruit_user.Where(x => x.auth_role.Equals("company")).OrderBy(x => x.addtime); var temp = p.getPageList(q, "/api/Recruit/get_company_list", page); var pages = p.pageAjaxHref; List <object> list = new List <object>(); temp.ForEach(x => { var a = new { x.company_address, x.company_code, x.company_contact, x.company_name, x.uuid, jobs = dbContext.job_type.Where(m => m.user_id.Equals(x.uuid) && m.is_enabled == true) .Select(t => new { t.uuid, t.job_name }).ToList(), job_id = string.Empty // 绑定下拉框的字段, 占位用的 }; list.Add(a); }); return(Json(new { list, pages })); } catch (DbUpdateException dbex) { if (dbex.InnerException is PostgresException npge) { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = npge.Detail }; } else { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = dbex.Message }; } return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } catch (Exception ex) { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = ex.Message }; return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } }
/// <summary> /// 提交测试题答案 /// </summary> /// <param name="job_id"></param> /// <param name="list"></param> /// <returns></returns> public IActionResult submit_exam_data(string job_id, List <user_answer> list) { ErrorRequestData err = null; if (list != null && list.Count > 0 && !string.IsNullOrWhiteSpace(job_id)) { try { var score = new user_score() { job_id = job_id, user_id = signedUser.user_uuid }; var exam_dict = dbContext.exam_data.Where(x => x.job_id.Equals(job_id)).Select(x => new { x.id, x.exam_type, x.exam_cq_anwser }).ToDictionary(x => x.id); list.ForEach(x => { if (exam_dict.ContainsKey(x.exam_id)) { if (x.exam_type.Equals("cq") && x.exam_answer.Equals(exam_dict[x.exam_id].exam_cq_anwser)) { ++score.cq_score; } x.id = UUID.getUUID(); x.user_score_id = score.id; dbContext.user_answer.Add(x); } }); dbContext.user_score.Add(score); dbContext.SaveChanges(); return(Content("提交成功")); } catch (DbUpdateException dbex) { if (dbex.InnerException is PostgresException npge) { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = npge.Detail }; } else { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = dbex.Message }; } return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } catch (Exception ex) { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = ex.Message }; return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } } else { err = new ErrorRequestData() { HttpStatusCode = 401, ErrorMessage = nameof(job_id) + "或" + nameof(list) + "参数错误" }; return(new ContentResult() { Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType, StatusCode = err.HttpStatusCode }); } }
public IActionResult search_company_list(string com_type, string keywords, int page = 1) { ErrorRequestData err = null; if (string.IsNullOrWhiteSpace(com_type) || string.IsNullOrWhiteSpace(keywords)) { err = new ErrorRequestData() { HttpStatusCode = 401, ErrorMessage = nameof(com_type) + "或" + nameof(keywords) + "参数错误" }; return(new ContentResult() { Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType, StatusCode = err.HttpStatusCode }); } try { List <recruit_user> temp = null; var pages = string.Empty; var p = new EFPaging <recruit_user>(); if (com_type.Equals("com_name")) { var q = dbContext.recruit_user.Where(x => x.auth_role.Equals("company") && x.company_name.Contains(keywords)).OrderBy(x => x.addtime); temp = p.getPageList(q, string.Format("/api/Recruit/search_company_list?com_type={0}&keywords={1}", com_type, keywords), page); pages = p.pageAjaxHref; } else if (com_type.Equals("com_code")) { var q = dbContext.recruit_user.Where(x => x.auth_role.Equals("company") && x.company_code.Contains(keywords)).OrderBy(x => x.addtime); temp = p.getPageList(q, string.Format("/api/Recruit/search_company_list?com_type={0}&keywords={1}", com_type, keywords), page); pages = p.pageAjaxHref; } else if (com_type.Equals("com_addr")) { var q = dbContext.recruit_user.Where(x => x.auth_role.Equals("company") && x.company_address.Contains(keywords)).OrderBy(x => x.addtime); temp = p.getPageList(q, string.Format("/api/Recruit/search_company_list?com_type={0}&keywords={1}", com_type, keywords), page); pages = p.pageAjaxHref; } List <object> list = new List <object>(); temp.ForEach(x => { var a = new { x.company_address, x.company_code, x.company_contact, x.company_name, x.uuid, jobs = dbContext.job_type.Where(m => m.user_id.Equals(x.uuid) && m.is_enabled == true) .Select(t => new { t.uuid, t.job_name }).ToList(), job_id = string.Empty // 绑定下拉框的字段, 占位用的 }; list.Add(a); }); return(Json(new { list, pages })); } catch (DbUpdateException dbex) { if (dbex.InnerException is PostgresException npge) { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = npge.Detail }; } else { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = dbex.Message }; } return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } catch (Exception ex) { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = ex.Message }; return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } }
/// <summary> /// 获取测试题数据 /// </summary> /// <param name="id"></param> /// <returns></returns> public IActionResult get_exam_by_job_id(string id) { ErrorRequestData err = null; if (string.IsNullOrWhiteSpace(id)) { err = new ErrorRequestData() { HttpStatusCode = 401, ErrorMessage = nameof(id) + "参数错误" }; return(new ContentResult() { Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType, StatusCode = err.HttpStatusCode }); } try { var list = dbContext.exam_data.Where(x => x.job_id.Equals(id) && x.is_enabled == true).OrderBy(x => x.exam_type) .Select(x => new { x.anwser_a, x.anwser_b, x.anwser_c, x.anwser_d, x.exam_content, x.exam_type, exam_eq_answer = "", x.id }).ToList(); return(Json(list)); } catch (DbUpdateException dbex) { if (dbex.InnerException is PostgresException npge) { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = npge.Detail }; } else { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = dbex.Message }; } return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } catch (Exception ex) { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = ex.Message }; return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } }
public override void OnActionExecuting(ActionExecutingContext context) { var err = new ErrorRequestData(); err.ShowMsgBox = showMsgBox; err.Description = context.HttpContext.Request.GetAbsoluteUri(); if (!context.HttpContext.Request.Headers.ContainsKey("token_type")) { err.HttpStatusCode = 401; err.ErrorType = ConstantTypeString.TokenError; err.ErrorMessage = "JwtToken的类型不正确"; context.Result = new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }; return; } if (!context.HttpContext.Request.Headers.ContainsKey("token")) { err.HttpStatusCode = 401; err.ErrorType = ConstantTypeString.TokenError; err.ErrorMessage = "请求数据中没有包含Token"; context.Result = new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }; return; } // 只有通过验证才能继续执行, 否则返回错误信息 if (context.HttpContext.Request.Headers["token_type"].ToString().Equals(Config.configuration["JwtTokenConfig:TokenType"])) { var token = context.HttpContext.Request.Headers["token"].ToString(); // 请求头的token try { IJsonSerializer serializer = new JsonNetSerializer(); IDateTimeProvider provider = new UtcDateTimeProvider(); IJwtValidator validator = new JwtValidator(serializer, provider); IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder(); IJwtDecoder decoder = new JwtDecoder(serializer, validator, urlEncoder); // 使用私钥解析 token 中的 guid var claims = decoder.DecodeToObject <Dictionary <string, object> >(token, Config.configuration["JwtTokenConfig:Secret"], true); if (claims != null) { // 根据token获取 guid 查找内存缓存中的用户信息 if (claims.ContainsKey("jti")) { var guid = claims["jti"].ToString(); // 冲内存缓存中读取guid包含的用户权限 var su = MemoryCacheService.GetCacheValue <SignedUser>(guid); if (su != null) { // 验证是否过期 if (DateTime.UtcNow > su.utc_time.AddHours(su.Validity)) { err.HttpStatusCode = 403; err.ErrorType = ConstantTypeString.TokenError; err.ErrorMessage = "token过期"; context.Result = new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }; return; } // 验证权限 if (su.user_claims.Where(x => x.Type.Equals(nameof(role)) && x.Value.Equals(role)).Count() > 0) { // 将 user 写入本次请求数据, 也可以保存在 ViewBag中 if (context.Controller is BaseController baseController) { baseController.signedUser = su; } else { // 没有继承与基类则保存到本次请求上下文中, 需要自己手动进行类型转换 var controller = context.Controller as Controller; controller.ViewData["signedUser"] = su; } } else { err.HttpStatusCode = 403; err.ErrorType = ConstantTypeString.UnAuthorization; err.ErrorMessage = "你没有所需的权限"; context.Result = new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }; return; } } else { err.HttpStatusCode = 401; err.ErrorType = ConstantTypeString.TokenError; err.ErrorMessage = "你的token可能已经失效"; context.Result = new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }; return; } } else { err.HttpStatusCode = 401; err.ErrorType = ConstantTypeString.TokenError; err.ErrorMessage = "token中不包含jti"; context.Result = new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }; return; } } } catch (SignatureVerificationException) { err.HttpStatusCode = 401; err.ErrorType = ConstantTypeString.TokenError; err.ErrorMessage = "token签名验证失败,捕获到SignatureVerificationException"; context.Result = new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }; return; } catch (Exception ex) { err.HttpStatusCode = 401; err.ErrorType = ConstantTypeString.TokenError; err.ErrorMessage = ex.Message; context.Result = new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }; return; } } else { err.HttpStatusCode = 401; err.ErrorType = ConstantTypeString.TokenError; err.ErrorMessage = "你的token类型不正确"; context.Result = new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }; return; } base.OnActionExecuting(context); }
/// <summary> /// 设置邀请码 /// </summary> /// <param name="id"></param> /// <returns></returns> public IActionResult set_invitation_code(string id) { ErrorRequestData err = null; if (string.IsNullOrWhiteSpace(id)) { err = new ErrorRequestData() { HttpStatusCode = 401, ErrorMessage = nameof(id) + "或者参数错误" }; return(new ContentResult() { Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType, StatusCode = err.HttpStatusCode }); } try { var m = dbContext.user_score.Where(x => x.id.Equals(id)).FirstOrDefault(); if (m != null) { if (string.IsNullOrWhiteSpace(m.invitation_code)) { m.invitation_code = Guid.NewGuid().ToString("D").Replace("-", "").Substring(0, 8).ToUpper(); } else { m.invitation_code = string.Empty; } dbContext.SaveChanges(); return(Json(new { result = true, message = m.invitation_code })); } return(Json(new { result = false, message = "设置邀请码失败" })); } catch (DbUpdateException dbex) { if (dbex.InnerException is PostgresException npge) { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = npge.Detail }; } else { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = dbex.Message }; } return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } catch (Exception ex) { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = ex.Message }; return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } }
public IActionResult delete_job_type(string id) { ErrorRequestData err = null; if (string.IsNullOrWhiteSpace(id)) { err = new ErrorRequestData() { HttpStatusCode = 401, ErrorMessage = nameof(id) + "参数错误" }; return(new ContentResult() { Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType, StatusCode = err.HttpStatusCode }); } try { var j = dbContext.job_type.Where(x => x.uuid.Equals(id)).FirstOrDefault(); if (j != null && signedUser.user_uuid.Equals(j.user_id)) { var ent = dbContext.Entry(j); ent.State = EntityState.Deleted; dbContext.SaveChanges(); return(Content("ok")); } } catch (DbUpdateException dbex) { if (dbex.InnerException is PostgresException npge) { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = npge.Detail }; } else { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = dbex.Message }; } return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } catch (Exception ex) { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = ex.Message }; return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } return(Content("删除失败")); }
/// <summary> /// 注册用户的方法 /// </summary> /// <param name="user"></param> /// <returns></returns> public IActionResult RegisterUser(recruit_user user) { ErrorRequestData err = null; if (user == null || string.IsNullOrWhiteSpace(user.pwd)) { err = new ErrorRequestData() { HttpStatusCode = 401, ErrorMessage = "参数错误" }; return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } try { user.pwd = Sha1.getSha1String(user.pwd); if ("user".Equals(user.auth_role)) { if (string.IsNullOrWhiteSpace(user.uname) || string.IsNullOrWhiteSpace(user.birthday)) { err = new ErrorRequestData() { HttpStatusCode = 401, ErrorMessage = "参数错误" }; return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } dbContext.recruit_user.Add(user); dbContext.SaveChanges(); return(Content("请求成功")); } else if ("company".Equals(user.auth_role)) { if (string.IsNullOrWhiteSpace(user.company_address) || string.IsNullOrWhiteSpace(user.company_code) || string.IsNullOrWhiteSpace(user.company_contact) || string.IsNullOrWhiteSpace(user.company_name)) { err = new ErrorRequestData() { HttpStatusCode = 401, ErrorMessage = "参数错误" }; return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } dbContext.recruit_user.Add(user); dbContext.SaveChanges(); return(Content("请求成功")); } } catch (DbUpdateException dbex) { if (dbex.InnerException is PostgresException npge) { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = npge.Detail }; } else { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = dbex.Message }; } return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } catch (Exception ex) { err = new ErrorRequestData() { HttpStatusCode = 500, ErrorMessage = ex.Message }; return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); } err = new ErrorRequestData() { HttpStatusCode = 401, ErrorMessage = "注册失败" }; return(new ContentResult() { StatusCode = err.HttpStatusCode, Content = err.toJosnString(), ContentType = ConstantTypeString.JsonContentType }); }