student.js 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. 'use strict';
  2. const Schema = require('mongoose').Schema;
  3. const metaPlugin = require('naf-framework-mongoose/lib/model/meta-plugin');
  4. // 学生表
  5. const StudentSchema = {
  6. name: { type: String, required: true, maxLength: 200, zh: '姓名' }, // 姓名
  7. number: { type: String, required: false, maxLength: 200, zh: '序号' }, // 序号
  8. id_number: { type: String, required: true, maxLength: 200, zh: '身份证号' }, // 身份证号
  9. phone: { type: String, required: true, maxLength: 200, zh: '手机号' }, // 手机号
  10. gender: { type: String, required: false, maxLength: 200, zh: '性别' }, // 性别
  11. nation: { type: String, required: false, maxLength: 200, zh: '民族' }, // 民族
  12. school_name: { type: String, required: false, maxLength: 200, zh: '学校名称' }, // 学校名称
  13. schid: { type: String, required: false, maxLength: 200, zh: '学校id' }, // 学校id
  14. faculty: { type: String, required: false, maxLength: 200, zh: '院系' }, // 院系
  15. major: { type: String, required: false, maxLength: 200, zh: '专业' }, // 专业
  16. edua_level: { type: String, required: false, maxLength: 200, zh: '学历层次' }, // 学历层次
  17. edua_system: { type: String, required: false, maxLength: 200, zh: '学制' }, // 学制
  18. entry_year: { type: String, required: false, maxLength: 200, zh: '入学年份' }, // 入学年份
  19. finish_year: { type: String, required: false, maxLength: 200, zh: '毕业年份' }, // 毕业年份
  20. school_job: { type: String, required: false, maxLength: 200, zh: '在校担任何种职务' }, // 在校担任何种职务
  21. qq: { type: String, required: false, maxLength: 200, zh: 'QQ号' }, // QQ号
  22. email: { type: String, required: false, maxLength: 200, zh: '邮箱' }, // 邮箱
  23. openid: { type: String, required: false, maxLength: 200, zh: '微信openid' }, // 微信openid
  24. family_place: { type: String, required: false, maxLength: 200, zh: '家庭所在地' }, // 家庭所在地
  25. family_is_hard: { type: String, required: false, maxLength: 200, zh: '家庭是否困难' }, // 家庭是否困难,0-否,1-是
  26. have_grant: { type: String, required: false, maxLength: 200, zh: '是否获得过助学金' }, // 是否获得过助学金,0-否,1-是
  27. job: { type: String, required: false, maxLength: 200, default: '普通学生', zh: '职务' }, // 职务
  28. planyearid: { type: String, required: false, maxLength: 200, zh: '大批次id' }, // 大批次id
  29. planid: { type: String, required: false, maxLength: 200, zh: '计划id' }, // 计划id
  30. termid: { type: String, required: false, maxLength: 200, zh: '期id' }, // 期id
  31. batchid: { type: String, required: false, maxLength: 200, zh: '批次id' }, // 批次id
  32. classid: { type: String, required: false, maxLength: 200, zh: '班级id' }, // 班级id
  33. bedroomid: { type: String, required: false, maxLength: 200, zh: '寝室id' }, // 寝室id
  34. bedroom: { type: String, required: false, maxLength: 200, zh: '寝室号' }, // 寝室号
  35. is_fine: { type: String, required: false, maxLength: 200, default: '0', zh: '是否优秀' }, // 是否优秀,0-否,1-是,2-无资格
  36. selfscore: { type: String, required: false, maxLength: 200, zh: '个人分' }, // 个人分
  37. score: { type: String, required: false, maxLength: 200, zh: '总分' }, // 总分
  38. diy: { type: { Object }, required: false, zh: '自定义' }, // 自定义
  39. isComming: { type: String, default: '0', zh: '签到' }, // 是否签到0否,1是
  40. type: { type: String, required: false, maxLength: 200, default: '0' }, // 类型:0-正常,1-特殊
  41. status: { type: String, required: false, maxLength: 200, default: '1' }, // 0:待确定。1:确定,2:失败
  42. };
  43. const schema = new Schema(StudentSchema, { toJSON: { virtuals: true } });
  44. schema.index({ id: 1, termid: 1, batchid: 1, schid: 1 });
  45. schema.plugin(metaPlugin);
  46. module.exports = app => {
  47. const { mongoose } = app;
  48. return mongoose.model('Student', schema, 'student');
  49. };