Showing
3 changed files
with
70 additions
and
63 deletions
1 | -## 新潮教室 | ||
2 | - | ||
3 | -### Redis设计 | ||
4 | - | ||
5 | -#### 记录用户连续签到的天数。 | ||
6 | -用户签到成功之后,需要设置这个值。 key过期时间是当天时间到第二天零点,例如,当前设置时间为 `2016-04-01 17:48`, 则失效时间为`2016-04-03 00:01` | ||
7 | -Key Value结构: `KEY: <UID>, Value: NUMBER` , 例如 `checkedDays:10623456-->6` 表示`10623456`已经连续签到6天。 | ||
8 | - | ||
9 | -#### 记录用户当天是否签到。 | ||
10 | -用户签到成功之后,需要设置这个值。key过期时间:当天时间到今晚零点, 例如,设置时间为 `2016-04-01 17:48`, 则失效时间为`2016-04-02 00:01` | ||
11 | -Key Value结构: `KEY: <UID>, Value: Y or N` , 例如 `10623456-->Y` 表示`10623456`当天已经签到。 | ||
12 | - | ||
13 | -#### 记录用户签到记录。 | ||
14 | -缓存用户的签到记录。失效时间:60分钟。查询的时候,从数据库中获取,然后写入到缓存中。用户签到之后,删除缓存 | ||
15 | -LIST结构: `KEY: <UID> , Value: [2015-03-12 18:12:12, 2015-03-13 18:12:12 ]` | ||
16 | - | ||
17 | -#### 所有用户的亲密度信息。 | ||
18 | -不失效。 用户签到成功,修改了亲密度之后,添加element。 | ||
19 | -SortedSet接口, `KEY: STAR_ORDER, Value: { <UID>--> 亲密度信息+LAST-UPDATE-TIME}` | ||
20 | - | ||
21 | -### 表设计 | ||
22 | - | ||
23 | -#### Table: user_star_intimacy 用户-亲密度表 | ||
24 | - | ||
25 | -| 列名 | 说明 | | ||
26 | -| :--------- | :------------------- | | ||
27 | -| uid | 用户ID, 主键 | | ||
28 | -| star_id | 明星 ID | | ||
29 | -| num | 亲密度(int) | | ||
30 | -| create_time | 创建时间 | | ||
31 | -| update_time | 更新时间,格式为int (到现在的秒数) | | ||
32 | - | ||
33 | - | ||
34 | -#### Table: user_star_intimacy_log 用户-签到记录表。 签到成功之后,添加记录 | ||
35 | - | ||
36 | -| 列名 | 说明 | | ||
37 | -| :--------- | :------------------- | | ||
38 | -| id | 自增主键 | | ||
39 | -| uid | 用户ID , 索引 | | ||
40 | -| star_id | 明星 ID | | ||
41 | -| type | 1. 签到 2. 转发 | | ||
42 | -| add_num | 本次增加的分数 | | ||
43 | -| create_time | 签到(转发)时间,格式为int (到现在的秒数) | | ||
44 | - | ||
45 | - | ||
46 | -### 流程 | ||
47 | - | ||
48 | -#### 签到 | ||
49 | -插入到签到记录表--> 计算应该新增的亲密度--> 修改用户亲密度表,添加亲密度 --》缓存修改(见下图) | ||
50 | - | ||
51 | -![流程图] (https://www.processon.com/chart_image/5703a223e4b0bf3d8fdbf295.png) | ||
52 | - | ||
53 | - | ||
54 | -#### 查询亲密度前3名 | ||
55 | -所有用户的亲密度信息Cache中取前3个 | ||
56 | - | ||
57 | -#### 获取我的亲密度排名 | ||
58 | -用 uid,与明星 ID --> 从 `所有用户的亲密度信息` Cache 中找出Element的rank(ZRANK) | 1 | +## 新潮教室 |
2 | + | ||
3 | +### Redis设计 | ||
4 | + | ||
5 | +#### 记录用户连续签到的天数。 | ||
6 | +用户签到成功之后,需要设置这个值。 key过期时间是当天时间到第二天零点,例如,当前设置时间为 `2016-04-01 17:48`, 则失效时间为`2016-04-03 00:01` | ||
7 | +Key Value结构: `KEY: <UID>, Value: NUMBER` , 例如 `checkedDays:10623456-->6` 表示`10623456`已经连续签到6天。 | ||
8 | + | ||
9 | +#### 记录用户当天是否签到。 | ||
10 | +用户签到成功之后,需要设置这个值。key过期时间:当天时间到今晚零点, 例如,设置时间为 `2016-04-01 17:48`, 则失效时间为`2016-04-02 00:01` | ||
11 | +Key Value结构: `KEY: <UID>, Value: Y or N` , 例如 `10623456-->Y` 表示`10623456`当天已经签到。 | ||
12 | + | ||
13 | +#### 记录用户签到记录。 | ||
14 | +缓存用户的签到记录。失效时间:60分钟。查询的时候,从数据库中获取,然后写入到缓存中。用户签到之后,删除缓存 | ||
15 | +LIST结构: `KEY: <UID> , Value: [2015-03-12 18:12:12, 2015-03-13 18:12:12 ]` | ||
16 | + | ||
17 | +#### 所有用户的亲密度信息。 | ||
18 | +不失效。 用户签到成功,修改了亲密度之后,添加element。 | ||
19 | +SortedSet接口, `KEY: STAR_ORDER, Value: { <UID>--> 亲密度信息+LAST-UPDATE-TIME}` | ||
20 | + | ||
21 | +### 表设计 | ||
22 | + | ||
23 | +#### Table: user_star_intimacy 用户-亲密度表 | ||
24 | + | ||
25 | +| 列名 | 说明 | | ||
26 | +| :--------- | :------------------- | | ||
27 | +| uid | 用户ID, 主键 | | ||
28 | +| star_id | 明星 ID | | ||
29 | +| num | 亲密度(int) | | ||
30 | +| create_time | 创建时间 | | ||
31 | +| update_time | 更新时间,格式为int (到现在的秒数) | | ||
32 | + | ||
33 | + | ||
34 | +#### Table: user_star_intimacy_log 用户-签到记录表。 签到成功之后,添加记录 | ||
35 | + | ||
36 | +| 列名 | 说明 | | ||
37 | +| :--------- | :------------------- | | ||
38 | +| id | 自增主键 | | ||
39 | +| uid | 用户ID , 索引 | | ||
40 | +| star_id | 明星 ID | | ||
41 | +| type | 1. 签到 2. 转发 | | ||
42 | +| add_num | 本次增加的分数 | | ||
43 | +| create_time | 签到(转发)时间,格式为int (到现在的秒数) | | ||
44 | + | ||
45 | + | ||
46 | +### 流程 | ||
47 | + | ||
48 | +#### 签到 | ||
49 | +插入到签到记录表--> 计算应该新增的亲密度--> 修改用户亲密度表,添加亲密度 --》缓存修改(见下图) | ||
50 | + | ||
51 | +![流程图] (https://www.processon.com/chart_image/5703a223e4b0bf3d8fdbf295.png) | ||
52 | + | ||
53 | + | ||
54 | +#### 查询亲密度前3名 | ||
55 | +所有用户的亲密度信息Cache中取前3个 | ||
56 | + | ||
57 | +#### 获取我的亲密度排名 | ||
58 | +用 uid,与明星 ID --> 从 `所有用户的亲密度信息` Cache 中找出Element的rank(ZRANK) |
@@ -61,27 +61,34 @@ method=app.outlets.activityGet | @@ -61,27 +61,34 @@ method=app.outlets.activityGet | ||
61 | "code": 200, | 61 | "code": 200, |
62 | "data": [ | 62 | "data": [ |
63 | { | 63 | { |
64 | - "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", | 64 | + "id": 158, |
65 | "createTime": 1464743122, | 65 | "createTime": 1464743122, |
66 | "endTime": 1467298800, | 66 | "endTime": 1467298800, |
67 | - "id": 158, | 67 | + // app 使用活动封面 |
68 | + "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", | ||
69 | + // web 使用 logo | ||
68 | "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", | 70 | "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", |
71 | + // web 使用封面 | ||
72 | + "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", | ||
73 | + // web 活动详情页顶部图片 | ||
74 | + "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", | ||
69 | "plateform": "2", | 75 | "plateform": "2", |
70 | "productPoolId": 20, | 76 | "productPoolId": 20, |
71 | "promotionName": "5折起", | 77 | "promotionName": "5折起", |
72 | "sort": "1", | 78 | "sort": "1", |
73 | "startTime": 1464710400, | 79 | "startTime": 1464710400, |
74 | "title": "结束时间大于24小时的", | 80 | "title": "结束时间大于24小时的", |
75 | - "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", | ||
76 | "yhChannel": "1,2,3,4", | 81 | "yhChannel": "1,2,3,4", |
77 | "startLeftTime": -182639, // starTime - now | 82 | "startLeftTime": -182639, // starTime - now |
78 | "endLeftTime": 508561 // endTime - now | 83 | "endLeftTime": 508561 // endTime - now |
79 | }, | 84 | }, |
80 | { | 85 | { |
81 | - "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", | 86 | + "id": 154, |
82 | "createTime": 1464742971, | 87 | "createTime": 1464742971, |
83 | "endTime": 1464793200, | 88 | "endTime": 1464793200, |
84 | - "id": 154, | 89 | + "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", |
90 | + "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", | ||
91 | + "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", | ||
85 | "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", | 92 | "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", |
86 | "plateform": "2", | 93 | "plateform": "2", |
87 | "productPoolId": 20, | 94 | "productPoolId": 20, |
-
Please register or login to post a comment