task.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. 'use strict';
  2. const assert = require('assert');
  3. const _ = require('lodash');
  4. const { ObjectId } = require('mongoose').Types;
  5. const { CrudService } = require('naf-framework-mongoose/lib/service');
  6. const { BusinessError, ErrorCode } = require('naf-core').Error;
  7. class TaskService extends CrudService {
  8. constructor(ctx) {
  9. super(ctx, 'task');
  10. this.model = this.ctx.model.Task;
  11. }
  12. // 插入作业
  13. async create(data) {
  14. const { code, name, title } = data;
  15. assert(code, '科目代码不能为空');
  16. assert(name, '科目名称不能为空');
  17. assert(title, '标题不能为空');
  18. // 插入数据时默认状态为1
  19. const newdata = { ...data, status: '1' };
  20. const entity = await this.model.create(newdata);
  21. return await this.fetch({ id: entity.id });
  22. }
  23. // 根据id删除
  24. async delete({ id }) {
  25. await this.model.findByIdAndDelete(id);
  26. return 'deleted';
  27. }
  28. // 根据id更新作业信息
  29. async upadate({ id }, data) {
  30. const task = await this.model.findById(id);
  31. if (task.code) {
  32. task.code = data.code;
  33. }
  34. if (task.name) {
  35. task.name = data.name;
  36. }
  37. if (task.title) {
  38. task.title = data.title;
  39. }
  40. if (task.status) {
  41. task.status = data.status;
  42. }
  43. task.question = data.question;
  44. return await task.save();
  45. }
  46. // 查询
  47. async query({ skip, limit, ...num }) {
  48. return await this.model.find(num).skip(Number(skip)).limit(Number(limit));
  49. }
  50. // 查询详情
  51. async show({ id }) {
  52. return await this.model.findById(id);
  53. }
  54. }
  55. module.exports = TaskService;