family.js
5.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
/*
* @Date: 2024-01-01 00:00:00
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2025-09-02 20:09:52
* @FilePath: /lls_program/src/api/family.js
* @Description: 家庭相关接口
*/
import { fn, fetch } from './fn';
const Api = {
SEARCH_BY_PASSPHRASE: '/srv/?a=family&t=search_by_passphrase',
LIST_MY_FAMILIES: '/srv/?a=family&t=list_my_families',
GET_DASHBOARD: '/srv/?a=family&t=get_dashboard',
ADD_FAMILY: '/srv/?a=family&t=add',
JOIN_FAMILY: '/srv/?a=family&t=join',
DEL_MEMBER: '/srv/?a=family&t=del_member',
}
/**
* @description: 根据口令搜索家庭
* @param {Object} params - 请求参数
* @param {string} params.passphrase - 家训口令
* @param {number} [params.page=0] - 页码,从0开始
* @param {number} [params.limit=10] - 每页数量
* @returns {Promise} 返回匹配的家庭列表
* @returns {Object} response - 响应对象
* @returns {number} response.code - 响应状态码
* @returns {string} response.msg - 响应消息
* @returns {Array} response.data - 家庭列表
* @returns {number} response.data[].id - 家庭ID
* @returns {string} response.data[].name - 家庭名称
* @returns {string} response.data[].avatar_url - 家庭头像
*/
export const searchFamilyByPassphraseAPI = (params) => fn(fetch.get(Api.SEARCH_BY_PASSPHRASE, params));
/**
* @description: 获取我的家庭列表
* @returns {Promise} 返回当前用户创建和加入的所有家庭列表
* @returns {Object} response - 响应对象
* @returns {string} response.code - 响应状态码
* @returns {string} response.msg - 响应消息
* @returns {Array} response.data - 家庭列表
* @returns {number} response.data[].id - 家庭ID
* @returns {string} response.data[].name - 家庭名称
* @returns {string} response.data[].avatar_url - 家庭头像
* @returns {boolean} response.data[].is_my - 是否是我创建的家庭
*/
export const getMyFamiliesAPI = () => fn(fetch.get(Api.LIST_MY_FAMILIES));
/**
* @description: 获取家庭首页数据
* @param {Object} [params] - 请求参数
* @param {string} [params.family_id] - 家庭ID,默认是上次选中的家庭
* @returns {Promise} 返回家庭首页聚合数据
* @returns {Object} response - 响应对象
* @returns {number} response.code - 响应状态码
* @returns {string} response.msg - 响应消息
* @returns {Object} response.data - 家庭首页数据
* @returns {Object} response.data.family - 家庭信息
* @returns {number} response.data.family.id - 家庭ID
* @returns {string} response.data.family.name - 家庭名称
* @returns {string} response.data.family.note - 家庭描述
* @returns {string} response.data.family.avatar_url - 家庭头像
* @returns {number} response.data.family.total_points - 家庭总积分
* @returns {number} response.data.family_today_step - 家庭今日总步数
* @returns {number} response.data.my_today_step - 我今天的步数
* @returns {Array} response.data.pending_points - 等待汇总到家庭的积分
* @returns {number} response.data.pending_points[].id - 积分ID
* @returns {string} response.data.pending_points[].title - 积分标题
* @returns {string} response.data.pending_points[].points - 积分数量
* @returns {string} response.data.pending_points[].source_type - 积分来源
* @returns {string} response.data.pending_points[].note - 积分说明
* @returns {Array} response.data.step_ranking - 步数排名
* @returns {string} response.data.step_ranking[].user_id - 用户ID
* @returns {string} response.data.step_ranking[].role - 角色
* @returns {string} response.data.step_ranking[].avatar_url - 头像
* @returns {string} response.data.step_ranking[].today_step - 用户今日步数
*/
export const getFamilyDashboardAPI = (params) => fn(fetch.get(Api.GET_DASHBOARD, params));
/**
* @description: 创建家庭
* @param {Object} params - 请求参数
* @param {string} params.name - 家庭名称
* @param {string} params.county - 所在区县
* @param {string} params.passphrase - 家训口令
* @param {string} params.avatar_url - 家庭头像
* @param {string} params.note - 家庭介绍
* @returns {Promise} 返回创建的家庭ID
* @returns {Object} response - 响应对象
* @returns {string} response.code - 响应状态码
* @returns {string} response.msg - 响应消息
* @returns {Object} response.data - 响应数据
* @returns {number} response.data.family_id - 家庭ID
*/
export const createFamilyAPI = (params) => fn(fetch.post(Api.ADD_FAMILY, params));
/**
* @description: 加入家庭
* @param {Object} params - 请求参数
* @param {number} params.family_id - 家庭ID
* @param {string} params.role - 角色(如:儿子、女儿等)
* @returns {Promise} 返回加入结果
* @returns {Object} response - 响应对象
* @returns {string} response.code - 响应状态码
* @returns {string} response.msg - 响应消息
*/
export const joinFamilyAPI = (params) => fn(fetch.post(Api.JOIN_FAMILY, params));
/**
* @description: 退出或移出家庭成员
* @param {Object} params - 请求参数
* @param {number} params.family_id - 家庭ID
* @param {number} [params.member_user_id] - 成员用户ID(主动退出时不传,创建者移出时传递)
* @returns {Promise} 返回操作结果
* @returns {Object} response - 响应对象
* @returns {string} response.code - 响应状态码
* @returns {string} response.msg - 响应消息
*/
export const deleteFamilyMemberAPI = (params) => fn(fetch.post(Api.DEL_MEMBER, params));