feat(api): 添加成就系统并升级SDK

- 升级 HaveADrink SDK 从 1.0.16 到 1.0.17 版本
- 新增 GetAchievements API 接口及相关数据类型定义
- 添加 17 个成就定义,包括打卡次数、连续打卡、标准杯累计、酒类探索等类别
- 实现成就解锁逻辑计算,支持 category_records 类型成就判断
- 创建成就徽章对接文档,定义接口格式和存储建议
- 在用户资料页面集成成就展示功能,优化图标匹配逻辑
This commit is contained in:
cg
2026-08-17 23:07:23 +08:00
parent 06ec10cf10
commit 18e7b4fd50
12 changed files with 644 additions and 29 deletions
+49 -1
View File
@@ -14,7 +14,7 @@
* 6. 社交模块 - 朋友圈动态、点赞
**版本:** v1.0.16
**版本:** v1.0.17
## 安装
@@ -220,6 +220,53 @@ const req = new GetAchievementsReq()
client.GetAchievements(req).then(...).catch(...)
```
### 获取用户所有成就列表。需登录认证,返回全量17项及解锁进度
<font color="green">GET</font> `/api/have_a_drink/v1/achievements/achievements`
#### 请求参数
|名称|类型|校验规则|说明|
|:-|:-|:-|:-|
#### 返回值
|名称|类型|说明|
|:-|:-:|:-|
|achievements|`Array<AchievementItem>`| 全量 17 个成就(含未解锁)<br>|
**AchievementItem**
|名称|类型|说明|
|:-|:-|:-|
|id|`string`| 成就唯一标识(如 first_checkin)|
|name|`string`| 成就名称|
|desc|`string`| 成就描述|
|unlocked|`boolean`| 是否已解锁|
|unlockedAt|`string`| 解锁时间(ISO 8601),未解锁时为 null|
|condition|`Condition`| 解锁条件|
|progress|`number`| 进度 (0~1)|
|icon,omitempty|`string`| 图标资源(前端忽略该字段,后端可省略)|
**Condition**
|名称|类型|说明|
|:-|:-|:-|
|type|`ConditionType`| 条件类型|
|value|`number`| 目标阈值|
|category,omitempty|`string`| 酒类分类(仅当 Type = category_records 时有效)|
```javascript
const req = new GetAchievementListReq()
client.GetAchievementList(req).then(...).catch(...)
```
### 获取朋友圈动态
@@ -1092,6 +1139,7 @@ client.GetUserProfile(req).then(...).catch(...)
### 更新用户偏好
**已废弃:** 未使用
<font color="green">PUT</font> `/api/have_a_drink/v1/user/user/preferences`