doctor.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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 DoctorService extends CrudService {
  8. constructor(ctx) {
  9. super(ctx, 'doctor');
  10. this.model = this.ctx.model.Doctor;
  11. }
  12. async create(data) {
  13. const { name, mobile, passwd } = data;
  14. assert(name && mobile && passwd, '缺少部分信息项');
  15. const newdata = data;
  16. newdata.passwd = { secret: passwd };
  17. return await this.model.create(newdata);
  18. }
  19. async update({ id }, data) {
  20. const doctor = await this.model.findById(id);
  21. doctor.name = data.name;
  22. doctor.mobile = data.mobile;
  23. doctor.hosname = data.hosname;
  24. doctor.deptname = data.deptname;
  25. doctor.title = data.title;
  26. doctor.post = data.post;
  27. doctor.content = data.content;
  28. doctor.remark = data.remark;
  29. doctor.openid = data.openid;
  30. if (data.icon) {
  31. doctor.icon = data.icon;
  32. }
  33. if (data.passwd) {
  34. doctor.passwd = { secret: data.passwd };
  35. }
  36. return await doctor.save();
  37. }
  38. // 根据openid 取得医生信息
  39. async findByOpenid(data) {
  40. return await this.model.findOne({ openid: data.openid });
  41. }
  42. async updateopenid({ id }, data) {
  43. const doctor = await this.model.findById(id);
  44. doctor.openid = data.openid;
  45. return await doctor.save();
  46. }
  47. }
  48. module.exports = DoctorService;