123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- 'use strict';
- const assert = require('assert');
- const _ = require('lodash');
- const { CrudService } = require('naf-framework-mongoose/lib/service');
- const { BusinessError, ErrorCode } = require('naf-core').Error;
- class TeacherService extends CrudService {
- constructor(ctx) {
- super(ctx, 'teacher');
- this.model = this.ctx.model.Teacher;
- }
- // 创建教师用户
- async create(data) {
- const { name, password, phone, id_number } = data;
- assert(name, '姓名不能为空');
- assert(password, '密码不能为空');
- assert(phone, '手机号不能为空');
- assert(id_number, '身份证号不能为空');
- // 检查是否已经注册
- const teacher = await this.model.findOne({ id_number });
- if (teacher) {
- throw new BusinessError(ErrorCode.DATA_EXIST, '已经注册,无需重复注册');
- }
- // 插入数据时默认状态为0
- const newdata = { ...data, status: '0' };
- newdata.password = { secret: password };
- const entity = await this.model.create(newdata);
- return await this.fetch({ id: entity.id });
- }
- // 根据id删除教师信息
- async delete({ id }) {
- await this.model.findByIdAndDelete(id);
- return 'deleted';
- }
- // 根据状态删除教师信息
- async deleteByStatus({ status }) {
- const teacher = await this.model.findOne(status);
- this.model.deleteOne(teacher);
- return 'deleted';
- }
- // 根据id更新信息
- async update({ id }, data) {
- const teacher = await this.model.findById(id);
- if (data.name) {
- teacher.name = data.name;
- }
- if (data.phone) {
- teacher.phone = data.phone;
- }
- if (data.id_number) {
- teacher.id_number = data.id_number;
- }
- if (data.password) {
- teacher.password = { secret: data.password };
- }
- teacher.gender = data.gender;
- teacher.profession_number = data.profession_number;
- teacher.profession_number_file = data.profession_number_file;
- teacher.school_code = data.school_code;
- teacher.school_name = data.school_name;
- teacher.email = data.email;
- teacher.openid = data.openid;
- teacher.age = data.age;
- teacher.birthday = data.birthday;
- teacher.entry_time = data.entry_time;
- teacher.job = data.job;
- teacher.major = data.major;
- teacher.subid = data.subid;
- teacher.status = data.status;
- teacher.file_score = data.file_score;
- teacher.is_etiquette_teacher = data.is_etiquette_teacher;
- teacher.interview_score = data.interview_score;
- teacher.student_score = data.student_score;
- return await teacher.save();
- }
- // 根据参数查询信息
- async query({ skip, limit, ...number }) {
- const total = await this.model.find(number);
- const teacher = await this.model.find(number).skip(Number(skip)).limit(Number(limit));
- const result = { total, teacher };
- return result;
- }
- // 查询详情
- async fetchTeacher({ id }) {
- // 将文件拼到查询到的数据后
- return await this.model.findById(id, '+file');
- }
- async status(data) {
- const { teachersid, status, remark } = data;
- for (const teacherid of teachersid) {
- const teacher = await this.model.findById(teacherid);
- teacher.status = status;
- await teacher.save();
- let detail = '';
- if (status === '1') {
- detail = '您的账号身份已确认,请尽快登录账号上传课件资料附件';
- } else if (status === '4') {
- detail = '您已通过审核被正式录入教师库';
- }
- const moment = require('moment');
- let date = new Date();
- date = moment(date).format('YYYY-MM-DD HH:mm:ss');
- await this.ctx.service.weixin.sendTemplateMsg(this.ctx.app.config.REVIEW_TEMPLATE_ID, teacher.openid, '您有一个新的通知', detail, date, remark);
- }
- }
- }
- module.exports = TeacherService;
|