'use strict'; const assert = require('assert'); const _ = require('lodash'); const { ObjectId } = require('mongoose').Types; const { CrudService } = require('naf-framework-mongoose/lib/service'); const { BusinessError, ErrorCode } = require('naf-core').Error; class DoctorService extends CrudService { constructor(ctx) { super(ctx, 'doctor'); this.model = this.ctx.model.Doctor; } async create(data) { const { name, mobile, passwd } = data; assert(name && mobile && passwd, '缺少部分信息项'); const newdata = data; newdata.passwd = { secret: passwd }; return await this.model.create(newdata); } async update({ id }, data) { const doctor = await this.model.findById(id); doctor.name = data.name; doctor.mobile = data.mobile; doctor.hosname = data.hosname; doctor.deptname = data.deptname; doctor.title = data.title; doctor.post = data.post; doctor.content = data.content; doctor.remark = data.remark; doctor.openid = data.openid; if (data.icon) { doctor.icon = data.icon; } if (data.passwd) { doctor.passwd = { secret: data.passwd }; } return await doctor.save(); } // 根据openid 取得医生信息 async findByOpenid(data) { return await this.model.findOne({ openid: data.openid }); } async updateopenid({ id }, data) { const doctor = await this.model.findById(id); doctor.openid = data.openid; return await doctor.save(); } } module.exports = DoctorService;