teacher.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. 'use strict';
  2. const assert = require('assert');
  3. const _ = require('lodash');
  4. const { CrudService } = require('naf-framework-mongoose/lib/service');
  5. const { BusinessError, ErrorCode } = require('naf-core').Error;
  6. const stringRandom = require('string-random');
  7. class TeacherService extends CrudService {
  8. constructor(ctx) {
  9. super(ctx, 'teacher');
  10. this.model = this.ctx.model.Teacher;
  11. this.umodel = this.ctx.model.User;
  12. }
  13. // 根据状态删除教师信息
  14. async deleteByStatus({ status }) {
  15. await this.model.deleteMany({ status });
  16. return 'deleted';
  17. }
  18. // 查询详情
  19. async fetchTeacher({ id }) {
  20. // 将文件拼到查询到的数据后
  21. return await this.model.findById(id, '+file');
  22. }
  23. async status(data) {
  24. const { teachersid, zlscore, msscore, status, remark } = data;
  25. for (const teacherid of teachersid) {
  26. const teacher = await this.model.findById(teacherid);
  27. teacher.status = status;
  28. if (zlscore) {
  29. teacher.zlscore = zlscore;
  30. }
  31. if (msscore) {
  32. teacher.msscore = msscore;
  33. }
  34. await teacher.save();
  35. let detail = '';
  36. if (status === '1') {
  37. const passwd = stringRandom();
  38. detail = '您的账号身份已确认,密码为:' + passwd + '请尽快登录账号上传课件资料附件';
  39. // 状态更新后创建教师用户
  40. const newdata = { name: teacher.name, mobile: teacher.phone, type: '3', uid: teacher.id, gender: teacher.gender, passwd };
  41. await this.ctx.service.user.create(newdata);
  42. } else if (status === '4') {
  43. detail = '您已通过审核被正式录入教师库';
  44. }
  45. const date = await this.ctx.service.util.updatedate();
  46. console.log(teacher.id);
  47. const user = await this.umodel.findOne({ uid: teacher.id, type: '3' });
  48. console.log(user);
  49. if (user && user.openid) {
  50. await this.ctx.service.weixin.sendTemplateMsg(this.ctx.app.config.REVIEW_TEMPLATE_ID, user.openid, '您有一个新的通知', detail, date, remark);
  51. } else {
  52. await this.ctx.service.util.sendMail(teacher.email, '账号审核', detail, '');
  53. }
  54. }
  55. }
  56. }
  57. module.exports = TeacherService;