Commit b58bc5b8 authored by Hsinli's avatar Hsinli

Merge branch 'master' of t-git.51gjj.com:fangbin/51business

parents ccc269e1 3cb2c210
Pipeline #14171 passed with stage
in 5 seconds
...@@ -105,7 +105,7 @@ class UserController extends Controller { ...@@ -105,7 +105,7 @@ class UserController extends Controller {
} }
/** /**
* 收藏机构列表 * 收藏机构
*/ */
async collectInstitution() { async collectInstitution() {
...@@ -119,6 +119,21 @@ class UserController extends Controller { ...@@ -119,6 +119,21 @@ class UserController extends Controller {
ctx.success({ result }); ctx.success({ result });
} }
/**
* 取消收藏机构
*/
async delCollectInstitution() {
const { ctx } = this;
const institution_id = ctx.request.body.institution_id;
if (!institution_id) {
ctx.failed('error institution_id');
}
const result = await ctx.service.course.user.delCollectInstitution(institution_id);
ctx.success({ result });
}
......
...@@ -3,19 +3,19 @@ ...@@ -3,19 +3,19 @@
module.exports = app => { module.exports = app => {
const router = app.router.namespace(app.config.projectRootPath + '/course'); const router = app.router.namespace(app.config.projectRootPath + '/course');
const loginAuth = app.middleware.loginAuth({ type: 'new' });//登录中间件 const loginAuth = app.middleware.loginAuth({ type: 'new' });//登录中间件
const miniAuth = app.middleware.miniAuth();//登录中间件 const miniAuth = app.middleware.miniAuth();//因为不跟现有的用户中心系统,所以使用单独的登录中间件
router.get('third', '/options', 'course.option.getOptions');//筛选项 router.get('third', '/options', 'course.option.getOptions');//筛选项
router.post('third', '/address', 'course.location.getAddress');//根据经纬度或ip获取地理位置信息 router.post('third', '/address', miniAuth, 'course.location.getAddress');//根据经纬度或ip获取地理位置信息
router.post('third', '/institutions', 'course.institution.institutionList');//机构列表 router.post('third', '/institutions', miniAuth, 'course.institution.institutionList');//机构列表
router.get('third', '/institutions', 'course.institution.institutionList');//机构列表 router.get('third', '/institutions', miniAuth, 'course.institution.institutionList');//机构列表
router.get('third', '/institution/:institution_id/:area_id', 'course.institution.institutionInfo');//机构详情 router.get('third', '/institution/:institution_id/:area_id', 'course.institution.institutionInfo');//机构详情
router.post('third', '/classes', 'course.institution.classList');//课程列表 router.post('third', '/classes', miniAuth, 'course.institution.classList');//课程列表
router.get('third', '/classes', 'course.institution.classList');//课程列表 router.get('third', '/classes', miniAuth, 'course.institution.classList');//课程列表
router.get('third', '/class/:class_id', 'course.institution.classInfo');//课程详情 router.get('third', '/class/:class_id', miniAuth, 'course.institution.classInfo');//课程详情
router.post('third', '/teachers', 'course.institution.teacherList');//老师列表 router.post('third', '/teachers', miniAuth, 'course.institution.teacherList');//老师列表
router.get('third', '/teachers', 'course.institution.teacherList');//老师详情 router.get('third', '/teachers', miniAuth, 'course.institution.teacherList');//老师详情
router.get('third', '/teacher/:teacher_id', 'course.institution.teacherInfo');//老师详情 router.get('third', '/teacher/:teacher_id', miniAuth, 'course.institution.teacherInfo');//老师详情
router.post('third', '/user/auth', 'course.user.auth');//微信授权登录 router.post('third', '/user/auth', 'course.user.auth');//微信授权登录
router.post('third', '/user/register_user', miniAuth, 'course.user.registerUserInfo');//授权后注册用户 router.post('third', '/user/register_user', miniAuth, 'course.user.registerUserInfo');//授权后注册用户
...@@ -26,5 +26,6 @@ module.exports = app => { ...@@ -26,5 +26,6 @@ module.exports = app => {
router.get('third', '/user/collection/institution', miniAuth, 'course.user.getCollectInstitutions');//收藏的机构列表 router.get('third', '/user/collection/institution', miniAuth, 'course.user.getCollectInstitutions');//收藏的机构列表
router.post('third', '/user/collection/institution', miniAuth, 'course.user.collectInstitution');//收藏机构 router.post('third', '/user/collection/institution', miniAuth, 'course.user.collectInstitution');//收藏机构
router.delete('third', '/user/collection/institution', miniAuth, 'course.user.delCollectInstitution');//取消收藏机构
}; };
...@@ -67,9 +67,22 @@ class InstitutionService extends Service { ...@@ -67,9 +67,22 @@ class InstitutionService extends Service {
const institution = await ctx.classModel.CourseInstitution.one({ where: { id: institution_id } }); const institution = await ctx.classModel.CourseInstitution.one({ where: { id: institution_id } });
const teachers = await this.getTeachers({ institution_id, limit: 6 }); const teachers = await this.getTeachers({ institution_id, limit: 6 });
const classes = await this.getClasses({ institution_id, limit: 4 }); const classes = await this.getClasses({ institution_id, limit: 4 });
const areas_ret = await this.getInstitutionAreas({ institution_id, limit: 1000 });//校区
const institution_images = await ctx.classModel.CourseImages.all({ where: { type: 1, type_id: institution_id } });//图片
//处理详情页信息
const current_area = await ctx.classModel.CourseArea.one({ id: area_id });
let institution_detail = await this.formatInstitutions([institution]);
institution_detail = institution_detail[0];
institution_detail.address = current_area.address;
institution_detail.phone = current_area.phone;
institution_detail.description = institution.description;
institution_detail.point = institution.point;
institution_detail.honor = institution.honor;
institution_detail.is_collect = 0;
//计算校区距离 //计算校区距离
const areas_ret = await this.getInstitutionAreas({ institution_id, limit: 1000 });//校区
const area_rows = areas_ret.rows; const area_rows = areas_ret.rows;
const area_lbs = await this.computeDistance(area_rows, { lat, lng });//计算距离信息 const area_lbs = await this.computeDistance(area_rows, { lat, lng });//计算距离信息
const areas = []; const areas = [];
...@@ -88,6 +101,9 @@ class InstitutionService extends Service { ...@@ -88,6 +101,9 @@ class InstitutionService extends Service {
if (distance === 0 && duration === 0) { if (distance === 0 && duration === 0) {
travel_tips = '暂无法计算出距离'; travel_tips = '暂无法计算出距离';
} }
if (area.id == area_id && area.institution_id == institution_id) {
institution_detail.travel_tips = travel_tips;
}
areas.push({ areas.push({
id: area.id, id: area.id,
institution_id: area.institution_id, institution_id: area.institution_id,
...@@ -100,19 +116,6 @@ class InstitutionService extends Service { ...@@ -100,19 +116,6 @@ class InstitutionService extends Service {
}); });
} }
const institution_images = await ctx.classModel.CourseImages.all({ where: { type: 1, type_id: institution_id } });//图片
//处理详情页信息
const current_area = await ctx.classModel.CourseArea.one({ id: area_id });
let institution_detail = await this.formatInstitutions([institution]);
institution_detail = institution_detail[0];
institution_detail.address = current_area.address;
institution_detail.phone = current_area.phone;
institution_detail.description = institution.description;
institution_detail.point = institution.point;
institution_detail.honor = institution.honor;
institution_detail.is_collect = 0;
//是否收藏过 //是否收藏过
const collection_ret = await ctx.classModel.CourseUserCollection.one({ where: { user_uuid, institution_id, is_deleted: 0 } }); const collection_ret = await ctx.classModel.CourseUserCollection.one({ where: { user_uuid, institution_id, is_deleted: 0 } });
if (collection_ret && collection_ret.id) { if (collection_ret && collection_ret.id) {
......
...@@ -15,7 +15,7 @@ class UserService extends Service { ...@@ -15,7 +15,7 @@ class UserService extends Service {
async getBabyInfo() { async getBabyInfo() {
const { ctx } = this; const { ctx } = this;
const user_uuid = 1; const user_uuid = ctx.userUuid;
const where = { user_uuid, is_deleted: 0 }; const where = { user_uuid, is_deleted: 0 };
const babys_info = await ctx.classModel.CourseUserBaby.all({ where, order: [['id', 'desc']] }); const babys_info = await ctx.classModel.CourseUserBaby.all({ where, order: [['id', 'desc']] });
let babys = []; let babys = [];
...@@ -43,7 +43,7 @@ class UserService extends Service { ...@@ -43,7 +43,7 @@ class UserService extends Service {
async saveBabyInfo(input) { async saveBabyInfo(input) {
const { ctx } = this; const { ctx } = this;
const user_uuid = 1; const user_uuid = ctx.userUuid;
const { id, gender, birth, address, lat, lng } = input; const { id, gender, birth, address, lat, lng } = input;
const where = { id, user_uuid, is_deleted: 0 }; const where = { id, user_uuid, is_deleted: 0 };
if (id) { if (id) {
...@@ -58,7 +58,7 @@ class UserService extends Service { ...@@ -58,7 +58,7 @@ class UserService extends Service {
async delBabyInfo() { async delBabyInfo() {
const { ctx } = this; const { ctx } = this;
const user_uuid = 1; const user_uuid = ctx.userUuid;
await ctx.classModel.CourseUserBaby.edit({ params: { is_deleted: 1, }, where: { user_uuid } }); await ctx.classModel.CourseUserBaby.edit({ params: { is_deleted: 1, }, where: { user_uuid } });
return true; return true;
...@@ -67,8 +67,8 @@ class UserService extends Service { ...@@ -67,8 +67,8 @@ class UserService extends Service {
async collectInstitution(institution_id) { async collectInstitution(institution_id) {
const { ctx } = this; const { ctx } = this;
const user_uuid = 1; const user_uuid = ctx.userUuid;
const where = { user_uuid, is_deleted: 0 }; const where = { user_uuid, is_deleted: 0, institution_id };
let ret = await ctx.classModel.CourseUserCollection.one({ where, }); let ret = await ctx.classModel.CourseUserCollection.one({ where, });
if (ret && ret.id) { if (ret && ret.id) {
return ret.id; return ret.id;
...@@ -78,10 +78,24 @@ class UserService extends Service { ...@@ -78,10 +78,24 @@ class UserService extends Service {
return ret; return ret;
} }
async delCollectInstitution(institution_id) {
const { ctx } = this;
const user_uuid = ctx.userUuid;
const where = { user_uuid, is_deleted: 0, institution_id };
let ret = await ctx.classModel.CourseUserCollection.one({ where, });
if (!ret || !ret.id) {
return true;
}
ret = await await ctx.classModel.CourseUserCollection.edit({ params: { is_deleted: 1 }, where, });
return true;
}
async getCollectInstitutions(input) { async getCollectInstitutions(input) {
const { ctx } = this; const { ctx } = this;
const user_uuid = 1; const user_uuid = ctx.userUuid;
const { page, limit } = input; const { page, limit } = input;
const where = { user_uuid, is_deleted: 0 }; const where = { user_uuid, is_deleted: 0 };
const collect_institution_rows = await ctx.classModel.CourseUserCollection.list({ page, limit, where }); const collect_institution_rows = await ctx.classModel.CourseUserCollection.list({ page, limit, where });
...@@ -93,7 +107,7 @@ class UserService extends Service { ...@@ -93,7 +107,7 @@ class UserService extends Service {
const attributes = ['id', 'name', 'type', 'establishment_time', 'class_type', 'teacher_count', 'teacher_experience', 'corner', 'min_age', 'max_age', 'price', 'characteristic',]; const attributes = ['id', 'name', 'type', 'establishment_time', 'class_type', 'teacher_count', 'teacher_experience', 'corner', 'min_age', 'max_age', 'price', 'characteristic',];
const institutions = await ctx.classModel.CourseInstitution.findAll({ attributes, include, where: { id: { $in: institution_ids }, status: 1, is_deleted: 0 } }); const institutions = await ctx.classModel.CourseInstitution.findAll({ attributes, include, where: { id: { $in: institution_ids }, status: 1, is_deleted: 0 } });
const institution_area_list = await ctx.service.course.institution.getInstitutionAreaList(institutions); const institution_area_list = await ctx.service.course.institution.getInstitutionAreaList(institutions);
const area_lbs = await ctx.service.course.institution.computeDistance(institution_area_list); const area_lbs = await ctx.service.course.institution.computeDistance(institution_area_list);//计算距离
const institution_areas = await ctx.service.course.institution.findShortestDistanceAreas(institution_area_list, area_lbs); const institution_areas = await ctx.service.course.institution.findShortestDistanceAreas(institution_area_list, area_lbs);
const ret = await ctx.service.course.institution.formatInstitutions(institution_areas); const ret = await ctx.service.course.institution.formatInstitutions(institution_areas);
......
...@@ -26,7 +26,7 @@ class OrderService extends Service { ...@@ -26,7 +26,7 @@ class OrderService extends Service {
const type = TypeConfig[order_type]; const type = TypeConfig[order_type];
// const where = { user_id }; // const where = { user_id };
const order_records = await ctx.prometheusModel.CreditOrder.all({ where: { user_id, type, valid: 1 } }); const order_records = await ctx.prometheusModel.CreditOrder.all({ where: { user_id, type, valid: 1 }, order: [['order_time', 'desc']] });
const worth_h = []; const worth_h = [];
const worth_l = []; const worth_l = [];
...@@ -42,12 +42,12 @@ class OrderService extends Service { ...@@ -42,12 +42,12 @@ class OrderService extends Service {
order_no: order.order_no, order_no: order.order_no,
report_id: order.report_id, report_id: order.report_id,
type: order_type, type: order_type,
created_time: moment(order.created_at).format('YYYY-MM-DD HH:mm'), created_time: moment(order.order_time).format('YYYY-MM-DD HH:mm'),
phone: order.phone.replace(order.phone.substring(3, 7), "****"), phone: order.phone.replace(order.phone.substring(3, 7), "****"),
state: order.state, state: order.state,
state_text: order.state === '已支付' ? '' : order.state, state_text: order.state === '已支付' ? '' : order.state,
}; };
if (is_expire) { if (!is_expire) {
worth_h.push(item); worth_h.push(item);
} else { } else {
worth_l.push(item); worth_l.push(item);
...@@ -133,7 +133,7 @@ class OrderService extends Service { ...@@ -133,7 +133,7 @@ class OrderService extends Service {
} }
//检查订单报告是否 还在规定的时间内 是否具有高价值 0:高价值 1:低价值-生成时间过长- //检查订单报告是否 还在规定的时间内 是否具有高价值 0:高价值 ; 1:低价值-生成时间过长-
async checkOrderExpire(order) { async checkOrderExpire(order) {
const { ctx } = this; const { ctx } = this;
...@@ -145,7 +145,8 @@ class OrderService extends Service { ...@@ -145,7 +145,8 @@ class OrderService extends Service {
const worth_time = type === 1 ? 15 : 30; const worth_time = type === 1 ? 15 : 30;
const expire_time = moment(state_time).valueOf() + worth_time * 86400 * 1000; const expire_time = moment(state_time).valueOf() + worth_time * 86400 * 1000;
const now_time = moment().valueOf(); const now_time = moment().valueOf();
if (pay_status === 1 && state === '已支付' && expire_time > now_time) {//还在规定的有效期内 高价值报告 const state_array = ['已支付'];
if (!state_array.includes(state) || expire_time > now_time) {//还在规定的有效期内 高价值报告
return 0; return 0;
} }
...@@ -298,9 +299,9 @@ class OrderService extends Service { ...@@ -298,9 +299,9 @@ class OrderService extends Service {
const expire_time = moment(order.order_time).valueOf() + 24 * 3600 * 1000; const expire_time = moment(order.order_time).valueOf() + 24 * 3600 * 1000;
const now_time = moment().valueOf(); const now_time = moment().valueOf();
if (expire_time < now_time) { if (expire_time < now_time) {
ctx.failed('订单已失效'); ctx.failed('order_failure');//订单失效,前端会取这个判断跳转
} }
ctx.logger.info('11111111111111111111111111111111111');
const price = ((order.price - order.preferential_price) * 100).toFixed(); const price = ((order.price - order.preferential_price) * 100).toFixed();
if (price <= 0) { if (price <= 0) {
......
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