Authored by liqingzhong

新潮目录调整,活动新增字段

## 新潮教室
### Redis设计
#### 记录用户连续签到的天数。
用户签到成功之后,需要设置这个值。 key过期时间是当天时间到第二天零点,例如,当前设置时间为 `2016-04-01 17:48`, 则失效时间为`2016-04-03 00:01`
Key Value结构: `KEY: <UID>, Value: NUMBER` , 例如 `checkedDays:10623456-->6` 表示`10623456`已经连续签到6天。
#### 记录用户当天是否签到。
用户签到成功之后,需要设置这个值。key过期时间:当天时间到今晚零点, 例如,设置时间为 `2016-04-01 17:48`, 则失效时间为`2016-04-02 00:01`
Key Value结构: `KEY: <UID>, Value: Y or N` , 例如 `10623456-->Y` 表示`10623456`当天已经签到。
#### 记录用户签到记录。
缓存用户的签到记录。失效时间:60分钟。查询的时候,从数据库中获取,然后写入到缓存中。用户签到之后,删除缓存
LIST结构: `KEY: <UID> , Value: [2015-03-12 18:12:12, 2015-03-13 18:12:12 ]`
#### 所有用户的亲密度信息。
不失效。 用户签到成功,修改了亲密度之后,添加element。
SortedSet接口, `KEY: STAR_ORDER, Value: { <UID>--> 亲密度信息+LAST-UPDATE-TIME}`
### 表设计
#### Table: user_star_intimacy 用户-亲密度表
| 列名 | 说明 |
| :--------- | :------------------- |
| uid | 用户ID, 主键 |
| star_id | 明星 ID |
| num | 亲密度(int) |
| create_time | 创建时间 |
| update_time | 更新时间,格式为int (到现在的秒数) |
#### Table: user_star_intimacy_log 用户-签到记录表。 签到成功之后,添加记录
| 列名 | 说明 |
| :--------- | :------------------- |
| id | 自增主键 |
| uid | 用户ID , 索引 |
| star_id | 明星 ID |
| type | 1. 签到 2. 转发 |
| add_num | 本次增加的分数 |
| create_time | 签到(转发)时间,格式为int (到现在的秒数) |
### 流程
#### 签到
插入到签到记录表--> 计算应该新增的亲密度--> 修改用户亲密度表,添加亲密度 --》缓存修改(见下图)
![流程图] (https://www.processon.com/chart_image/5703a223e4b0bf3d8fdbf295.png)
#### 查询亲密度前3名
所有用户的亲密度信息Cache中取前3个
#### 获取我的亲密度排名
用 uid,与明星 ID --> 从 `所有用户的亲密度信息` Cache 中找出Element的rank(ZRANK)
## 新潮教室
### Redis设计
#### 记录用户连续签到的天数。
用户签到成功之后,需要设置这个值。 key过期时间是当天时间到第二天零点,例如,当前设置时间为 `2016-04-01 17:48`, 则失效时间为`2016-04-03 00:01`
Key Value结构: `KEY: <UID>, Value: NUMBER` , 例如 `checkedDays:10623456-->6` 表示`10623456`已经连续签到6天。
#### 记录用户当天是否签到。
用户签到成功之后,需要设置这个值。key过期时间:当天时间到今晚零点, 例如,设置时间为 `2016-04-01 17:48`, 则失效时间为`2016-04-02 00:01`
Key Value结构: `KEY: <UID>, Value: Y or N` , 例如 `10623456-->Y` 表示`10623456`当天已经签到。
#### 记录用户签到记录。
缓存用户的签到记录。失效时间:60分钟。查询的时候,从数据库中获取,然后写入到缓存中。用户签到之后,删除缓存
LIST结构: `KEY: <UID> , Value: [2015-03-12 18:12:12, 2015-03-13 18:12:12 ]`
#### 所有用户的亲密度信息。
不失效。 用户签到成功,修改了亲密度之后,添加element。
SortedSet接口, `KEY: STAR_ORDER, Value: { <UID>--> 亲密度信息+LAST-UPDATE-TIME}`
### 表设计
#### Table: user_star_intimacy 用户-亲密度表
| 列名 | 说明 |
| :--------- | :------------------- |
| uid | 用户ID, 主键 |
| star_id | 明星 ID |
| num | 亲密度(int) |
| create_time | 创建时间 |
| update_time | 更新时间,格式为int (到现在的秒数) |
#### Table: user_star_intimacy_log 用户-签到记录表。 签到成功之后,添加记录
| 列名 | 说明 |
| :--------- | :------------------- |
| id | 自增主键 |
| uid | 用户ID , 索引 |
| star_id | 明星 ID |
| type | 1. 签到 2. 转发 |
| add_num | 本次增加的分数 |
| create_time | 签到(转发)时间,格式为int (到现在的秒数) |
### 流程
#### 签到
插入到签到记录表--> 计算应该新增的亲密度--> 修改用户亲密度表,添加亲密度 --》缓存修改(见下图)
![流程图] (https://www.processon.com/chart_image/5703a223e4b0bf3d8fdbf295.png)
#### 查询亲密度前3名
所有用户的亲密度信息Cache中取前3个
#### 获取我的亲密度排名
用 uid,与明星 ID --> 从 `所有用户的亲密度信息` Cache 中找出Element的rank(ZRANK)
... ...
... ... @@ -61,27 +61,34 @@ method=app.outlets.activityGet
"code": 200,
"data": [
{
"coverUrl": "http://img12.static.yhbimg.com/activity/2016/06/01/09/0247b9c84abef388c38465135909d48245.jpg?imageMogr2/thumbnail/{width}x{height}/extent/{width}x{height}/background/d2hpdGU=/position/center/quality/80",
"id": 158,
"createTime": 1464743122,
"endTime": 1467298800,
"id": 158,
// app 使用活动封面
"coverUrl": "http://img12.static.yhbimg.com/activity/2016/06/01/09/0247b9c84abef388c38465135909d48245.jpg?imageMogr2/thumbnail/{width}x{height}/extent/{width}x{height}/background/d2hpdGU=/position/center/quality/80",
// web 使用 logo
"logoUrl": "http://img11.static.yhbimg.com/activity/2016/06/01/09/0108ca28e51a0ccbb08d1dc5090db309e8.jpg?imageMogr2/thumbnail/{width}x{height}/extent/{width}x{height}/background/d2hpdGU=/position/center/quality/80",
// web 使用封面
"webCoverUrl":"http://img11.static.yhbimg.com/activity/2016/06/01/09/0108ca28e51a0ccbb08d1dc5090db309e8.jpg?imageMogr2/thumbnail/{width}x{height}/extent/{width}x{height}/background/d2hpdGU=/position/center/quality/80",
// web 活动详情页顶部图片
"webUrl": "http://img13.static.yhbimg.com/activity/2016/06/01/09/028784aaeb41a35dccc886741e76101d0b.jpg?imageMogr2/thumbnail/{width}x{height}/extent/{width}x{height}/background/d2hpdGU=/position/center/quality/80",
"plateform": "2",
"productPoolId": 20,
"promotionName": "5折起",
"sort": "1",
"startTime": 1464710400,
"title": "结束时间大于24小时的",
"webUrl": "http://img13.static.yhbimg.com/activity/2016/06/01/09/028784aaeb41a35dccc886741e76101d0b.jpg?imageMogr2/thumbnail/{width}x{height}/extent/{width}x{height}/background/d2hpdGU=/position/center/quality/80",
"yhChannel": "1,2,3,4",
"startLeftTime": -182639, // starTime - now
"endLeftTime": 508561 // endTime - now
},
{
"coverUrl": "http://img12.static.yhbimg.com/activity/2016/06/01/09/02b721601cf86afa95279e7f54c9510df6.jpg?imageMogr2/thumbnail/{width}x{height}/extent/{width}x{height}/background/d2hpdGU=/position/center/quality/80",
"id": 154,
"createTime": 1464742971,
"endTime": 1464793200,
"id": 154,
"coverUrl": "http://img12.static.yhbimg.com/activity/2016/06/01/09/02b721601cf86afa95279e7f54c9510df6.jpg?imageMogr2/thumbnail/{width}x{height}/extent/{width}x{height}/background/d2hpdGU=/position/center/quality/80",
"webCoverUrl":"http://img11.static.yhbimg.com/activity/2016/06/01/09/0108ca28e51a0ccbb08d1dc5090db309e8.jpg?imageMogr2/thumbnail/{width}x{height}/extent/{width}x{height}/background/d2hpdGU=/position/center/quality/80",
"webUrl": "http://img13.static.yhbimg.com/activity/2016/06/01/09/028784aaeb41a35dccc886741e76101d0b.jpg?imageMogr2/thumbnail/{width}x{height}/extent/{width}x{height}/background/d2hpdGU=/position/center/quality/80",
"logoUrl": "http://img11.static.yhbimg.com/activity/2016/06/01/09/011506208211a5dc5019878e7c465f3e0b.jpg?imageMogr2/thumbnail/{width}x{height}/extent/{width}x{height}/background/d2hpdGU=/position/center/quality/80",
"plateform": "2",
"productPoolId": 20,
... ...