'use strict'; const { CrudService } = require('naf-framework-mongoose/lib/service'); const { BusinessError, ErrorCode } = require('naf-core').Error; const _ = require('lodash'); const assert = require('assert'); // 问卷回答 class AnswerService extends CrudService { constructor(ctx) { super(ctx, 'answer'); this.model = this.ctx.model.Answer; } async create(body) { const { phone, user_id, create_user = true } = body; if (!user_id && phone && create_user) { // 没有用户id,但是有电话,且需要注册 // 查询用户 let user = await this.ctx.service.util.httpUtil.cpost('/spm', 'live', { model: 'personal', method: 'findOne', query: { phone } }, { method: 'useModel' }); if (user) { body.user_id = user._id; delete body.phone; } else { user = await this.ctx.service.util.httpUtil.cpost('/spm', 'live', { service: 'users.personal', method: 'create', body: { phone, name: '个人', code: 'WJDCXT', password: '123456', status: '1' } }, { method: 'useService' }); if (user) { body.user_id = user._id; delete body.phone; } else throw new BusinessError(ErrorCode.SERVICE_FAULT, '创建用户失败'); } } const res = await this.model.create(body); return res; } async findOne({ questionnaire_id, user_id }) { assert(questionnaire_id, '缺少问卷信息'); assert(user_id, '缺少填写人信息'); const res = await this.model.findOne({ questionnaire_id, user_id }); return res; } } module.exports = AnswerService;