Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
5
51business
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
方斌
51business
Commits
c9ca81d5
Commit
c9ca81d5
authored
Oct 10, 2019
by
任国军
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix class image
parent
3de7be5e
Pipeline
#14600
passed with stage
in 6 seconds
Changes
2
Pipelines
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
66 additions
and
71 deletions
+66
-71
institution.js
app/service/course/institution.js
+65
-70
option.js
app/service/course/option.js
+1
-1
No files found.
app/service/course/institution.js
View file @
c9ca81d5
...
@@ -8,20 +8,20 @@ const moment = require('moment');
...
@@ -8,20 +8,20 @@ const moment = require('moment');
class
InstitutionService
extends
Service
{
class
InstitutionService
extends
Service
{
//
机构列表页
//
机构列表页
async
getInstitutions
(
input
)
{
async
getInstitutions
(
input
)
{
const
{
ctx
}
=
this
;
const
{
ctx
}
=
this
;
const
user_uuid
=
ctx
.
userUuid
;
const
user_uuid
=
ctx
.
userUuid
;
const
{
cats
,
ages
,
lat
,
lng
,
address
}
=
input
;
const
{
cats
,
ages
,
lat
,
lng
,
address
}
=
input
;
const
where_institutions
=
input
.
institutions
;
const
where_institutions
=
input
.
institutions
;
//
保存定位记录
//
保存定位记录
if
(
address
&&
lat
&&
lng
)
{
if
(
address
&&
lat
&&
lng
)
{
ctx
.
classModel
.
CourseLogUserGps
.
add
({
user_uuid
,
address
,
lat
,
lng
});
ctx
.
classModel
.
CourseLogUserGps
.
add
({
user_uuid
,
address
,
lat
,
lng
});
}
}
//
处理条件过滤条件
//
处理条件过滤条件
le
t
where
=
{
status
:
1
,
is_deleted
:
0
};
cons
t
where
=
{
status
:
1
,
is_deleted
:
0
};
if
(
Number
(
cats
))
{
if
(
Number
(
cats
))
{
const
cat_ret
=
await
ctx
.
classModel
.
CourseCat
.
one
({
where
:
{
id
:
cats
}
});
const
cat_ret
=
await
ctx
.
classModel
.
CourseCat
.
one
({
where
:
{
id
:
cats
}
});
const
cat_id
=
cat_ret
.
id
;
const
cat_id
=
cat_ret
.
id
;
...
@@ -30,7 +30,7 @@ class InstitutionService extends Service {
...
@@ -30,7 +30,7 @@ class InstitutionService extends Service {
const
next_next_level
=
cat_level
+
2
;
const
next_next_level
=
cat_level
+
2
;
const
next_cat
=
await
ctx
.
classModel
.
CourseCat
.
all
({
where
:
{
level
:
next_level
,
parent_id
:
cat_id
}
});
const
next_cat
=
await
ctx
.
classModel
.
CourseCat
.
all
({
where
:
{
level
:
next_level
,
parent_id
:
cat_id
}
});
const
next_next_cat
=
await
ctx
.
classModel
.
CourseCat
.
all
({
where
:
{
level
:
next_next_level
,
first_id
:
cat_id
}
});
const
next_next_cat
=
await
ctx
.
classModel
.
CourseCat
.
all
({
where
:
{
level
:
next_next_level
,
first_id
:
cat_id
}
});
let
cat_ids
=
[
cat_id
,
];
let
cat_ids
=
[
cat_id
];
cat_ids
=
cat_ids
.
concat
(
R
.
pluck
(
'id'
,
next_cat
)).
concat
(
R
.
pluck
(
'id'
,
next_next_cat
));
cat_ids
=
cat_ids
.
concat
(
R
.
pluck
(
'id'
,
next_cat
)).
concat
(
R
.
pluck
(
'id'
,
next_next_cat
));
const
institutions
=
await
ctx
.
classModel
.
CourseInstitutionToCat
.
all
({
where
:
{
cat_id
:
{
$in
:
cat_ids
}
}
});
const
institutions
=
await
ctx
.
classModel
.
CourseInstitutionToCat
.
all
({
where
:
{
cat_id
:
{
$in
:
cat_ids
}
}
});
where
.
id
=
{
$in
:
R
.
pluck
(
'institution_id'
,
institutions
)
};
where
.
id
=
{
$in
:
R
.
pluck
(
'institution_id'
,
institutions
)
};
...
@@ -43,15 +43,15 @@ class InstitutionService extends Service {
...
@@ -43,15 +43,15 @@ class InstitutionService extends Service {
where
.
corner
=
{
$ne
:
''
};
where
.
corner
=
{
$ne
:
''
};
}
}
//
关联校区表查找信息
//
关联校区表查找信息
const
include
=
[{
model
:
ctx
.
classModel
.
CourseArea
,
where
:
{
status
:
1
,
is_deleted
:
0
},
attributes
:
[
'id'
,
'institution_id'
,
'name'
,
'address'
,
'lat'
,
'lng'
]
}];
const
include
=
[{
model
:
ctx
.
classModel
.
CourseArea
,
where
:
{
status
:
1
,
is_deleted
:
0
},
attributes
:
[
'id'
,
'institution_id'
,
'name'
,
'address'
,
'lat'
,
'lng'
]
}];
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
});
const
institutions
=
await
ctx
.
classModel
.
CourseInstitution
.
findAll
({
attributes
,
include
,
where
});
const
institution_area_list
=
await
this
.
getInstitutionAreaList
(
institutions
);
//
将校区表处理成数组
const
institution_area_list
=
await
this
.
getInstitutionAreaList
(
institutions
);
//
将校区表处理成数组
// const from = { lat, lng };
// const from = { lat, lng };
const
area_lbs
=
await
this
.
computeDistance
(
institution_area_list
,
{
lat
,
lng
});
//
计算距离信息
const
area_lbs
=
await
this
.
computeDistance
(
institution_area_list
,
{
lat
,
lng
});
//
计算距离信息
const
institution_areas
=
await
this
.
findShortestDistanceAreas
(
institution_area_list
,
area_lbs
);
//
查找最短距离并输出
const
institution_areas
=
await
this
.
findShortestDistanceAreas
(
institution_area_list
,
area_lbs
);
//
查找最短距离并输出
const
ret
=
await
this
.
formatInstitutions
(
institution_areas
);
const
ret
=
await
this
.
formatInstitutions
(
institution_areas
);
return
ret
;
return
ret
;
...
@@ -71,11 +71,11 @@ class InstitutionService extends Service {
...
@@ -71,11 +71,11 @@ class InstitutionService extends Service {
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
institution_images
=
await
ctx
.
classModel
.
CourseImages
.
all
({
where
:
{
type
:
1
,
type_id
:
institution_id
}
});
//
图片
const
institution_images
=
await
ctx
.
classModel
.
CourseImages
.
all
({
where
:
{
type
:
1
,
type_id
:
institution_id
}
});
//
图片
//
处理详情页信息
//
处理详情页信息
const
current_area
=
await
ctx
.
classModel
.
CourseArea
.
one
({
where
:{
id
:
area_id
}
});
const
current_area
=
await
ctx
.
classModel
.
CourseArea
.
one
({
where
:
{
id
:
area_id
}
});
let
institution_detail
=
await
this
.
formatInstitutions
([
institution
]);
let
institution_detail
=
await
this
.
formatInstitutions
([
institution
]);
institution_detail
=
institution_detail
[
0
];
institution_detail
=
institution_detail
[
0
];
institution_detail
.
address
=
current_area
.
address
;
institution_detail
.
address
=
current_area
.
address
;
institution_detail
.
phone
=
current_area
.
phone
;
institution_detail
.
phone
=
current_area
.
phone
;
...
@@ -84,13 +84,13 @@ class InstitutionService extends Service {
...
@@ -84,13 +84,13 @@ class InstitutionService extends Service {
institution_detail
.
honor
=
institution
.
honor
;
institution_detail
.
honor
=
institution
.
honor
;
institution_detail
.
is_collect
=
0
;
institution_detail
.
is_collect
=
0
;
//
计算校区距离
//
计算校区距离
const
areas_ret
=
await
this
.
getInstitutionAreas
({
institution_id
,
limit
:
1000
});
//
校区
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
=
(
lat
>
0
||
lng
>
0
)
?
await
this
.
computeDistance
(
area_rows
,
{
lat
,
lng
})
:
[];
//
计算距离信息
const
area_lbs
=
(
lat
>
0
||
lng
>
0
)
?
await
this
.
computeDistance
(
area_rows
,
{
lat
,
lng
})
:
[];
//
计算距离信息
let
areas
=
[];
let
areas
=
[];
for
(
le
t
i
in
area_rows
)
{
for
(
cons
t
i
in
area_rows
)
{
const
area
=
area_rows
[
i
];
const
area
=
area_rows
[
i
];
const
lbs
=
i
<
area_lbs
.
length
?
area_lbs
[
i
]
:
{
distance
:
0
,
duration
:
0
,
travel_method
:
''
};
const
lbs
=
i
<
area_lbs
.
length
?
area_lbs
[
i
]
:
{
distance
:
0
,
duration
:
0
,
travel_method
:
''
};
...
@@ -122,19 +122,19 @@ class InstitutionService extends Service {
...
@@ -122,19 +122,19 @@ class InstitutionService extends Service {
distance
:
Number
(
distance
)
===
0
?
999999999.0
:
parseFloat
(
distance
),
distance
:
Number
(
distance
)
===
0
?
999999999.0
:
parseFloat
(
distance
),
});
});
}
}
areas
=
_
.
orderBy
(
areas
,
[
'distance'
],
[
'asc'
]);
areas
=
_
.
orderBy
(
areas
,
[
'distance'
],
[
'asc'
]);
//
是否收藏过
//
是否收藏过
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
)
{
institution_detail
.
is_collect
=
1
;
institution_detail
.
is_collect
=
1
;
}
}
//
处理图片
//
处理图片
const
photo_album
=
[];
const
photo_album
=
[];
le
t
photo_check
=
[];
// 去重
cons
t
photo_check
=
[];
// 去重
for
(
le
t
i
in
institution_images
)
{
for
(
cons
t
i
in
institution_images
)
{
const
institution_image
=
institution_images
[
i
];
const
institution_image
=
institution_images
[
i
];
if
(
institution_image
.
is_video
>
0
)
{
if
(
institution_image
.
is_video
>
0
)
{
if
(
photo_check
.
includes
(
institution_image
.
video_url
))
{
if
(
photo_check
.
includes
(
institution_image
.
video_url
))
{
...
@@ -157,14 +157,14 @@ class InstitutionService extends Service {
...
@@ -157,14 +157,14 @@ class InstitutionService extends Service {
}
}
institution_detail
.
photo_album
=
photo_album
;
institution_detail
.
photo_album
=
photo_album
;
return
{
institution_detail
,
teachers
:
teachers
.
rows
,
classes
:
classes
.
rows
,
areas
:
areas
};
return
{
institution_detail
,
teachers
:
teachers
.
rows
,
classes
:
classes
.
rows
,
areas
};
}
}
async
getTeacher
(
teacher_id
)
{
async
getTeacher
(
teacher_id
)
{
const
{
ctx
}
=
this
;
const
{
ctx
}
=
this
;
const
where
=
{
id
:
teacher_id
};
const
where
=
{
id
:
teacher_id
};
le
t
teacher
=
await
ctx
.
classModel
.
CourseTeacher
.
one
({
where
});
cons
t
teacher
=
await
ctx
.
classModel
.
CourseTeacher
.
one
({
where
});
teacher
.
dataValues
.
point_tags
=
teacher
.
point
?
teacher
.
point
.
split
(
','
)
:
[];
teacher
.
dataValues
.
point_tags
=
teacher
.
point
?
teacher
.
point
.
split
(
','
)
:
[];
teacher
.
dataValues
.
work_experience_tags
=
teacher
.
work_experience
?
teacher
.
work_experience
.
split
(
';'
)
:
[];
teacher
.
dataValues
.
work_experience_tags
=
teacher
.
work_experience
?
teacher
.
work_experience
.
split
(
';'
)
:
[];
...
@@ -178,7 +178,7 @@ class InstitutionService extends Service {
...
@@ -178,7 +178,7 @@ class InstitutionService extends Service {
const
{
ctx
}
=
this
;
const
{
ctx
}
=
this
;
const
where
=
{
id
:
class_id
};
const
where
=
{
id
:
class_id
};
le
t
classs
=
await
ctx
.
classModel
.
CourseClass
.
one
({
where
});
cons
t
classs
=
await
ctx
.
classModel
.
CourseClass
.
one
({
where
});
classs
.
dataValues
.
age_text
=
Number
(
classs
.
max_age
)
>
0
?
`
${
classs
.
min_age
}
-
${
classs
.
max_age
}
岁`
:
''
;
classs
.
dataValues
.
age_text
=
Number
(
classs
.
max_age
)
>
0
?
`
${
classs
.
min_age
}
-
${
classs
.
max_age
}
岁`
:
''
;
classs
.
dataValues
.
point_tags
=
classs
.
point
?
classs
.
point
.
split
(
','
)
:
[];
classs
.
dataValues
.
point_tags
=
classs
.
point
?
classs
.
point
.
split
(
','
)
:
[];
classs
.
dataValues
.
photo_album
=
classs
.
image
?
classs
.
image
.
split
(
';'
)
:
[];
classs
.
dataValues
.
photo_album
=
classs
.
image
?
classs
.
image
.
split
(
';'
)
:
[];
...
@@ -190,13 +190,13 @@ class InstitutionService extends Service {
...
@@ -190,13 +190,13 @@ class InstitutionService extends Service {
async
getTeachers
(
input
)
{
async
getTeachers
(
input
)
{
const
{
ctx
}
=
this
;
const
{
ctx
}
=
this
;
const
attributes
=
[
'id'
,
'institution_id'
,
'name'
,
'avatar'
,
'teacher_experience'
,
'lesson'
,
'educational_background'
,
'certificate'
];
const
attributes
=
[
'id'
,
'institution_id'
,
'name'
,
'avatar'
,
'teacher_experience'
,
'lesson'
,
'educational_background'
,
'certificate'
];
const
{
institution_id
,
page
,
limit
}
=
input
;
const
{
institution_id
,
page
,
limit
}
=
input
;
const
where
=
{
institution_id
};
const
where
=
{
institution_id
};
const
teachers
=
await
ctx
.
classModel
.
CourseTeacher
.
list
({
attributes
,
page
,
limit
,
where
});
const
teachers
=
await
ctx
.
classModel
.
CourseTeacher
.
list
({
attributes
,
page
,
limit
,
where
});
const
ret
=
[];
const
ret
=
[];
for
(
le
t
i
in
teachers
.
rows
)
{
for
(
cons
t
i
in
teachers
.
rows
)
{
const
teacher
=
teachers
.
rows
[
i
];
const
teacher
=
teachers
.
rows
[
i
];
ret
.
push
({
ret
.
push
({
id
:
teacher
.
id
,
id
:
teacher
.
id
,
...
@@ -210,35 +210,35 @@ class InstitutionService extends Service {
...
@@ -210,35 +210,35 @@ class InstitutionService extends Service {
});
});
}
}
return
{
page
,
count
:
ret
.
length
,
rows
:
ret
};
return
{
page
,
count
:
ret
.
length
,
rows
:
ret
};
}
}
async
getClasses
(
input
)
{
async
getClasses
(
input
)
{
const
{
ctx
}
=
this
;
const
{
ctx
}
=
this
;
const
attributes
=
[
'id'
,
'institution_id'
,
'name'
,
'type'
,
'price'
];
const
attributes
=
[
'id'
,
'institution_id'
,
'name'
,
'type'
,
'price'
];
const
{
institution_id
,
page
,
limit
}
=
input
;
const
{
institution_id
,
page
,
limit
}
=
input
;
const
where
=
{
institution_id
};
const
where
=
{
institution_id
};
const
classes
=
await
ctx
.
classModel
.
CourseClass
.
list
({
attributes
,
page
,
limit
,
where
});
const
classes
=
await
ctx
.
classModel
.
CourseClass
.
list
({
attributes
,
page
,
limit
,
where
});
const
p_class_images
=
[];
const
p_class_images
=
[];
//
获取图片信息
//
获取图片信息
for
(
le
t
j
in
classes
.
rows
)
{
for
(
cons
t
j
in
classes
.
rows
)
{
const
classs
=
classes
.
rows
[
j
];
const
classs
=
classes
.
rows
[
j
];
p_class_images
[
j
]
=
ctx
.
classModel
.
CourseImages
.
one
({
where
:
{
type
:
2
,
type_id
:
classs
.
id
,
is_cover
:
1
,
is_video
:
0
}
});
p_class_images
[
j
]
=
ctx
.
classModel
.
CourseImages
.
one
({
where
:
{
type
:
2
,
type_id
:
classs
.
id
,
is_video
:
0
}
});
}
}
const
class_images
=
await
Promise
.
all
(
p_class_images
).
then
(
result
=>
{
//
等待所有异步内容获取完成
const
class_images
=
await
Promise
.
all
(
p_class_images
).
then
(
result
=>
{
//
等待所有异步内容获取完成
return
result
;
return
result
;
}).
catch
(
error
=>
{
}).
catch
(
error
=>
{
ctx
.
failed
(
error
);
ctx
.
failed
(
error
);
});
});
//
格式化课程信息
//
格式化课程信息
le
t
ret
=
[];
cons
t
ret
=
[];
for
(
le
t
i
in
classes
.
rows
)
{
for
(
cons
t
i
in
classes
.
rows
)
{
le
t
classs
=
classes
.
rows
[
i
];
cons
t
classs
=
classes
.
rows
[
i
];
classs
.
dataValues
.
image
=
class_images
[
i
]
?
class_images
[
i
].
image_url
:
''
;
;
classs
.
dataValues
.
image
=
class_images
[
i
]
?
class_images
[
i
].
image_url
:
''
;
classs
.
dataValues
.
price_text
=
classs
.
price
?
classs
.
price
:
'现场咨询'
;
classs
.
dataValues
.
price_text
=
classs
.
price
?
classs
.
price
:
'现场咨询'
;
classs
.
dataValues
.
class_period
=
classs
.
class_period
>
0
?
classs
.
class_period
:
''
;
classs
.
dataValues
.
class_period
=
classs
.
class_period
>
0
?
classs
.
class_period
:
''
;
ret
.
push
(
classs
);
ret
.
push
(
classs
);
...
@@ -251,7 +251,7 @@ class InstitutionService extends Service {
...
@@ -251,7 +251,7 @@ class InstitutionService extends Service {
async
getInstitutionAreas
(
input
)
{
async
getInstitutionAreas
(
input
)
{
const
{
ctx
}
=
this
;
const
{
ctx
}
=
this
;
const
attributes
=
[
'id'
,
'institution_id'
,
'name'
,
'address'
,
'phone'
,
'lat'
,
'lng'
];
const
attributes
=
[
'id'
,
'institution_id'
,
'name'
,
'address'
,
'phone'
,
'lat'
,
'lng'
];
const
{
institution_id
,
page
,
limit
}
=
input
;
const
{
institution_id
,
page
,
limit
}
=
input
;
const
where
=
{
institution_id
};
const
where
=
{
institution_id
};
const
areas
=
await
ctx
.
classModel
.
CourseArea
.
list
({
attributes
,
page
,
limit
,
where
});
const
areas
=
await
ctx
.
classModel
.
CourseArea
.
list
({
attributes
,
page
,
limit
,
where
});
...
@@ -260,7 +260,7 @@ class InstitutionService extends Service {
...
@@ -260,7 +260,7 @@ class InstitutionService extends Service {
}
}
//
机构列表 并有多校区 {id:1,..., course_areas:[{},{}]
//
机构列表 并有多校区 {id:1,..., course_areas:[{},{}]
async
getInstitutionAreaList
(
institutions
)
{
async
getInstitutionAreaList
(
institutions
)
{
const
{
ctx
}
=
this
;
const
{
ctx
}
=
this
;
...
@@ -270,11 +270,11 @@ class InstitutionService extends Service {
...
@@ -270,11 +270,11 @@ class InstitutionService extends Service {
}
}
const
ret
=
[];
const
ret
=
[];
for
(
le
t
i
in
institutions
)
{
for
(
cons
t
i
in
institutions
)
{
le
t
institution
=
institutions
[
i
];
cons
t
institution
=
institutions
[
i
];
if
(
!
institution
.
course_areas
||
institution
.
course_areas
.
length
===
0
)
continue
;
if
(
!
institution
.
course_areas
||
institution
.
course_areas
.
length
===
0
)
continue
;
const
course_areas
=
institution
.
course_areas
;
const
course_areas
=
institution
.
course_areas
;
for
(
le
t
j
in
course_areas
)
{
for
(
cons
t
j
in
course_areas
)
{
const
course_area
=
course_areas
[
j
];
const
course_area
=
course_areas
[
j
];
ret
.
push
({
ret
.
push
({
id
:
institution
.
id
,
id
:
institution
.
id
,
...
@@ -320,29 +320,29 @@ class InstitutionService extends Service {
...
@@ -320,29 +320,29 @@ class InstitutionService extends Service {
const
lat
=
from
.
lat
;
const
lat
=
from
.
lat
;
const
lng
=
from
.
lng
;
const
lng
=
from
.
lng
;
// console.info({ lat, lng });
// console.info({ lat, lng });
//
计算距离
//
计算距离
const
driving_results
=
await
ctx
.
service
.
course
.
lbs
.
getLBSDistance
(
'driving'
,
{
lat
,
lng
},
lbs_array
);
const
driving_results
=
await
ctx
.
service
.
course
.
lbs
.
getLBSDistance
(
'driving'
,
{
lat
,
lng
},
lbs_array
);
const
walking_results
=
await
ctx
.
service
.
course
.
lbs
.
getLBSDistance
(
'walking'
,
{
lat
,
lng
},
lbs_array
);
const
walking_results
=
await
ctx
.
service
.
course
.
lbs
.
getLBSDistance
(
'walking'
,
{
lat
,
lng
},
lbs_array
);
if
(
!
walking_results
.
results
&&
!
driving_results
.
results
)
{
if
(
!
walking_results
.
results
&&
!
driving_results
.
results
)
{
return
[];
return
[];
}
}
//
处理距离结果
//
处理距离结果
const
drivings
=
driving_results
.
results
.
map
(
item
=>
{
const
drivings
=
driving_results
.
results
.
map
(
item
=>
{
const
distance
=
(
item
.
distance
/
1000
).
toFixed
(
1
);
const
distance
=
(
item
.
distance
/
1000
).
toFixed
(
1
);
const
duration
=
Math
.
ceil
(
item
.
duration
/
60
);
const
duration
=
Math
.
ceil
(
item
.
duration
/
60
);
return
{
distance
:
distance
,
duration
:
duration
}
return
{
distance
,
duration
};
});
});
const
walkings
=
walking_results
.
results
.
map
(
item
=>
{
const
walkings
=
walking_results
.
results
.
map
(
item
=>
{
const
distance
=
(
item
.
distance
/
1000
).
toFixed
(
2
);
const
distance
=
(
item
.
distance
/
1000
).
toFixed
(
2
);
const
duration
=
Math
.
ceil
(
item
.
distance
/
80
);
const
duration
=
Math
.
ceil
(
item
.
distance
/
80
);
return
{
distance
:
distance
,
duration
:
duration
}
return
{
distance
,
duration
};
});
});
//
格式化 判断步行或驾车
//
格式化 判断步行或驾车
const
results
=
[];
const
results
=
[];
for
(
le
t
i
in
lbs_array
)
{
for
(
cons
t
i
in
lbs_array
)
{
le
t
lbs
=
lbs_array
[
i
];
cons
t
lbs
=
lbs_array
[
i
];
const
driving
=
(
drivings
[
i
]
&&
drivings
[
i
].
distance
!==
-
1
)
?
drivings
[
i
]
:
{
distance
:
0
,
duration
:
0
};
const
driving
=
(
drivings
[
i
]
&&
drivings
[
i
].
distance
!==
-
1
)
?
drivings
[
i
]
:
{
distance
:
0
,
duration
:
0
};
const
walking
=
(
walkings
[
i
]
&&
walkings
[
i
].
distance
!==
-
1
)
?
walkings
[
i
]
:
{
distance
:
0
,
duration
:
0
};
const
walking
=
(
walkings
[
i
]
&&
walkings
[
i
].
distance
!==
-
1
)
?
walkings
[
i
]
:
{
distance
:
0
,
duration
:
0
};
const
lbs_distance
=
driving
.
distance
>
distance
?
driving
:
walking
;
const
lbs_distance
=
driving
.
distance
>
distance
?
driving
:
walking
;
...
@@ -373,10 +373,10 @@ class InstitutionService extends Service {
...
@@ -373,10 +373,10 @@ class InstitutionService extends Service {
// const institution_lbs = await this.computeDistance(areas_list);
// const institution_lbs = await this.computeDistance(areas_list);
const
institution_lbs
=
areas_list
;
const
institution_lbs
=
areas_list
;
for
(
le
t
i
in
institution_areas
)
{
for
(
cons
t
i
in
institution_areas
)
{
le
t
institution_area
=
institution_areas
[
i
];
cons
t
institution_area
=
institution_areas
[
i
];
//
TODO 校验经纬度
//
TODO 校验经纬度
const
lbs
=
i
<
institution_lbs
.
length
?
institution_lbs
[
i
]
:
{
distance
:
0
,
duration
:
0
,
travel_method
:
''
};
const
lbs
=
i
<
institution_lbs
.
length
?
institution_lbs
[
i
]
:
{
distance
:
0
,
duration
:
0
,
travel_method
:
''
};
const
area_name
=
institution_area
.
area_name
;
const
area_name
=
institution_area
.
area_name
;
...
@@ -401,8 +401,8 @@ class InstitutionService extends Service {
...
@@ -401,8 +401,8 @@ class InstitutionService extends Service {
}
}
const
results
=
[];
const
results
=
[];
ret
=
_
.
orderBy
(
ret
,
[
'distance'
],
[
'asc'
]);
ret
=
_
.
orderBy
(
ret
,
[
'distance'
],
[
'asc'
]);
for
(
le
t
j
in
ret
)
{
for
(
cons
t
j
in
ret
)
{
const
val
=
ret
[
j
];
const
val
=
ret
[
j
];
if
(
!
results
[
val
.
id
])
{
if
(
!
results
[
val
.
id
])
{
results
[
val
.
id
]
=
val
;
results
[
val
.
id
]
=
val
;
...
@@ -419,20 +419,20 @@ class InstitutionService extends Service {
...
@@ -419,20 +419,20 @@ class InstitutionService extends Service {
return
[];
return
[];
}
}
//
处理机构图片
//
处理机构图片
const
p_institution_images
=
[];
const
p_institution_images
=
[];
for
(
le
t
j
in
institutions
)
{
for
(
cons
t
j
in
institutions
)
{
const
institution
=
institutions
[
j
];
const
institution
=
institutions
[
j
];
p_institution_images
[
j
]
=
ctx
.
classModel
.
CourseImages
.
one
({
where
:
{
type
:
1
,
type_id
:
institution
.
id
,
is_cover
:
1
,
is_video
:
0
}
});
p_institution_images
[
j
]
=
ctx
.
classModel
.
CourseImages
.
one
({
where
:
{
type
:
1
,
type_id
:
institution
.
id
,
is_cover
:
1
,
is_video
:
0
}
});
}
}
const
institution_images
=
await
Promise
.
all
(
p_institution_images
).
then
(
result
=>
{
//
等待所有异步内容获取完成
const
institution_images
=
await
Promise
.
all
(
p_institution_images
).
then
(
result
=>
{
//
等待所有异步内容获取完成
return
result
;
return
result
;
}).
catch
(
error
=>
{
}).
catch
(
error
=>
{
ctx
.
failed
(
error
);
ctx
.
failed
(
error
);
});
});
let
ret
=
[];
let
ret
=
[];
for
(
le
t
i
in
institutions
)
{
for
(
cons
t
i
in
institutions
)
{
const
institution
=
institutions
[
i
];
const
institution
=
institutions
[
i
];
// const course_areas = institution.course_areas;
// const course_areas = institution.course_areas;
// if (!course_areas || course_areas.length === 0) continue;
// if (!course_areas || course_areas.length === 0) continue;
...
@@ -449,7 +449,7 @@ class InstitutionService extends Service {
...
@@ -449,7 +449,7 @@ class InstitutionService extends Service {
tags
.
push
(
'成立'
+
build_time
+
'年'
);
tags
.
push
(
'成立'
+
build_time
+
'年'
);
}
}
let
image
=
institution_images
[
i
]
?
institution_images
[
i
].
image_url
:
''
;
let
image
=
institution_images
[
i
]
?
institution_images
[
i
].
image_url
:
''
;
//
取不到封面图就从详情图列表里选一张
//
取不到封面图就从详情图列表里选一张
if
(
ctx
.
isEmpty
(
image
))
{
if
(
ctx
.
isEmpty
(
image
))
{
const
tmpImage
=
await
ctx
.
classModel
.
CourseImages
.
one
({
where
:
{
type
:
1
,
type_id
:
institution
.
id
,
is_cover
:
0
,
is_video
:
0
}
});
const
tmpImage
=
await
ctx
.
classModel
.
CourseImages
.
one
({
where
:
{
type
:
1
,
type_id
:
institution
.
id
,
is_cover
:
0
,
is_video
:
0
}
});
image
=
ctx
.
isEmpty
(
tmpImage
)
?
''
:
tmpImage
.
image_url
;
image
=
ctx
.
isEmpty
(
tmpImage
)
?
''
:
tmpImage
.
image_url
;
...
@@ -468,23 +468,18 @@ class InstitutionService extends Service {
...
@@ -468,23 +468,18 @@ class InstitutionService extends Service {
max_age
:
institution
.
max_age
,
max_age
:
institution
.
max_age
,
price
:
institution
.
price
?
institution
.
price
:
0
,
price
:
institution
.
price
?
institution
.
price
:
0
,
tags
,
tags
,
area_id
:
institution
.
area_id
,
//
校区id TODO
area_id
:
institution
.
area_id
,
//
校区id TODO
travel_tips
:
institution
.
travel_tips
,
//
TODO
travel_tips
:
institution
.
travel_tips
,
//
TODO
characteristic
:
institution
.
characteristic
?
institution
.
characteristic
:
''
,
characteristic
:
institution
.
characteristic
?
institution
.
characteristic
:
''
,
distance
:
institution
.
distance
,
distance
:
institution
.
distance
,
});
});
}
}
ret
=
_
.
orderBy
(
ret
,
[
'distance'
],
[
'asc'
]);
ret
=
_
.
orderBy
(
ret
,
[
'distance'
],
[
'asc'
]);
return
ret
;
return
ret
;
}
}
}
}
module
.
exports
=
InstitutionService
;
module
.
exports
=
InstitutionService
;
app/service/course/option.js
View file @
c9ca81d5
...
@@ -39,7 +39,7 @@ class OptionService extends Service {
...
@@ -39,7 +39,7 @@ class OptionService extends Service {
cats
:
tree_cats
,
cats
:
tree_cats
,
ages
:
AGE_CATS
,
ages
:
AGE_CATS
,
institutions
:
INSTITUTION_TYPE
,
institutions
:
INSTITUTION_TYPE
,
}
};
return
options
;
return
options
;
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment