Authored by liqingzhong

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

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,