ertonglianxibiao/utils/api.js

141 lines
2.9 KiB
JavaScript
Raw Normal View History

2026-01-14 15:33:15 +08:00
/**
* 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
}