guoyu/log/update_courseware_via_api.js

109 lines
3.3 KiB
JavaScript
Raw Normal View History

/**
* 通过API更新课件时长
* 使用方法node update_courseware_via_api.js
* 需要先安装npm install axios
*/
const axios = require('axios');
// 配置
const API_BASE_URL = 'http://192.168.137.1:30091';
const TOKEN = 'YOUR_ADMIN_TOKEN_HERE'; // 需要替换为管理员token
// 需要更新的课件列表
const coursewareUpdates = [
{ id: 882, duration: 3 }, // 课件882设置为3秒
{ id: 873, duration: 17 }, // 课件873设置为17秒
];
// 更新单个课件
async function updateCourseware(coursewareId, duration) {
try {
console.log(`正在更新课件 ${coursewareId},设置时长为 ${duration} 秒...`);
// 1. 先查询课件详情
const detailResponse = await axios.get(
`${API_BASE_URL}/study/courseware/${coursewareId}`,
{
headers: {
'Authorization': `Bearer ${TOKEN}`
}
}
);
if (detailResponse.data.code !== 200) {
console.error(`❌ 查询课件 ${coursewareId} 失败:`, detailResponse.data.msg);
return false;
}
const courseware = detailResponse.data.data;
// 2. 更新duration字段
courseware.duration = duration;
// 3. 提交更新
const updateResponse = await axios.put(
`${API_BASE_URL}/study/courseware`,
courseware,
{
headers: {
'Authorization': `Bearer ${TOKEN}`,
'Content-Type': 'application/json'
}
}
);
if (updateResponse.data.code === 200) {
console.log(`✅ 课件 ${coursewareId} 更新成功`);
return true;
} else {
console.error(`❌ 课件 ${coursewareId} 更新失败:`, updateResponse.data.msg);
return false;
}
} catch (error) {
console.error(`❌ 课件 ${coursewareId} 更新出错:`, error.message);
return false;
}
}
// 主函数
async function main() {
console.log('='.repeat(50));
console.log('通过API更新课件时长');
console.log('='.repeat(50));
if (TOKEN === 'YOUR_ADMIN_TOKEN_HERE') {
console.error('❌ 错误请先在脚本中设置管理员TOKEN');
console.log('获取TOKEN的方法');
console.log('1. 登录后台管理系统');
console.log('2. 打开浏览器开发者工具F12');
console.log('3. 查看Network标签中的请求头找到Authorization字段');
console.log('4. 复制Bearer后面的token替换脚本中的YOUR_ADMIN_TOKEN_HERE');
return;
}
let successCount = 0;
let failCount = 0;
for (const update of coursewareUpdates) {
const success = await updateCourseware(update.id, update.duration);
if (success) {
successCount++;
} else {
failCount++;
}
// 延迟1秒避免请求过快
await new Promise(resolve => setTimeout(resolve, 1000));
}
console.log('='.repeat(50));
console.log(`✅ 成功: ${successCount}`);
console.log(`❌ 失败: ${failCount}`);
console.log('='.repeat(50));
}
// 运行
main().catch(console.error);