Commit bbb60d12 authored by 任国军's avatar 任国军

add reportInfo

parent 0d753082
Pipeline #21783 passed with stage
in 13 seconds
...@@ -29,6 +29,18 @@ class ReportController extends Controller { ...@@ -29,6 +29,18 @@ class ReportController extends Controller {
const ret = await service.course.v5.report.generateReport(queryParams); const ret = await service.course.v5.report.generateReport(queryParams);
ctx.success(ret); ctx.success(ret);
} }
// 获取报告详情
async getReportById() {
const { ctx, service } = this;
const params = ctx.params;
if (ctx.isEmpty(params) || ctx.isEmpty(params.report_id)) {
ctx.failed('report_id is empty');
}
const ret = await service.course.v5.report.getReportById(params.report_id);
ctx.success(ret);
}
} }
module.exports = ReportController; module.exports = ReportController;
...@@ -28,4 +28,5 @@ module.exports = app => { ...@@ -28,4 +28,5 @@ module.exports = app => {
router.get('third', '/question/all', 'course.v5.report.getQuestionList');// 获取问题列表 router.get('third', '/question/all', 'course.v5.report.getQuestionList');// 获取问题列表
router.post('third', '/report', auth, 'course.v5.report.generateReport');// 生成报告 router.post('third', '/report', auth, 'course.v5.report.generateReport');// 生成报告
router.get('third', '/report/:report_id', auth, 'course.v5.report.getReportById');// 获取报告详情
}; };
...@@ -110,6 +110,39 @@ class ReportService extends Service { ...@@ -110,6 +110,39 @@ class ReportService extends Service {
return ret; return ret;
} }
async getReportById(reportId) {
const { ctx } = this;
const userReportInfo = await ctx.classModel.V5.CourseUserReport.findOne({ user_uuid: ctx.userUuid, id: reportId, status: 1, is_deleted: 0 });
if (ctx.isEmpty(userReportInfo)) {
ctx.failed('尚未生成报告');
}
let reportColumnDetailList = ctx.isEmpty(userReportInfo.report_column_detail_ids) ? [] : await ctx.classModel.V5.CourseV5ReportColumnDetail.findAll({ where: { id: { $in: eval(userReportInfo.report_column_detail_ids) }, status: 1, is_deleted: 0 }, attributes: [ 'id', 'report_column_id', 'content' ], raw: true });
const reportColumnList = await ctx.classModel.V5.CourseV5ReportColumn.findAll({ where: { id: { $in: R.pluck('report_column_id', reportColumnDetailList) } }, order: [[ 'sort', 'asc' ]], attributes: [ 'id', 'title' ], raw: true });
reportColumnDetailList = _.groupBy(reportColumnDetailList, 'report_column_id');
const report = [];
for (const v of reportColumnList) {
report.push({
id: v.id,
title: v.title,
content: ctx.isEmpty(reportColumnDetailList[v.id]) ? '' : reportColumnDetailList[v.id][0].content,
});
}
const tags = await this.getReportTags(userReportInfo);
const recommendClassList = await this.getRecommendClassListByReport(userReportInfo.answer);
const ret = {
tags,
report,
recommend_class_list: recommendClassList,
};
return ret;
}
// 获取标签 // 获取标签
async getReportTags(report) { async getReportTags(report) {
const { ctx } = this; const { ctx } = this;
......
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