teacher.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. const teacherModel = require('../model/teacher');
  2. const Response = require('../util/response');
  3. const getTokenUser = require('../util/tokenProcessor');
  4. class TeacherController {
  5. static async getInfo(ctx){
  6. let theUser = await getTokenUser(ctx);
  7. let teacher = await teacherModel.findByUid(theUser.id);
  8. if(teacher){
  9. ctx.body = Response.success({realName: teacher.realName, certificate: teacher.certificate, organization: teacher.organization, jobNumber: teacher.jobNumber, state: teacher.state});
  10. }else{
  11. ctx.body = Response.failed("此教师不存在");
  12. }
  13. }
  14. static async apply(ctx){
  15. let theUser = await getTokenUser(ctx);
  16. let data = ctx.request.body;
  17. let result = await teacherModel.create({...data, ...theUser});
  18. if(result){
  19. ctx.body = Response.success({});
  20. }else{
  21. ctx.body = Response.failed("参数错误");
  22. }
  23. }
  24. static async reapply(ctx){
  25. let theUser = await getTokenUser(ctx);
  26. let data = ctx.request.body;
  27. let result = await teacherModel.updateInfo({...data, uid: theUser.id});
  28. if(result){
  29. ctx.body = Response.success({});
  30. }else{
  31. ctx.body = Response.failed("参数错误");
  32. }
  33. }
  34. static async getApplications(ctx){
  35. let theUser = await getTokenUser(ctx);
  36. if(theUser.role !== "ADMIN"){
  37. ctx.status = 401;
  38. }else{
  39. let result = await teacherModel.getApplications();
  40. if(result){
  41. ctx.body = Response.success(result);
  42. }else{
  43. ctx.body = Response.failed("获取失败");
  44. }
  45. }
  46. }
  47. static async batchResetPassword(ctx){
  48. let theUser = await getTokenUser(ctx);
  49. if(theUser.role !== "TEACHER"){
  50. ctx.status = 401;
  51. }else{
  52. let data=ctx.request.body;
  53. const promiseList = data.map(async item => {
  54. return await userModel.resetPassword(item.phone,item.password);
  55. })
  56. const resList = await Promise.all(promiseList)
  57. let result=true;
  58. let failedPhoneList="";
  59. for(let i=0;i<resList.length;i++){
  60. if(!resList[i]){
  61. result=false;
  62. failedPhoneList=failedPhoneList+data[i].phone+";";
  63. }
  64. }
  65. if(result){
  66. ctx.body = Response.success(result);
  67. }else{
  68. ctx.body = Response.failed("批量修改失败,手机列表为"+failedPhoneList);
  69. }
  70. }
  71. }
  72. }
  73. module.exports = TeacherController;