@x-edu/live-player 0.0.21 → 0.0.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.browserslistrc +10 -10
- package/.eslintignore +8 -8
- package/.eslintrc.js +26 -26
- package/.gem-mine +11 -11
- package/.postcssrc.js +6 -6
- package/README.md +145 -145
- package/babel.config.js +33 -33
- package/doc/develop.md +23 -23
- package/gem-mine.config.js +86 -86
- package/jest.config.js +9 -9
- package/jsconfig.json +15 -15
- package/mock/helper.js +8 -8
- package/mock/index.js +34 -34
- package/package.json +99 -99
- package/public/3rd/ali-player/alipayercomponents-1.0.8.min.js +26 -26
- package/public/3rd/ali-player/aliplayer-hls-min.js +27 -27
- package/public/3rd/ali-player/aliplayer-min.js +1 -1
- package/public/3rd/im-web-push/index.umd.js +14 -14
- package/public/JsBridge.js +1602 -1602
- package/public/fish/editor/themes/default/css/ueditor.css +1905 -1905
- package/public/fish/editor/third-party/codemirror/codemirror.css +104 -104
- package/public/fish/editor/third-party/codemirror/codemirror.js +3581 -3581
- package/public/fish/editor/third-party/zeroclipboard/ZeroClipboard.js +1255 -1255
- package/public/fish/editor/ueditor.all.min.js +16 -16
- package/public/fish/editor/ueditor.config.js +467 -467
- package/public/fish/icon/umd-4.1.2.js +1 -1
- package/public/fish/video/videoplayer.min.css +6 -6
- package/public/fish/video/videoplayer.min.js +31 -31
- package/public/fish/video/zh-CN.js +82 -82
- package/public/icon/demo.css +539 -539
- package/public/icon/demo_index.html +2189 -2189
- package/public/icon/iconfont.css +363 -363
- package/public/icon/iconfont.json +618 -618
- package/public/index.html +50 -50
- package/script/image/readme.md +77 -77
- package/script/postcss.js +48 -48
- package/src/App.jsx +24 -24
- package/src/asset/img/course/playing.svg +21 -21
- package/src/asset/img/icon-course-white.svg +3 -3
- package/src/asset/img/icon-course.svg +3 -3
- package/src/asset/img/icon-eye-white.svg +4 -4
- package/src/asset/img/icon-eye.svg +4 -4
- package/src/asset/img/icon-school-white.svg +3 -3
- package/src/asset/img/icon-school.svg +3 -3
- package/src/asset/img/loading.svg +52 -52
- package/src/asset/img/video-play.svg +6 -6
- package/src/asset/style/background.less +19 -19
- package/src/asset/style/banner.less +36 -36
- package/src/asset/style/base.less +74 -74
- package/src/asset/style/index.less +114 -114
- package/src/asset/style/reset-theme.less +141 -141
- package/src/asset/style/theme/index.less +55 -55
- package/src/asset/style/theme/party/global.less +20 -20
- package/src/asset/style/theme/party/override.less +57 -57
- package/src/asset/style/theme/test/global.less +18 -18
- package/src/asset/style/theme/test/override.less +45 -45
- package/src/asset/style/variable.less +12 -12
- package/src/component/AliPlayer/index.jsx +49 -49
- package/src/component/Avatar/index.jsx +50 -50
- package/src/component/Empty/index.jsx +34 -34
- package/src/component/Empty/index.module.less +37 -37
- package/src/component/IMChatroom/component/status/403.jsx +13 -13
- package/src/component/IMChatroom/component/status/404.jsx +13 -13
- package/src/component/IMChatroom/component/status/Error.jsx +23 -23
- package/src/component/IMChatroom/component/status/Loading.jsx +5 -5
- package/src/component/IMChatroom/config/app/config.js +118 -118
- package/src/component/IMChatroom/config/app/index.js +60 -60
- package/src/component/IMChatroom/config/env.js +5 -5
- package/src/component/IMChatroom/config/index.js +3 -3
- package/src/component/IMChatroom/config/request/config/base.js +124 -124
- package/src/component/IMChatroom/config/request/config/chatroom.js +26 -26
- package/src/component/IMChatroom/config/request/config/imCoreApi.js +21 -21
- package/src/component/IMChatroom/config/request/index.js +21 -21
- package/src/component/IMChatroom/config/request/proxy.js +39 -39
- package/src/component/IMChatroom/config/url.js +7 -7
- package/src/component/IMChatroom/constants/errorCode.js +9 -9
- package/src/component/IMChatroom/constants/index.js +84 -84
- package/src/component/IMChatroom/constants/origin.js +27 -27
- package/src/component/IMChatroom/context/chatroom.js +154 -154
- package/src/component/IMChatroom/context/connect.js +28 -28
- package/src/component/IMChatroom/i18n/en/index.json +73 -73
- package/src/component/IMChatroom/i18n/index.jsx +14 -14
- package/src/component/IMChatroom/i18n/language.js +9 -9
- package/src/component/IMChatroom/i18n/zh-CN/index.json +73 -73
- package/src/component/IMChatroom/index.jsx +49 -49
- package/src/component/IMChatroom/page/chat/index.jsx +27 -27
- package/src/component/IMChatroom/page/chat/messageEditor/index.jsx +375 -375
- package/src/component/IMChatroom/page/chat/messageList/index.jsx +354 -354
- package/src/component/IMChatroom/page/chat/stickedMessage/index.jsx +59 -59
- package/src/component/IMChatroom/page/chat/stickedMessage/style/index.module.less +7 -7
- package/src/component/IMChatroom/page/chat/style/index.module.less +51 -51
- package/src/component/IMChatroom/page/home/connect/index.jsx +188 -188
- package/src/component/IMChatroom/page/home/connect/status.jsx +124 -124
- package/src/component/IMChatroom/page/home/context/cmd.jsx +37 -37
- package/src/component/IMChatroom/page/home/context/index.jsx +67 -67
- package/src/component/IMChatroom/page/home/index.jsx +164 -164
- package/src/component/IMChatroom/page/home/notice/index.jsx +123 -123
- package/src/component/IMChatroom/page/home/notice/style/index.module.less +49 -49
- package/src/component/IMChatroom/page/home/style/index.module.less +110 -110
- package/src/component/IMChatroom/page/member/index.jsx +15 -15
- package/src/component/IMChatroom/page/member/memberCount/index.jsx +44 -44
- package/src/component/IMChatroom/page/member/memberList/index.jsx +121 -121
- package/src/component/IMChatroom/page/member/style/index.module.less +2 -2
- package/src/component/IMChatroom/sdk/bridge.js +39 -39
- package/src/component/IMChatroom/sdk/cs/constants.js +20 -20
- package/src/component/IMChatroom/sdk/cs/index.js +101 -101
- package/src/component/IMChatroom/sdk/imChatroom.js +15 -15
- package/src/component/IMChatroom/sdk/imcore/constants.js +128 -128
- package/src/component/IMChatroom/sdk/imcore/emitters/chatroomDestroyed.js +5 -5
- package/src/component/IMChatroom/sdk/imcore/emitters/chatroomInfoGetFail.js +5 -5
- package/src/component/IMChatroom/sdk/imcore/emitters/chatroomKickedByAdmin.js +5 -5
- package/src/component/IMChatroom/sdk/imcore/emitters/chatroomKickedBySelf.js +5 -5
- package/src/component/IMChatroom/sdk/imcore/emitters/chatroomLoginFail.js +5 -5
- package/src/component/IMChatroom/sdk/imcore/emitters/chatroomLoginSuccess.js +5 -5
- package/src/component/IMChatroom/sdk/imcore/emitters/chatroomMemberLogin.js +5 -5
- package/src/component/IMChatroom/sdk/imcore/emitters/chatroomMemberLogout.js +5 -5
- package/src/component/IMChatroom/sdk/imcore/emitters/connectionConnected.js +5 -5
- package/src/component/IMChatroom/sdk/imcore/emitters/connectionConnecting.js +5 -5
- package/src/component/IMChatroom/sdk/imcore/emitters/connectionDisconnect.js +5 -5
- package/src/component/IMChatroom/sdk/imcore/emitters/index.js +57 -57
- package/src/component/IMChatroom/sdk/imcore/emitters/messageReceive.js +36 -36
- package/src/component/IMChatroom/sdk/imcore/index.js +178 -178
- package/src/component/IMChatroom/sdk/imcore/interceptors/request.js +7 -7
- package/src/component/IMChatroom/sdk/imcore/interceptors/response.js +5 -5
- package/src/component/IMChatroom/sdk/imcore/plugins/getAuth.js +64 -64
- package/src/component/IMChatroom/sdk/imcore/plugins/getConversationId.js +20 -20
- package/src/component/IMChatroom/sdk/imcore/plugins/getExtInfo.js +10 -10
- package/src/component/IMChatroom/sdk/imcore/plugins/getLoginInfo.js +48 -48
- package/src/component/IMChatroom/sdk/imcore/plugins/getPlatformType.js +12 -12
- package/src/component/IMChatroom/sdk/imcore/plugins/index.js +22 -22
- package/src/component/IMChatroom/sdk/imcore/util/format.js +177 -177
- package/src/component/IMChatroom/sdk/imcore/util/parser.js +35 -35
- package/src/component/IMChatroom/sdk/oms.js +18 -18
- package/src/component/IMChatroom/sdk/uc.js +3 -3
- package/src/component/IMChatroom/subscription/channel/app.js +5 -5
- package/src/component/IMChatroom/subscription/channel/ctl.js +22 -22
- package/src/component/IMChatroom/subscription/channel/member.js +40 -40
- package/src/component/IMChatroom/subscription/channel/message.js +13 -13
- package/src/component/IMChatroom/subscription/channel/ntf.js +86 -86
- package/src/component/IMChatroom/subscription/channel/tel.js +5 -5
- package/src/component/IMChatroom/subscription/channel/websocket.js +5 -5
- package/src/component/IMChatroom/subscription/event.js +37 -37
- package/src/component/IMChatroom/subscription/index.js +19 -19
- package/src/component/IMChatroom/util/account.js +8 -8
- package/src/component/IMChatroom/util/chatroom.js +255 -255
- package/src/component/IMChatroom/util/jsonBigInt.js +5 -5
- package/src/component/IMChatroom/util/location.js +12 -12
- package/src/component/Icon/index.jsx +16 -16
- package/src/component/Icon/index.module.less +2 -2
- package/src/component/Pagination/LocalPagination.jsx +27 -27
- package/src/component/Pagination/RemotePagination.jsx +32 -32
- package/src/component/Pagination/index.jsx +32 -31
- package/src/component/Pagination/index.module.less +117 -110
- package/src/component/PlayerTip/index.jsx +34 -34
- package/src/component/VideoBase/index.jsx +242 -242
- package/src/component/VideoBase/style.less +65 -65
- package/src/component/VideoBase/utils.js +81 -81
- package/src/component/mixin.less +9 -9
- package/src/component/status/403.jsx +15 -15
- package/src/component/status/404/index.jsx +73 -73
- package/src/component/status/404/index.module.less +36 -36
- package/src/component/status/Error/error.module.less +13 -13
- package/src/component/status/Error/index.jsx +47 -47
- package/src/component/status/Loading/img/loading.svg +52 -52
- package/src/component/status/Loading/index.jsx +31 -31
- package/src/component/status/Loading/index.less +56 -56
- package/src/component/status/None/index.jsx +20 -20
- package/src/component/status/None/index.module.less +35 -35
- package/src/component/status/Status/index.jsx +26 -26
- package/src/component/status/Status/index.module.less +8 -8
- package/src/config/constant/commonUrl.js +2 -2
- package/src/config/constant/user.js +6 -6
- package/src/config/context/site-config.js +48 -48
- package/src/config/env/index.js +5 -5
- package/src/config/env/local/index.js +13 -13
- package/src/config/env/ncet-xedu/api.js +175 -175
- package/src/config/env/ncet-xedu/app.js +12 -12
- package/src/config/env/ncet-xedu/cs.js +8 -8
- package/src/config/env/ncet-xedu/index.js +14 -14
- package/src/config/env/ncet-xedu/push.js +5 -5
- package/src/config/env/preproduction/api.js +144 -144
- package/src/config/env/preproduction/app.js +12 -12
- package/src/config/env/preproduction/cs.js +8 -8
- package/src/config/env/preproduction/index.js +14 -14
- package/src/config/env/preproduction/push.js +5 -5
- package/src/config/env/product/api.js +113 -113
- package/src/config/env/product/app.js +12 -12
- package/src/config/env/product/cs.js +5 -5
- package/src/config/env/product/index.js +14 -14
- package/src/config/env/product/push.js +5 -5
- package/src/config/live.js +80 -80
- package/src/config/publicLive.js +53 -53
- package/src/config/request/assessments.js +24 -24
- package/src/config/request/config-center.js +8 -8
- package/src/config/request/helper.js +166 -166
- package/src/config/request/im-broadcasts.js +12 -12
- package/src/config/request/live-activity-gateway.js +8 -8
- package/src/config/request/live-activity.js +13 -13
- package/src/config/request/raw.js +6 -6
- package/src/config/request/x-cloud-web.js +13 -13
- package/src/config/request/x-proxy.js +34 -34
- package/src/demo/Detail.jsx +11 -11
- package/src/demo/List.jsx +66 -64
- package/src/demo/index.jsx +17 -17
- package/src/detail/LineSwitch/index.jsx +71 -71
- package/src/detail/LiveCountDown/index.jsx +44 -44
- package/src/detail/LiveCountDown/index.module.less +31 -31
- package/src/detail/LiveOnlineCount/img/icon.svg +15 -15
- package/src/detail/LiveOnlineCount/index.jsx +68 -68
- package/src/detail/LiveOnlineCount/index.module.less +34 -34
- package/src/detail/LiveOnlineCount/util.js +74 -74
- package/src/detail/LiveStatus/AnchorOnTheWay.jsx +88 -88
- package/src/detail/LiveStatus/index.jsx +202 -202
- package/src/detail/LiveStatus/index.module.less +192 -192
- package/src/detail/LiveVideo/config.js +37 -37
- package/src/detail/LiveVideo/index.jsx +188 -188
- package/src/detail/LiveVideo/index.module.less +41 -41
- package/src/detail/NotLoginChatroom/index.jsx +37 -37
- package/src/detail/NotLoginChatroom/index.module.less +46 -46
- package/src/detail/RecordVideo/index.jsx +150 -150
- package/src/detail/RecordVideo/index.module.less +31 -31
- package/src/detail/ReplayVideo/index.jsx +93 -93
- package/src/detail/ReplayVideo/index.module.less +65 -65
- package/src/detail/const.js +20 -20
- package/src/detail/hook/usePullSource.js +82 -82
- package/src/detail/hook/usePullState.js +51 -51
- package/src/detail/index.jsx +482 -482
- package/src/detail/index.module.less +188 -188
- package/src/hook/useAsync.js +84 -84
- package/src/hook/useGoToPage.js +83 -83
- package/src/hook/useInterval.js +28 -28
- package/src/hook/useIsMounted.js +17 -17
- package/src/hook/useModuleByRole.js +53 -53
- package/src/hook/usePageScrollable.js +52 -52
- package/src/hook/usePortal.js +83 -83
- package/src/hook/useScrollRestore/index.js +32 -32
- package/src/hook/useScrollRestore/scrollContext.js +20 -20
- package/src/hook/useTrackRef.js +11 -11
- package/src/hook/useWindowSize.js +28 -28
- package/src/hook/useZoom.js +47 -47
- package/src/index.js +10 -10
- package/src/lib/getLiveOnlineCount.js +10 -10
- package/src/lib/getServiceConfig.js +102 -102
- package/src/list/Empty/index.jsx +20 -20
- package/src/list/Empty/index.module.less +23 -23
- package/src/list/ListItem/Action/index.jsx +100 -98
- package/src/list/ListItem/Action/index.module.less +19 -21
- package/src/list/ListItem/img/play.svg +15 -15
- package/src/list/ListItem/img/video.svg +3 -0
- package/src/list/ListItem/index.jsx +46 -28
- package/src/list/ListItem/index.module.less +152 -146
- package/src/list/index.module.less +35 -35
- package/src/service/common.js +73 -73
- package/src/service/content-mgr.js +73 -73
- package/src/service/im-group.js +12 -12
- package/src/service/im.js +7 -7
- package/src/service/imBroadcasts.js +33 -33
- package/src/service/like.js +134 -134
- package/src/service/manageApi.js +7 -7
- package/src/service/managePortal.js +6 -6
- package/src/service/myStudyRecord.js +93 -93
- package/src/service/navigation.js +47 -47
- package/src/service/ndMeeting.js +10 -10
- package/src/service/ndr.js +122 -122
- package/src/service/news.js +93 -93
- package/src/service/personalCenter.js +270 -270
- package/src/service/qualityCourse.js +31 -31
- package/src/service/recommend.js +81 -81
- package/src/service/school.js +323 -323
- package/src/service/search.js +170 -170
- package/src/service/site-config.js +7 -7
- package/src/service/socialCensor.js +45 -45
- package/src/service/specialEdu.js +31 -31
- package/src/service/suggestion.js +85 -85
- package/src/service/syncClassroom.js +321 -321
- package/src/service/tCourse.js +204 -204
- package/src/service/tchTraining.js +37 -37
- package/src/service/uc.js +45 -45
- package/src/util/app.js +1 -1
- package/src/util/array.js +3 -3
- package/src/util/auth/func.js +57 -57
- package/src/util/date.js +53 -53
- package/src/util/env.js +9 -9
- package/src/util/getTimestamp.js +10 -10
- package/src/util/hof.js +105 -105
- package/src/util/live/index.js +42 -42
- package/src/util/netUrl.js +35 -35
- package/src/util/object.js +13 -13
- package/src/util/push/index.js +58 -58
- package/src/util/request.js +227 -227
- package/src/util/type.js +17 -17
- package/src/util/url.js +203 -203
- package/src/util/video.js +26 -26
- package/test/setup.js +21 -21
- package/test/unit/component/header/logo.spec.jsx +8 -8
- package/test/unit/helper.jsx +25 -25
- package/test/unit/util/date.spec.js +40 -40
- package/dist/XEduLivePlayer.common.js +0 -72605
- package/dist/XEduLivePlayerPre.common.js +0 -72625
|
@@ -1,321 +1,321 @@
|
|
|
1
|
-
import axios from 'axios'
|
|
2
|
-
import { memoize } from 'lodash'
|
|
3
|
-
import { getUserInfo } from '@/util/auth/func'
|
|
4
|
-
import { getRoleCache } from '@/util/auth/role'
|
|
5
|
-
|
|
6
|
-
import xCourseCdn, { apiTeach } from '@/config/request/x-course-cdn'
|
|
7
|
-
import xCourse from '@/config/request/x-course'
|
|
8
|
-
import xClassHourAct from '@/config/request/x-class-hour-activity'
|
|
9
|
-
|
|
10
|
-
import teachRecord from '@/config/request/teach-record'
|
|
11
|
-
import libraryStatic from '@/lib/LibraryStatic'
|
|
12
|
-
import config from '@/config/env'
|
|
13
|
-
import { recommendAPIV2 } from '@/config/request/x-proxy'
|
|
14
|
-
// import { getTimestamp } from '@/util/getTimestamp'
|
|
15
|
-
|
|
16
|
-
const difficultTagsName = 'exercise-difficult-tags'
|
|
17
|
-
|
|
18
|
-
const { app } = config
|
|
19
|
-
const sdpAppId = app.appid
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* 根据标签组从indexedDb中获取课本信息
|
|
23
|
-
*
|
|
24
|
-
* @export
|
|
25
|
-
* @param {array} tags 过滤课本的标签
|
|
26
|
-
* @returns 课本列表
|
|
27
|
-
*/
|
|
28
|
-
export async function getBookList({ tags, id }) {
|
|
29
|
-
if (tags && tags.length) {
|
|
30
|
-
const bookList = await libraryStatic.getTextBookList((book) => {
|
|
31
|
-
const tagList = book.tag_list.filter(Boolean)
|
|
32
|
-
return tags.every((tag) => !!tagList.find((t) => t.tag_id === tag.tag_id))
|
|
33
|
-
})
|
|
34
|
-
return bookList
|
|
35
|
-
}
|
|
36
|
-
if (id) {
|
|
37
|
-
const bookList = await libraryStatic.getTextBookList((book) => book.id === id)
|
|
38
|
-
return bookList
|
|
39
|
-
}
|
|
40
|
-
return []
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* 获取课程相关信息
|
|
45
|
-
*
|
|
46
|
-
* @export
|
|
47
|
-
* @param {string} courseId 课程(课本)id
|
|
48
|
-
* @returns 课程相关信息
|
|
49
|
-
*/
|
|
50
|
-
export async function getCourseRelativeInfo(courseId) {
|
|
51
|
-
const { data } = await xCourseCdn.get(`/v2/business_courses/${courseId}/course_relative_infos/zh-CN.json`)
|
|
52
|
-
return data
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* 获取教师研修课课程相关信息
|
|
57
|
-
*
|
|
58
|
-
* @export
|
|
59
|
-
* @param {string} courseId 课程(课本)id
|
|
60
|
-
* @returns 课程相关信息
|
|
61
|
-
*/
|
|
62
|
-
export async function getCourseTeachRelativeInfo(courseId) {
|
|
63
|
-
const { data } = await apiTeach.get(`/v2/business_courses/${courseId}/course_relative_infos/zh-CN.json`)
|
|
64
|
-
return data
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* 获取强师培训课程相关信息
|
|
69
|
-
*
|
|
70
|
-
* @export
|
|
71
|
-
* @param {string} courseId 课程(课本)id
|
|
72
|
-
* @returns 课程相关信息
|
|
73
|
-
*/
|
|
74
|
-
const getCourseRelativeInfoAndProviders = memoize(async (courseId) => {
|
|
75
|
-
const { data } = await apiTeach.get(`/v2/business_courses/${courseId}/course_relative_infos/zh-CN.json`)
|
|
76
|
-
const {
|
|
77
|
-
data: provider
|
|
78
|
-
} = await apiTeach.get(`/v2/business_courses/${courseId}/course_providers.json`)
|
|
79
|
-
if (data.course_detail && provider?.length) {
|
|
80
|
-
data.course_detail.ext_info = {
|
|
81
|
-
...data.course_detail.ext_info,
|
|
82
|
-
source: provider.map((item) => item.name).join('/')
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
return data
|
|
86
|
-
}, (courseId) => `CourseRelativeInfo_${courseId}`)
|
|
87
|
-
|
|
88
|
-
export {
|
|
89
|
-
getCourseRelativeInfoAndProviders
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
export async function getCourseInfo(courseId) {
|
|
93
|
-
const textBookList = await libraryStatic.getTextBookList((data) => data.resource_id === courseId)
|
|
94
|
-
return textBookList[0]
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
* 获取活动集信息, 包括了章节目录信息
|
|
99
|
-
*
|
|
100
|
-
* @export
|
|
101
|
-
* @param {string} activitySetId
|
|
102
|
-
* @returns 课程的活动集信息, nodes字段中包含活动节点信息
|
|
103
|
-
*/
|
|
104
|
-
export async function getActiveSet(activitySetId) {
|
|
105
|
-
const { data } = await xCourseCdn.get(`/v2/activity_sets/${activitySetId}/fulls.json`)
|
|
106
|
-
return data
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
// http://api.e.101.com/services/x-course/description/rest/html?env=test&version=1.0-SNAPSHOT#/definitions/%E8%AF%BE%E7%A8%8B%E8%AF%A6%E6%83%85%E4%BF%A1%E6%81%AF
|
|
110
|
-
// 获取用户进度信息
|
|
111
|
-
// 2022/4/1 取消获取服务端用户进度, 直接使用本地进度
|
|
112
|
-
export async function getUserRelativeInfo(courseId) {
|
|
113
|
-
const { data } = await xCourse.get(`/v2/business_courses/${courseId}/user_relative_infos`)
|
|
114
|
-
return data
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
/**
|
|
118
|
-
* 获取课时配置
|
|
119
|
-
*
|
|
120
|
-
* @export
|
|
121
|
-
* @returns 课时配置
|
|
122
|
-
*/
|
|
123
|
-
export async function getActivityConfig() {
|
|
124
|
-
const { data } = await xCourseCdn.get(`/v1/x_class_hour_activity/config/${sdpAppId}/_/_.json`)
|
|
125
|
-
return data
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
/**
|
|
129
|
-
* 获取单个课时活动信息
|
|
130
|
-
*
|
|
131
|
-
* @export
|
|
132
|
-
* @param {string} activityId
|
|
133
|
-
* @returns 课时活动和关联的信息
|
|
134
|
-
*/
|
|
135
|
-
export async function getActivityInfo(activityId) {
|
|
136
|
-
const { data } = await xCourseCdn.get(`/v1/x_class_hour_activity/${activityId}.json`)
|
|
137
|
-
return data
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
/**
|
|
141
|
-
* 获取课时练习列表
|
|
142
|
-
*
|
|
143
|
-
* @export
|
|
144
|
-
* @param {string} activityId
|
|
145
|
-
* @returns 课时练习列表
|
|
146
|
-
*/
|
|
147
|
-
export async function getExerciseList(activityId) {
|
|
148
|
-
const { data } = await xCourseCdn.get(`/v1/x_class_hour_activity/${activityId}/exercises.json`)
|
|
149
|
-
return data
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
/**
|
|
153
|
-
* 获取课时练习列表(动态接口, 用户)
|
|
154
|
-
*
|
|
155
|
-
* @export
|
|
156
|
-
* @param {string} activityId
|
|
157
|
-
* @returns 课时练习列表
|
|
158
|
-
*/
|
|
159
|
-
export async function getExerciseListSyncApi(activityId) {
|
|
160
|
-
const { data } = await xClassHourAct.get(`/v1/x_class_hour_activity/${activityId}/exercises`)
|
|
161
|
-
return data
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
/**
|
|
165
|
-
* 获取资源列表
|
|
166
|
-
*
|
|
167
|
-
* @export
|
|
168
|
-
* @param {string} activityId
|
|
169
|
-
* @returns 资源列表
|
|
170
|
-
*/
|
|
171
|
-
export async function getResourceList(activityId) {
|
|
172
|
-
const { data } = await xCourseCdn.get(`/v1/x_class_hour_activity/${activityId}/resources.json`)
|
|
173
|
-
return data
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
/**
|
|
177
|
-
* 获取单个资源播放信息
|
|
178
|
-
*
|
|
179
|
-
* @export
|
|
180
|
-
* @param {string} activityId
|
|
181
|
-
* @param {string} resourceId
|
|
182
|
-
* @returns 资源信息
|
|
183
|
-
*/
|
|
184
|
-
export async function getResourceInfo(activityId, resourceId) {
|
|
185
|
-
const { data } = await xCourseCdn.get(`/v1/x_class_hour_activity/${activityId}/resources/${resourceId}.json`)
|
|
186
|
-
return data
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
/**
|
|
190
|
-
* 获取课时活动讲师列表
|
|
191
|
-
*
|
|
192
|
-
* @export
|
|
193
|
-
* @param {string} activityId
|
|
194
|
-
* @returns 课时对应讲师列表
|
|
195
|
-
*/
|
|
196
|
-
export async function getLecturerList(activityId) {
|
|
197
|
-
const { data } = await xCourseCdn.get(`/v1/x_class_hour_activity/${activityId}/lecturers.json`)
|
|
198
|
-
return data
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
export async function getExercisePrepareData(preGenPaperPath) {
|
|
202
|
-
if (!preGenPaperPath) {
|
|
203
|
-
return
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
let url = preGenPaperPath
|
|
207
|
-
console.log('process.env.SDP_ENV', process.env.SDP_ENV)
|
|
208
|
-
// if (process.env.SDP_ENV === 'ncet-xedu') {
|
|
209
|
-
// url += `?v=${getTimestamp(24 * 60 * 60)}`
|
|
210
|
-
// }
|
|
211
|
-
url += `?v=${Math.random()}`
|
|
212
|
-
const response = await axios.get(url)
|
|
213
|
-
if (response.status === 200) {
|
|
214
|
-
const { data } = response
|
|
215
|
-
const questions = data?.question_vos || []
|
|
216
|
-
const paperVo = {
|
|
217
|
-
parts: [
|
|
218
|
-
{
|
|
219
|
-
paper_questions: questions
|
|
220
|
-
}
|
|
221
|
-
]
|
|
222
|
-
}
|
|
223
|
-
return {
|
|
224
|
-
questions,
|
|
225
|
-
paperVo
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
export async function getExerciseDifficultTags() {
|
|
231
|
-
let difficultTags = JSON.parse(localStorage.getItem(difficultTagsName))
|
|
232
|
-
|
|
233
|
-
if (!difficultTags) {
|
|
234
|
-
const response = await axios.get('https://ndr-gateway.beta.101.com/v1.0/1/tag_cascades?tag_path=j2jiHwFu-&global_lang=zh-CN')
|
|
235
|
-
if (response.status === 200) {
|
|
236
|
-
const { data } = response
|
|
237
|
-
difficultTags = data
|
|
238
|
-
}
|
|
239
|
-
localStorage.setItem(difficultTagsName, JSON.stringify(difficultTags))
|
|
240
|
-
}
|
|
241
|
-
return difficultTags
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
/**
|
|
245
|
-
* 查询授课记录
|
|
246
|
-
* @returns array[课程信息]
|
|
247
|
-
*/
|
|
248
|
-
export async function getTeachRecord() {
|
|
249
|
-
const { data } = await teachRecord.get('/course')
|
|
250
|
-
return data
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
/**
|
|
254
|
-
* 新增授课课程
|
|
255
|
-
*
|
|
256
|
-
* @export
|
|
257
|
-
* @param {*} body 授课课程信息
|
|
258
|
-
*/
|
|
259
|
-
export async function addTeachRecord(body) {
|
|
260
|
-
const { data } = await teachRecord.post('/course', body)
|
|
261
|
-
return data
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
/**
|
|
265
|
-
* 更新授课信息
|
|
266
|
-
* @param {string} activityId 课程id
|
|
267
|
-
* @param {string} params 课程信息
|
|
268
|
-
*/
|
|
269
|
-
export async function updateTeachRecord(activityId, params) {
|
|
270
|
-
await teachRecord.patch(`/course_id/${activityId}`, params)
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
/**
|
|
274
|
-
* 删除授课课程
|
|
275
|
-
* @param {string} activityId 课程id
|
|
276
|
-
*/
|
|
277
|
-
export async function deleteTeachRecord(activityId) {
|
|
278
|
-
await teachRecord.delete(`/course_id/${activityId}`)
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
// export async function getCourseProgress(courseId, userId) {
|
|
282
|
-
// const { data } = await teacherCommmunity.get(`/business_courses/${courseId}/users/${userId}/progresses`, null, {
|
|
283
|
-
// headers: {
|
|
284
|
-
// 'sdp-app-id': sdpAppId
|
|
285
|
-
// }
|
|
286
|
-
// })
|
|
287
|
-
// return data
|
|
288
|
-
// }
|
|
289
|
-
|
|
290
|
-
export const RecommendChannelCode = {
|
|
291
|
-
basicWork: 'basicWork',
|
|
292
|
-
prepareLesson: 'prepare_lesson',
|
|
293
|
-
tchMaterial: 'tchMaterial',
|
|
294
|
-
course: 'course',
|
|
295
|
-
qualityCourse: 'qualityCourse'
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
export async function getCourseRecommendList({
|
|
299
|
-
libraryId,
|
|
300
|
-
resourceId,
|
|
301
|
-
channelCode,
|
|
302
|
-
topLimit
|
|
303
|
-
}) {
|
|
304
|
-
const userInfo = await getUserInfo()
|
|
305
|
-
const userRole = userInfo && getRoleCache({
|
|
306
|
-
userId: userInfo && userInfo.user_id
|
|
307
|
-
})
|
|
308
|
-
|
|
309
|
-
const result = await recommendAPIV2.get(`/libraries/${libraryId}/resource/${resourceId}/recommend`, {
|
|
310
|
-
params: {
|
|
311
|
-
channel_codes: channelCode,
|
|
312
|
-
top_limit: topLimit
|
|
313
|
-
},
|
|
314
|
-
...userRole ? {
|
|
315
|
-
headers: {
|
|
316
|
-
'sdp-identity-code': userRole
|
|
317
|
-
}
|
|
318
|
-
} : null
|
|
319
|
-
})
|
|
320
|
-
return result.data
|
|
321
|
-
}
|
|
1
|
+
import axios from 'axios'
|
|
2
|
+
import { memoize } from 'lodash'
|
|
3
|
+
import { getUserInfo } from '@/util/auth/func'
|
|
4
|
+
import { getRoleCache } from '@/util/auth/role'
|
|
5
|
+
|
|
6
|
+
import xCourseCdn, { apiTeach } from '@/config/request/x-course-cdn'
|
|
7
|
+
import xCourse from '@/config/request/x-course'
|
|
8
|
+
import xClassHourAct from '@/config/request/x-class-hour-activity'
|
|
9
|
+
|
|
10
|
+
import teachRecord from '@/config/request/teach-record'
|
|
11
|
+
import libraryStatic from '@/lib/LibraryStatic'
|
|
12
|
+
import config from '@/config/env'
|
|
13
|
+
import { recommendAPIV2 } from '@/config/request/x-proxy'
|
|
14
|
+
// import { getTimestamp } from '@/util/getTimestamp'
|
|
15
|
+
|
|
16
|
+
const difficultTagsName = 'exercise-difficult-tags'
|
|
17
|
+
|
|
18
|
+
const { app } = config
|
|
19
|
+
const sdpAppId = app.appid
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* 根据标签组从indexedDb中获取课本信息
|
|
23
|
+
*
|
|
24
|
+
* @export
|
|
25
|
+
* @param {array} tags 过滤课本的标签
|
|
26
|
+
* @returns 课本列表
|
|
27
|
+
*/
|
|
28
|
+
export async function getBookList({ tags, id }) {
|
|
29
|
+
if (tags && tags.length) {
|
|
30
|
+
const bookList = await libraryStatic.getTextBookList((book) => {
|
|
31
|
+
const tagList = book.tag_list.filter(Boolean)
|
|
32
|
+
return tags.every((tag) => !!tagList.find((t) => t.tag_id === tag.tag_id))
|
|
33
|
+
})
|
|
34
|
+
return bookList
|
|
35
|
+
}
|
|
36
|
+
if (id) {
|
|
37
|
+
const bookList = await libraryStatic.getTextBookList((book) => book.id === id)
|
|
38
|
+
return bookList
|
|
39
|
+
}
|
|
40
|
+
return []
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* 获取课程相关信息
|
|
45
|
+
*
|
|
46
|
+
* @export
|
|
47
|
+
* @param {string} courseId 课程(课本)id
|
|
48
|
+
* @returns 课程相关信息
|
|
49
|
+
*/
|
|
50
|
+
export async function getCourseRelativeInfo(courseId) {
|
|
51
|
+
const { data } = await xCourseCdn.get(`/v2/business_courses/${courseId}/course_relative_infos/zh-CN.json`)
|
|
52
|
+
return data
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* 获取教师研修课课程相关信息
|
|
57
|
+
*
|
|
58
|
+
* @export
|
|
59
|
+
* @param {string} courseId 课程(课本)id
|
|
60
|
+
* @returns 课程相关信息
|
|
61
|
+
*/
|
|
62
|
+
export async function getCourseTeachRelativeInfo(courseId) {
|
|
63
|
+
const { data } = await apiTeach.get(`/v2/business_courses/${courseId}/course_relative_infos/zh-CN.json`)
|
|
64
|
+
return data
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* 获取强师培训课程相关信息
|
|
69
|
+
*
|
|
70
|
+
* @export
|
|
71
|
+
* @param {string} courseId 课程(课本)id
|
|
72
|
+
* @returns 课程相关信息
|
|
73
|
+
*/
|
|
74
|
+
const getCourseRelativeInfoAndProviders = memoize(async (courseId) => {
|
|
75
|
+
const { data } = await apiTeach.get(`/v2/business_courses/${courseId}/course_relative_infos/zh-CN.json`)
|
|
76
|
+
const {
|
|
77
|
+
data: provider
|
|
78
|
+
} = await apiTeach.get(`/v2/business_courses/${courseId}/course_providers.json`)
|
|
79
|
+
if (data.course_detail && provider?.length) {
|
|
80
|
+
data.course_detail.ext_info = {
|
|
81
|
+
...data.course_detail.ext_info,
|
|
82
|
+
source: provider.map((item) => item.name).join('/')
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return data
|
|
86
|
+
}, (courseId) => `CourseRelativeInfo_${courseId}`)
|
|
87
|
+
|
|
88
|
+
export {
|
|
89
|
+
getCourseRelativeInfoAndProviders
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
export async function getCourseInfo(courseId) {
|
|
93
|
+
const textBookList = await libraryStatic.getTextBookList((data) => data.resource_id === courseId)
|
|
94
|
+
return textBookList[0]
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* 获取活动集信息, 包括了章节目录信息
|
|
99
|
+
*
|
|
100
|
+
* @export
|
|
101
|
+
* @param {string} activitySetId
|
|
102
|
+
* @returns 课程的活动集信息, nodes字段中包含活动节点信息
|
|
103
|
+
*/
|
|
104
|
+
export async function getActiveSet(activitySetId) {
|
|
105
|
+
const { data } = await xCourseCdn.get(`/v2/activity_sets/${activitySetId}/fulls.json`)
|
|
106
|
+
return data
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// http://api.e.101.com/services/x-course/description/rest/html?env=test&version=1.0-SNAPSHOT#/definitions/%E8%AF%BE%E7%A8%8B%E8%AF%A6%E6%83%85%E4%BF%A1%E6%81%AF
|
|
110
|
+
// 获取用户进度信息
|
|
111
|
+
// 2022/4/1 取消获取服务端用户进度, 直接使用本地进度
|
|
112
|
+
export async function getUserRelativeInfo(courseId) {
|
|
113
|
+
const { data } = await xCourse.get(`/v2/business_courses/${courseId}/user_relative_infos`)
|
|
114
|
+
return data
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* 获取课时配置
|
|
119
|
+
*
|
|
120
|
+
* @export
|
|
121
|
+
* @returns 课时配置
|
|
122
|
+
*/
|
|
123
|
+
export async function getActivityConfig() {
|
|
124
|
+
const { data } = await xCourseCdn.get(`/v1/x_class_hour_activity/config/${sdpAppId}/_/_.json`)
|
|
125
|
+
return data
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* 获取单个课时活动信息
|
|
130
|
+
*
|
|
131
|
+
* @export
|
|
132
|
+
* @param {string} activityId
|
|
133
|
+
* @returns 课时活动和关联的信息
|
|
134
|
+
*/
|
|
135
|
+
export async function getActivityInfo(activityId) {
|
|
136
|
+
const { data } = await xCourseCdn.get(`/v1/x_class_hour_activity/${activityId}.json`)
|
|
137
|
+
return data
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* 获取课时练习列表
|
|
142
|
+
*
|
|
143
|
+
* @export
|
|
144
|
+
* @param {string} activityId
|
|
145
|
+
* @returns 课时练习列表
|
|
146
|
+
*/
|
|
147
|
+
export async function getExerciseList(activityId) {
|
|
148
|
+
const { data } = await xCourseCdn.get(`/v1/x_class_hour_activity/${activityId}/exercises.json`)
|
|
149
|
+
return data
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* 获取课时练习列表(动态接口, 用户)
|
|
154
|
+
*
|
|
155
|
+
* @export
|
|
156
|
+
* @param {string} activityId
|
|
157
|
+
* @returns 课时练习列表
|
|
158
|
+
*/
|
|
159
|
+
export async function getExerciseListSyncApi(activityId) {
|
|
160
|
+
const { data } = await xClassHourAct.get(`/v1/x_class_hour_activity/${activityId}/exercises`)
|
|
161
|
+
return data
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* 获取资源列表
|
|
166
|
+
*
|
|
167
|
+
* @export
|
|
168
|
+
* @param {string} activityId
|
|
169
|
+
* @returns 资源列表
|
|
170
|
+
*/
|
|
171
|
+
export async function getResourceList(activityId) {
|
|
172
|
+
const { data } = await xCourseCdn.get(`/v1/x_class_hour_activity/${activityId}/resources.json`)
|
|
173
|
+
return data
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* 获取单个资源播放信息
|
|
178
|
+
*
|
|
179
|
+
* @export
|
|
180
|
+
* @param {string} activityId
|
|
181
|
+
* @param {string} resourceId
|
|
182
|
+
* @returns 资源信息
|
|
183
|
+
*/
|
|
184
|
+
export async function getResourceInfo(activityId, resourceId) {
|
|
185
|
+
const { data } = await xCourseCdn.get(`/v1/x_class_hour_activity/${activityId}/resources/${resourceId}.json`)
|
|
186
|
+
return data
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* 获取课时活动讲师列表
|
|
191
|
+
*
|
|
192
|
+
* @export
|
|
193
|
+
* @param {string} activityId
|
|
194
|
+
* @returns 课时对应讲师列表
|
|
195
|
+
*/
|
|
196
|
+
export async function getLecturerList(activityId) {
|
|
197
|
+
const { data } = await xCourseCdn.get(`/v1/x_class_hour_activity/${activityId}/lecturers.json`)
|
|
198
|
+
return data
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
export async function getExercisePrepareData(preGenPaperPath) {
|
|
202
|
+
if (!preGenPaperPath) {
|
|
203
|
+
return
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
let url = preGenPaperPath
|
|
207
|
+
console.log('process.env.SDP_ENV', process.env.SDP_ENV)
|
|
208
|
+
// if (process.env.SDP_ENV === 'ncet-xedu') {
|
|
209
|
+
// url += `?v=${getTimestamp(24 * 60 * 60)}`
|
|
210
|
+
// }
|
|
211
|
+
url += `?v=${Math.random()}`
|
|
212
|
+
const response = await axios.get(url)
|
|
213
|
+
if (response.status === 200) {
|
|
214
|
+
const { data } = response
|
|
215
|
+
const questions = data?.question_vos || []
|
|
216
|
+
const paperVo = {
|
|
217
|
+
parts: [
|
|
218
|
+
{
|
|
219
|
+
paper_questions: questions
|
|
220
|
+
}
|
|
221
|
+
]
|
|
222
|
+
}
|
|
223
|
+
return {
|
|
224
|
+
questions,
|
|
225
|
+
paperVo
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
export async function getExerciseDifficultTags() {
|
|
231
|
+
let difficultTags = JSON.parse(localStorage.getItem(difficultTagsName))
|
|
232
|
+
|
|
233
|
+
if (!difficultTags) {
|
|
234
|
+
const response = await axios.get('https://ndr-gateway.beta.101.com/v1.0/1/tag_cascades?tag_path=j2jiHwFu-&global_lang=zh-CN')
|
|
235
|
+
if (response.status === 200) {
|
|
236
|
+
const { data } = response
|
|
237
|
+
difficultTags = data
|
|
238
|
+
}
|
|
239
|
+
localStorage.setItem(difficultTagsName, JSON.stringify(difficultTags))
|
|
240
|
+
}
|
|
241
|
+
return difficultTags
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
/**
|
|
245
|
+
* 查询授课记录
|
|
246
|
+
* @returns array[课程信息]
|
|
247
|
+
*/
|
|
248
|
+
export async function getTeachRecord() {
|
|
249
|
+
const { data } = await teachRecord.get('/course')
|
|
250
|
+
return data
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
/**
|
|
254
|
+
* 新增授课课程
|
|
255
|
+
*
|
|
256
|
+
* @export
|
|
257
|
+
* @param {*} body 授课课程信息
|
|
258
|
+
*/
|
|
259
|
+
export async function addTeachRecord(body) {
|
|
260
|
+
const { data } = await teachRecord.post('/course', body)
|
|
261
|
+
return data
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
/**
|
|
265
|
+
* 更新授课信息
|
|
266
|
+
* @param {string} activityId 课程id
|
|
267
|
+
* @param {string} params 课程信息
|
|
268
|
+
*/
|
|
269
|
+
export async function updateTeachRecord(activityId, params) {
|
|
270
|
+
await teachRecord.patch(`/course_id/${activityId}`, params)
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
/**
|
|
274
|
+
* 删除授课课程
|
|
275
|
+
* @param {string} activityId 课程id
|
|
276
|
+
*/
|
|
277
|
+
export async function deleteTeachRecord(activityId) {
|
|
278
|
+
await teachRecord.delete(`/course_id/${activityId}`)
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
// export async function getCourseProgress(courseId, userId) {
|
|
282
|
+
// const { data } = await teacherCommmunity.get(`/business_courses/${courseId}/users/${userId}/progresses`, null, {
|
|
283
|
+
// headers: {
|
|
284
|
+
// 'sdp-app-id': sdpAppId
|
|
285
|
+
// }
|
|
286
|
+
// })
|
|
287
|
+
// return data
|
|
288
|
+
// }
|
|
289
|
+
|
|
290
|
+
export const RecommendChannelCode = {
|
|
291
|
+
basicWork: 'basicWork',
|
|
292
|
+
prepareLesson: 'prepare_lesson',
|
|
293
|
+
tchMaterial: 'tchMaterial',
|
|
294
|
+
course: 'course',
|
|
295
|
+
qualityCourse: 'qualityCourse'
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
export async function getCourseRecommendList({
|
|
299
|
+
libraryId,
|
|
300
|
+
resourceId,
|
|
301
|
+
channelCode,
|
|
302
|
+
topLimit
|
|
303
|
+
}) {
|
|
304
|
+
const userInfo = await getUserInfo()
|
|
305
|
+
const userRole = userInfo && getRoleCache({
|
|
306
|
+
userId: userInfo && userInfo.user_id
|
|
307
|
+
})
|
|
308
|
+
|
|
309
|
+
const result = await recommendAPIV2.get(`/libraries/${libraryId}/resource/${resourceId}/recommend`, {
|
|
310
|
+
params: {
|
|
311
|
+
channel_codes: channelCode,
|
|
312
|
+
top_limit: topLimit
|
|
313
|
+
},
|
|
314
|
+
...userRole ? {
|
|
315
|
+
headers: {
|
|
316
|
+
'sdp-identity-code': userRole
|
|
317
|
+
}
|
|
318
|
+
} : null
|
|
319
|
+
})
|
|
320
|
+
return result.data
|
|
321
|
+
}
|