1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
| const configCenter = require("uni-config-center");
| const crypto = require("crypto");
| const config = configCenter({
| pluginId: 'vk-unicloud'
| }).requireFile('index.js');
|
| function objKeySort(arys, partner_key) {
| //先用Object内置类的keys方法获取要排序对象的属性名数组,再利用Array的sort方法进行排序
| var newkey = Object.keys(arys).sort();
| console.log('newkey=' + newkey);
| var newObj = '';
| //建立一个新的对象,用于存放排好序的键值对
| for (var i = 0; i < newkey.length; i++) { //遍历newkey数组
| newObj += [newkey[i]] + '=' + arys[newkey[i]] + '&';
| }
| return newObj.substring(0, newObj.length - 1) + '&partner_key=' + partner_key;
| }
| module.exports = {
| /**
| * 添加单条数据
| * @url admin/kong/sys/add 前端调用的url参数地址
| * data 请求参数 说明
| * res 返回参数说明
| * @param {Number} code 错误码,0表示成功
| * @param {String} msg 详细信息
| */
| main: async (event) => {
| let {
| data = {}, userInfo, util, filterResponse, originalParam
| } = event;
| let {
| customUtil,
| uniID,
| config,
| pubFun,
| vk,
| db,
| _
| } = util;
| let {
| uid
| } = data;
| let res = {
| code: 0,
| msg: 'ok'
| };
| const {
| baijiayun
| } = config.vk;
| console.log(config)
| // 业务逻辑开始-----------------------------------------------------------
| let {
| course_id,
| chapter_id,
| title,
| view_num,
| short_description,
| render_desc,
| published_at,
| is_show,
| comment_status,
| duration,
| free_seconds,
| ban_drag,
| tencent_video_id,
| aliyun_video_id,
| qiniu_video_id,
| url,
| push_live_record,
| use_type
| } = data;
| let start_time = new Date(published_at[0]).getTime()
| let end_time = new Date(published_at[1]).getTime()
| let private_domain = baijiayun.private_domain
| var baijiayunParmas = {
| partner_id: baijiayun.Partner_ID,
| title,
| push_live_record,
| auto_playback_record:push_live_record,
| start_time: start_time / 1000,
| end_time: end_time / 1000,
| timestamp: Date.now() / 1000
| }
| let str = objKeySort(baijiayunParmas, baijiayun.Partner_Key)
| console.log(str)
| let sign = crypto
| .createHash('md5')
| .update(str, 'utf-8')
| .digest('hex').toLowerCase()
| baijiayunParmas.sign = sign
|
| console.log(baijiayunParmas)
| let requestRes = await vk.request({
| url: `https://${private_domain}.at.baijiayun.com/openapi/room/create`,
| method: "POST",
| data: baijiayunParmas,
| useContent: false, // 是否需要将data请求参数转成body请求体
| });
| console.log(requestRes)
| if (requestRes.code != 0) {
| return {
| code: requestRes.code,
| msg: requestRes.msg
| }
| }
| // 这里需要把 params1 params2 params3 改成你数据库里允许用户添加的字段
| let dbName = "live_course_videos";
| res.id = await vk.baseDao.add({
| dbName,
| dataJson: {
| course_id,
| chapter_id,
| title,
| view_num,
| short_description,
| render_desc,
| published_at,
| is_show,
| comment_status,
| duration,
| free_seconds,
| ban_drag,
| tencent_video_id,
| aliyun_video_id,
| qiniu_video_id,
| url,
| start_time,
| end_time,
| use_type,
| ...requestRes.data
| }
| });
| // 业务逻辑结束-----------------------------------------------------------
| return res;
| }
| }
|
|