points.js 3.59 KB
/*
 * @Date: 2023-12-22 10:29:37
 * @LastEditors: hookehuyr hookehuyr@gmail.com
 * @LastEditTime: 2025-09-09 11:49:32
 * @FilePath: /lls_program/src/api/points.js
 * @Description: 文件描述
 */
import { fn, fetch } from './fn';

const Api = {
  COLLECT_POINT: '/srv/?a=point&t=collect',
  POINT_LIST: '/srv/?a=point&t=list',
  STEP_LEADERBOARD: '/srv/?a=point&t=step_leaderboard',
}

/**
 * @description: 汇总积分到家庭
 * @param {*} params
 * @param {string} params.family_id - 家庭ID
 * @param {string} params.point_id - 积分ID, 为空时用于一键全积
 * @returns {Object} response - 响应对象
 * @returns {string} response.code - 响应状态码
 * @returns {string} response.msg - 响应消息
 * @returns {Object} response.data - 响应数据
 * @returns {number} response.data.new_total_points - 最新的家庭积分
 */

export const collectPointAPI = (params) => fn(fetch.post(Api.COLLECT_POINT, params));

/**
 * @description: 查询积分列表
 * @param {Object} params - 请求参数
 * @param {string} [params.points_status] - 积分状态, issued=已发放,used=已消耗
 * @param {string} [params.page] - 页码,从0开始,默认为0
 * @param {string} [params.limit] - 每页数量,默认为10
 * @returns {Object} response - 响应对象
 * @returns {number} response.code - 响应状态码
 * @returns {string} response.msg - 响应消息
 * @returns {Object} response.data - 响应数据
 * @returns {number} response.data.total_points - 我的积分
 * @returns {Array} response.data.logs - 积分日志列表
 * @returns {number} response.data.logs[].id - 积分日志ID
 * @returns {string} response.data.logs[].points_change - 积分变化
 * @returns {string} response.data.logs[].log_type - 日志类型
 * @returns {string} response.data.logs[].source_type - 积分来源类型
 * @returns {string} response.data.logs[].note - 备注
 * @returns {string} response.data.logs[].created_time - 创建时间
 */
export const getPointListAPI = (params) => fn(fetch.get(Api.POINT_LIST, params));

/**
 * @description: 查询步数排行榜, 加上county参数查询的是相关区域的数据, 数据长度为10个, 不加上county参数查询的是上海数据, 数据长度是20个, 都是固定长度.
 * @param {Object} params - 请求参数
 * @param {string} params.county - 区县
 * @returns {Object} response - 响应对象
 * @returns {number} response.code - 响应状态码
 * @returns {string} response.msg - 响应消息
 * @returns {Object} response.data - 响应数据
 * @returns {Array} response.data.yesterday - 昨天日期
 * @returns {Array} response.data.families[] - 家庭列表
 * @returns {string} response.data.families[].family_id - 家庭ID
 * @returns {string} response.data.families[].name - 家庭名称
 * @returns {string} response.data.families[].avatar_url - 头像URL
 * @returns {string} response.data.families[].created_by_nickname - 创建人昵称
 * @returns {number} response.data.families[].step - 步数
 * @returns {number} response.data.families[].rank - 排名
 * @returns {Array} response.data.current_family[] - 当前家庭列表
 * @returns {string} response.data.current_family[].family_id - 家庭ID
 * @returns {string} response.data.current_family[].name - 家庭名称
 * @returns {string} response.data.current_family[].avatar_url - 头像URL
 * @returns {string} response.data.current_family[].created_by_nickname - 创建人昵称
 * @returns {number} response.data.current_family[].step - 步数
 * @returns {number} response.data.current_family[].rank - 排名
 */
export const getStepLeaderboardAPI = (params) => fn(fetch.get(Api.STEP_LEADERBOARD, params));