141 lines
2.9 KiB
JavaScript
141 lines
2.9 KiB
JavaScript
|
|
/**
|
|||
|
|
* API 接口定义
|
|||
|
|
* 所有业务 API 接口的统一管理
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
const { get, post } = require('./request.js')
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* ===============================
|
|||
|
|
* 首页相关接口
|
|||
|
|
* ===============================
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 获取首页数据(分类 + 最新工作表)
|
|||
|
|
*/
|
|||
|
|
function getHomeData() {
|
|||
|
|
return get('/api/home')
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 获取所有分类
|
|||
|
|
*/
|
|||
|
|
function getCategories() {
|
|||
|
|
return get('/api/categories')
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* ===============================
|
|||
|
|
* 工作表相关接口
|
|||
|
|
* ===============================
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 获取工作表列表
|
|||
|
|
* @param {Object} params
|
|||
|
|
* @param {Number} params.category_id - 分类ID(可选)
|
|||
|
|
* @param {Number} params.page - 页码
|
|||
|
|
* @param {Number} params.pageSize - 每页数量
|
|||
|
|
* @param {String} params.keyword - 搜索关键词
|
|||
|
|
*/
|
|||
|
|
function getWorksheets(params = {}) {
|
|||
|
|
return get('/api/worksheets', params)
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 获取工作表详情
|
|||
|
|
* @param {Number} id - 工作表ID
|
|||
|
|
*/
|
|||
|
|
function getWorksheetDetail(id) {
|
|||
|
|
return get(`/api/worksheets/${id}`)
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 记录下载次数
|
|||
|
|
* @param {Number} id - 工作表ID
|
|||
|
|
*/
|
|||
|
|
function recordDownload(id) {
|
|||
|
|
return post(`/api/worksheets/${id}/download`)
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 搜索工作表
|
|||
|
|
* @param {Object} params
|
|||
|
|
* @param {String} params.keyword - 搜索关键词
|
|||
|
|
* @param {Number} params.page - 页码
|
|||
|
|
* @param {Number} params.pageSize - 每页数量
|
|||
|
|
*/
|
|||
|
|
function searchWorksheets(params = {}) {
|
|||
|
|
return get('/api/search', params)
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* ===============================
|
|||
|
|
* 用户相关接口
|
|||
|
|
* ===============================
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 用户登录/注册
|
|||
|
|
* @param {String} openid - 微信 openid
|
|||
|
|
* @param {String} nickname - 昵称
|
|||
|
|
* @param {String} avatar - 头像URL
|
|||
|
|
* @param {Number} inviter_id - 邀请人ID(可选)
|
|||
|
|
*/
|
|||
|
|
function userLogin(openid, nickname, avatar, inviter_id) {
|
|||
|
|
return post('/api/user/login', { openid, nickname, avatar, inviter_id })
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 获取用户信息
|
|||
|
|
* @param {Number} user_id - 用户ID
|
|||
|
|
*/
|
|||
|
|
function getUserInfo(user_id) {
|
|||
|
|
return get('/api/user/info', { user_id })
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 检查积分是否足够下载
|
|||
|
|
* @param {Number} user_id - 用户ID
|
|||
|
|
*/
|
|||
|
|
function checkPoints(user_id) {
|
|||
|
|
return get('/api/user/check-points', { user_id })
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 扣除积分(下载时调用)
|
|||
|
|
* @param {Number} user_id - 用户ID
|
|||
|
|
* @param {Number} worksheet_id - 工作表ID
|
|||
|
|
*/
|
|||
|
|
function deductPoints(user_id, worksheet_id) {
|
|||
|
|
return post('/api/user/deduct-points', { user_id, worksheet_id })
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 获取积分记录
|
|||
|
|
* @param {Number} user_id - 用户ID
|
|||
|
|
* @param {Number} page - 页码
|
|||
|
|
* @param {Number} pageSize - 每页数量
|
|||
|
|
*/
|
|||
|
|
function getPointsLog(user_id, page = 1, pageSize = 20) {
|
|||
|
|
return get('/api/user/points-log', { user_id, page, pageSize })
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
module.exports = {
|
|||
|
|
// 首页
|
|||
|
|
getHomeData,
|
|||
|
|
getCategories,
|
|||
|
|
// 工作表
|
|||
|
|
getWorksheets,
|
|||
|
|
getWorksheetDetail,
|
|||
|
|
recordDownload,
|
|||
|
|
searchWorksheets,
|
|||
|
|
// 用户
|
|||
|
|
userLogin,
|
|||
|
|
getUserInfo,
|
|||
|
|
checkPoints,
|
|||
|
|
deductPoints,
|
|||
|
|
getPointsLog
|
|||
|
|
}
|