12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- '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;
|