完善了任务课程相关的接口,包括对课程的拉取的接口

aihua
SjvavE 2 years ago
parent 6f8ef6d8dd
commit c1df96118f

@ -1,4 +1,3 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager">
<output url="file://$PROJECT_DIR$/out" />

@ -1,5 +1,6 @@
const Course = require('../../model/xah/course');
const {spawn}=require('child_process');
const path = require('path');
const courseController = {
// 展示一个课程的详细内容
@ -20,10 +21,12 @@ const courseController = {
},
// 展示所有课程
// 展示(一个)用户的所有课程
showCourse: async function(req,res,next){
try{
let courseData = await Course.all()
const userId=req.body.userId;
//let courseData = await Course.getCourseByUserId(userId)
let courseData = await Course.all();
console.log(courseData);
res.json({
code: 200,
@ -34,7 +37,7 @@ const courseController = {
res.json({ code: 0, message: "操作失败", data: e })
}
},
// 新增一个课程
// 给某个用户新增一个课程
addCourse: async function(req, res, next) {
try {
const courseData = req.body; // 从请求中获取用户数据
@ -88,6 +91,74 @@ const courseController = {
data: e
});
}
},
//爬取学校课程相关的信息并返回
getAllCourse:async function(req, res, next) {
try {
let info = req.body;
//let userid = info.userId;
const passwd = info.passwd;
const year = info.year;
const term = info.term;
console.log(info);
//console.log(userid);
console.log(passwd);
console.log(year);
console.log(term);
//定位到脚本的位置
const pythonScriptPath = path.join(__dirname,'..', '..', 'utils', 'getCourse', 'getSchedule.py');
//用子进程执行代码
const pythonProcess = spawn('python', [pythonScriptPath]);
//输入部分
pythonProcess.stdin.write(info.userId + '\n');
pythonProcess.stdin.write(passwd + '\n');
pythonProcess.stdin.write(year + '\n');
pythonProcess.stdin.write(term + '\n');
//关闭
pythonProcess.stdin.end();
let ret = '';
//获取输出
pythonProcess.stdout.on('data', (data) => {
ret += data.toString();
});
//处理数据
pythonProcess.on('close', (code) => {
if (code === 0) {
// Successfully executed the Python script
// 'ret' now contains the output from the Python script
console.log('Python script执行成功');
console.log('输出结果:', ret);
// You can now send 'ret' as a response to your API request
res.json({
code: 1, // or another success code
message: '获取课程成功',
data: ret,
});
} else {
// Error in executing the Python script
res.json({
code: 0,
message: '获取课程失败',
data: 'Python script执行失败',
});
}
});
} catch (e) {
res.json({
code: 0,
message: '获取课程失败',
data: e,
});
}
}
}

@ -1 +1,97 @@
const Task = require('../../model/xah/task');
const task = require('../../model/xah/task');
const taskController = {
// 展示一个任务的详细内容
showOnetask: async function(req,res,next){
try{
const id=req.body.id;
console.log(id);
let taskData = await task.selectOne(id);
console.log(taskData);
res.json({
code: 200,
message: "操作成功",
data: taskData
})
}catch(e){
res.json({ code: 0, message: "操作失败", data: e })
}
},
// 展示一个用户的所有任务
showtask: async function(req,res,next){
try{
const id=req.body.userId;
console.log(id);
let taskData = await task.getTaskByUserId(id)
//let taskData = await task.all()
console.log(taskData);
res.json({
code: 200,
message: "操作成功",
data: taskData
})
}catch(e){
res.json({ code: 0, message: "操作失败", data: e })
}
},
// 新增一个任务
addtask: async function(req, res, next) {
try {
const taskData = req.body; // 从请求中获取用户数据
console.log(taskData);
const result = await task.insert(taskData);
res.json({
code: 200,
message: "任务添加成功",
data: result
});
} catch (e) {
res.json({
code: 0,
message: "任务添加失败",
data: e
});
}
},
//修改任务内容
updatetask: async function(req, res, next) {
try {
const taskData = req.body; // 从请求中获取用户数据
const result = await task.update(taskData.id,taskData);
res.json({
code: 200,
message: "任务修改成功",
data: taskData
});
} catch (e) {
res.json({
code: 0,
message: "任务修改失败",
data: e
});
}
},
//删除任务内容
deletetask: async function(req, res, next) {
try {
const id = req.body.id; // 从请求中获取用户数据
const result = await task.delete(id);
res.json({
code: 200,
message: "任务删除成功",
data: result
});
} catch (e) {
res.json({
code: 0,
message: "任务删除失败",
data: e
});
}
}
}
module.exports = taskController;

@ -1,10 +1,18 @@
const Base = require('../base');
const knex=require('../kenx')
class Course extends Base {
// 定义参数默认值为 user 表
constructor(props = 'course'){
super(props);
}
//根据用户id查询用户所有的课程信息
async getCourseByUserId(userId){
return await knex.select('*').from('course').where('userId',userId)
}
}
module.exports = new Course();

@ -1,10 +1,15 @@
const Base = require('../base');
const knex=require('../kenx')
class Task extends Base {
// 定义参数默认值为 user 表
constructor(props = 'tasks'){
super(props);
}
//根据用户id查询用户所有的课程信息
async getTaskByUserId(userId){
return await knex.select('*').from('tasks').where('userId',userId)
}
}
module.exports = new Task();

@ -9,9 +9,9 @@ router.get('/get_user', userController.showUser);
router.post('/add_user', userController.addUser);
//引入和clocks相关的接口
require('./xah/course')(router);
require('./xah/task')(router);
module.exports = router;

@ -1,24 +1,27 @@
const courseController=require('../../controllers/xah/course');
const clockControllers= function clockControllers(router){
const courseControllers= function courseControllers(router){
//查看所有的番茄时钟
//查看一个用户的所有课程
router.get('/get_course', courseController.showCourse);
//添加一个课程
//给某个用户添加一个课程
router.post('/add_course', courseController.addCourse);
//查询课程具体内容
//查询某个课程具体内容
router.get('/get_one',courseController.showOneCourse)
//修改课程内容
//修改某个课程内容
router.put('/update_course',courseController.updateCourse)
//删除课程
router.delete('/delete_course',courseController.deleteCourse)
//爬取学校网站的接口
router.get('/get_all_course',courseController.getAllCourse)
}
module.exports=clockControllers;
module.exports=courseControllers;

@ -1,2 +1,24 @@
var express = require('express');
var router = express.Router();
const taskController=require('../../controllers/xah/task');
const taskControllers= function taskControllers(router){
//查看一个人所有的任务
router.get('/get_task', taskController.showtask);
//添加一个课程
router.post('/add_task', taskController.addtask);
//查询课程具体内容
router.get('/get_one',taskController.showOnetask)
//修改课程内容
router.put('/update_task',taskController.updatetask)
//删除课程
router.delete('/delete_task',taskController.deletetask)
}
module.exports=taskControllers;
Loading…
Cancel
Save