Commit 32250c0b authored by 任国军's avatar 任国军

add questionnaire

parent dbcba65e
Pipeline #23409 passed with stage
in 13 seconds
...@@ -67,6 +67,39 @@ class OptionController extends Controller { ...@@ -67,6 +67,39 @@ class OptionController extends Controller {
const ret = await service.course.v5.option.getCategoryTip(queryParams); const ret = await service.course.v5.option.getCategoryTip(queryParams);
ctx.success(ret); ctx.success(ret);
} }
// 填写问卷
async addQuestionnaire() {
const { ctx, service } = this;
const params = ctx.request.body;
if (ctx.isEmpty(params) || ctx.isEmpty(params.cat_id)) {
ctx.failed('cat_id is empty');
}
if (ctx.isEmpty(params) || ctx.isEmpty(params.answer_1)) {
ctx.failed('answer_1 is empty');
}
if (ctx.isEmpty(params) || ctx.isEmpty(params.answer_2)) {
ctx.failed('answer_2 is empty');
}
if (ctx.isEmpty(params) || ctx.isEmpty(params.answer_3)) {
ctx.failed('answer_3 is empty');
}
const ret = await service.course.v5.option.addQuestionnaire(params);
ctx.success(ret);
}
// 获取问卷
async getQuestionnaire() {
const { ctx, service } = this;
const ret = await service.course.v5.option.getQuestionnaire();
ctx.success(ret);
}
} }
module.exports = OptionController; module.exports = OptionController;
'use strict';
const moment = require('moment');
module.exports = app => {
const { STRING, INTEGER, DATE } = app.Sequelize;
const CourseV5Questionnaire = app.classModel.define('course_v5_questionnaire', {
id: {
type: INTEGER,
primaryKey: true,
autoIncrement: true,
},
cat_id: INTEGER,
user_id: STRING,
answer_1: STRING,
answer_2: STRING,
answer_3: STRING,
created_time: {
type: DATE,
allowNull: true,
get() {
const date = this.getDataValue('created_time');
return date ? moment(date).format('YYYY-MM-DD HH:mm:ss') : undefined;
},
},
updated_time: {
type: DATE,
allowNull: true,
get() {
const date = this.getDataValue('updated_time');
return date ? moment(date).format('YYYY-MM-DD HH:mm:ss') : undefined;
},
},
}, {
timestamps: false,
tableName: 'course_v5_questionnaire',
});
return CourseV5Questionnaire;
};
...@@ -23,6 +23,8 @@ module.exports = app => { ...@@ -23,6 +23,8 @@ module.exports = app => {
router.get('third', '/wechat/callbackAction', 'course.v5.wechat.check'); router.get('third', '/wechat/callbackAction', 'course.v5.wechat.check');
router.post('third', '/wechat/callbackAction', 'course.v5.wechat.callbackAction'); router.post('third', '/wechat/callbackAction', 'course.v5.wechat.callbackAction');
router.post('third', '/wechat/test', 'course.v5.wechat.test'); router.post('third', '/wechat/test', 'course.v5.wechat.test');
router.post('third', '/questionnaire', auth({ is_force: 1 }), 'course.v5.option.addQuestionnaire');// 填写问卷
router.get('.third', '/questionnaire', 'course.v5.option.getQuestionnaire');// 获取问卷
router.get('third', '/class/all', auth({ is_force: 0 }), 'course.v5.institution.getClassList');// 获取课程列表 router.get('third', '/class/all', auth({ is_force: 0 }), 'course.v5.institution.getClassList');// 获取课程列表
router.get('third', '/class/:class_id', auth({ is_force: 0 }), 'course.v5.institution.getClassInfo');// 获取课程详情 router.get('third', '/class/:class_id', auth({ is_force: 0 }), 'course.v5.institution.getClassInfo');// 获取课程详情
......
...@@ -137,17 +137,53 @@ class OptionService extends Service { ...@@ -137,17 +137,53 @@ class OptionService extends Service {
let categoryAll = await ctx.classModel.V5.CourseV5Category.findAll({ where: {}, attributes: [ 'id', 'name' ], raw: true }); let categoryAll = await ctx.classModel.V5.CourseV5Category.findAll({ where: {}, attributes: [ 'id', 'name' ], raw: true });
categoryAll = _.groupBy(categoryAll, 'id'); categoryAll = _.groupBy(categoryAll, 'id');
const filterIds = []; let filterIds = [];
// 智能选课要判断年龄 // 智能选课要判断年龄
if (type === 3) { if (type === 3) {
const userBabyInfo = await ctx.classModel.V5.CourseV5UserBaby.findOne({ where: { user_uuid: ctx.userUuid, status: 1, is_deleted: 0 } }); const userBabyInfo = await ctx.classModel.V5.CourseV5UserBaby.findOne({ where: { user_uuid: ctx.userUuid, status: 1, is_deleted: 0 } });
if (!ctx.isEmpty(userBabyInfo)) { if (!ctx.isEmpty(userBabyInfo)) {
switch (userBabyInfo.baby_age) { switch (userBabyInfo.baby_age) {
case 1: case 1:
filterIds.push(17); filterIds = [ 17, 18 ];
break; break;
case 2: case 2:
filterIds.push(17); filterIds = [ 17, 18 ];
break;
case 5:
filterIds = [ 18 ];
break;
case 6:
filterIds = [ 18 ];
break;
case 7:
filterIds = [ 18 ];
break;
case 8:
filterIds = [ 18 ];
break;
case 9:
filterIds = [ 18 ];
break;
case 10:
filterIds = [ 18 ];
break;
case 11:
filterIds = [ 18 ];
break;
case 12:
filterIds = [ 18 ];
break;
case 13:
filterIds = [ 18 ];
break;
case 14:
filterIds = [ 18 ];
break;
case 15:
filterIds = [ 18 ];
break;
case 16:
filterIds = [ 18 ];
break; break;
default: default:
break; break;
...@@ -250,6 +286,56 @@ class OptionService extends Service { ...@@ -250,6 +286,56 @@ class OptionService extends Service {
return ret; return ret;
} }
// 填写问卷
async addQuestionnaire(input) {
const { ctx } = this;
if (!ctx.isEmpty(ctx.userUuid)) {
ctx.failed('用户异常');
}
const data = {
user_id: ctx.userUuid,
cat_id: input.cat_id || 0,
answer_1: input.answer_1 || '',
answer_2: input.answer_2 || '',
answer_3: input.answer_3 || '',
created_time: moment().format('YYYY-MM-DD HH:mm:ss'),
};
await ctx.classModel.V5.CourseV5Questionnaire.create(data);
const ret = { result: true };
return ret;
}
// 获取问卷
async getQuestionnaire() {
const results = [
{
id: 1,
question: '报告对于孩子的描述是否准确?',
answers: [ '不准确', '部分准确', '很准确' ],
},
{
id: 2,
question: '报告建议对你选课有没有参考帮助?',
answers: [ '不会参考', '部分参考', '值得信任' ],
},
{
id: 3,
question: '选课工具体验感,请打分?',
answers: [ '体验较差', '体验一般', '体验很好' ],
},
];
const ret = {
results,
};
return ret;
}
} }
module.exports = OptionService; module.exports = OptionService;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment