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 {
}
/**
* 收藏机构列表
* 收藏机构
*/
async collectInstitution() {
......@@ -119,6 +119,21 @@ class UserController extends Controller {
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 @@
module.exports = app => {
const router = app.router.namespace(app.config.projectRootPath + '/course');
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.post('third', '/address', 'course.location.getAddress');//根据经纬度或ip获取地理位置信息
router.post('third', '/institutions', 'course.institution.institutionList');//机构列表
router.get('third', '/institutions', 'course.institution.institutionList');//机构列表
router.post('third', '/address', miniAuth, 'course.location.getAddress');//根据经纬度或ip获取地理位置信息
router.post('third', '/institutions', miniAuth, 'course.institution.institutionList');//机构列表
router.get('third', '/institutions', miniAuth, 'course.institution.institutionList');//机构列表
router.get('third', '/institution/:institution_id/:area_id', 'course.institution.institutionInfo');//机构详情
router.post('third', '/classes', 'course.institution.classList');//课程列表
router.get('third', '/classes', 'course.institution.classList');//课程列表
router.get('third', '/class/:class_id', 'course.institution.classInfo');//课程详情
router.post('third', '/teachers', 'course.institution.teacherList');//老师列表
router.get('third', '/teachers', 'course.institution.teacherList');//老师详情
router.get('third', '/teacher/:teacher_id', 'course.institution.teacherInfo');//老师详情
router.post('third', '/classes', miniAuth, 'course.institution.classList');//课程列表
router.get('third', '/classes', miniAuth, 'course.institution.classList');//课程列表
router.get('third', '/class/:class_id', miniAuth, 'course.institution.classInfo');//课程详情
router.post('third', '/teachers', miniAuth, 'course.institution.teacherList');//老师列表
router.get('third', '/teachers', miniAuth, 'course.institution.teacherList');//老师详情
router.get('third', '/teacher/:teacher_id', miniAuth, 'course.institution.teacherInfo');//老师详情
router.post('third', '/user/auth', 'course.user.auth');//微信授权登录
router.post('third', '/user/register_user', miniAuth, 'course.user.registerUserInfo');//授权后注册用户
......@@ -26,5 +26,6 @@ module.exports = app => {
router.get('third', '/user/collection/institution', miniAuth, 'course.user.getCollectInstitutions');//收藏的机构列表
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 {
const institution = await ctx.classModel.CourseInstitution.one({ where: { id: institution_id } });
const teachers = await this.getTeachers({ institution_id, limit: 6 });
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_lbs = await this.computeDistance(area_rows, { lat, lng });//计算距离信息
const areas = [];
......@@ -88,6 +101,9 @@ class InstitutionService extends Service {
if (distance === 0 && duration === 0) {
travel_tips = '暂无法计算出距离';
}
if (area.id == area_id && area.institution_id == institution_id) {
institution_detail.travel_tips = travel_tips;
}
areas.push({
id: area.id,
institution_id: area.institution_id,
......@@ -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 } });
if (collection_ret && collection_ret.id) {
......
......@@ -15,7 +15,7 @@ class UserService extends Service {
async getBabyInfo() {
const { ctx } = this;
const user_uuid = 1;
const user_uuid = ctx.userUuid;
const where = { user_uuid, is_deleted: 0 };
const babys_info = await ctx.classModel.CourseUserBaby.all({ where, order: [['id', 'desc']] });
let babys = [];
......@@ -43,7 +43,7 @@ class UserService extends Service {
async saveBabyInfo(input) {
const { ctx } = this;
const user_uuid = 1;
const user_uuid = ctx.userUuid;
const { id, gender, birth, address, lat, lng } = input;
const where = { id, user_uuid, is_deleted: 0 };
if (id) {
......@@ -58,7 +58,7 @@ class UserService extends Service {
async delBabyInfo() {
const { ctx } = this;
const user_uuid = 1;
const user_uuid = ctx.userUuid;
await ctx.classModel.CourseUserBaby.edit({ params: { is_deleted: 1, }, where: { user_uuid } });
return true;
......@@ -67,8 +67,8 @@ class UserService extends Service {
async collectInstitution(institution_id) {
const { ctx } = this;
const user_uuid = 1;
const where = { user_uuid, is_deleted: 0 };
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 ret.id;
......@@ -78,10 +78,24 @@ class UserService extends Service {
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) {
const { ctx } = this;
const user_uuid = 1;
const user_uuid = ctx.userUuid;
const { page, limit } = input;
const where = { user_uuid, is_deleted: 0 };
const collect_institution_rows = await ctx.classModel.CourseUserCollection.list({ page, limit, where });
......@@ -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 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 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 ret = await ctx.service.course.institution.formatInstitutions(institution_areas);
......@@ -113,7 +127,7 @@ class UserService extends Service {
if (result.status !== 200) {
ctx.failed('授权失败');
}
const ret = result.data;
if (!ret.session_key && !ret.openid && ret.errcode !== 0) {
ctx.failed(ret.errmsg);
......
......@@ -26,7 +26,7 @@ class OrderService extends Service {
const type = TypeConfig[order_type];
// 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_l = [];
......@@ -42,12 +42,12 @@ class OrderService extends Service {
order_no: order.order_no,
report_id: order.report_id,
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), "****"),
state: order.state,
state_text: order.state === '已支付' ? '' : order.state,
};
if (is_expire) {
if (!is_expire) {
worth_h.push(item);
} else {
worth_l.push(item);
......@@ -133,7 +133,7 @@ class OrderService extends Service {
}
//检查订单报告是否 还在规定的时间内 是否具有高价值 0:高价值 1:低价值-生成时间过长-
//检查订单报告是否 还在规定的时间内 是否具有高价值 0:高价值 ; 1:低价值-生成时间过长-
async checkOrderExpire(order) {
const { ctx } = this;
......@@ -145,7 +145,8 @@ class OrderService extends Service {
const worth_time = type === 1 ? 15 : 30;
const expire_time = moment(state_time).valueOf() + worth_time * 86400 * 1000;
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;
}
......@@ -298,9 +299,9 @@ class OrderService extends Service {
const expire_time = moment(order.order_time).valueOf() + 24 * 3600 * 1000;
const now_time = moment().valueOf();
if (expire_time < now_time) {
ctx.failed('订单已失效');
ctx.failed('order_failure');//订单失效,前端会取这个判断跳转
}
ctx.logger.info('11111111111111111111111111111111111');
const price = ((order.price - order.preferential_price) * 100).toFixed();
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