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
|
||
}
|