| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- #ifndef GRADESAPI_H
- #define GRADESAPI_H
- #include <QObject>
- #include "requestthreadpool.h"
- namespace TC {
- class GradesUpdate : public QObject
- {
- Q_OBJECT
- public:
- struct Data
- {
- bool success;
- QString message;
- };
-
- GradesUpdate();
- GradesUpdate(const QString &answerFileName,
- const QString &checkinNumber,
- int endTime,
- const QString &examRoom,
- const QString &examSessions,
- const QString &examText,
- const QString &examineNumber,
- const QString &groupName,
- const QString &name,
- int onlineStatus,
- const QString &schoolAddress,
- const QString &schoolName,
- int sex,
- int startTime,
- int status,
- const QString &swId);
- // 同步版本
- Data post();
-
- // 异步版本 - 添加到线程池中执行
- void postAsync(std::function<void(const Data&)> callback = nullptr, int maxRetries = 3);
- QString url;
- QByteArray postData;
- };
- // GradesUpdate 请求任务类
- class GradesUpdateTask : public RequestTask
- {
- Q_OBJECT
- public:
- GradesUpdateTask(const QString &url, const QByteArray &postData, std::function<void(const GradesUpdate::Data&)> callback = nullptr);
-
- void run() override;
- bool retry() override;
-
- private:
- QString m_url;
- QByteArray m_postData;
- std::function<void(const GradesUpdate::Data&)> m_callback;
- };
- } // namespace TC
- #endif // GRADESAPI_H
|