Commit 0b686c64 authored by 任国军's avatar 任国军

fix user search

parent 11b7e488
Pipeline #16755 passed with stage
in 50 seconds
...@@ -7,7 +7,7 @@ module.exports = app => { ...@@ -7,7 +7,7 @@ module.exports = app => {
const { STRING, INTEGER, DATE, DECIMAL, TEXT, ENUM } = app.Sequelize; const { STRING, INTEGER, DATE, DECIMAL, TEXT, ENUM } = app.Sequelize;
const CourseArea = app.classModel.define('course_area'); const CourseArea = app.classModel.define('course_old_area');
const CourseInstitution = app.classModel.define('course_old_institution', { const CourseInstitution = app.classModel.define('course_old_institution', {
id: { id: {
......
...@@ -317,8 +317,8 @@ class InstitutionService extends Service { ...@@ -317,8 +317,8 @@ class InstitutionService extends Service {
const ret = []; const ret = [];
for (const i in institutions) { for (const i in institutions) {
const institution = institutions[i]; const institution = institutions[i];
if (!institution.course_areas || institution.course_areas.length === 0) continue; if (!institution.course_old_areas || institution.course_old_areas.length === 0) continue;
const course_areas = institution.course_areas; const course_areas = institution.course_old_areas;
for (const j in course_areas) { for (const j in course_areas) {
const course_area = course_areas[j]; const course_area = course_areas[j];
ret.push({ ret.push({
......
...@@ -18,7 +18,7 @@ class InstitutionSubService extends Service { ...@@ -18,7 +18,7 @@ class InstitutionSubService extends Service {
for (const v of AllCats) { for (const v of AllCats) {
if (v.parent_id === 0) { if (v.parent_id === 0) {
rootCats[v.id] = v.dataValues; rootCats[v.id] = v.dataValues;
rootCats[v.id].child = [{ id: 0, value: v.id, name: '全部', parent_id: 0, image: 'http://r.51gjj.com/webpublic/images/20191118/s6yRUsc5kclyu.png', active_image:'http://r.51gjj.com/webpublic/images/20191118/zYHkYp85vxk5m.png', color: '', tips: '', status: 'online', is_deleted: 0 }]; rootCats[v.id].child = [{ id: 0, value: v.id, name: '全部', parent_id: 0, image: 'http://r.51gjj.com/webpublic/images/20191118/s6yRUsc5kclyu.png', active_image: 'http://r.51gjj.com/webpublic/images/20191118/zYHkYp85vxk5m.png', color: '', tips: '', status: 'online', is_deleted: 0 }];
} }
} }
...@@ -439,11 +439,12 @@ class InstitutionSubService extends Service { ...@@ -439,11 +439,12 @@ class InstitutionSubService extends Service {
async getUserSearch() { async getUserSearch() {
const { ctx } = this; const { ctx } = this;
const userUuid = ctx.userUuid; const userUuid = ctx.userUuid;
const search = await ctx.classModel.V2.CourseUserSearch.findAll({ where: { status: 'online', user_uuid: userUuid } }); const search = await ctx.classModel.V2.CourseUserSearch.findAll({ where: { status: 'online', user_uuid: userUuid }, limit: 10, order: [[ 'id' ], [ 'desc' ]] });
const result = _.uniq(R.pluck('content', search));
const ret = { const ret = {
results: R.pluck('content', search), results: result,
count: search.length, count: result.length,
}; };
return ret; return ret;
...@@ -561,20 +562,20 @@ class InstitutionSubService extends Service { ...@@ -561,20 +562,20 @@ class InstitutionSubService extends Service {
const limit = Number(input.limit) || 10; const limit = Number(input.limit) || 10;
const offset = (page - 1) * limit; const offset = (page - 1) * limit;
const institutionId = Number(input.institution_id) || 0; const institutionId = Number(input.institution_id) || 0;
const teachers = await ctx.classModel.V2.CourseTeacher.findAndCountAll({where: {institution_id: institutionId, status: 'online', is_deleted: 0}, raw:true, offset, limit}); const teachers = await ctx.classModel.V2.CourseTeacher.findAndCountAll({ where: { institution_id: institutionId, status: 'online', is_deleted: 0 }, raw: true, offset, limit });
const ret = { const ret = {
results: teachers.rows, results: teachers.rows,
count: teachers.count, count: teachers.count,
} };
return ret; return ret;
} }
//教师详情 // 教师详情
async getTeacher(id) { async getTeacher(id) {
const {ctx} = this; const { ctx } = this;
const teacher = await ctx.classModel.V2.CourseTeacher.findOne({where: {id, status:'online', is_deleted: 0}, raw: true}); const teacher = await ctx.classModel.V2.CourseTeacher.findOne({ where: { id, status: 'online', is_deleted: 0 }, raw: true });
if (ctx.isEmpty(teacher)) { if (ctx.isEmpty(teacher)) {
ctx.failed('数据不存在'); ctx.failed('数据不存在');
} }
...@@ -587,7 +588,7 @@ class InstitutionSubService extends Service { ...@@ -587,7 +588,7 @@ class InstitutionSubService extends Service {
} }
//课程列表 // 课程列表
async getClasses(input) { async getClasses(input) {
const { ctx } = this; const { ctx } = this;
const page = Number(input.page) || 1; const page = Number(input.page) || 1;
...@@ -595,11 +596,11 @@ class InstitutionSubService extends Service { ...@@ -595,11 +596,11 @@ class InstitutionSubService extends Service {
const offset = (page - 1) * limit; const offset = (page - 1) * limit;
const institutionId = Number(input.institution_id) || 0; const institutionId = Number(input.institution_id) || 0;
const attributes = [ 'id', 'institution_id', 'name', 'type', 'price', 'status', 'is_deleted' ]; const attributes = [ 'id', 'institution_id', 'name', 'type', 'price', 'status', 'is_deleted' ];
const classes = await ctx.classModel.V2.CourseClass.findAndCountAll({where: {institution_id: institutionId, status: 'online', is_deleted: 0}, raw: true, offset, limit, attributes}); const classes = await ctx.classModel.V2.CourseClass.findAndCountAll({ where: { institution_id: institutionId, status: 'online', is_deleted: 0 }, raw: true, offset, limit, attributes });
const classIds = R.pluck('id', classes.rows); const classIds = R.pluck('id', classes.rows);
//课程图片 // 课程图片
const classImages = await ctx.classModel.V2.CourseImages.findAll({where: {type: 2, type_id: {$in:classIds}, status: 'online', is_deleted: 0}, raw:true}); const classImages = await ctx.classModel.V2.CourseImages.findAll({ where: { type: 2, type_id: { $in: classIds }, status: 'online', is_deleted: 0 }, raw: true });
for (const i in classes.rows) { for (const i in classes.rows) {
let images = []; let images = [];
for (const v of classImages) { for (const v of classImages) {
...@@ -607,45 +608,45 @@ class InstitutionSubService extends Service { ...@@ -607,45 +608,45 @@ class InstitutionSubService extends Service {
images.push(v); images.push(v);
} }
} }
images = _.orderBy(images, ['is_cover', 'sort'], ['desc', 'asc']); images = _.orderBy(images, [ 'is_cover', 'sort' ], [ 'desc', 'asc' ]);
classes.rows[i].image = images.length > 0 ? images[0] : {}; classes.rows[i].image = images.length > 0 ? images[0] : {};
} }
const ret = { const ret = {
results: classes.rows, results: classes.rows,
count: classes.count, count: classes.count,
} };
return ret; return ret;
} }
//课程详情 // 课程详情
async getClass(id) { async getClass(id) {
const {ctx} = this; const { ctx } = this;
const classInfo = await ctx.classModel.V2.CourseClass.findOne({where: {id, status: 'online', is_deleted: 0}, raw: true}); const classInfo = await ctx.classModel.V2.CourseClass.findOne({ where: { id, status: 'online', is_deleted: 0 }, raw: true });
if (ctx.isEmpty(classInfo)) { if (ctx.isEmpty(classInfo)) {
ctx.failed('数据不存在'); ctx.failed('数据不存在');
} }
//课程图片 // 课程图片
let images = await ctx.classModel.V2.CourseImages.findAll({where: {type: 2, type_id: id, status: 'online', is_deleted: 0}, raw: true}); let images = await ctx.classModel.V2.CourseImages.findAll({ where: { type: 2, type_id: id, status: 'online', is_deleted: 0 }, raw: true });
//去重 // 去重
images = _.uniqBy(images, function(v){ return (v.is_image === 1 ? v.image_url : v.video_url)}); images = _.uniqBy(images, function(v) { return (v.is_image === 1 ? v.image_url : v.video_url) ;});
images = _.orderBy(images, ['sort'], ['asc']); images = _.orderBy(images, [ 'sort' ], [ 'asc' ]);
classInfo.images = images; classInfo.images = images;
return classInfo; return classInfo;
} }
//用户收藏机构列表 // 用户收藏机构列表
async getUserCollectedInstitutions(input) { async getUserCollectedInstitutions(input) {
const { ctx } = this; const { ctx } = this;
const userUuid = ctx.userUuid; const userUuid = ctx.userUuid;
const userCollection = await ctx.classModel.V2.CourseUserCollection.findAll({where: {user_uuid: userUuid, is_deleted: 0}, raw: true}); const userCollection = await ctx.classModel.V2.CourseUserCollection.findAll({ where: { user_uuid: userUuid, is_deleted: 0 }, raw: true });
const institutionIds = R.pluck('institution_id', userCollection); const institutionIds = R.pluck('institution_id', userCollection);
const institutionList = await ctx.classModel.V2.CourseInstitution.findAll({where: {id: {$in: institutionIds}, status: 'online', is_deleted:0}, raw: true}); const institutionList = await ctx.classModel.V2.CourseInstitution.findAll({ where: { id: { $in: institutionIds }, status: 'online', is_deleted: 0 }, raw: true });
const ret = await this.formatInstitutionList(institutionList, input); const ret = await this.formatInstitutionList(institutionList, input);
return ret; return ret;
......
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