Browse Source

删除重庆工程学院乐跑不必要的代码

Pchen. 3 months ago
parent
commit
5d25bffc09

+ 0 - 52
apis/IC/IcInfo/GetOpenScope.js

@@ -1,52 +0,0 @@
-const API = require("../../../lib/API");
-const AccessControl = require("../../../lib/AccessControl");
-const ic = require("../../../lib/IC/IC").IC;
-const { BaseStdResponse } = require("../../../BaseStdResponse");
-
-class GetOpenScope extends API {
-    constructor() {
-        super();
-
-        this.setPath('/IC/GetOpenScope')
-        this.setMethod('GET')
-    }
-
-    async onRequest(req, res) {
-        let { uuid, session, username, roomId } = req.query
-
-        if ([uuid, session, username, roomId].some(value => value === '' || value === null || value === undefined))
-            return res.json({
-                ...BaseStdResponse.MISSING_PARAMETER
-            })
-
-        // 检查 session
-        if (!await AccessControl.checkSession(uuid, session))
-            return res.status(401).json({
-                ...BaseStdResponse.ACCESS_DENIED
-            })
-
-        const password = await AccessControl.checkJwAccount(uuid, username)
-        if(!password)
-            return res.json({
-                ...BaseStdResponse.ERR,
-                msg: '教务系统账号未绑定或未激活'
-            })
-
-        try {
-            const cookie = await ic.getCookie(username, password)
-            const data = await ic.getOpenScope(cookie, roomId)
-
-            res.json({
-                ...BaseStdResponse.OK,
-                data
-            })
-        } catch (error) {
-            res.json({
-                ...BaseStdResponse.ERR,
-                msg: error.message || '获取位置信息失败!请稍后再试'
-            })
-        }
-    }
-}
-
-module.exports.GetOpenScope = GetOpenScope;

+ 0 - 56
apis/IC/IcInfo/GetSeatInfo.js

@@ -1,56 +0,0 @@
-const API = require("../../../lib/API");
-const AccessControl = require("../../../lib/AccessControl");
-const ic = require("../../../lib/IC/IC").IC;
-const { BaseStdResponse } = require("../../../BaseStdResponse");
-
-class GetSeatInfo extends API {
-    constructor() {
-        super();
-
-        this.setPath('/IC/GetSeatInfo')
-        this.setMethod('GET')
-    }
-
-    async onRequest(req, res) {
-        let { uuid, session, username, roomId, date } = req.query
-
-        if ([uuid, session, username, roomId, date].some(value => value === '' || value === null || value === undefined))
-            return res.json({
-                ...BaseStdResponse.MISSING_PARAMETER
-            })
-
-        // 检查 session
-        if (!await AccessControl.checkSession(uuid, session))
-            return res.status(401).json({
-                ...BaseStdResponse.ACCESS_DENIED
-            })
-
-        const password = await AccessControl.checkJwAccount(uuid, username)
-        if(!password)
-            return res.json({
-                ...BaseStdResponse.ERR,
-                msg: '教务系统账号未绑定或未激活'
-            })
-
-        try {
-            let cookie = await ic.getCookie(username, password)
-            let data = await ic.getSeatInfo(cookie, roomId, date)
-            if(data.code === 300) {
-                cookie = await ic.resetCookie(username, password)
-                data = await ic.getSeatInfo(cookie, roomId, date)
-            }
-
-            res.json({
-                ...BaseStdResponse.OK,
-                data
-            })
-        } catch (error) {
-            res.json({
-                ...BaseStdResponse.ERR,
-                msg: error.message || '获取位置信息失败!请稍后再试'
-            })
-        }
-    }
-}
-
-module.exports.GetSeatInfo = GetSeatInfo

+ 0 - 57
apis/IC/IcInfo/GetSeatMenu.js

@@ -1,57 +0,0 @@
-const API = require("../../../lib/API");
-const AccessControl = require("../../../lib/AccessControl");
-const ic = require("../../../lib/IC/IC").IC;
-const { BaseStdResponse } = require("../../../BaseStdResponse");
-
-class GetSeatMenu extends API {
-    constructor() {
-        super();
-
-        this.setPath('/IC/GetSeatMenu')
-        this.setMethod('GET')
-    }
-
-    async onRequest(req, res) {
-        let { uuid, session, username } = req.query
-
-        if ([uuid, session, username].some(value => value === '' || value === null || value === undefined))
-            return res.json({
-                ...BaseStdResponse.MISSING_PARAMETER
-            })
-
-        // 检查 session
-        if (!await AccessControl.checkSession(uuid, session))
-            return res.status(401).json({
-                ...BaseStdResponse.ACCESS_DENIED
-            })
-
-        const password = await AccessControl.checkJwAccount(uuid, username)
-        if (!password)
-            return res.json({
-                ...BaseStdResponse.ERR,
-                msg: '教务系统账号未绑定或未激活'
-            })
-
-        try {
-            const cookie = await ic.getCookie(username, password)
-            const data = await ic.getSeatMenu(cookie)
-
-            if (data.code || data.code === 300) {
-                cookie = await ic.resetCookie(username, password)
-                data = await ic.getSeatMenu(cookie)
-            }
-
-            res.json({
-                ...BaseStdResponse.OK,
-                data
-            })
-        } catch (error) {
-            res.json({
-                ...BaseStdResponse.ERR,
-                msg: error.message || '获取位置信息失败!请稍后再试'
-            })
-        }
-    }
-}
-
-module.exports.GetSeatMenu = GetSeatMenu;

+ 0 - 50
apis/IC/Order/OrderHistory.js

@@ -1,50 +0,0 @@
-const API = require("../../../lib/API");
-const AccessControl = require("../../../lib/AccessControl");
-const db = require('../../../plugin/DataBase/db')
-const { BaseStdResponse } = require("../../../BaseStdResponse");
-
-class OrderHistory extends API {
-    constructor() {
-        super();
-
-        this.setPath('/IC/OrderHistory')
-        this.setMethod('GET')
-    }
-
-    async onRequest(req, res) {
-        let { uuid, session } = req.query
-
-        if ([uuid, session].some(value => value === '' || value === null || value === undefined))
-            return res.json({
-                ...BaseStdResponse.MISSING_PARAMETER
-            })
-
-        // 检查 session
-        if (!await AccessControl.checkSession(uuid, session))
-            return res.status(401).json({
-                ...BaseStdResponse.ACCESS_DENIED
-            })
-
-
-        try {
-            let sql = 'SELECT * FROM ic_record WHERE create_user = ?'
-            let rows = await db.query(sql, [uuid])
-            if(!rows)
-                return res.json({
-                    ...BaseStdResponse.DATABASE_ERR
-                })
-
-            res.json({
-                ...BaseStdResponse.OK,
-                data: rows
-            })
-        } catch (error) {
-            res.json({
-                ...BaseStdResponse.ERR,
-                msg: error.message || '获取信息失败!请稍后再试'
-            })
-        }
-    }
-}
-
-module.exports.OrderHistory = OrderHistory

+ 0 - 75
apis/IC/Rule/AddRule.js

@@ -1,75 +0,0 @@
-const API = require("../../../lib/API");
-const db = require("../../../plugin/DataBase/db");
-const AccessControl = require("../../../lib/AccessControl");
-const { BaseStdResponse } = require("../../../BaseStdResponse");
-
-class AddRule extends API {
-    constructor() {
-        super()
-
-        this.setPath('/IC/Rule')
-        this.setMethod('POST')
-    }
-
-    async onRequest(req, res) {
-        let {
-            uuid,
-            session,
-            id,
-            name,
-            loop,
-            mode,
-            day_of_week,
-            state,
-            users,
-            beginTime,
-            endTime
-        } = req.body
-
-        if ([uuid, session, name, loop, mode, users, beginTime, endTime].some(value => value === '' || value === null || value === undefined) || (loop && !day_of_week))
-            return res.json({
-                ...BaseStdResponse.MISSING_PARAMETER
-            })
-
-        // 检查 session
-        if (!await AccessControl.checkSession(uuid, session))
-            return res.status(401).json({
-                ...BaseStdResponse.ACCESS_DENIED
-            })
-
-        let sql, r
-        const time = new Date().getTime()
-
-        if (!id) {
-            sql = 'INSERT INTO ic_rule (\`name\`, create_user, create_time, \`loop\`, \`mode\`, day_of_week, users, beginTime, endTime) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)'
-            r = await db.query(sql, [name, uuid, time, loop, mode, day_of_week, users, beginTime, endTime])
-        } else {
-            // 确保只有一个规则生效
-            // if(state == 1) {
-            //     sql = 'UPDATE ic_rule SET \`state\` = 0 WHERE create_user = ?'
-            //     await db.query(sql, [uuid])
-            // }
-
-            sql = 'UPDATE ic_rule SET \`name\` = ?, \`loop\` = ?, \`mode\` = ?, day_of_week = ?, update_time = ?, \`state\` = ?, users = ?, beginTime = ?, endTime = ? WHERE id = ? AND create_user = ?'
-            r = await db.query(sql, [name, loop, mode, day_of_week, time, state, users, beginTime, endTime, id, uuid])
-        }
-
-        try {
-            if (r && r.affectedRows > 0) {
-                res.json({
-                    ...BaseStdResponse.OK
-                })
-            } else {
-                res.json({ ...BaseStdResponse.ERR, endpoint: 7894378, msg: '添加规则失败!数据库错误' })
-            }
-        } catch (err) {
-            this.logger.error(`添加规则失败!${err.stack}`)
-            res.json({
-                ...BaseStdResponse.ERR,
-                msg: "添加规则失败!",
-            });
-        }
-    }
-}
-
-module.exports.AddRule = AddRule;

+ 0 - 49
apis/IC/Rule/DeleteRule.js

@@ -1,49 +0,0 @@
-const API = require("../../../lib/API");
-const db = require("../../../plugin/DataBase/db");
-const AccessControl = require("../../../lib/AccessControl");
-const { BaseStdResponse } = require("../../../BaseStdResponse");
-
-class DeleteRule extends API {
-    constructor() {
-        super();
-
-        this.setPath('/IC/Rule')
-        this.setMethod('DELETE')
-    }
-
-    async onRequest(req, res) {
-        let { uuid, session, id } = req.body
-
-        if ([uuid, session, id].some(value => value === '' || value === null || value === undefined))
-            return res.json({
-                ...BaseStdResponse.MISSING_PARAMETER
-            })
-
-        // 检查 session
-        if (!await AccessControl.checkSession(uuid, session))
-            return res.status(401).json({
-                ...BaseStdResponse.ACCESS_DENIED
-            })
-
-        let sql = 'DELETE FROM ic_rule WHERE id = ? AND create_user = ?'
-        let r = await db.query(sql, [id, uuid])
-
-        try {
-            if (r && r.affectedRows > 0) {
-                res.json({
-                    ...BaseStdResponse.OK
-                })
-            } else {
-                res.json({ ...BaseStdResponse.ERR, endpoint: 7894378, msg: '删除规则失败!数据库错误' })
-            }
-        } catch (err) {
-            this.logger.error(`删除规则失败!${err.stack}`)
-            res.json({
-                ...BaseStdResponse.ERR,
-                msg: "删除规则失败!",
-            });
-        }
-    }
-}
-
-module.exports.DeleteRule = DeleteRule

+ 0 - 47
apis/IC/Rule/GetRule.js

@@ -1,47 +0,0 @@
-const API = require("../../../lib/API");
-const db = require("../../../plugin/DataBase/db");
-const AccessControl = require("../../../lib/AccessControl");
-const { BaseStdResponse } = require("../../../BaseStdResponse");
-
-class GetRule extends API {
-    constructor() {
-        super();
-
-        this.setPath('/IC/Rule')
-        this.setMethod('GET')
-    }
-
-    async onRequest(req, res) {
-        let {
-            uuid,
-            session
-        } = req.query
-
-        if ([uuid, session].some(value => value === '' || value === null || value === undefined))
-            return res.json({
-                ...BaseStdResponse.MISSING_PARAMETER
-            })
-
-        // 检查 session
-        if (!await AccessControl.checkSession(uuid, session))
-            return res.status(401).json({
-                ...BaseStdResponse.ACCESS_DENIED
-            })
-
-        let sql = 'SELECT * FROM ic_rule WHERE create_user = ?'
-        let rows = await db.query(sql, [uuid])
-
-        if (!rows)
-            return res.json({
-                ...BaseStdResponse.MISSING_FILE,
-                msg: '获取规则列表失败!'
-            })
-
-        res.json({
-            ...BaseStdResponse.OK,
-            data: rows
-        })
-    }
-}
-
-module.exports.GetRule = GetRule;

+ 0 - 56
apis/IC/Seat/DeleteSeat.js

@@ -1,56 +0,0 @@
-const API = require("../../../lib/API");
-const AccessControl = require("../../../lib/AccessControl");
-const ic = require("../../../lib/IC/IC").IC;
-const { BaseStdResponse } = require("../../../BaseStdResponse");
-
-class DeleteSeat extends API {
-    constructor() {
-        super();
-
-        this.setPath('/IC/Seat')
-        this.setMethod('delete')
-    }
-
-    async onRequest(req, res) {
-        let { uuid, session, username, seatuuid } = req.body
-
-        if ([uuid, session, username, seatuuid].some(value => value === '' || value === null || value === undefined))
-            return res.json({
-                ...BaseStdResponse.MISSING_PARAMETER
-            })
-
-        // 检查 session
-        if (!await AccessControl.checkSession(uuid, session))
-            return res.status(401).json({
-                ...BaseStdResponse.ACCESS_DENIED
-            })
-
-        const password = await AccessControl.checkJwAccount(uuid, username)
-        if(!password)
-            res.json({
-                ...BaseStdResponse.ERR,
-                msg: '教务系统账号未绑定或未激活'
-            })
-
-        try {
-            let cookie = await ic.getCookie(username, password)
-            let resdata = await ic.deleteSeat(cookie, seatuuid)
-            if (resdata.code === 300) {
-                cookie = await ic.resetCookie(username, password)
-                resdata = await ic.deleteSeat(cookie, seatuuid)
-            }
-
-            res.json({
-                ...BaseStdResponse.OK,
-                data: resdata.data
-            })
-        } catch (error) {
-            res.json({
-                ...BaseStdResponse.ERR,
-                msg: error.message || '取消预约失败!请稍后再试'
-            })
-        }
-    }
-}
-
-module.exports.DeleteSeat = DeleteSeat

+ 0 - 56
apis/IC/Seat/EndAhead.js

@@ -1,56 +0,0 @@
-const API = require("../../../lib/API");
-const AccessControl = require("../../../lib/AccessControl");
-const ic = require("../../../lib/IC/IC").IC;
-const { BaseStdResponse } = require("../../../BaseStdResponse");
-
-class EndAhead extends API {
-    constructor() {
-        super();
-
-        this.setPath('/IC/Seat/EndAhead')
-        this.setMethod('post')
-    }
-
-    async onRequest(req, res) {
-        let { uuid, session, username, seatuuid } = req.body
-
-        if ([uuid, session, username, seatuuid].some(value => value === '' || value === null || value === undefined))
-            return res.json({
-                ...BaseStdResponse.MISSING_PARAMETER
-            })
-
-        // 检查 session
-        if (!await AccessControl.checkSession(uuid, session))
-            return res.status(401).json({
-                ...BaseStdResponse.ACCESS_DENIED
-            })
-
-        const password = await AccessControl.checkJwAccount(uuid, username)
-        if(!password)
-            res.json({
-                ...BaseStdResponse.ERR,
-                msg: '教务系统账号未绑定或未激活'
-            })
-
-        try {
-            let cookie = await ic.getCookie(username, password)
-            let resdata = await ic.endAhead(cookie, seatuuid)
-            if (resdata.code === 300) {
-                cookie = await ic.resetCookie(username, password)
-                resdata = await ic.endAhead(cookie, seatuuid)
-            }
-
-            res.json({
-                ...BaseStdResponse.OK,
-                data: resdata.data
-            })
-        } catch (error) {
-            res.json({
-                ...BaseStdResponse.ERR,
-                msg: error.message || '取消预约失败!请稍后再试'
-            })
-        }
-    }
-}
-
-module.exports.EndAhead = EndAhead

+ 0 - 60
apis/IC/Seat/MyOrder.js

@@ -1,60 +0,0 @@
-const API = require("../../../lib/API");
-const AccessControl = require("../../../lib/AccessControl");
-const ic = require("../../../lib/IC/IC").IC;
-const { BaseStdResponse } = require("../../../BaseStdResponse");
-
-class MyOrder extends API {
-    constructor() {
-        super();
-
-        this.setPath('/IC/Seat/MyOrder')
-        this.setMethod('POST')
-    }
-
-    async onRequest(req, res) {
-        let { uuid, session, username, beginDate, endDate, page, pageNum } = req.body
-
-        if ([uuid, session, username, beginDate, endDate, page, pageNum].some(value => value === '' || value === null || value === undefined))
-            return res.json({
-                ...BaseStdResponse.MISSING_PARAMETER
-            })
-
-        // 检查 session
-        if (!await AccessControl.checkSession(uuid, session))
-            return res.status(401).json({
-                ...BaseStdResponse.ACCESS_DENIED
-            })
-
-        const password = await AccessControl.checkJwAccount(uuid, username)
-        if (!password)
-            res.json({
-                ...BaseStdResponse.ERR,
-                msg: '教务系统账号未绑定或未激活'
-            })
-
-        const data = {
-            beginDate, endDate, page, pageNum
-        }
-
-        try {
-            let cookie = await ic.getCookie(username, password)
-            let resdata = await ic.getMyOrder(cookie, data)
-            if (resdata.code === 300) {
-                cookie = await ic.resetCookie(username, password)
-                resdata = await ic.getMyOrder(cookie, data)
-            }
-
-            res.json({
-                ...BaseStdResponse.OK,
-                data: resdata.data
-            })
-        } catch (error) {
-            res.json({
-                ...BaseStdResponse.ERR,
-                msg: error.message || '获取信息失败!请稍后再试'
-            })
-        }
-    }
-}
-
-module.exports.MyOrder = MyOrder

+ 0 - 60
apis/IC/Seat/OrderSeat.js

@@ -1,60 +0,0 @@
-const API = require("../../../lib/API");
-const AccessControl = require("../../../lib/AccessControl");
-const ic = require("../../../lib/IC/IC").IC;
-const { BaseStdResponse } = require("../../../BaseStdResponse");
-
-class OrderSeat extends API {
-    constructor() {
-        super();
-
-        this.setPath('/IC/Seat')
-        this.setMethod('POST')
-    }
-
-    async onRequest(req, res) {
-        let { uuid, session, username, resvDev, resvBeginTime, resvEndTime } = req.body
-
-        if ([uuid, session, username, resvDev, resvBeginTime, resvEndTime].some(value => value === '' || value === null || value === undefined))
-            return res.json({
-                ...BaseStdResponse.MISSING_PARAMETER
-            })
-
-        // 检查 session
-        if (!await AccessControl.checkSession(uuid, session))
-            return res.status(401).json({
-                ...BaseStdResponse.ACCESS_DENIED
-            })
-
-        const password = await AccessControl.checkJwAccount(uuid, username)
-        if(!password)
-            res.json({
-                ...BaseStdResponse.ERR,
-                msg: '教务系统账号未绑定或未激活'
-            })
-
-        const data = {
-            resvDev, resvBeginTime, resvEndTime
-        }
-
-        try {
-            let cookie = await ic.getCookie(username, password)
-            let resdata = await ic.orderSeat(cookie, data)
-            if (resdata.code === 300) {
-                cookie = await ic.resetCookie(username, password)
-                resdata = await ic.orderSeat(cookie, data)
-            }
-
-            res.json({
-                ...BaseStdResponse.OK,
-                data: resdata.data
-            })
-        } catch (error) {
-            res.json({
-                ...BaseStdResponse.ERR,
-                msg: error.message || '预定座位失败!请稍后再试'
-            })
-        }
-    }
-}
-
-module.exports.OrderSeat = OrderSeat

+ 0 - 74
apis/IC/Star/AddStar.js

@@ -1,74 +0,0 @@
-const API = require("../../../lib/API");
-const db = require("../../../plugin/DataBase/db");
-const AccessControl = require("../../../lib/AccessControl");
-const { BaseStdResponse } = require("../../../BaseStdResponse");
-
-class AddStar extends API{
-    constructor(){
-        super()
-
-        this.setPath('/IC/Star')
-        this.setMethod('POST')
-    }
-
-    async onRequest(req, res){
-
-        let {
-            uuid,
-            session,
-            devId,
-            id,
-            state,
-            name,
-            index
-        } = req.body
-
-        if ([uuid, session, devId, name].some(value => value === '' || value === null || value === undefined))
-            return res.json({
-                ...BaseStdResponse.MISSING_PARAMETER
-            })
-
-        // 检查 session
-        if (!await AccessControl.checkSession(uuid, session))
-            return res.status(401).json({
-                ...BaseStdResponse.ACCESS_DENIED
-            })
-
-        let sql, r
-        const time = new Date().getTime()
-
-        if(!id) {
-            sql = 'SELECT id FROM ic_star WHERE create_user = ? AND devId = ?'
-            const rows = await db.query(sql, [uuid, devId])
-            if (!rows)
-                return res.json({ ...BaseStdResponse.ERR, endpoint: 794378, msg: '添加志愿失败!数据库错误' })
-            if(rows.length > 0)
-                return res.json({ ...BaseStdResponse.ERR, endpoint: 789378, msg: '您已添加过该位置' })
-
-            sql = 'INSERT INTO ic_star (devId, create_user, create_time, \`name\`) VALUES (?, ?, ?, ?)'
-            r = await db.query(sql, [devId, uuid, time, name])
-        } else {
-            sql = 'UPDATE ic_star SET devId = ?, state = ?, \`name\` = ?, \`index\` = ? WHERE id = ? AND create_user = ?'
-            r = await db.query(sql, [devId, state, name, index, id, uuid])
-        }
-
-        try {
-            if (r && r.affectedRows > 0) {
-                res.json({
-                    ...BaseStdResponse.OK
-                })
-            } else {
-                res.json({ ...BaseStdResponse.ERR, endpoint: 7894378, msg: '添加志愿失败!数据库错误' })
-            }
-        } catch (err) {
-            this.logger.error(`添加志愿失败!${err.stack}`)
-            res.json({
-                ...BaseStdResponse.ERR,
-                msg: "添加志愿失败!",
-            });
-        }
-    }
-
-}
-
-module.exports.AddStar = AddStar;

+ 0 - 66
apis/IC/Star/AddStarGroup.js

@@ -1,66 +0,0 @@
-const API = require("../../../lib/API");
-const db = require("../../../plugin/DataBase/db");
-const AccessControl = require("../../../lib/AccessControl");
-const { BaseStdResponse } = require("../../../BaseStdResponse");
-
-class AddStarGroup extends API{
-    constructor(){
-        super()
-
-        this.setPath('/IC/StarGroup')
-        this.setMethod('POST')
-    }
-
-    async onRequest(req, res){
-
-        let {
-            uuid,
-            session,
-            id,
-            seats,
-            state,
-            name,
-            index
-        } = req.body
-
-        if ([uuid, session, seats, name, state].some(value => value === '' || value === null || value === undefined))
-            return res.json({
-                ...BaseStdResponse.MISSING_PARAMETER
-            })
-
-        // 检查 session
-        if (!await AccessControl.checkSession(uuid, session))
-            return res.status(401).json({
-                ...BaseStdResponse.ACCESS_DENIED
-            })
-
-        let sql, r
-        const time = new Date().getTime()
-
-        if(!id) {
-            sql = 'INSERT INTO ic_star_group (seats, create_user, create_time, \`name\`, state) VALUES (?, ?, ?, ?, ?)'
-            r = await db.query(sql, [seats, uuid, time, name, state])
-        } else {
-            sql = 'UPDATE ic_star_group SET seats = ?, state = ?, \`name\` = ?, \`index\` = ?, update_time = ? WHERE id = ? AND create_user = ?'
-            r = await db.query(sql, [seats, state, name, index, time, id, uuid])
-        }
-
-        try {
-            if (r && r.affectedRows > 0) {
-                res.json({
-                    ...BaseStdResponse.OK
-                })
-            } else {
-                res.json({ ...BaseStdResponse.ERR, endpoint: 7894378, msg: '添加志愿组失败!数据库错误' })
-            }
-        } catch (err) {
-            this.logger.error(`添加志愿组失败!${err.stack}`)
-            res.json({
-                ...BaseStdResponse.ERR,
-                msg: "添加志愿组失败!",
-            });
-        }
-    }
-}
-
-module.exports.AddStarGroup = AddStarGroup

+ 0 - 49
apis/IC/Star/DeleteStar.js

@@ -1,49 +0,0 @@
-const API = require("../../../lib/API");
-const db = require("../../../plugin/DataBase/db");
-const AccessControl = require("../../../lib/AccessControl");
-const { BaseStdResponse } = require("../../../BaseStdResponse");
-
-class DeleteStar extends API {
-    constructor() {
-        super();
-
-        this.setPath('/IC/Star')
-        this.setMethod('DELETE')
-    }
-
-    async onRequest(req, res) {
-        let { uuid, session, id } = req.body
-
-        if ([uuid, session, id].some(value => value === '' || value === null || value === undefined))
-            return res.json({
-                ...BaseStdResponse.MISSING_PARAMETER
-            })
-
-        // 检查 session
-        if (!await AccessControl.checkSession(uuid, session))
-            return res.status(401).json({
-                ...BaseStdResponse.ACCESS_DENIED
-            })
-
-        let sql = 'DELETE FROM ic_star WHERE id = ? AND create_user = ?'
-        let r = await db.query(sql, [id, uuid])
-
-        try {
-            if (r && r.affectedRows > 0) {
-                res.json({
-                    ...BaseStdResponse.OK
-                })
-            } else {
-                res.json({ ...BaseStdResponse.ERR, endpoint: 7894378, msg: '删除志愿失败!数据库错误' })
-            }
-        } catch (err) {
-            this.logger.error(`删除志愿失败!${err.stack}`)
-            res.json({
-                ...BaseStdResponse.ERR,
-                msg: "删除志愿失败!",
-            });
-        }
-    }
-}
-
-module.exports.DeleteStar = DeleteStar;

+ 0 - 49
apis/IC/Star/DeleteStarGroup.js

@@ -1,49 +0,0 @@
-const API = require("../../../lib/API");
-const db = require("../../../plugin/DataBase/db");
-const AccessControl = require("../../../lib/AccessControl");
-const { BaseStdResponse } = require("../../../BaseStdResponse");
-
-class DeleteStarGroup extends API {
-    constructor() {
-        super();
-
-        this.setPath('/IC/StarGroup')
-        this.setMethod('DELETE')
-    }
-
-    async onRequest(req, res) {
-        let { uuid, session, id } = req.body
-
-        if ([uuid, session, id].some(value => value === '' || value === null || value === undefined))
-            return res.json({
-                ...BaseStdResponse.MISSING_PARAMETER
-            })
-
-        // 检查 session
-        if (!await AccessControl.checkSession(uuid, session))
-            return res.status(401).json({
-                ...BaseStdResponse.ACCESS_DENIED
-            })
-
-        let sql = 'DELETE FROM ic_star_group WHERE id = ? AND create_user = ?'
-        let r = await db.query(sql, [id, uuid])
-
-        try {
-            if (r && r.affectedRows > 0) {
-                res.json({
-                    ...BaseStdResponse.OK
-                })
-            } else {
-                res.json({ ...BaseStdResponse.ERR, endpoint: 7894378, msg: '删除志愿组失败!数据库错误' })
-            }
-        } catch (err) {
-            this.logger.error(`删除志愿组失败!${err.stack}`)
-            res.json({
-                ...BaseStdResponse.ERR,
-                msg: "删除志愿组失败!",
-            });
-        }
-    }
-}
-
-module.exports.DeleteStarGroup = DeleteStarGroup;

+ 0 - 47
apis/IC/Star/GetStar.js

@@ -1,47 +0,0 @@
-const API = require("../../../lib/API");
-const db = require("../../../plugin/DataBase/db");
-const AccessControl = require("../../../lib/AccessControl");
-const { BaseStdResponse } = require("../../../BaseStdResponse");
-
-class GetStar extends API {
-    constructor() {
-        super();
-
-        this.setPath('/IC/Star')
-        this.setMethod('GET')
-    }
-
-    async onRequest(req, res) {
-        let {
-            uuid,
-            session
-        } = req.query
-
-        if ([uuid, session].some(value => value === '' || value === null || value === undefined))
-            return res.json({
-                ...BaseStdResponse.MISSING_PARAMETER
-            })
-
-        // 检查 session
-        if (!await AccessControl.checkSession(uuid, session))
-            return res.status(401).json({
-                ...BaseStdResponse.ACCESS_DENIED
-            })
-
-        let sql = 'SELECT * FROM ic_star WHERE create_user = ?'
-        let rows = await db.query(sql, [uuid])
-
-        if (!rows)
-            return res.json({
-                ...BaseStdResponse.MISSING_FILE,
-                msg: '获取志愿列表失败!'
-            })
-
-        res.json({
-            ...BaseStdResponse.OK,
-            data: rows
-        })
-    }
-}
-
-module.exports.GetStar = GetStar;

+ 0 - 47
apis/IC/Star/GetStarGroup.js

@@ -1,47 +0,0 @@
-const API = require("../../../lib/API");
-const db = require("../../../plugin/DataBase/db");
-const AccessControl = require("../../../lib/AccessControl");
-const { BaseStdResponse } = require("../../../BaseStdResponse");
-
-class GetStarGroup extends API {
-    constructor() {
-        super();
-
-        this.setPath('/IC/StarGroup')
-        this.setMethod('GET')
-    }
-
-    async onRequest(req, res) {
-        let {
-            uuid,
-            session
-        } = req.query
-
-        if ([uuid, session].some(value => value === '' || value === null || value === undefined))
-            return res.json({
-                ...BaseStdResponse.MISSING_PARAMETER
-            })
-
-        // 检查 session
-        if (!await AccessControl.checkSession(uuid, session))
-            return res.status(401).json({
-                ...BaseStdResponse.ACCESS_DENIED
-            })
-
-        let sql = 'SELECT * FROM ic_star_group WHERE create_user = ?'
-        let rows = await db.query(sql, [uuid])
-
-        if (!rows)
-            return res.json({
-                ...BaseStdResponse.MISSING_FILE,
-                msg: '获取志愿组列表失败!'
-            })
-
-        res.json({
-            ...BaseStdResponse.OK,
-            data: rows
-        })
-    }
-}
-
-module.exports.GetStarGroup = GetStarGroup;

+ 0 - 77
apis/JW/ActiveAccount.js

@@ -1,77 +0,0 @@
-const API = require("../../lib/API.js");
-const db = require("../../plugin/DataBase/db.js");
-const AccessControl = require("../../lib/AccessControl");
-const ic = require("../../lib/IC/IC").IC;
-const { BaseStdResponse } = require("../../BaseStdResponse.js");
-
-// 激活教务账号
-class ActiveAccount extends API {
-    constructor() {
-        super();
-
-        this.setPath('/JW/ActiveAccount')
-        this.setMethod('POST')
-    }
-
-    async checkJwAccount(uuid, username) {
-        const sql = 'SELECT password FROM jw_account WHERE create_user = ? AND username = ?'
-        const rows = await db.query(sql, [uuid, username]);
-        if (!rows || rows.length !== 1 || !rows[0].password)
-            return false
-        return rows[0].password;
-    }
-
-    async onRequest(req, res) {
-        let { uuid, session, username } = req.body
-
-        if ([uuid, session, username].some(value => value === '' || value === null || value === undefined))
-            return res.json({
-                ...BaseStdResponse.MISSING_PARAMETER,
-                endpoint: 1513126
-            })
-
-        if (!await AccessControl.checkSession(uuid, session))
-            return res.status(401).json({
-                ...BaseStdResponse.ACCESS_DENIED
-            })
-
-        const password = await this.checkJwAccount(uuid, username)
-        if (!password)
-            res.json({
-                ...BaseStdResponse.ERR,
-                msg: '教务系统账号未绑定'
-            })
-
-        try {
-            let cookie = await ic.resetCookie(username, password)
-            let user = await ic.getUserInfo(cookie)
-            if (user.code === 300) {
-                cookie = await ic.resetCookie(username, password)
-                user = await ic.getUserInfo(cookie)
-            }
-
-            const { trueName, className, deptName } = user
-
-            const time = new Date().getTime()
-
-            let sql = 'UPDATE jw_account SET state = 1, update_time = ?, realname = ?, className = ?, deptName = ? WHERE username = ?'
-
-            let r = await db.query(sql, [time, trueName, className, deptName, username])
-            if (r && r.affectedRows > 0) {
-                res.json({
-                    ...BaseStdResponse.OK,
-                    id: r.insertId
-                })
-            } else {
-                res.json({ ...BaseStdResponse.ERR, endpoint: 7894378, msg: '激活账号失败!数据库错误' })
-            }
-        } catch (err) {
-            res.json({
-                ...BaseStdResponse.ERR,
-                msg: `激活账号失败!${err.message || ''}`,
-            });
-        }
-    }
-}
-
-module.exports.ActiveAccount = ActiveAccount

+ 0 - 59
apis/JW/AddAccount.js

@@ -1,59 +0,0 @@
-const API = require("../../lib/API.js");
-const db = require("../../plugin/DataBase/db.js");
-const { BaseStdResponse } = require("../../BaseStdResponse.js");
-const AccessControl = require("../../lib/AccessControl");
-
-class GetType extends API {
-    constructor() {
-        super();
-
-        this.setPath('/JW/Account')
-        this.setMethod('POST')
-    }
-
-    async onRequest(req, res) {
-        let { uuid, session, username, password, id } = req.body
-
-        if ([uuid, session, username, password].some(value => value === '' || value === null || value === undefined))
-            return res.json({
-                ...BaseStdResponse.MISSING_PARAMETER,
-                endpoint: 1513126
-            })
-
-        if (!await AccessControl.checkSession(uuid, session))
-            return res.status(401).json({
-                ...BaseStdResponse.ACCESS_DENIED
-            })
-
-        const time = new Date().getTime()
-        password = atob(password)
-
-        let sql, r
-        if (!id) {
-            sql = 'INSERT INTO jw_account (username, password, create_user, create_time) VALUES (?, ?, ?, ?)'
-            r = await db.query(sql, [username, password, uuid, time])
-        } else {
-            sql = 'UPDATE jw_account SET username = ?, password = ?, update_time = ?, state = ? WHERE id = ?'
-            r = await db.query(sql, [username, password, time, 0, id])
-        }
-
-        try {
-            if (r && r.affectedRows > 0) {
-                res.json({
-                    ...BaseStdResponse.OK,
-                    id: r.insertId
-                })
-            } else {
-                res.json({ ...BaseStdResponse.ERR, endpoint: 7894378, msg: '添加教务系统账号失败!数据库错误' })
-            }
-        } catch (err) {
-            this.logger.error(`添加教务系统账号失败!${err.stack}`)
-            res.json({
-                ...BaseStdResponse.ERR,
-                msg: "添加教务系统账号失败!",
-            });
-        }
-    }
-}
-
-module.exports.GetType = GetType;

+ 0 - 49
apis/JW/DeleteAccount.js

@@ -1,49 +0,0 @@
-const API = require("../../lib/API");
-const db = require("../../plugin/DataBase/db");
-const AccessControl = require("../../lib/AccessControl");
-const { BaseStdResponse } = require("../../BaseStdResponse");
-
-class DeleteAccount extends API {
-    constructor() {
-        super();
-
-        this.setPath('/JW/Account')
-        this.setMethod('DELETE')
-    }
-
-    async onRequest(req, res) {
-        let { uuid, session, id } = req.body
-
-        if ([uuid, session, id].some(value => value === '' || value === null || value === undefined))
-            return res.json({
-                ...BaseStdResponse.MISSING_PARAMETER
-            })
-
-        // 检查 session
-        if (!await AccessControl.checkSession(uuid, session))
-            return res.status(401).json({
-                ...BaseStdResponse.ACCESS_DENIED
-            })
-
-        let sql = 'DELETE FROM jw_account WHERE id = ? AND create_user = ?'
-        let r = await db.query(sql, [id, uuid])
-
-        try {
-            if (r && r.affectedRows > 0) {
-                res.json({
-                    ...BaseStdResponse.OK
-                })
-            } else {
-                res.json({ ...BaseStdResponse.ERR, endpoint: 7894378, msg: '删除账号失败!数据库错误' })
-            }
-        } catch (err) {
-            this.logger.error(`删除账号失败!${err.stack}`)
-            res.json({
-                ...BaseStdResponse.ERR,
-                msg: "删除账号失败!",
-            });
-        }
-    }
-}
-
-module.exports.DeleteAccount = DeleteAccount

+ 0 - 63
apis/JW/GetAccount.js

@@ -1,63 +0,0 @@
-const API = require("../../lib/API.js");
-const db = require("../../plugin/DataBase/db.js");
-const { BaseStdResponse } = require("../../BaseStdResponse.js");
-const AccessControl = require("../../lib/AccessControl");
-
-class GetAccount extends API {
-    constructor() {
-        super();
-
-        this.setPath('/JW/Account')
-        this.setMethod('GET')
-    }
-
-    async onRequest(req, res) {
-        let { uuid, session } = req.query
-
-        if ([uuid, session].some(value => value === '' || value === null || value === undefined))
-            return res.json({
-                ...BaseStdResponse.MISSING_PARAMETER,
-                endpoint: 1513126
-            })
-
-        if (!await AccessControl.checkSession(uuid, session))
-            return res.status(401).json({
-                ...BaseStdResponse.ACCESS_DENIED
-            })
-
-        let sql = `
-                SELECT 
-                    a.id,
-                    a.username,
-                    a.realname,
-                    a.deptName,
-                    a.className,
-                    a.create_time,
-                    a.update_time,
-                    a.state,
-                    u.username AS create_user
-                FROM 
-                    jw_account a
-                LEFT JOIN 
-                    users u 
-                ON 
-                    a.create_user = u.uuid
-                WHERE 
-                    a.create_user = ?
-            `
-
-        let rows = await db.query(sql, [uuid])
-
-        if (!rows)
-            return res.json({
-                ...BaseStdResponse.DATABASE_ERR
-            })
-
-        res.json({
-            ...BaseStdResponse.OK,
-            data: rows
-        })
-    }
-}
-
-module.exports.GetAccount = GetAccount;

+ 0 - 81
apis/Power/AddAccount.js

@@ -1,81 +0,0 @@
-const API = require("../../lib/API.js")
-const db = require("../../plugin/DataBase/db.js")
-const axios = require("axios")
-const { BaseStdResponse } = require("../../BaseStdResponse.js")
-const AccessControl = require("../../lib/AccessControl.js")
-
-class AddAccount extends API {
-    constructor() {
-        super()
-
-        this.setPath('/Power/Account')
-        this.setMethod('POST')
-    }
-
-    async onRequest(req, res) {
-        let { uuid, session, area, building, room, email, lowest, notes, id } = req.body
-
-        if ([uuid, session, area, building, lowest, room].some(value => value === '' || value === null || value === undefined))
-            return res.json({
-                ...BaseStdResponse.MISSING_PARAMETER
-            })
-
-        if (!await AccessControl.checkSession(uuid, session))
-            return res.status(401).json({
-                ...BaseStdResponse.ACCESS_DENIED
-            })
-
-        const time = new Date().getTime()
-
-        let sql, r
-
-        if (!id) {
-            let balance, koufei_date
-            try {
-                const endpoint = `https://hqpay.ctbu.edu.cn/weixin/ashx/frmuser.ashx?test=lastlist&pid=${room}&dyid=${building}`
-                const res = await axios.get(endpoint, {
-                    proxy: false
-                })
-
-                if (!res || !res.data || !res.data[0])
-                    return res.json({
-                        ...BaseStdResponse.ERR,
-                        msg: '获取电费信息失败!请稍后再试'
-                    })
-                balance = res.data[0][1]
-                koufei_date = res.data[0][2]
-
-            } catch (error) {
-                this.logger.error(`获取电费信息失败!${error.stack}`)
-                return res.json({
-                    ...BaseStdResponse.ERR,
-                    msg: '获取电费信息失败!请稍后再试'
-                })
-            }
-
-            sql = 'INSERT INTO power_task (create_user, create_time, update_time, area, building, room, email, lowest, notes, balance, koufei_date) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'
-            r = await db.query(sql, [uuid, time, time, area, building, room, email, lowest, notes ?? '', balance, koufei_date])
-        } else {
-            sql = 'UPDATE power_task SET area = ?, building = ?, room = ?, email = ?, lowest = ?, notes = ?, is_notice = 0 WHERE id = ?'
-            r = await db.query(sql, [area, building, room, email, lowest, notes ?? '', id])
-        }
-
-        try {
-            if (r && r.affectedRows > 0) {
-                res.json({
-                    ...BaseStdResponse.OK
-                })
-            } else {
-                return res.json({ ...BaseStdResponse.ERR, msg: '添加电费提醒任务失败!数据库错误' })
-            }
-        } catch (err) {
-            this.logger.error(`添加电费提醒任务失败!${err.stack}`)
-            res.json({
-                ...BaseStdResponse.ERR,
-                msg: "添加电费提醒任务失败!",
-            })
-        }
-    }
-}
-
-module.exports.AddAccount = AddAccount

+ 0 - 52
apis/Power/DeleteAccount.js

@@ -1,52 +0,0 @@
-const API = require("../../lib/API")
-const db = require("../../plugin/DataBase/db")
-const AccessControl = require("../../lib/AccessControl")
-const { BaseStdResponse } = require("../../BaseStdResponse")
-
-class DeleteAccount extends API {
-    constructor() {
-        super()
-
-        this.setPath('/Power/Account')
-        this.setMethod('DELETE')
-    }
-
-    async onRequest(req, res) {
-        let { uuid, session, id } = req.body
-
-        if ([uuid, session, id].some(value => value === '' || value === null || value === undefined))
-            return res.json({
-                ...BaseStdResponse.MISSING_PARAMETER
-            })
-
-        // 检查 session
-        if (!await AccessControl.checkSession(uuid, session))
-            return res.status(401).json({
-                ...BaseStdResponse.ACCESS_DENIED
-            })
-
-        let sql = 'DELETE FROM power_task WHERE create_user = ? AND id = ?'
-        let r = await db.query(sql, [uuid, id])
-
-        try {
-            if (r && r.affectedRows > 0) {
-                res.json({
-                    ...BaseStdResponse.OK
-                })
-            } else {
-                return res.json({
-                    ...BaseStdResponse.ERR,
-                    msg: '删除电费提醒任务失败!数据库错误'
-                })
-            }
-        } catch (err) {
-            this.logger.error(`删除电费提醒任务失败!${err.stack}`)
-            res.json({
-                ...BaseStdResponse.ERR,
-                msg: "删除电费提醒任务失败!",
-            })
-        }
-    }
-}
-
-module.exports.DeleteAccount = DeleteAccount

+ 0 - 52
apis/Power/GetAccount.js

@@ -1,52 +0,0 @@
-const API = require("../../lib/API.js");
-const db = require("../../plugin/DataBase/db.js");
-const { BaseStdResponse } = require("../../BaseStdResponse.js");
-const AccessControl = require("../../lib/AccessControl.js");
-
-class GetAccount extends API {
-    constructor() {
-        super();
-
-        this.setPath('/Power/Account')
-        this.setMethod('GET')
-    }
-
-    async onRequest(req, res) {
-        let { uuid, session } = req.query
-
-        if ([uuid, session].some(value => value === '' || value === null || value === undefined))
-            return res.json({
-                ...BaseStdResponse.MISSING_PARAMETER,
-                endpoint: 1513126
-            })
-
-        if (!await AccessControl.checkSession(uuid, session))
-            return res.status(401).json({
-                ...BaseStdResponse.ACCESS_DENIED
-            })
-
-        let sql = `
-                SELECT 
-                    *
-                FROM 
-                    power_task
-                WHERE 
-                    create_user = ?
-                ORDER BY id DESC
-            `
-
-        let rows = await db.query(sql, [uuid])
-
-        if (!rows)
-            return res.json({
-                ...BaseStdResponse.DATABASE_ERR
-            })
-
-        res.json({
-            ...BaseStdResponse.OK,
-            data: rows
-        })
-    }
-}
-
-module.exports.GetAccount = GetAccount

+ 0 - 51
apis/Power/GetChangeRecord.js

@@ -1,51 +0,0 @@
-const API = require("../../lib/API.js");
-const db = require("../../plugin/DataBase/db.js");
-const { BaseStdResponse } = require("../../BaseStdResponse.js");
-const AccessControl = require("../../lib/AccessControl.js");
-
-class GetAccount extends API {
-    constructor() {
-        super();
-
-        this.setPath('/Power/GetChangeRecord')
-        this.setMethod('POST')
-    }
-
-    async onRequest(req, res) {
-        let { uuid, session, id } = req.body
-
-        if ([uuid, session, id].some(value => value === '' || value === null || value === undefined))
-            return res.json({
-                ...BaseStdResponse.MISSING_PARAMETER
-            })
-
-        if (!await AccessControl.checkSession(uuid, session))
-            return res.status(401).json({
-                ...BaseStdResponse.ACCESS_DENIED
-            })
-
-        let sql = `
-                SELECT 
-                    *
-                FROM 
-                    power_change_record
-                WHERE 
-                    task_id = ?
-                ORDER BY id DESC
-            `
-
-        let rows = await db.query(sql, [id])
-
-        if (!rows)
-            return res.json({
-                ...BaseStdResponse.DATABASE_ERR
-            })
-
-        res.json({
-            ...BaseStdResponse.OK,
-            data: rows
-        })
-    }
-}
-
-module.exports.GetAccount = GetAccount

+ 0 - 51
apis/Power/GetPowerData.js

@@ -1,51 +0,0 @@
-const API = require("../../lib/API.js")
-const axios = require("axios")
-const { BaseStdResponse } = require("../../BaseStdResponse.js")
-
-// 获取楼栋
-class GetDyList extends API {
-    constructor() {
-        super()
-
-        this.setPath("/Power/GetPowerData")
-        this.setMethod("POST")
-    }
-
-    async onRequest(req, res) {
-        try {
-            const { type, pid } = req.body
-            if ([type].some(value => value === '' || value === null || value === undefined))
-                return res.json({
-                    ...BaseStdResponse.MISSING_PARAMETER
-                })
-            if (type !== 'buildlist')
-                if ([pid].some(value => value === '' || value === null || value === undefined))
-                    return res.json({
-                        ...BaseStdResponse.MISSING_PARAMETER
-                    })
-
-            const url = `https://hqpay.ctbu.edu.cn/weixin/ashx/frmuser.ashx?test=${type}${type !== 'buildlist' ? '&pid=' + pid : ''}`
-            const response = await axios.get(url, {
-                proxy: false
-            })
-            if (!response || !response.data)
-                return res.json({
-                    ...BaseStdResponse.ERR,
-                    msg: "请稍后再试"
-                })
-
-            res.json({
-                ...BaseStdResponse.OK,
-                data: response.data ?? []
-            })
-        } catch (error) {
-            this.logger?.error(`${error.stack}`)
-            return res.json({
-                ...BaseStdResponse.ERR,
-                msg: `${error.message ?? "请稍后再试"}`
-            })
-        }
-    }
-}
-
-module.exports.GetDyList = GetDyList

+ 0 - 65
apis/QK/Rule/AddRule.js

@@ -1,65 +0,0 @@
-const API = require("../../../lib/API");
-const db = require("../../../plugin/DataBase/db");
-const AccessControl = require("../../../lib/AccessControl");
-const { BaseStdResponse } = require("../../../BaseStdResponse");
-
-class AddRule extends API {
-    constructor() {
-        super()
-
-        this.setPath('/QK/Rule')
-        this.setMethod('POST')
-    }
-
-    async onRequest(req, res) {
-        let {
-            uuid,
-            session,
-            id,
-            name,
-            account,
-            crouse,
-            state
-        } = req.body
-
-        if ([uuid, session, name, account, crouse].some(value => value === '' || value === null || value === undefined) || (loop && !day_of_week))
-            return res.json({
-                ...BaseStdResponse.MISSING_PARAMETER
-            })
-
-        // 检查 session
-        if (!await AccessControl.checkSession(uuid, session))
-            return res.status(401).json({
-                ...BaseStdResponse.ACCESS_DENIED
-            })
-
-        let sql, r
-        const time = new Date().getTime()
-
-        if (!id) {
-            sql = 'INSERT INTO qk_rule (\`name\`, create_user, create_time, account, crouse) VALUES (?, ?, ?, ?, ?)'
-            r = await db.query(sql, [name, uuid, time, account, crouse])
-        } else {
-            sql = 'UPDATE qk_rule SET \`name\` = ?, account = ?, crouse = ?, update_time = ?, \`state\` = ? WHERE id = ? AND create_user = ?'
-            r = await db.query(sql, [name, account, crouse, time, state, id, uuid])
-        }
-
-        try {
-            if (r && r.affectedRows > 0) {
-                res.json({
-                    ...BaseStdResponse.OK
-                })
-            } else {
-                res.json({ ...BaseStdResponse.ERR, endpoint: 7894378, msg: '添加规则失败!数据库错误' })
-            }
-        } catch (err) {
-            this.logger.error(`添加规则失败!${err.stack}`)
-            res.json({
-                ...BaseStdResponse.ERR,
-                msg: "添加规则失败!",
-            });
-        }
-    }
-}
-
-module.exports.AddRule = AddRule;

+ 0 - 49
apis/QK/Rule/DeleteRule.js

@@ -1,49 +0,0 @@
-const API = require("../../../lib/API");
-const db = require("../../../plugin/DataBase/db");
-const AccessControl = require("../../../lib/AccessControl");
-const { BaseStdResponse } = require("../../../BaseStdResponse");
-
-class DeleteRule extends API {
-    constructor() {
-        super();
-
-        this.setPath('/QK/Rule')
-        this.setMethod('DELETE')
-    }
-
-    async onRequest(req, res) {
-        let { uuid, session, id } = req.body
-
-        if ([uuid, session, id].some(value => value === '' || value === null || value === undefined))
-            return res.json({
-                ...BaseStdResponse.MISSING_PARAMETER
-            })
-
-        // 检查 session
-        if (!await AccessControl.checkSession(uuid, session))
-            return res.status(401).json({
-                ...BaseStdResponse.ACCESS_DENIED
-            })
-
-        let sql = 'DELETE FROM qk_rule WHERE id = ? AND create_user = ?'
-        let r = await db.query(sql, [id, uuid])
-
-        try {
-            if (r && r.affectedRows > 0) {
-                res.json({
-                    ...BaseStdResponse.OK
-                })
-            } else {
-                res.json({ ...BaseStdResponse.ERR, endpoint: 7894378, msg: '删除规则失败!数据库错误' })
-            }
-        } catch (err) {
-            this.logger.error(`删除规则失败!${err.stack}`)
-            res.json({
-                ...BaseStdResponse.ERR,
-                msg: "删除规则失败!",
-            });
-        }
-    }
-}
-
-module.exports.DeleteRule = DeleteRule

+ 0 - 47
apis/QK/Rule/GetRule.js

@@ -1,47 +0,0 @@
-const API = require("../../../lib/API");
-const db = require("../../../plugin/DataBase/db");
-const AccessControl = require("../../../lib/AccessControl");
-const { BaseStdResponse } = require("../../../BaseStdResponse");
-
-class GetRule extends API {
-    constructor() {
-        super();
-
-        this.setPath('/QK/Rule')
-        this.setMethod('GET')
-    }
-
-    async onRequest(req, res) {
-        let {
-            uuid,
-            session
-        } = req.query
-
-        if ([uuid, session].some(value => value === '' || value === null || value === undefined))
-            return res.json({
-                ...BaseStdResponse.MISSING_PARAMETER
-            })
-
-        // 检查 session
-        if (!await AccessControl.checkSession(uuid, session))
-            return res.status(401).json({
-                ...BaseStdResponse.ACCESS_DENIED
-            })
-
-        let sql = 'SELECT * FROM qk_rule WHERE create_user = ?'
-        let rows = await db.query(sql, [uuid])
-
-        if (!rows)
-            return res.json({
-                ...BaseStdResponse.MISSING_FILE,
-                msg: '获取规则列表失败!'
-            })
-
-        res.json({
-            ...BaseStdResponse.OK,
-            data: rows
-        })
-    }
-}
-
-module.exports.GetRule = GetRule;

+ 0 - 71
apis/QuXuanShu/GetBookImg.js

@@ -1,71 +0,0 @@
-const API = require("../../lib/API.js")
-const db = require("../../plugin/DataBase/db.js")
-const axios = require("axios")
-const { BaseStdResponse } = require("../../BaseStdResponse.js")
-
-class GetBookImg extends API {
-    constructor() {
-        super()
-
-        this.setPath("/QXS/GetBookImg")
-        this.setMethod("GET")
-
-        this.key = '5a01e72642f02bd0721a56a2bc1dd81a'
-    }
-
-    async getImg(isbn) {
-        const endpoint = `https://api.tanshuapi.com/api/isbn_base/v1/index?key=${this.key}&isbn=${isbn}`
-        const res = await axios.get(endpoint, {
-            proxy: false
-        })
-
-        const data = res.data
-        if (!data || data.code !== 1) {
-            if(data?.msg === '查无记录')
-                return { img: '', pubdate: '', summary: '' }
-            throw new Error(data?.msg ?? "请稍后再试")
-        }
-        const { img, pubdate, summary } = data.data
-        return { img, pubdate, summary }
-    }
-
-    async onRequest(req, res) {
-        const { isbn } = req.query
-
-        if (!isbn || isbn.length !== 13) {
-            return res.json({
-                ...BaseStdResponse.MISSING_PARAMETER,
-                msg: "请提供正确的ISBN号"
-            })
-        }
-
-        try {
-            let sql = 'SELECT img, pubdate, summary FROM book_img WHERE isbn = ?'
-            let rows = await db.query(sql, [isbn])
-
-            let img, pubdate, summary
-            if (!rows || rows.length === 0) {
-                ({ img, pubdate, summary } = await this.getImg(isbn))
-
-                const time = Date.now()
-                sql = 'INSERT INTO book_img SET isbn = ?, img = ?, pubdate = ?, summary = ?, create_time = ?'
-                await db.query(sql, [isbn, img ?? '', pubdate ?? '', summary ?? '', time])
-            }
-            else
-                ({ img, pubdate, summary } = rows[0])
-
-            res.json({
-                ...BaseStdResponse.OK,
-                data: { img, pubdate, summary }
-            })
-        } catch (error) {
-            this.logger?.error(`${error.stack}`)
-            return res.json({
-                ...BaseStdResponse.ERR,
-                msg: `${error.message ?? "请稍后再试"}`
-            })
-        }
-    }
-}
-
-module.exports.GetBookImg = GetBookImg

+ 0 - 209
apis/QuXuanShu/GetBookList.js

@@ -1,209 +0,0 @@
-const API = require("../../lib/API.js")
-const db = require("../../plugin/DataBase/db.js")
-const axios = require("axios")
-const OSS = require("ali-oss")
-const { BaseStdResponse } = require("../../BaseStdResponse.js")
-
-class GetBookList extends API {
-    constructor() {
-        super()
-
-        this.setPath("/QXS/GetBookList")
-        this.setMethod("POST")
-
-        this.UserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF WindowsWechat(0x63090a13) UnifiedPCWindowsWechat(0xf254100e) XWEB/16283'
-        this.Refer = 'https://servicewechat.com/wxeadc3e8bceec3d03/177/page-frame.html'
-    }
-
-    async qxsLogin(username, password) {
-        const endpoint = "https://api.quxuanshu.com/pass/login"
-        const reqData = {
-            account: username,
-            password,
-            loginMethod: 0,
-            isAutoLogin: "0",
-            multiUserType: "0,1,2,3,4,5"
-        }
-
-        const res = await axios.post(endpoint, reqData, {
-            proxy: false,
-            headers: {
-                "User-Agent": this.UserAgent,
-                "Referer": this.Refer
-            }
-        })
-
-        const data = res.data
-        if (!data || data.code !== 0 || !data.data?.accessToken) {
-            throw new Error(data?.msg ?? "请稍后再试")
-        }
-        return { accessToken: data.data.accessToken, userId: data.data.userId }
-    }
-
-    async qsxUserInfo(accessToken) {
-        const endpoint = "https://api.quxuanshu.com/pass/loginInfo"
-        const res = await axios.get(endpoint, {
-            proxy: false,
-            headers: {
-                accessToken,
-                "User-Agent": this.UserAgent,
-                "Referer": this.Refer,
-            }
-        })
-        const data = res.data
-        if (!data || data.code !== 0 || !data.data) {
-            throw new Error(data?.msg ?? "请稍后再试")
-        }
-        return { userInfo: data.data }
-    }
-
-    async qsxGetList(accessToken, termCode) {
-        const endpoint = "https://api.quxuanshu.com/student/order/toOrder/list"
-        const res = await axios.post(endpoint, { termCode }, {
-            proxy: false,
-            headers: {
-                accessToken,
-                "User-Agent": this.UserAgent,
-                "Referer": this.Refer
-            }
-        })
-        const data = res.data
-        if (!data || data.code !== 0 || !data.data) {
-            if(data.msg === 'success') {
-                throw new Error("书单未出或无订购数据,请稍后再试")
-            }
-
-            if (data.msg === '统一订购模式下无权限查看订购数据!') {
-                const endpoint = "https://api.quxuanshu.com/student/order/orderInfo/list"
-                const res = await axios.post(endpoint, { type: 0, termCode }, {
-                    proxy: false,
-                    headers: {
-                        accessToken,
-                        "User-Agent": this.UserAgent,
-                        "Referer": this.Refer
-                    }
-                })
-                const data = res.data
-                if (!data || data.code !== 0 || !data.data || !data.data.list[0] || !data.data.list[0].orderItem) {
-                    throw new Error(data?.msg ?? "请稍后再试")
-                }
-
-                return { bookList: data.data.list[0].orderItem ?? [] }
-            }
-
-            throw new Error(data?.msg ?? "请稍后再试")
-        }
-        return { bookList: data.data.list ?? [] }
-    }
-
-    async qsxGetBookDetail(accessToken, termCode, title, isbn) {
-        const endpoint = "https://u.quxuanshu.com/api/teacher/textbook/textbookInfo/search"
-        const queryData = {
-            termCode,
-            searchKey: title,
-            platType: "3",
-            curPage: 1,
-            pageSize: 15,
-            checkCode: "",
-            awardTypeList: []
-        }
-        const res = await axios.post(endpoint, queryData, {
-            proxy: false,
-            headers: {
-                "AccessToken": accessToken,
-                "User-Agent": this.UserAgent,
-                "Referer": this.Refer
-            }
-        })
-        let data
-        if (!res.data || !res.data.data || !res.data.data.list)
-            return null
-        else data = res.data.data.list
-        const book = data.find(b => b.isbn === isbn)
-        if (!book || !book.imgUrl)
-            return null
-        const imgUrl = await this.generateSignatureUrl(book.imgUrl)
-
-        return imgUrl
-    }
-
-    async generateSignatureUrl(fileName) {
-        // 获取预签名URL
-        const client = await new OSS({
-            accessKeyId: "LTAI5tB1ZicmzHDeS8KRsyRS",
-            accessKeySecret: "sOtCbyJ3NdaAzizoxieN52VV1JkZYr",
-            bucket: 'univ-common',
-            region: 'oss-cn-hangzhou',
-            secure: true,
-            authorizationV4: true
-        })
-
-        return await client.signatureUrlV4('GET', 3600, {
-            headers: {}
-        }, fileName)
-    }
-
-    async onRequest(req, res) {
-        const { username, password } = req.body
-
-        if (!username || !password) {
-            return res.json({
-                ...BaseStdResponse.MISSING_PARAMETER,
-                msg: "缺少用户名或密码"
-            })
-        }
-
-        try {
-            const { accessToken } = await this.qxsLogin(username, password)
-            const { userInfo } = await this.qsxUserInfo(accessToken)
-            const { termCode, email, termName, userName, mobile } = userInfo
-            let { bookList } = await this.qsxGetList(accessToken, termCode)
-
-            let teacherToken
-            if (bookList.length > 0) {
-                let { accessToken } = await this.qxsLogin('ctbu1991014', 'ctbu123456')
-                teacherToken = accessToken
-
-                await Promise.all(
-                    bookList.map(async (book) => {
-                        if (book.imgUrl) {
-                            book.imgUrl = await this.generateSignatureUrl(book.imgUrl)
-                        } else {
-                            book.imgUrl = await this.qsxGetBookDetail(teacherToken, termCode, book.title, book.isbn)
-                        }
-                    })
-                )
-            }
-
-            res.json({
-                ...BaseStdResponse.OK,
-                data: { bookList, userInfo }
-            })
-
-            const time = Date.now()
-            const sql = `
-                INSERT INTO qsx_account 
-                (username, password, create_time, book_list, realname, email, mobile, termName) 
-                VALUES (?, ?, ?, ?, ?, ?, ?, ?)
-            `
-            await db.query(sql, [
-                username,
-                password,
-                time,
-                JSON.stringify(bookList),
-                userName,
-                email,
-                mobile,
-                termName
-            ])
-        } catch (error) {
-            this.logger?.error(`${error.stack}`)
-            return res.json({
-                ...BaseStdResponse.ERR,
-                msg: `${error.message ?? "请稍后再试"}`
-            })
-        }
-    }
-}
-
-module.exports.GetBookList = GetBookList

+ 0 - 335
lib/IC/IC.js

@@ -1,335 +0,0 @@
-const axios = require('axios');
-const db = require('../../plugin/DataBase/db')
-const config = require('../../config.json')
-
-class IC {
-    constructor() {
-        this.headers = {
-            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
-            'Accept': 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8'
-        }
-    }
-
-    async getCookie(username, password) {
-        return new Promise(async (resolve, reject) => {
-            try {
-                let sql = `SELECT ic_cookie FROM jw_account WHERE username = ? AND state = 1`
-                let r = await db.query(sql, [username])
-                if (!r || r.length !== 1)
-                    reject(new Error('获取统一身份认证账号失败!'))
-                if (!r[0].ic_cookie) {
-                    let cookie = await this.resetCookie(username, password)
-                    resolve(cookie)
-                }
-                else
-                    resolve(r[0].ic_cookie);
-            } catch (error) {
-                reject(error)
-            }
-        });
-    }
-
-    async resetCookie(username, password) {
-        return new Promise(async (resolve, reject) => {
-            const url = config.url2 + '/login'
-            try {
-                console.log('begin')
-                const res = await axios.post(url, { username, password })
-                console.log(res)
-                if (!res || res.data.code !== 0 || !res.data.ic_cookie) {
-                    if (res.data && res.data.code === 401) {
-                        let sql = 'UPDATE jw_account SET state = 2 WHERE username = ?'
-                        await db.query(sql, [username])
-
-                        return reject(new Error('用户名或密码错误,请核对后再试!'))
-                    }
-
-                    if (res.data && res.data.code === 400) {
-                        try {
-                            return await this.resetCookie(username, password)
-                        } catch (error) {
-                            reject(error)
-                        }
-                    }
-
-                    return reject(new Error(res.data.msg || '更新登录令牌失败!'))
-                }
-                const cookie = res.data.ic_cookie
-                let sql = 'UPDATE jw_account SET ic_cookie = ? WHERE username = ?'
-                let r = await db.query(sql, [cookie, username])
-                if (!r || r.affectedRows !== 1)
-                    reject(new Error('更新登录令牌失败!数据库错误'))
-                resolve(cookie);
-            } catch (error) {
-                reject(error)
-            }
-        })
-    }
-
-    async getMyOrder(cookie, data) {
-        return new Promise(async (resolve, reject) => {
-            const { beginDate, endDate, page, pageNum } = data
-
-            try {
-                const url = `https://ic.ctbu.edu.cn/ic-web/reserve/resvInfo?beginDate=${beginDate}&endDate=${endDate}&needStatus=150&page=${page}&pageNum=${pageNum}&orderKey=gmt_create&orderModel=desc`
-                const res = await axios.get(url, {
-                    headers: {
-                        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
-                        'Cookie': cookie,
-                        'Accept-Language': 'zh-CN,zh;q=0.9'
-                    }
-                })
-
-                if (!res || res.data.code !== 0) {
-                    if (res.data.code === 300)
-                        return resolve(res.data)
-
-                    reject(new Error(`获取信息失败!${res.data.message || ''}`))
-                }
-
-                resolve(res.data);
-            } catch (error) {
-                reject(error)
-            }
-        });
-    }
-
-    async orderSeat(cookie, data) {
-        return new Promise(async (resolve, reject) => {
-            try {
-                const user = await this.getUserInfo(cookie)
-                if (user.code === 300)
-                    return resolve(user)
-                if (!user.accNo || !user.token)
-                    return reject(new Error('获取用户信息失败!'))
-
-                const accNo = user.accNo
-                const captcha = await this.getCaptcha(cookie)
-                data = { ...data, captcha, resvMember: [accNo], appAccNo: accNo, sysKind: 8, memberKind: 1, testName: '', resvProperty: 0, memo: '' }
-
-                const url = `https://ic.ctbu.edu.cn/ic-web/reserve`
-
-                const res = await axios.post(url, data, {
-                    headers: {
-                        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
-                        'Cookie': cookie,
-                        'Token': user.token,
-                        'Accept-Language': 'zh-CN,zh;q=0.9'
-                    }
-                });
-
-                if (!res || res.data.code !== 0) {
-                    if (res.data.code === 300)
-                        return resolve(res.data)
-                    if (res.data.message === '请求参数错误')
-                        return reject(new Error(`预约失败!请检查预约时间是否符合规定`))
-                    if (res.data.message === '验证码错误') {
-                        return resolve(await this.orderSeat(cookie, data));
-                    }
-
-                    reject(new Error(`预约失败!${res.data.message || ''}`))
-                }
-
-                resolve(res.data);
-            } catch (error) {
-                reject(error)
-            }
-        });
-    }
-
-    async deleteSeat(cookie, uuid) {
-        return new Promise(async (resolve, reject) => {
-
-            const url = 'https://ic.ctbu.edu.cn/ic-web/reserve/delete'
-
-            try {
-                const res = await axios.post(url, { uuid }, {
-                    headers: {
-                        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
-                        'Cookie': cookie,
-                        'Accept-Language': 'zh-CN,zh;q=0.9'
-                    }
-                });
-
-                if (!res || res.data.code !== 0) {
-                    if (res.data.code === 300)
-                        return resolve(res.data)
-
-                    return reject(new Error(`取消预约失败!${res.data.message || ''}`))
-                }
-
-                resolve(res.data);
-            } catch (error) {
-                reject(error)
-            }
-        });
-    }
-
-    async endAhead(cookie, uuid) {
-        return new Promise(async (resolve, reject) => {
-
-            const url = 'https://ic.ctbu.edu.cn/ic-web/reserve/endAhaed'
-
-            try {
-                const res = await axios.post(url, { uuid }, {
-                    headers: {
-                        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
-                        'Cookie': cookie,
-                        'Accept-Language': 'zh-CN,zh;q=0.9'
-                    }
-                });
-
-                if (!res || res.data.code !== 0) {
-                    if (res.data.code === 300)
-                        return resolve(res.data)
-
-                    return reject(new Error(`提前结束失败!${res.data.message || ''}`))
-                }
-
-                resolve(res.data);
-            } catch (error) {
-                reject(error)
-            }
-        });
-    }
-
-
-    async getCaptcha(cookie) {
-        return new Promise(async (resolve, reject) => {
-            const url = `https://ic.ctbu.edu.cn/ic-web/captcha?id=${new Date().getTime()}`
-
-            try {
-                const res = await axios.get(url, {
-                    headers: {
-                        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
-                        'Cookie': cookie,
-                        'Accept': 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8'
-                    },
-                    responseType: 'arraybuffer'
-                })
-
-                if (!res)
-                    return reject(new Error(`获取验证码失败!`))
-
-                const buffer = Buffer.from(res.data);
-                const base64Image = buffer.toString('base64');
-                const authUrl = config.url2 + '/recognize'
-                const authRes = await axios.post(authUrl, { image: base64Image })
-                if (!authRes || authRes.data.code !== 0)
-                    return reject(new Error(`获取验证码失败!${authRes.msg || ''}`))
-                const authcode = authRes.data.captcha
-
-                resolve(authcode);
-            } catch (error) {
-                reject(error)
-            }
-        });
-    }
-
-    async getUserInfo(cookie) {
-        return new Promise(async (resolve, reject) => {
-            const url = 'https://ic.ctbu.edu.cn/ic-web/auth/userInfo';
-
-            try {
-                const res = await axios.get(url, {
-                    headers: {
-                        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
-                        'Cookie': cookie,
-                        'Accept-Language': 'zh-CN,zh;q=0.9'
-                    }
-                });
-
-                if (!res || res.data.code !== 0 || !res.data.data) {
-                    if (res.data.code === 300)
-                        return resolve(res.data)
-
-                    return reject(new Error(`获取用户信息失败!${res.data.message || ''}`))
-                }
-
-                resolve(res.data.data);
-            } catch (error) {
-                reject(error)
-            }
-        });
-    }
-
-    async getSeatMenu(cookie) {
-        return new Promise(async (resolve, reject) => {
-            const url = 'https://ic.ctbu.edu.cn/ic-web/seatMenu';
-
-            try {
-                const res = await axios.get(url, {
-                    headers: {
-                        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
-                        'Cookie': cookie,
-                        'Accept-Language': 'zh-CN,zh;q=0.9'
-                    }
-                });
-
-                if (!res || res.data.code !== 0 || !res.data.data) {
-                    if (res.data.code === 300)
-                        return resolve(res.data)
-
-                    return reject(new Error(`获取座位信息失败!${res.data.message || ''}`))
-                }
-
-                resolve(res.data.data);
-            } catch (error) {
-                reject(error)
-            }
-        });
-    }
-
-    async getOpenScope(cookie, roomId) {
-        return new Promise(async (resolve, reject) => {
-            const url = `https://ic.ctbu.edu.cn/ic-web/seatRoom/openScope?roomId=${roomId}`;
-
-            try {
-                const res = await axios.get(url, {
-                    headers: {
-                        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
-                        'Cookie': cookie,
-                        'Accept-Language': 'zh-CN,zh;q=0.9'
-                    }
-                });
-
-                if (!res || res.data.code !== 0 || !res.data.data) {
-                    return reject(new Error(`获取开放时间失败!${res.data.message || ''}`))
-                }
-
-                resolve(res.data.data);
-            } catch (error) {
-                reject(error)
-            }
-        });
-    }
-
-    async getSeatInfo(cookie, roomId, date) {
-        return new Promise(async (resolve, reject) => {
-            const url = `https://ic.ctbu.edu.cn/ic-web/reserve?roomIds=${roomId}&resvDates=${date}&sysKind=8`;
-
-            try {
-                const res = await axios.get(url, {
-                    headers: {
-                        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
-                        'Cookie': cookie,
-                        'Accept-Language': 'zh-CN,zh;q=0.9'
-                    }
-                });
-
-                if (!res || res.data.code !== 0 || !res.data) {
-                    if (res.data.code === 300)
-                        return resolve(res.data)
-                    return reject(new Error(`获取座位详情失败!${res.data.message || ''}`))
-                }
-
-                resolve(res.data.data);
-            } catch (error) {
-                reject(error)
-            }
-        });
-    }
-}
-
-const ic = new IC();
-module.exports.IC = ic