Commit f032452a73cce4624036a8eb1ec0bd3d3f1a733c
1 parent
0b85f107
Exists in
master
提交聊天相关接口
Showing
6 changed files
with
493 additions
and
322 deletions
Show diff stats
src/HttpServer/logic/datadef.go
@@ -14,6 +14,11 @@ const ( | @@ -14,6 +14,11 @@ const ( | ||
14 | 14 | ||
15 | ) | 15 | ) |
16 | 16 | ||
17 | +type RedisTeamInfo struct { | ||
18 | + Team_id int `json:"team_id"` | ||
19 | + User_id int `json:"user_id"` | ||
20 | +} | ||
21 | + | ||
17 | type WechatLoginReq struct { | 22 | type WechatLoginReq struct { |
18 | Channel_id int `json:"channel_id"` | 23 | Channel_id int `json:"channel_id"` |
19 | Invite_type int `json:"invite_type"` | 24 | Invite_type int `json:"invite_type"` |
@@ -113,6 +118,24 @@ type QueryInviteResp struct { | @@ -113,6 +118,24 @@ type QueryInviteResp struct { | ||
113 | Result QueryInviteResult `json:"result"` | 118 | Result QueryInviteResult `json:"result"` |
114 | } | 119 | } |
115 | 120 | ||
121 | +type QueryNewMessageReq struct{ | ||
122 | + Uuid int `json:"uuid"` | ||
123 | +} | ||
124 | + | ||
125 | +type QueryNewMessageDesc struct { | ||
126 | + Isnew int `json:"isnew"` | ||
127 | +} | ||
128 | + | ||
129 | +type QueryNewMessageResult struct { | ||
130 | + Code int `json:"code"` | ||
131 | + Data QueryNewMessageDesc `json:"data"` | ||
132 | +} | ||
133 | + | ||
134 | +type QueryNewMessageResp struct { | ||
135 | + Status string `json:"status"` | ||
136 | + Result QueryNewMessageResult `json:"result"` | ||
137 | +} | ||
138 | + | ||
116 | 139 | ||
117 | type InviteWorkReq struct{ | 140 | type InviteWorkReq struct{ |
118 | Uuid int `json:"uuid"` | 141 | Uuid int `json:"uuid"` |
src/HttpServer/logic/function.go
@@ -22,36 +22,35 @@ func SetHeader(w http.ResponseWriter) { | @@ -22,36 +22,35 @@ func SetHeader(w http.ResponseWriter) { | ||
22 | w.Header().Set("Access-Control-Allow-Headers", "Content-Type,Uuid") | 22 | w.Header().Set("Access-Control-Allow-Headers", "Content-Type,Uuid") |
23 | } | 23 | } |
24 | 24 | ||
25 | - | ||
26 | -func (tinfo *TeamInfo) DoAddBuffTimee(btype int,muti int,resp *AddTeamBuffResp) { | ||
27 | - addtime := 1800*muti | 25 | +func (tinfo *TeamInfo) DoAddBuffTimee(btype int, muti int, resp *AddTeamBuffResp) { |
26 | + addtime := 1800 * muti | ||
28 | index := 0 | 27 | index := 0 |
29 | - for k,val := range tinfo.BInfo.Buff { | 28 | + for k, val := range tinfo.BInfo.Buff { |
30 | if val.Type == btype { | 29 | if val.Type == btype { |
31 | index = k | 30 | index = k |
32 | } | 31 | } |
33 | } | 32 | } |
34 | 33 | ||
35 | - for i:=0;i<len(tinfo.BInfo.Buff[index].BuffInfo);i++ { | 34 | + for i := 0; i < len(tinfo.BInfo.Buff[index].BuffInfo); i++ { |
36 | tinfo.BInfo.Buff[index].BuffInfo[i].EndTime += addtime | 35 | tinfo.BInfo.Buff[index].BuffInfo[i].EndTime += addtime |
37 | } | 36 | } |
38 | 37 | ||
39 | - for _,vak := range tinfo.BInfo.Buff { | 38 | + for _, vak := range tinfo.BInfo.Buff { |
40 | var tmp AddTeamBuffSpec | 39 | var tmp AddTeamBuffSpec |
41 | tmp.Build_type = vak.Type | 40 | tmp.Build_type = vak.Type |
42 | - for _,val1 := range vak.BuffInfo { | 41 | + for _, val1 := range vak.BuffInfo { |
43 | var tmp1 BuffTimeInfo | 42 | var tmp1 BuffTimeInfo |
44 | tmp1.Buff_begin_time = val1.BeginTime | 43 | tmp1.Buff_begin_time = val1.BeginTime |
45 | tmp1.Buff_end_time = val1.EndTime | 44 | tmp1.Buff_end_time = val1.EndTime |
46 | - tmp.Buff_time = append(tmp.Buff_time,tmp1) | 45 | + tmp.Buff_time = append(tmp.Buff_time, tmp1) |
47 | } | 46 | } |
48 | - resp.Result.Data.Build_list = append(resp.Result.Data.Build_list,tmp) | 47 | + resp.Result.Data.Build_list = append(resp.Result.Data.Build_list, tmp) |
49 | } | 48 | } |
50 | } | 49 | } |
51 | 50 | ||
52 | -func (tinfo *TeamInfo) DoDevote(btype int,assets int ,uuid int,muti int) { | 51 | +func (tinfo *TeamInfo) DoDevote(btype int, assets int, uuid int, muti int) { |
53 | bfind := false | 52 | bfind := false |
54 | - for k,val := range tinfo.BInfo.Devote { | 53 | + for k, val := range tinfo.BInfo.Devote { |
55 | if val.Type == btype { | 54 | if val.Type == btype { |
56 | tinfo.BInfo.Devote[k].Assets += assets | 55 | tinfo.BInfo.Devote[k].Assets += assets |
57 | bfind = true | 56 | bfind = true |
@@ -63,37 +62,37 @@ func (tinfo *TeamInfo) DoDevote(btype int,assets int ,uuid int,muti int) { | @@ -63,37 +62,37 @@ func (tinfo *TeamInfo) DoDevote(btype int,assets int ,uuid int,muti int) { | ||
63 | tmp.UserId = uuid | 62 | tmp.UserId = uuid |
64 | tmp.Assets = assets | 63 | tmp.Assets = assets |
65 | tmp.Type = btype | 64 | tmp.Type = btype |
66 | - tinfo.BInfo.Devote = append(tinfo.BInfo.Devote,tmp) | 65 | + tinfo.BInfo.Devote = append(tinfo.BInfo.Devote, tmp) |
67 | } | 66 | } |
68 | 67 | ||
69 | //需要处理一下buff | 68 | //需要处理一下buff |
70 | nowtime := int(time.Now().Unix()) | 69 | nowtime := int(time.Now().Unix()) |
71 | - addTime := 1800*muti | 70 | + addTime := 1800 * muti |
72 | var index = 0 | 71 | var index = 0 |
73 | - for k,val := range tinfo.BInfo.Buff { | 72 | + for k, val := range tinfo.BInfo.Buff { |
74 | if val.Type == btype { | 73 | if val.Type == btype { |
75 | index = k | 74 | index = k |
76 | } | 75 | } |
77 | } | 76 | } |
78 | - if tinfo.BInfo.Buff[index].BuffInfo[len(tinfo.BInfo.Buff[index].BuffInfo)-1].EndTime < nowtime + 86399 { | 77 | + if tinfo.BInfo.Buff[index].BuffInfo[len(tinfo.BInfo.Buff[index].BuffInfo)-1].EndTime < nowtime+86399 { |
79 | if tinfo.BInfo.Buff[index].BuffInfo[len(tinfo.BInfo.Buff[index].BuffInfo)-1].EndTime >= nowtime { | 78 | if tinfo.BInfo.Buff[index].BuffInfo[len(tinfo.BInfo.Buff[index].BuffInfo)-1].EndTime >= nowtime { |
80 | tinfo.BInfo.Buff[index].BuffInfo[len(tinfo.BInfo.Buff[index].BuffInfo)-1].EndTime += addTime | 79 | tinfo.BInfo.Buff[index].BuffInfo[len(tinfo.BInfo.Buff[index].BuffInfo)-1].EndTime += addTime |
81 | } else { | 80 | } else { |
82 | var tmp TeamBuffInfo | 81 | var tmp TeamBuffInfo |
83 | tmp.BeginTime = nowtime | 82 | tmp.BeginTime = nowtime |
84 | tmp.EndTime = nowtime + addTime | 83 | tmp.EndTime = nowtime + addTime |
85 | - tinfo.BInfo.Buff[index].BuffInfo = append(tinfo.BInfo.Buff[index].BuffInfo,tmp) | 84 | + tinfo.BInfo.Buff[index].BuffInfo = append(tinfo.BInfo.Buff[index].BuffInfo, tmp) |
86 | } | 85 | } |
87 | - }else { | 86 | + } else { |
88 | tinfo.BInfo.Buff[index].BuffInfo[len(tinfo.BInfo.Buff[index].BuffInfo)-1].EndTime += 86399 | 87 | tinfo.BInfo.Buff[index].BuffInfo[len(tinfo.BInfo.Buff[index].BuffInfo)-1].EndTime += 86399 |
89 | } | 88 | } |
90 | 89 | ||
91 | //删除掉无用的 | 90 | //删除掉无用的 |
92 | - yestime := nowtime-86400 | ||
93 | - for i:=0;i<len(tinfo.BInfo.Buff[index].BuffInfo);i++ { | 91 | + yestime := nowtime - 86400 |
92 | + for i := 0; i < len(tinfo.BInfo.Buff[index].BuffInfo); i++ { | ||
94 | v := tinfo.BInfo.Buff[index].BuffInfo[i] | 93 | v := tinfo.BInfo.Buff[index].BuffInfo[i] |
95 | if v.BeginTime < yestime && v.EndTime < yestime { | 94 | if v.BeginTime < yestime && v.EndTime < yestime { |
96 | - tinfo.BInfo.Buff = append(tinfo.BInfo.Buff[:i],tinfo.BInfo.Buff[i+1:]...) | 95 | + tinfo.BInfo.Buff = append(tinfo.BInfo.Buff[:i], tinfo.BInfo.Buff[i+1:]...) |
97 | i-- | 96 | i-- |
98 | } | 97 | } |
99 | } | 98 | } |
@@ -101,7 +100,7 @@ func (tinfo *TeamInfo) DoDevote(btype int,assets int ,uuid int,muti int) { | @@ -101,7 +100,7 @@ func (tinfo *TeamInfo) DoDevote(btype int,assets int ,uuid int,muti int) { | ||
101 | 100 | ||
102 | func (tinfo *TeamInfo) IsInTeam(uuid int) bool { | 101 | func (tinfo *TeamInfo) IsInTeam(uuid int) bool { |
103 | inteam := false | 102 | inteam := false |
104 | - for _,val := range tinfo.MemInfo.MemList { | 103 | + for _, val := range tinfo.MemInfo.MemList { |
105 | if val == uuid { | 104 | if val == uuid { |
106 | inteam = true | 105 | inteam = true |
107 | break | 106 | break |
@@ -110,123 +109,123 @@ func (tinfo *TeamInfo) IsInTeam(uuid int) bool { | @@ -110,123 +109,123 @@ func (tinfo *TeamInfo) IsInTeam(uuid int) bool { | ||
110 | return inteam | 109 | return inteam |
111 | } | 110 | } |
112 | 111 | ||
113 | -func (tinfo *TeamInfo) DelTeamMember(uuid int) { | 112 | +func (tinfo *TeamInfo) DelTeamMember(uuid int) { |
114 | 113 | ||
115 | - for k,val := range tinfo.MemInfo.MemList { | 114 | + for k, val := range tinfo.MemInfo.MemList { |
116 | if val == uuid { | 115 | if val == uuid { |
117 | - tinfo.MemInfo.MemList = append(tinfo.MemInfo.MemList[:k],tinfo.MemInfo.MemList[k+1:]...) | 116 | + tinfo.MemInfo.MemList = append(tinfo.MemInfo.MemList[:k], tinfo.MemInfo.MemList[k+1:]...) |
118 | break | 117 | break |
119 | } | 118 | } |
120 | } | 119 | } |
121 | 120 | ||
122 | //删除team关系 | 121 | //删除team关系 |
123 | - SaveTeamToUuid(0,uuid) | 122 | + SaveTeamToUuid(0, uuid) |
124 | 123 | ||
125 | } | 124 | } |
126 | 125 | ||
127 | //设置 | 126 | //设置 |
128 | -func SetTouristUid(utoken string,uid int) error{ | ||
129 | - err := redishandler.GetRedisClient().HSet(redis.USER_TOURIST_UID, utoken,strconv.Itoa(uid)) | 127 | +func SetTouristUid(utoken string, uid int) error { |
128 | + err := redishandler.GetRedisClient().HSet(redis.USER_TOURIST_UID, utoken, strconv.Itoa(uid)) | ||
130 | if err != nil { | 129 | if err != nil { |
131 | - logger.Error("SetTouristUid failed,err=%v",err) | 130 | + logger.Error("SetTouristUid failed,err=%v", err) |
132 | return err | 131 | return err |
133 | } | 132 | } |
134 | return nil | 133 | return nil |
135 | } | 134 | } |
136 | 135 | ||
137 | //获取游客的uid 返回值为uid | 136 | //获取游客的uid 返回值为uid |
138 | -func GetTouristUid(utoken string) (int,error){ | 137 | +func GetTouristUid(utoken string) (int, error) { |
139 | uidstr, err := redishandler.GetRedisClient().HGet(redis.USER_TOURIST_UID, utoken) | 138 | uidstr, err := redishandler.GetRedisClient().HGet(redis.USER_TOURIST_UID, utoken) |
140 | if err != nil { | 139 | if err != nil { |
141 | - return 0,err | 140 | + return 0, err |
142 | } | 141 | } |
143 | 142 | ||
144 | - uid,err := strconv.Atoi(uidstr) | ||
145 | - return uid,err | 143 | + uid, err := strconv.Atoi(uidstr) |
144 | + return uid, err | ||
146 | } | 145 | } |
147 | 146 | ||
148 | //获取玩家新的uuid | 147 | //获取玩家新的uuid |
149 | func GetNewUUid() int { | 148 | func GetNewUUid() int { |
150 | redishandler.GetRedisClient().Incr(redis.USER_MAX_UUID) | 149 | redishandler.GetRedisClient().Incr(redis.USER_MAX_UUID) |
151 | - newuuid ,err:= redishandler.GetRedisClient().GetInt(redis.USER_MAX_UUID) | 150 | + newuuid, err := redishandler.GetRedisClient().GetInt(redis.USER_MAX_UUID) |
152 | if err != nil { | 151 | if err != nil { |
153 | - logger.Error("GetNewUUid failed,err=%v",err) | 152 | + logger.Error("GetNewUUid failed,err=%v", err) |
154 | return 0 | 153 | return 0 |
155 | } | 154 | } |
156 | 155 | ||
157 | - return newuuid+100000 | 156 | + return newuuid + 100000 |
158 | } | 157 | } |
159 | 158 | ||
160 | //获取新的teamid | 159 | //获取新的teamid |
161 | func GetNewTeamId() int { | 160 | func GetNewTeamId() int { |
162 | redishandler.GetRedisClient().Incr(redis.TEAM_MAX_UUID) | 161 | redishandler.GetRedisClient().Incr(redis.TEAM_MAX_UUID) |
163 | - newuuid ,err:= redishandler.GetRedisClient().GetInt(redis.TEAM_MAX_UUID) | 162 | + newuuid, err := redishandler.GetRedisClient().GetInt(redis.TEAM_MAX_UUID) |
164 | if err != nil { | 163 | if err != nil { |
165 | - logger.Error("GetNewUUid failed,err=%v",err) | 164 | + logger.Error("GetNewUUid failed,err=%v", err) |
166 | return 0 | 165 | return 0 |
167 | } | 166 | } |
168 | 167 | ||
169 | - return newuuid+100000 | 168 | + return newuuid + 100000 |
170 | } | 169 | } |
171 | 170 | ||
172 | -func SaveUserBaseData(uuid int,value string) error { | 171 | +func SaveUserBaseData(uuid int, value string) error { |
173 | err := redishandler.GetRedisClient().HSet(redis.USER_BASE_DATA, strconv.Itoa(uuid), value) | 172 | err := redishandler.GetRedisClient().HSet(redis.USER_BASE_DATA, strconv.Itoa(uuid), value) |
174 | return err | 173 | return err |
175 | } | 174 | } |
176 | 175 | ||
177 | -func GetUserBaseData(uuid int ) (string,error) { | ||
178 | - strval,err := redishandler.GetRedisClient().HGet(redis.USER_BASIC_DATA, strconv.Itoa(uuid)) | 176 | +func GetUserBaseData(uuid int) (string, error) { |
177 | + strval, err := redishandler.GetRedisClient().HGet(redis.USER_BASIC_DATA, strconv.Itoa(uuid)) | ||
179 | if err != nil { | 178 | if err != nil { |
180 | - logger.Error("GetUserBasic failed,err=%v",err) | ||
181 | - return "",err | 179 | + logger.Error("GetUserBasic failed,err=%v", err) |
180 | + return "", err | ||
182 | } | 181 | } |
183 | 182 | ||
184 | - return strval,err | 183 | + return strval, err |
185 | 184 | ||
186 | } | 185 | } |
187 | 186 | ||
188 | -func SaveUserBasic(uuid int,value string) error { | 187 | +func SaveUserBasic(uuid int, value string) error { |
189 | err := redishandler.GetRedisClient().HSet(redis.USER_BASIC_DATA, strconv.Itoa(uuid), value) | 188 | err := redishandler.GetRedisClient().HSet(redis.USER_BASIC_DATA, strconv.Itoa(uuid), value) |
190 | return err | 189 | return err |
191 | } | 190 | } |
192 | 191 | ||
193 | -func GetUserBasic(uuid int ) (*UserBaseData,error) { | ||
194 | - strval,err := redishandler.GetRedisClient().HGet(redis.USER_BASIC_DATA, strconv.Itoa(uuid)) | 192 | +func GetUserBasic(uuid int) (*UserBaseData, error) { |
193 | + strval, err := redishandler.GetRedisClient().HGet(redis.USER_BASIC_DATA, strconv.Itoa(uuid)) | ||
195 | if err != nil { | 194 | if err != nil { |
196 | - logger.Error("GetUserBasic failed,err=%v",err) | ||
197 | - return nil,err | 195 | + logger.Error("GetUserBasic failed,err=%v", err) |
196 | + return nil, err | ||
198 | } | 197 | } |
199 | basic := new(UserBaseData) | 198 | basic := new(UserBaseData) |
200 | err = json.Unmarshal([]byte(strval), basic) | 199 | err = json.Unmarshal([]byte(strval), basic) |
201 | - return basic,err | 200 | + return basic, err |
202 | 201 | ||
203 | } | 202 | } |
204 | 203 | ||
205 | -func SaveUserExt(extdata * UserData) error { | 204 | +func SaveUserExt(extdata *UserData) error { |
206 | if extdata == nil { | 205 | if extdata == nil { |
207 | return nil | 206 | return nil |
208 | } | 207 | } |
209 | - m_userInfo.Set(uint32(extdata.Userid),extdata) | 208 | + m_userInfo.Set(uint32(extdata.Userid), extdata) |
210 | 209 | ||
211 | - ext,_ := json.Marshal(&extdata) | 210 | + ext, _ := json.Marshal(&extdata) |
212 | err := redishandler.GetRedisClient().HSet(redis.USER_EXT_DATA, strconv.Itoa(extdata.Userid), string(ext)) | 211 | err := redishandler.GetRedisClient().HSet(redis.USER_EXT_DATA, strconv.Itoa(extdata.Userid), string(ext)) |
213 | return err | 212 | return err |
214 | } | 213 | } |
215 | 214 | ||
216 | -func GetUserExt(uuid int) (*UserData,error) { | ||
217 | - strval,err := redishandler.GetRedisClient().HGet(redis.USER_EXT_DATA, strconv.Itoa(uuid)) | 215 | +func GetUserExt(uuid int) (*UserData, error) { |
216 | + strval, err := redishandler.GetRedisClient().HGet(redis.USER_EXT_DATA, strconv.Itoa(uuid)) | ||
218 | if err != nil { | 217 | if err != nil { |
219 | - logger.Error("GetUserExt failed,err=%v",err) | ||
220 | - return nil,err | 218 | + logger.Error("GetUserExt failed,err=%v", err) |
219 | + return nil, err | ||
221 | } | 220 | } |
222 | ext := new(UserData) | 221 | ext := new(UserData) |
223 | err = json.Unmarshal([]byte(strval), ext) | 222 | err = json.Unmarshal([]byte(strval), ext) |
224 | - return ext,err | 223 | + return ext, err |
225 | } | 224 | } |
226 | 225 | ||
227 | //检测队伍名称是否已经存在 | 226 | //检测队伍名称是否已经存在 |
228 | func GetUserTeamNameIsExist(name string) bool { | 227 | func GetUserTeamNameIsExist(name string) bool { |
229 | - _,err := redishandler.GetRedisClient().HGet(redis.TEAM_USERTEAM_NAME, name) | 228 | + _, err := redishandler.GetRedisClient().HGet(redis.TEAM_USERTEAM_NAME, name) |
230 | if err != nil { | 229 | if err != nil { |
231 | return true | 230 | return true |
232 | } | 231 | } |
@@ -234,7 +233,7 @@ func GetUserTeamNameIsExist(name string) bool { | @@ -234,7 +233,7 @@ func GetUserTeamNameIsExist(name string) bool { | ||
234 | } | 233 | } |
235 | 234 | ||
236 | //删除存储的队伍名称 | 235 | //删除存储的队伍名称 |
237 | -func DelUserTeamName(name string) error{ | 236 | +func DelUserTeamName(name string) error { |
238 | err := redishandler.GetRedisClient().HDel(redis.TEAM_USERTEAM_NAME, name) | 237 | err := redishandler.GetRedisClient().HDel(redis.TEAM_USERTEAM_NAME, name) |
239 | if err != nil { | 238 | if err != nil { |
240 | logger.Error("SetUserTeamName err=%v),err") | 239 | logger.Error("SetUserTeamName err=%v),err") |
@@ -243,7 +242,7 @@ func DelUserTeamName(name string) error{ | @@ -243,7 +242,7 @@ func DelUserTeamName(name string) error{ | ||
243 | } | 242 | } |
244 | 243 | ||
245 | //存储队伍名称 | 244 | //存储队伍名称 |
246 | -func SetUserTeamName(name string,teamid int) { | 245 | +func SetUserTeamName(name string, teamid int) { |
247 | err := redishandler.GetRedisClient().HSet(redis.TEAM_USERTEAM_NAME, name, strconv.Itoa(teamid)) | 246 | err := redishandler.GetRedisClient().HSet(redis.TEAM_USERTEAM_NAME, name, strconv.Itoa(teamid)) |
248 | if err != nil { | 247 | if err != nil { |
249 | logger.Error("SetUserTeamName err=%v),err") | 248 | logger.Error("SetUserTeamName err=%v),err") |
@@ -251,8 +250,8 @@ func SetUserTeamName(name string,teamid int) { | @@ -251,8 +250,8 @@ func SetUserTeamName(name string,teamid int) { | ||
251 | } | 250 | } |
252 | 251 | ||
253 | //保存队伍信息 | 252 | //保存队伍信息 |
254 | -func SaveTeamInfo(teamid int,tinfo *TeamInfo) error { | ||
255 | - team,_ := json.Marshal(tinfo) | 253 | +func SaveTeamInfo(teamid int, tinfo *TeamInfo) error { |
254 | + team, _ := json.Marshal(tinfo) | ||
256 | err := redishandler.GetRedisClient().HSet(redis.TEAM_INFO, strconv.Itoa(teamid), string(team)) | 255 | err := redishandler.GetRedisClient().HSet(redis.TEAM_INFO, strconv.Itoa(teamid), string(team)) |
257 | if err != nil { | 256 | if err != nil { |
258 | logger.Error("SaveTeamInfo err=%v),err") | 257 | logger.Error("SaveTeamInfo err=%v),err") |
@@ -262,21 +261,21 @@ func SaveTeamInfo(teamid int,tinfo *TeamInfo) error { | @@ -262,21 +261,21 @@ func SaveTeamInfo(teamid int,tinfo *TeamInfo) error { | ||
262 | } | 261 | } |
263 | 262 | ||
264 | //获取队伍信息 | 263 | //获取队伍信息 |
265 | -func GetTeamInfo(teamid int) (*TeamInfo,error) { | 264 | +func GetTeamInfo(teamid int) (*TeamInfo, error) { |
266 | info := new(TeamInfo) | 265 | info := new(TeamInfo) |
267 | - vv,err := redishandler.GetRedisClient().HGet(redis.TEAM_INFO,strconv.Itoa(teamid)) | 266 | + vv, err := redishandler.GetRedisClient().HGet(redis.TEAM_INFO, strconv.Itoa(teamid)) |
268 | if err != nil { | 267 | if err != nil { |
269 | - logger.Error("GetTeamInfo failed,err=%v",err) | ||
270 | - return nil,err | 268 | + logger.Error("GetTeamInfo failed,err=%v", err) |
269 | + return nil, err | ||
271 | } | 270 | } |
272 | 271 | ||
273 | err = json.Unmarshal([]byte(vv), info) | 272 | err = json.Unmarshal([]byte(vv), info) |
274 | - return info,err | 273 | + return info, err |
275 | } | 274 | } |
276 | 275 | ||
277 | //保存teamid与uuid | 276 | //保存teamid与uuid |
278 | -func SaveTeamToUuid(teamid,uuid int) error { | ||
279 | - err := redishandler.GetRedisClient().HSet(redis.TEAM_TEAMID_TOUUID, strconv.Itoa(uuid), strconv.Itoa(teamid)) | 277 | +func SaveTeamToUuid(teamid, uuid int) error { |
278 | + err := redishandler.GetRedisClient().HSet(redis.TEAM_TEAMID_TOUUID, strconv.Itoa(uuid), strconv.Itoa(teamid)) | ||
280 | if err != nil { | 279 | if err != nil { |
281 | logger.Error("SaveTeamToUuid err=%v),err") | 280 | logger.Error("SaveTeamToUuid err=%v),err") |
282 | return err | 281 | return err |
@@ -285,111 +284,110 @@ func SaveTeamToUuid(teamid,uuid int) error { | @@ -285,111 +284,110 @@ func SaveTeamToUuid(teamid,uuid int) error { | ||
285 | } | 284 | } |
286 | 285 | ||
287 | //获取teamid与uuid | 286 | //获取teamid与uuid |
288 | -func GetTeamByUuid(uuid int) (int,error) { | ||
289 | - vv,err := redishandler.GetRedisClient().HGet(redis.TEAM_TEAMID_TOUUID,strconv.Itoa(uuid)) | 287 | +func GetTeamByUuid(uuid int) (int, error) { |
288 | + vv, err := redishandler.GetRedisClient().HGet(redis.TEAM_TEAMID_TOUUID, strconv.Itoa(uuid)) | ||
290 | if err != nil { | 289 | if err != nil { |
291 | - logger.Error("GetTeamByUuid failed,err=%v",err) | ||
292 | - return 0,err | 290 | + logger.Error("GetTeamByUuid failed,err=%v", err) |
291 | + return 0, err | ||
293 | } | 292 | } |
294 | 293 | ||
295 | - teamid,err := strconv.Atoi(vv) | ||
296 | - return teamid,err | 294 | + teamid, err := strconv.Atoi(vv) |
295 | + return teamid, err | ||
297 | } | 296 | } |
298 | 297 | ||
299 | type TeamSlice []*TeamInfo | 298 | type TeamSlice []*TeamInfo |
300 | 299 | ||
301 | -func (a TeamSlice) Len() int { // 重写 Len() 方法 | 300 | +func (a TeamSlice) Len() int { // 重写 Len() 方法 |
302 | return len(a) | 301 | return len(a) |
303 | } | 302 | } |
304 | -func (a TeamSlice) Swap(i, j int){ // 重写 Swap() 方法 | 303 | +func (a TeamSlice) Swap(i, j int) { // 重写 Swap() 方法 |
305 | a[i], a[j] = a[j], a[i] | 304 | a[i], a[j] = a[j], a[i] |
306 | } | 305 | } |
307 | func (a TeamSlice) Less(i, j int) bool { // 重写 Less() 方法, 从大到小排序 | 306 | func (a TeamSlice) Less(i, j int) bool { // 重写 Less() 方法, 从大到小排序 |
308 | return a[j].BaseInfo.Assets < a[i].BaseInfo.Assets | 307 | return a[j].BaseInfo.Assets < a[i].BaseInfo.Assets |
309 | } | 308 | } |
310 | 309 | ||
311 | - | ||
312 | //获取所有的team,分页 传入页签 | 310 | //获取所有的team,分页 传入页签 |
313 | -func GetTeamListByCond(shopnum int,page int) (TeamSlice,error,int) { | 311 | +func GetTeamListByCond(shopnum int, page int) (TeamSlice, error, int) { |
314 | if page < 0 { | 312 | if page < 0 { |
315 | - logger.Error("GetTeamListByCond invalid page=%v",page) | 313 | + logger.Error("GetTeamListByCond invalid page=%v", page) |
316 | page = 1 | 314 | page = 1 |
317 | } | 315 | } |
318 | var rtslice TeamSlice | 316 | var rtslice TeamSlice |
319 | - vv,err := redishandler.GetRedisClient().HGetAllValues(redis.TEAM_INFO) | 317 | + vv, err := redishandler.GetRedisClient().HGetAllValues(redis.TEAM_INFO) |
320 | if err != nil { | 318 | if err != nil { |
321 | logger.Error("GetTeamListByCond err") | 319 | logger.Error("GetTeamListByCond err") |
322 | - return nil,err,0 | 320 | + return nil, err, 0 |
323 | } | 321 | } |
324 | 322 | ||
325 | - for _,val := range vv { | 323 | + for _, val := range vv { |
326 | one := new(TeamInfo) | 324 | one := new(TeamInfo) |
327 | bytestr := val.([]byte) | 325 | bytestr := val.([]byte) |
328 | err = json.Unmarshal(bytestr, one) | 326 | err = json.Unmarshal(bytestr, one) |
329 | if err == nil { | 327 | if err == nil { |
330 | if one.BaseInfo.Num <= shopnum { | 328 | if one.BaseInfo.Num <= shopnum { |
331 | - rtslice = append(rtslice,one) | 329 | + rtslice = append(rtslice, one) |
332 | } | 330 | } |
333 | } | 331 | } |
334 | } | 332 | } |
335 | //排序 | 333 | //排序 |
336 | sort.Sort(rtslice) | 334 | sort.Sort(rtslice) |
337 | 335 | ||
338 | - begin := (page-1) * 10 | 336 | + begin := (page - 1) * 10 |
339 | end := begin + 9 | 337 | end := begin + 9 |
340 | sumlen := len(rtslice) | 338 | sumlen := len(rtslice) |
341 | - if begin > sumlen{ | 339 | + if begin > sumlen { |
342 | begin = sumlen - 10 | 340 | begin = sumlen - 10 |
343 | } | 341 | } |
344 | if end > sumlen { | 342 | if end > sumlen { |
345 | end = sumlen - 1 | 343 | end = sumlen - 1 |
346 | } | 344 | } |
347 | 345 | ||
348 | - return rtslice[begin:end],nil,sumlen | 346 | + return rtslice[begin:end], nil, sumlen |
349 | 347 | ||
350 | } | 348 | } |
351 | 349 | ||
352 | -func GetTeamListByNameCond(shopnum int,page int, name string) (TeamSlice,error,int) { | 350 | +func GetTeamListByNameCond(shopnum int, page int, name string) (TeamSlice, error, int) { |
353 | if page < 0 { | 351 | if page < 0 { |
354 | - logger.Error("GetTeamListByCond invalid page=%v",page) | 352 | + logger.Error("GetTeamListByCond invalid page=%v", page) |
355 | page = 1 | 353 | page = 1 |
356 | } | 354 | } |
357 | var rtslice TeamSlice | 355 | var rtslice TeamSlice |
358 | - vv,err := redishandler.GetRedisClient().HGetAllValues(redis.TEAM_INFO) | 356 | + vv, err := redishandler.GetRedisClient().HGetAllValues(redis.TEAM_INFO) |
359 | if err != nil { | 357 | if err != nil { |
360 | logger.Error("GetTeamListByCond err") | 358 | logger.Error("GetTeamListByCond err") |
361 | - return nil,err,0 | 359 | + return nil, err, 0 |
362 | } | 360 | } |
363 | 361 | ||
364 | - for _,val := range vv { | 362 | + for _, val := range vv { |
365 | one := new(TeamInfo) | 363 | one := new(TeamInfo) |
366 | bytestr := val.([]byte) | 364 | bytestr := val.([]byte) |
367 | err = json.Unmarshal(bytestr, one) | 365 | err = json.Unmarshal(bytestr, one) |
368 | if err == nil { | 366 | if err == nil { |
369 | - if one.BaseInfo.Num <= shopnum && strings.Index(one.BaseInfo.Name,name) != -1{ | ||
370 | - rtslice = append(rtslice,one) | 367 | + if one.BaseInfo.Num <= shopnum && strings.Index(one.BaseInfo.Name, name) != -1 { |
368 | + rtslice = append(rtslice, one) | ||
371 | } | 369 | } |
372 | } | 370 | } |
373 | } | 371 | } |
374 | //排序 | 372 | //排序 |
375 | sort.Sort(rtslice) | 373 | sort.Sort(rtslice) |
376 | 374 | ||
377 | - begin := (page-1) * 10 | 375 | + begin := (page - 1) * 10 |
378 | end := begin + 9 | 376 | end := begin + 9 |
379 | sumlen := len(rtslice) | 377 | sumlen := len(rtslice) |
380 | - if begin > sumlen{ | 378 | + if begin > sumlen { |
381 | begin = sumlen - 10 | 379 | begin = sumlen - 10 |
382 | } | 380 | } |
383 | if end > sumlen { | 381 | if end > sumlen { |
384 | end = sumlen - 1 | 382 | end = sumlen - 1 |
385 | } | 383 | } |
386 | 384 | ||
387 | - return rtslice[begin:end],nil,sumlen | 385 | + return rtslice[begin:end], nil, sumlen |
388 | 386 | ||
389 | } | 387 | } |
390 | 388 | ||
391 | func (alist *ApproveList) InApproveList(uuid int) bool { | 389 | func (alist *ApproveList) InApproveList(uuid int) bool { |
392 | - for _,val := range alist.Approve_info { | 390 | + for _, val := range alist.Approve_info { |
393 | if val.Uuid == uuid { | 391 | if val.Uuid == uuid { |
394 | return true | 392 | return true |
395 | } | 393 | } |
@@ -398,56 +396,56 @@ func (alist *ApproveList) InApproveList(uuid int) bool { | @@ -398,56 +396,56 @@ func (alist *ApproveList) InApproveList(uuid int) bool { | ||
398 | } | 396 | } |
399 | 397 | ||
400 | // | 398 | // |
401 | -func DelFromApproveList(uuid,deluuid int) error { | 399 | +func DelFromApproveList(uuid, deluuid int) error { |
402 | return nil | 400 | return nil |
403 | } | 401 | } |
404 | 402 | ||
405 | //待批准列表 | 403 | //待批准列表 |
406 | -func GetUserApproveList(uuid int) (*ApproveList,error) { | 404 | +func GetUserApproveList(uuid int) (*ApproveList, error) { |
407 | rt := new(ApproveList) | 405 | rt := new(ApproveList) |
408 | //存储为hset key为 固定key+uuid ,field为被添加者的uuid,fieldW为FriendInfo | 406 | //存储为hset key为 固定key+uuid ,field为被添加者的uuid,fieldW为FriendInfo |
409 | userkey := redis.FRIEND_APPROVELIST_KEY + ":" + strconv.Itoa(uuid) | 407 | userkey := redis.FRIEND_APPROVELIST_KEY + ":" + strconv.Itoa(uuid) |
410 | - vv,err := redishandler.GetRedisClient().HGetAllValues(userkey) | 408 | + vv, err := redishandler.GetRedisClient().HGetAllValues(userkey) |
411 | if err != nil { | 409 | if err != nil { |
412 | logger.Error("GetUserApproveList err") | 410 | logger.Error("GetUserApproveList err") |
413 | - return nil,err | 411 | + return nil, err |
414 | } | 412 | } |
415 | 413 | ||
416 | - nowtime:= int(time.Now().Unix()) | ||
417 | - for _,val := range vv { | 414 | + nowtime := int(time.Now().Unix()) |
415 | + for _, val := range vv { | ||
418 | one := new(ApplyInfo) | 416 | one := new(ApplyInfo) |
419 | bytestr := val.([]byte) | 417 | bytestr := val.([]byte) |
420 | err = json.Unmarshal(bytestr, one) | 418 | err = json.Unmarshal(bytestr, one) |
421 | - if err!= nil { | 419 | + if err != nil { |
422 | //需要剔除超过时间的 | 420 | //需要剔除超过时间的 |
423 | - if nowtime <= one.Apply_time + 3*86400 { | ||
424 | - rt.Approve_info = append(rt.Approve_info,*one) | ||
425 | - }else { | 421 | + if nowtime <= one.Apply_time+3*86400 { |
422 | + rt.Approve_info = append(rt.Approve_info, *one) | ||
423 | + } else { | ||
426 | //已经超时,需要删除 | 424 | //已经超时,需要删除 |
427 | - redishandler.GetRedisClient().HDel(userkey,strconv.Itoa(one.Uuid)) | 425 | + redishandler.GetRedisClient().HDel(userkey, strconv.Itoa(one.Uuid)) |
428 | } | 426 | } |
429 | 427 | ||
430 | } | 428 | } |
431 | 429 | ||
432 | } | 430 | } |
433 | - return rt,nil | 431 | + return rt, nil |
434 | } | 432 | } |
435 | 433 | ||
436 | -func SaveUserApproveList(uuid int,adduuid int) error { | 434 | +func SaveUserApproveList(uuid int, adduuid int) error { |
437 | userkey := redis.FRIEND_APPROVELIST_KEY + ":" + strconv.Itoa(uuid) | 435 | userkey := redis.FRIEND_APPROVELIST_KEY + ":" + strconv.Itoa(uuid) |
438 | var finfo ApplyInfo | 436 | var finfo ApplyInfo |
439 | finfo.Uuid = adduuid | 437 | finfo.Uuid = adduuid |
440 | finfo.Apply_time = int(time.Now().Unix()) | 438 | finfo.Apply_time = int(time.Now().Unix()) |
441 | - str,err := json.Marshal(&finfo) | 439 | + str, err := json.Marshal(&finfo) |
442 | if err != nil { | 440 | if err != nil { |
443 | - logger.Error("SaveUserApproveList failed,err=%v",err) | 441 | + logger.Error("SaveUserApproveList failed,err=%v", err) |
444 | } | 442 | } |
445 | - err = redishandler.GetRedisClient().HSet(userkey,strconv.Itoa(adduuid),string(str)) | 443 | + err = redishandler.GetRedisClient().HSet(userkey, strconv.Itoa(adduuid), string(str)) |
446 | return err | 444 | return err |
447 | } | 445 | } |
448 | 446 | ||
449 | func (alist *ApplyList) InApplyList(uuid int) bool { | 447 | func (alist *ApplyList) InApplyList(uuid int) bool { |
450 | - for _,val := range alist.Apply_info { | 448 | + for _, val := range alist.Apply_info { |
451 | if val.Uuid == uuid { | 449 | if val.Uuid == uuid { |
452 | return true | 450 | return true |
453 | } | 451 | } |
@@ -455,88 +453,88 @@ func (alist *ApplyList) InApplyList(uuid int) bool { | @@ -455,88 +453,88 @@ func (alist *ApplyList) InApplyList(uuid int) bool { | ||
455 | return false | 453 | return false |
456 | } | 454 | } |
457 | 455 | ||
458 | -func GetUserApplyList(uuid int) (*ApplyList,error) { | 456 | +func GetUserApplyList(uuid int) (*ApplyList, error) { |
459 | rt := new(ApplyList) | 457 | rt := new(ApplyList) |
460 | //存储为hset key为 固定key+uuid ,field为被添加者的uuid,fieldW为FriendInfo | 458 | //存储为hset key为 固定key+uuid ,field为被添加者的uuid,fieldW为FriendInfo |
461 | userkey := redis.FRIEND_APPLYLIST_KEY + ":" + strconv.Itoa(uuid) | 459 | userkey := redis.FRIEND_APPLYLIST_KEY + ":" + strconv.Itoa(uuid) |
462 | - vv,err := redishandler.GetRedisClient().HGetAllValues(userkey) | 460 | + vv, err := redishandler.GetRedisClient().HGetAllValues(userkey) |
463 | if err != nil { | 461 | if err != nil { |
464 | logger.Error("GetUserApplyList err") | 462 | logger.Error("GetUserApplyList err") |
465 | - return nil,err | 463 | + return nil, err |
466 | } | 464 | } |
467 | 465 | ||
468 | - nowtime:= int(time.Now().Unix()) | ||
469 | - for _,val := range vv { | 466 | + nowtime := int(time.Now().Unix()) |
467 | + for _, val := range vv { | ||
470 | one := new(ApplyInfo) | 468 | one := new(ApplyInfo) |
471 | bytestr := val.([]byte) | 469 | bytestr := val.([]byte) |
472 | err = json.Unmarshal(bytestr, one) | 470 | err = json.Unmarshal(bytestr, one) |
473 | - if err!= nil { | 471 | + if err != nil { |
474 | //需要剔除超过时间的 | 472 | //需要剔除超过时间的 |
475 | - if nowtime <= one.Apply_time + 86400 { | ||
476 | - rt.Apply_info = append(rt.Apply_info,*one) | ||
477 | - }else { | 473 | + if nowtime <= one.Apply_time+86400 { |
474 | + rt.Apply_info = append(rt.Apply_info, *one) | ||
475 | + } else { | ||
478 | //已经超时,需要删除 | 476 | //已经超时,需要删除 |
479 | - redishandler.GetRedisClient().HDel(userkey,strconv.Itoa(one.Uuid)) | 477 | + redishandler.GetRedisClient().HDel(userkey, strconv.Itoa(one.Uuid)) |
480 | } | 478 | } |
481 | 479 | ||
482 | } | 480 | } |
483 | 481 | ||
484 | } | 482 | } |
485 | - return rt,nil | 483 | + return rt, nil |
486 | } | 484 | } |
487 | 485 | ||
488 | -func SaveUserApplyList(uuid int,adduuid int) error { | 486 | +func SaveUserApplyList(uuid int, adduuid int) error { |
489 | userkey := redis.FRIEND_APPLYLIST_KEY + ":" + strconv.Itoa(uuid) | 487 | userkey := redis.FRIEND_APPLYLIST_KEY + ":" + strconv.Itoa(uuid) |
490 | var finfo ApplyInfo | 488 | var finfo ApplyInfo |
491 | finfo.Uuid = adduuid | 489 | finfo.Uuid = adduuid |
492 | finfo.Apply_time = int(time.Now().Unix()) | 490 | finfo.Apply_time = int(time.Now().Unix()) |
493 | - str,err := json.Marshal(&finfo) | 491 | + str, err := json.Marshal(&finfo) |
494 | if err != nil { | 492 | if err != nil { |
495 | - logger.Error("SaveUserApplyList failed,err=%v",err) | 493 | + logger.Error("SaveUserApplyList failed,err=%v", err) |
496 | } | 494 | } |
497 | - err = redishandler.GetRedisClient().HSet(userkey,strconv.Itoa(adduuid),string(str)) | 495 | + err = redishandler.GetRedisClient().HSet(userkey, strconv.Itoa(adduuid), string(str)) |
498 | return err | 496 | return err |
499 | } | 497 | } |
500 | 498 | ||
501 | -func GetUserFriendList(uuid int) (*FriendList,error) { | 499 | +func GetUserFriendList(uuid int) (*FriendList, error) { |
502 | //todo | 500 | //todo |
503 | rt := new(FriendList) | 501 | rt := new(FriendList) |
504 | //存储为hset key为 固定key+uuid ,field为被添加者的uuid,fieldW为FriendInfo | 502 | //存储为hset key为 固定key+uuid ,field为被添加者的uuid,fieldW为FriendInfo |
505 | userkey := redis.FRIEND_LIST_KEY + ":" + strconv.Itoa(uuid) | 503 | userkey := redis.FRIEND_LIST_KEY + ":" + strconv.Itoa(uuid) |
506 | - vv,err := redishandler.GetRedisClient().HGetAllValues(userkey) | 504 | + vv, err := redishandler.GetRedisClient().HGetAllValues(userkey) |
507 | if err != nil { | 505 | if err != nil { |
508 | logger.Error("GetUserFriendList err") | 506 | logger.Error("GetUserFriendList err") |
509 | - return nil,err | 507 | + return nil, err |
510 | } | 508 | } |
511 | 509 | ||
512 | - for _,val := range vv { | 510 | + for _, val := range vv { |
513 | one := new(FriendInfo) | 511 | one := new(FriendInfo) |
514 | bytestr := val.([]byte) | 512 | bytestr := val.([]byte) |
515 | err = json.Unmarshal(bytestr, one) | 513 | err = json.Unmarshal(bytestr, one) |
516 | - if err!= nil { | ||
517 | - rt.Friends = append(rt.Friends,*one) | 514 | + if err != nil { |
515 | + rt.Friends = append(rt.Friends, *one) | ||
518 | } | 516 | } |
519 | 517 | ||
520 | } | 518 | } |
521 | - return rt,nil | 519 | + return rt, nil |
522 | } | 520 | } |
523 | 521 | ||
524 | -func SaveUserFriendList(uuid int,adduuid int,status int) error { | 522 | +func SaveUserFriendList(uuid int, adduuid int, status int) error { |
525 | userkey := redis.FRIEND_LIST_KEY + ":" + strconv.Itoa(uuid) | 523 | userkey := redis.FRIEND_LIST_KEY + ":" + strconv.Itoa(uuid) |
526 | var finfo FriendInfo | 524 | var finfo FriendInfo |
527 | finfo.Uuid = adduuid | 525 | finfo.Uuid = adduuid |
528 | finfo.Status = status | 526 | finfo.Status = status |
529 | - str,err := json.Marshal(&finfo) | 527 | + str, err := json.Marshal(&finfo) |
530 | if err != nil { | 528 | if err != nil { |
531 | - logger.Error("SaveUserFriendList failed,err=%v",err) | 529 | + logger.Error("SaveUserFriendList failed,err=%v", err) |
532 | } | 530 | } |
533 | - err = redishandler.GetRedisClient().HSet(userkey,strconv.Itoa(adduuid),string(str)) | 531 | + err = redishandler.GetRedisClient().HSet(userkey, strconv.Itoa(adduuid), string(str)) |
534 | return err | 532 | return err |
535 | } | 533 | } |
536 | 534 | ||
537 | //判断是否已经是好友 | 535 | //判断是否已经是好友 |
538 | func (flist *FriendList) IsInFreiendList(uuid int) bool { | 536 | func (flist *FriendList) IsInFreiendList(uuid int) bool { |
539 | - for _,val := range flist.Friends { | 537 | + for _, val := range flist.Friends { |
540 | if val.Uuid == uuid && val.Status == 0 { | 538 | if val.Uuid == uuid && val.Status == 0 { |
541 | return true | 539 | return true |
542 | } | 540 | } |
@@ -544,53 +542,52 @@ func (flist *FriendList) IsInFreiendList(uuid int) bool { | @@ -544,53 +542,52 @@ func (flist *FriendList) IsInFreiendList(uuid int) bool { | ||
544 | return false | 542 | return false |
545 | } | 543 | } |
546 | 544 | ||
547 | -func SaveCacheRecommandFriendList(uuid int,data *GetRecommendListDesc) { | ||
548 | - savestr,err := json.Marshal(data) | 545 | +func SaveCacheRecommandFriendList(uuid int, data *GetRecommendListDesc) { |
546 | + savestr, err := json.Marshal(data) | ||
549 | if err != nil { | 547 | if err != nil { |
550 | - logger.Error("SaveCacheRecommandFriendList err=%v",err) | 548 | + logger.Error("SaveCacheRecommandFriendList err=%v", err) |
551 | return | 549 | return |
552 | } | 550 | } |
553 | - err = redishandler.GetRedisClient().HSet(redis.FRIEND_RECOMMANDLIST_KEY,strconv.Itoa(uuid),string(savestr)) | 551 | + err = redishandler.GetRedisClient().HSet(redis.FRIEND_RECOMMANDLIST_KEY, strconv.Itoa(uuid), string(savestr)) |
554 | if err != nil { | 552 | if err != nil { |
555 | - logger.Error("SaveCacheRecommandFriendList err=%v",err) | 553 | + logger.Error("SaveCacheRecommandFriendList err=%v", err) |
556 | return | 554 | return |
557 | } | 555 | } |
558 | } | 556 | } |
559 | 557 | ||
560 | -func GetCacheRecommandFriendList(uuid int) (*GetRecommendListDesc,error) { | 558 | +func GetCacheRecommandFriendList(uuid int) (*GetRecommendListDesc, error) { |
561 | rt := new(GetRecommendListDesc) | 559 | rt := new(GetRecommendListDesc) |
562 | - val,err:= redishandler.GetRedisClient().HGet(redis.FRIEND_RECOMMANDLIST_KEY,strconv.Itoa(uuid)) | 560 | + val, err := redishandler.GetRedisClient().HGet(redis.FRIEND_RECOMMANDLIST_KEY, strconv.Itoa(uuid)) |
563 | if err != nil { | 561 | if err != nil { |
564 | - logger.Error("GetCacheRecommandFriendList err=%v",err) | ||
565 | - return rt,err | 562 | + logger.Error("GetCacheRecommandFriendList err=%v", err) |
563 | + return rt, err | ||
566 | } | 564 | } |
567 | 565 | ||
568 | - err = json.Unmarshal([]byte(val),rt) | 566 | + err = json.Unmarshal([]byte(val), rt) |
569 | if err != nil { | 567 | if err != nil { |
570 | - logger.Error("GetCacheRecommandFriendList err=%v",err) | ||
571 | - return nil,err | 568 | + logger.Error("GetCacheRecommandFriendList err=%v", err) |
569 | + return nil, err | ||
572 | } | 570 | } |
573 | 571 | ||
574 | - return rt,nil | 572 | + return rt, nil |
575 | } | 573 | } |
576 | 574 | ||
577 | func DelCacheRecommandFriendList(uuid int) error { | 575 | func DelCacheRecommandFriendList(uuid int) error { |
578 | - err := redishandler.GetRedisClient().HDel(redis.FRIEND_RECOMMANDLIST_KEY,strconv.Itoa(uuid)) | 576 | + err := redishandler.GetRedisClient().HDel(redis.FRIEND_RECOMMANDLIST_KEY, strconv.Itoa(uuid)) |
579 | return err | 577 | return err |
580 | } | 578 | } |
581 | 579 | ||
582 | - | ||
583 | func GetFfiendData(frienduuid int) *GetRecommendListInfo { | 580 | func GetFfiendData(frienduuid int) *GetRecommendListInfo { |
584 | - tmpext,err := GetUserExt(frienduuid) | 581 | + tmpext, err := GetUserExt(frienduuid) |
585 | if err != nil { | 582 | if err != nil { |
586 | return nil | 583 | return nil |
587 | } | 584 | } |
588 | - tmpbasic,err := GetUserBasic(frienduuid) | 585 | + tmpbasic, err := GetUserBasic(frienduuid) |
589 | if err != nil { | 586 | if err != nil { |
590 | return nil | 587 | return nil |
591 | } | 588 | } |
592 | 589 | ||
593 | - tmpinfo := new(GetRecommendListInfo) | 590 | + tmpinfo := new(GetRecommendListInfo) |
594 | tmpinfo.Hot = tmpext.Hot | 591 | tmpinfo.Hot = tmpext.Hot |
595 | tmpinfo.Bean = tmpext.Bean | 592 | tmpinfo.Bean = tmpext.Bean |
596 | tmpinfo.Userid = tmpext.Userid | 593 | tmpinfo.Userid = tmpext.Userid |
@@ -609,158 +606,154 @@ func GetFfiendData(frienduuid int) *GetRecommendListInfo { | @@ -609,158 +606,154 @@ func GetFfiendData(frienduuid int) *GetRecommendListInfo { | ||
609 | } | 606 | } |
610 | 607 | ||
611 | //获取推荐好友列表 | 608 | //获取推荐好友列表 |
612 | -func (flist *FriendList)GetRecommandFriendList(uuid,friendnum int) (*GetRecommendListDesc,error) { | 609 | +func (flist *FriendList) GetRecommandFriendList(uuid, friendnum int) (*GetRecommendListDesc, error) { |
613 | 610 | ||
614 | - rlist,err := GetCacheRecommandFriendList(uuid) | 611 | + rlist, err := GetCacheRecommandFriendList(uuid) |
615 | if err == nil { | 612 | if err == nil { |
616 | //有缓存 ,直接返回 | 613 | //有缓存 ,直接返回 |
617 | - return rlist,err | 614 | + return rlist, err |
618 | } | 615 | } |
619 | 616 | ||
620 | - selfext,err := GetUserExt(uuid) | 617 | + selfext, err := GetUserExt(uuid) |
621 | if err != nil { | 618 | if err != nil { |
622 | - return nil,err | 619 | + return nil, err |
623 | } | 620 | } |
624 | - selfbasic,err := GetUserBasic(uuid) | 621 | + selfbasic, err := GetUserBasic(uuid) |
625 | if err != nil { | 622 | if err != nil { |
626 | - return nil,err | 623 | + return nil, err |
627 | } | 624 | } |
628 | 625 | ||
626 | + var randlist []int //记录随机的几个好友 | ||
627 | + var first []int //初步筛选的id列表 | ||
628 | + var second []int //第二步 | ||
629 | + var third []int | ||
630 | + vv, err := redishandler.GetRedisClient().HGetAllValues(redis.USER_EXT_DATA) | ||
631 | + if err != nil { | ||
632 | + return nil, err | ||
633 | + } | ||
629 | 634 | ||
630 | - | ||
631 | - var randlist []int //记录随机的几个好友 | ||
632 | - var first []int //初步筛选的id列表 | ||
633 | - var second []int //第二步 | ||
634 | - var third []int | ||
635 | - vv,err := redishandler.GetRedisClient().HGetAllValues(redis.USER_EXT_DATA) | ||
636 | - if err != nil { | ||
637 | - return nil ,err | ||
638 | - } | ||
639 | - | ||
640 | - for _,val := range vv { | ||
641 | - one := new(UserExtData) | ||
642 | - bytestr := val.([]byte) | ||
643 | - err = json.Unmarshal(bytestr, one) | ||
644 | - if err == nil { | ||
645 | - if selfext.Hot <= one.Hot+500 && selfext.Hot >= one.Hot-500 { | ||
646 | - first = append(first,one.User_id) | ||
647 | - } | ||
648 | - } | ||
649 | - if len(randlist) < friendnum { | ||
650 | - randlist = append(randlist,one.User_id) | 635 | + for _, val := range vv { |
636 | + one := new(UserExtData) | ||
637 | + bytestr := val.([]byte) | ||
638 | + err = json.Unmarshal(bytestr, one) | ||
639 | + if err == nil { | ||
640 | + if selfext.Hot <= one.Hot+500 && selfext.Hot >= one.Hot-500 { | ||
641 | + first = append(first, one.User_id) | ||
651 | } | 642 | } |
652 | } | 643 | } |
653 | - | ||
654 | - applylist,err := GetUserApplyList(uuid) | ||
655 | - if err != nil { | ||
656 | - logger.Error("GetRecommandFriendList failed err=%v",err) | ||
657 | - second = append(second,first...) | ||
658 | - }else { | ||
659 | - //第二步判断是否已经在申请列表,不再才加入 | ||
660 | - for _,val := range first { | ||
661 | - if !applylist.InApplyList(val) { | ||
662 | - second = append(second,val) | ||
663 | - } | ||
664 | - } | 644 | + if len(randlist) < friendnum { |
645 | + randlist = append(randlist, one.User_id) | ||
665 | } | 646 | } |
647 | + } | ||
666 | 648 | ||
667 | - //第三步判断性别 | ||
668 | - for _,val := range second { | ||
669 | - if len(third) >= friendnum { | ||
670 | - //数量已经满了,直接退出 | ||
671 | - break | ||
672 | - } | ||
673 | - | ||
674 | - tmpbasic,err:= GetUserBasic(val) | ||
675 | - if err != nil { | ||
676 | - continue | ||
677 | - } | ||
678 | - if tmpbasic.User_gender != selfbasic.User_gender { | ||
679 | - third = append(third,val) | 649 | + applylist, err := GetUserApplyList(uuid) |
650 | + if err != nil { | ||
651 | + logger.Error("GetRecommandFriendList failed err=%v", err) | ||
652 | + second = append(second, first...) | ||
653 | + } else { | ||
654 | + //第二步判断是否已经在申请列表,不再才加入 | ||
655 | + for _, val := range first { | ||
656 | + if !applylist.InApplyList(val) { | ||
657 | + second = append(second, val) | ||
680 | } | 658 | } |
681 | } | 659 | } |
660 | + } | ||
682 | 661 | ||
683 | - //最后判断一下数量是否足够 | ||
684 | - if len(third) < friendnum { | ||
685 | - //将随机的id补充进去 | ||
686 | - for i:=0;i<friendnum-len(third);i++ { | ||
687 | - third = append(third,randlist[i]) | ||
688 | - } | 662 | + //第三步判断性别 |
663 | + for _, val := range second { | ||
664 | + if len(third) >= friendnum { | ||
665 | + //数量已经满了,直接退出 | ||
666 | + break | ||
689 | } | 667 | } |
690 | 668 | ||
691 | - //最后赋值 | ||
692 | - realrt := new(GetRecommendListDesc) | ||
693 | - for _,val := range third { | ||
694 | - tmpext,err := GetUserExt(val) | ||
695 | - if err != nil { | ||
696 | - logger.Error("GetRecommendListDesc third err=%v",err) | ||
697 | - continue | ||
698 | - } | ||
699 | - tmpbasic,err := GetUserBasic(val) | ||
700 | - if err != nil { | ||
701 | - logger.Error("GetRecommendListDesc third err=%v",err) | ||
702 | - continue | ||
703 | - } | ||
704 | - var tmpinfo GetRecommendListInfo | ||
705 | - tmpinfo.Hot = tmpext.Hot | ||
706 | - tmpinfo.Bean = tmpext.Bean | ||
707 | - tmpinfo.Userid = tmpext.Userid | ||
708 | - tmpinfo.Coin = tmpext.Coin | ||
709 | - tmpinfo.Reg_time = tmpext.Regtime | ||
710 | - tmpinfo.Lv = tmpext.Lv | ||
711 | - tmpinfo.Exp = tmpext.Exp | ||
712 | - tmpinfo.Nickname = tmpbasic.User_nickname | ||
713 | - tmpinfo.Avatar_url = tmpbasic.User_avatar_url | ||
714 | - tmpinfo.Cat_num = 0 | ||
715 | - tmpinfo.City = tmpbasic.User_city | ||
716 | - tmpinfo.Gender = tmpbasic.User_gender | ||
717 | - tmpinfo.Love_exp = tmpext.Loevexp | ||
718 | - tmpinfo.Shop_num = tmpext.Shopnum | ||
719 | - realrt.Recommend_list = append(realrt.Recommend_list,tmpinfo) | 669 | + tmpbasic, err := GetUserBasic(val) |
670 | + if err != nil { | ||
671 | + continue | ||
672 | + } | ||
673 | + if tmpbasic.User_gender != selfbasic.User_gender { | ||
674 | + third = append(third, val) | ||
675 | + } | ||
676 | + } | ||
720 | 677 | ||
678 | + //最后判断一下数量是否足够 | ||
679 | + if len(third) < friendnum { | ||
680 | + //将随机的id补充进去 | ||
681 | + for i := 0; i < friendnum-len(third); i++ { | ||
682 | + third = append(third, randlist[i]) | ||
721 | } | 683 | } |
684 | + } | ||
722 | 685 | ||
686 | + //最后赋值 | ||
687 | + realrt := new(GetRecommendListDesc) | ||
688 | + for _, val := range third { | ||
689 | + tmpext, err := GetUserExt(val) | ||
690 | + if err != nil { | ||
691 | + logger.Error("GetRecommendListDesc third err=%v", err) | ||
692 | + continue | ||
693 | + } | ||
694 | + tmpbasic, err := GetUserBasic(val) | ||
695 | + if err != nil { | ||
696 | + logger.Error("GetRecommendListDesc third err=%v", err) | ||
697 | + continue | ||
698 | + } | ||
699 | + var tmpinfo GetRecommendListInfo | ||
700 | + tmpinfo.Hot = tmpext.Hot | ||
701 | + tmpinfo.Bean = tmpext.Bean | ||
702 | + tmpinfo.Userid = tmpext.Userid | ||
703 | + tmpinfo.Coin = tmpext.Coin | ||
704 | + tmpinfo.Reg_time = tmpext.Regtime | ||
705 | + tmpinfo.Lv = tmpext.Lv | ||
706 | + tmpinfo.Exp = tmpext.Exp | ||
707 | + tmpinfo.Nickname = tmpbasic.User_nickname | ||
708 | + tmpinfo.Avatar_url = tmpbasic.User_avatar_url | ||
709 | + tmpinfo.Cat_num = 0 | ||
710 | + tmpinfo.City = tmpbasic.User_city | ||
711 | + tmpinfo.Gender = tmpbasic.User_gender | ||
712 | + tmpinfo.Love_exp = tmpext.Loevexp | ||
713 | + tmpinfo.Shop_num = tmpext.Shopnum | ||
714 | + realrt.Recommend_list = append(realrt.Recommend_list, tmpinfo) | ||
723 | 715 | ||
716 | + } | ||
724 | 717 | ||
725 | //保存到缓存 | 718 | //保存到缓存 |
726 | - SaveCacheRecommandFriendList(uuid,realrt) | ||
727 | - return realrt,nil | 719 | + SaveCacheRecommandFriendList(uuid, realrt) |
720 | + return realrt, nil | ||
728 | } | 721 | } |
729 | 722 | ||
730 | -func SaveAccount(account ,pwd string) error { | 723 | +func SaveAccount(account, pwd string) error { |
731 | //首先对pwd加密 | 724 | //首先对pwd加密 |
732 | h := md5.New() | 725 | h := md5.New() |
733 | h.Write([]byte(pwd)) // 需要加密的字符串为 | 726 | h.Write([]byte(pwd)) // 需要加密的字符串为 |
734 | - newpwd :=hex.EncodeToString(h.Sum(nil)) | ||
735 | - err := redishandler.GetRedisClient().HSet(redis.USER_ACCOUNT_PASSWORD_KEY,account,newpwd) | 727 | + newpwd := hex.EncodeToString(h.Sum(nil)) |
728 | + err := redishandler.GetRedisClient().HSet(redis.USER_ACCOUNT_PASSWORD_KEY, account, newpwd) | ||
736 | return err | 729 | return err |
737 | } | 730 | } |
738 | 731 | ||
739 | -func CheckAccout(account ,pwd string) error { | 732 | +func CheckAccout(account, pwd string) error { |
740 | h := md5.New() | 733 | h := md5.New() |
741 | h.Write([]byte(pwd)) // 需要加密的字符串为 | 734 | h.Write([]byte(pwd)) // 需要加密的字符串为 |
742 | - newpwd :=hex.EncodeToString(h.Sum(nil)) | ||
743 | - pwdstr,err := redishandler.GetRedisClient().HGet(redis.USER_ACCOUNT_PASSWORD_KEY,account) | 735 | + newpwd := hex.EncodeToString(h.Sum(nil)) |
736 | + pwdstr, err := redishandler.GetRedisClient().HGet(redis.USER_ACCOUNT_PASSWORD_KEY, account) | ||
744 | if err != nil { | 737 | if err != nil { |
745 | return err | 738 | return err |
746 | } | 739 | } |
747 | - if pwdstr!= newpwd { | 740 | + if pwdstr != newpwd { |
748 | return errors.New("pwdword not right!") | 741 | return errors.New("pwdword not right!") |
749 | } | 742 | } |
750 | return nil | 743 | return nil |
751 | } | 744 | } |
752 | 745 | ||
753 | -func SaveAccountToken(acc ,token string) { | ||
754 | - err := redishandler.GetRedisClient().HSet(redis.USER_ACCOUNT_PASSWORD_KEY,acc,token) | 746 | +func SaveAccountToken(acc, token string) { |
747 | + err := redishandler.GetRedisClient().HSet(redis.USER_ACCOUNT_PASSWORD_KEY, acc, token) | ||
755 | if err != nil { | 748 | if err != nil { |
756 | - logger.Error("SaveAccountToken err=%v",err) | 749 | + logger.Error("SaveAccountToken err=%v", err) |
757 | } | 750 | } |
758 | } | 751 | } |
759 | 752 | ||
760 | func GetAccountToken(acc string) string { | 753 | func GetAccountToken(acc string) string { |
761 | - token,err := redishandler.GetRedisClient().HGet(redis.USER_ACCOUNT_PASSWORD_KEY,acc) | 754 | + token, err := redishandler.GetRedisClient().HGet(redis.USER_ACCOUNT_PASSWORD_KEY, acc) |
762 | if err != nil { | 755 | if err != nil { |
763 | - logger.Error("GetAccountToken failed err=%v",err) | 756 | + logger.Error("GetAccountToken failed err=%v", err) |
764 | return "" | 757 | return "" |
765 | } | 758 | } |
766 | 759 | ||
@@ -771,7 +764,7 @@ type WorkList []InviteWorkDesc | @@ -771,7 +764,7 @@ type WorkList []InviteWorkDesc | ||
771 | 764 | ||
772 | func (wl *WorkList) IsInWork(uuid int) bool { | 765 | func (wl *WorkList) IsInWork(uuid int) bool { |
773 | isIn := false | 766 | isIn := false |
774 | - for _,val := range *wl { | 767 | + for _, val := range *wl { |
775 | if val.Uuid == uuid { | 768 | if val.Uuid == uuid { |
776 | isIn = true | 769 | isIn = true |
777 | } | 770 | } |
@@ -780,79 +773,77 @@ func (wl *WorkList) IsInWork(uuid int) bool { | @@ -780,79 +773,77 @@ func (wl *WorkList) IsInWork(uuid int) bool { | ||
780 | } | 773 | } |
781 | 774 | ||
782 | //此接口为处理返回所有的打工列表 | 775 | //此接口为处理返回所有的打工列表 |
783 | -func GetRealDagonglist(uuid int) (*WorkList,*WorkList,error) { | ||
784 | - vv,err := redishandler.GetRedisClient().HGet(redis.USER_INVITEWORK_RELATION,strconv.Itoa(uuid)) | 776 | +func GetRealDagonglist(uuid int) (*WorkList, *WorkList, error) { |
777 | + vv, err := redishandler.GetRedisClient().HGet(redis.USER_INVITEWORK_RELATION, strconv.Itoa(uuid)) | ||
785 | 778 | ||
786 | if err != nil { | 779 | if err != nil { |
787 | //logger.Error("GetdagongList err=%v",err) | 780 | //logger.Error("GetdagongList err=%v",err) |
788 | - return nil,nil,nil | 781 | + return nil, nil, nil |
789 | } | 782 | } |
790 | 783 | ||
791 | var reallist WorkList | 784 | var reallist WorkList |
792 | var list WorkList | 785 | var list WorkList |
793 | - err = json.Unmarshal([]byte(vv),&list) | 786 | + err = json.Unmarshal([]byte(vv), &list) |
794 | if err != nil { | 787 | if err != nil { |
795 | - logger.Error("GetRealDagonglist err=%v",err) | ||
796 | - return nil,nil,err | 788 | + logger.Error("GetRealDagonglist err=%v", err) |
789 | + return nil, nil, err | ||
797 | } | 790 | } |
798 | 791 | ||
799 | //此处时间改为600s | 792 | //此处时间改为600s |
800 | nowtime := int(time.Now().Unix()) | 793 | nowtime := int(time.Now().Unix()) |
801 | - for i:=0;i<len(list);i++ { | ||
802 | - if nowtime > 600 + list[i].InviteTime { | 794 | + for i := 0; i < len(list); i++ { |
795 | + if nowtime > 600+list[i].InviteTime { | ||
803 | //list = append(list[:i],list[i+1:]...) | 796 | //list = append(list[:i],list[i+1:]...) |
804 | //i-- | 797 | //i-- |
805 | - }else { | ||
806 | - reallist = append(reallist,list[i]) | 798 | + } else { |
799 | + reallist = append(reallist, list[i]) | ||
807 | } | 800 | } |
808 | } | 801 | } |
809 | 802 | ||
810 | - return &list,&reallist,nil | 803 | + return &list, &reallist, nil |
811 | } | 804 | } |
812 | 805 | ||
813 | -func GetdagongList(uuid int) (*WorkList,[]InviteWorkOffDesc,error) { | 806 | +func GetdagongList(uuid int) (*WorkList, []InviteWorkOffDesc, error) { |
814 | //需要判断 超过时间 四小时的删除 | 807 | //需要判断 超过时间 四小时的删除 |
815 | - vv,err := redishandler.GetRedisClient().HGet(redis.USER_INVITEWORK_RELATION,strconv.Itoa(uuid)) | 808 | + vv, err := redishandler.GetRedisClient().HGet(redis.USER_INVITEWORK_RELATION, strconv.Itoa(uuid)) |
816 | 809 | ||
817 | if err != nil { | 810 | if err != nil { |
818 | //logger.Error("GetdagongList err=%v",err) | 811 | //logger.Error("GetdagongList err=%v",err) |
819 | - return nil,nil,nil | 812 | + return nil, nil, nil |
820 | } | 813 | } |
821 | 814 | ||
822 | var list WorkList | 815 | var list WorkList |
823 | - err = json.Unmarshal([]byte(vv),&list) | 816 | + err = json.Unmarshal([]byte(vv), &list) |
824 | if err != nil { | 817 | if err != nil { |
825 | - logger.Error("GetdagongList err=%v",err) | ||
826 | - return nil,nil,err | 818 | + logger.Error("GetdagongList err=%v", err) |
819 | + return nil, nil, err | ||
827 | } | 820 | } |
828 | 821 | ||
829 | var offlist []InviteWorkOffDesc | 822 | var offlist []InviteWorkOffDesc |
830 | //此处时间改为600s | 823 | //此处时间改为600s |
831 | nowtime := int(time.Now().Unix()) | 824 | nowtime := int(time.Now().Unix()) |
832 | - for i:=0;i<len(list);i++ { | ||
833 | - if nowtime > 4*3600 + list[i].InviteTime { | 825 | + for i := 0; i < len(list); i++ { |
826 | + if nowtime > 4*3600+list[i].InviteTime { | ||
834 | var tmp InviteWorkOffDesc | 827 | var tmp InviteWorkOffDesc |
835 | tmp.Uuid = list[i].Uuid | 828 | tmp.Uuid = list[i].Uuid |
836 | tmp.InviteTime = list[i].InviteTime | 829 | tmp.InviteTime = list[i].InviteTime |
837 | - offlist = append(offlist,tmp) | ||
838 | - list = append(list[:i],list[i+1:]...) | 830 | + offlist = append(offlist, tmp) |
831 | + list = append(list[:i], list[i+1:]...) | ||
839 | 832 | ||
840 | i-- | 833 | i-- |
841 | 834 | ||
842 | } | 835 | } |
843 | } | 836 | } |
844 | 837 | ||
845 | - | ||
846 | - | ||
847 | - return &list,offlist,nil | 838 | + return &list, offlist, nil |
848 | } | 839 | } |
849 | 840 | ||
850 | //加入打工列表 | 841 | //加入打工列表 |
851 | -func AddDagongList(uuid int,masteruuid int,list WorkList) error { | 842 | +func AddDagongList(uuid int, masteruuid int, list WorkList) error { |
852 | 843 | ||
853 | - nickname,headurl,err := mysql.QueryNameAndHead(uuid) | 844 | + nickname, headurl, err := mysql.QueryNameAndHead(uuid) |
854 | if err != nil { | 845 | if err != nil { |
855 | - logger.Error("AddDagongList err=%v",err) | 846 | + logger.Error("AddDagongList err=%v", err) |
856 | return err | 847 | return err |
857 | } | 848 | } |
858 | 849 | ||
@@ -862,19 +853,112 @@ func AddDagongList(uuid int,masteruuid int,list WorkList) error { | @@ -862,19 +853,112 @@ func AddDagongList(uuid int,masteruuid int,list WorkList) error { | ||
862 | tmp.Nickname = nickname | 853 | tmp.Nickname = nickname |
863 | tmp.InviteTime = int(time.Now().Unix()) | 854 | tmp.InviteTime = int(time.Now().Unix()) |
864 | 855 | ||
865 | - list = append(list,tmp) | 856 | + list = append(list, tmp) |
866 | 857 | ||
867 | - savestr,err := json.Marshal(&list) | 858 | + savestr, err := json.Marshal(&list) |
868 | if err != nil { | 859 | if err != nil { |
869 | - logger.Error("AddDagongList err=%v",err) | 860 | + logger.Error("AddDagongList err=%v", err) |
870 | return err | 861 | return err |
871 | } | 862 | } |
872 | 863 | ||
873 | - err = redishandler.GetRedisClient().HSet(redis.USER_INVITEWORK_RELATION,strconv.Itoa(masteruuid),string(savestr)) | 864 | + err = redishandler.GetRedisClient().HSet(redis.USER_INVITEWORK_RELATION, strconv.Itoa(masteruuid), string(savestr)) |
874 | if err != nil { | 865 | if err != nil { |
875 | - logger.Error("AddDagongList err=%v",err) | 866 | + logger.Error("AddDagongList err=%v", err) |
876 | return err | 867 | return err |
877 | } | 868 | } |
878 | 869 | ||
879 | return nil | 870 | return nil |
880 | -} | ||
881 | \ No newline at end of file | 871 | \ No newline at end of file |
872 | +} | ||
873 | + | ||
874 | +//查询玩家现在所在的队伍id | ||
875 | +func QueryUserTeamId(uuid int) (int, error) { | ||
876 | + rkey := "cat:cafe:teamuser:where:user_id:" + strconv.Itoa(uuid) + ":status:0" | ||
877 | + teamstr, err := redishandler.GetRedisClient().GetString(rkey) | ||
878 | + if err != nil { | ||
879 | + return 0, err | ||
880 | + } | ||
881 | + var tmp RedisTeamInfo | ||
882 | + err = json.Unmarshal([]byte(teamstr), &tmp) | ||
883 | + if err != nil { | ||
884 | + return 0, nil | ||
885 | + } | ||
886 | + | ||
887 | + return tmp.Team_id, nil | ||
888 | +} | ||
889 | + | ||
890 | +func CheckHasNewMessage(uuid int) (bool, error) { | ||
891 | + //首先检查工会记录 | ||
892 | + lastteamsec := 0 | ||
893 | + lastchatteamsec := 0 | ||
894 | + laststr, err := redishandler.GetRedisClient().HGet(redis.USER_CHAT_TEAM_LASTGET_KEY, strconv.Itoa(uuid)) | ||
895 | + if err == nil { | ||
896 | + lastteamsec, _ = strconv.Atoi(laststr) | ||
897 | + } | ||
898 | + | ||
899 | + //先取得玩家队伍id | ||
900 | + teamid, err := QueryUserTeamId(uuid) | ||
901 | + if err != nil { | ||
902 | + return false, nil | ||
903 | + } | ||
904 | + //取出最后一条工会聊天记录 | ||
905 | + rteamkey := redis.USER_CHAT_TEAM_INFO_KEY + ":" + strconv.Itoa(teamid) | ||
906 | + chatinfostr, err := redishandler.GetRedisClient().LIndex(rteamkey, 0) | ||
907 | + if err != nil { | ||
908 | + logger.Error("CheckHasNewMessage failed err=%v", err) | ||
909 | + } else { | ||
910 | + var chats ChatInfoDesc | ||
911 | + err = json.Unmarshal([]byte(chatinfostr), &chats) | ||
912 | + if err != nil { | ||
913 | + logger.Error("CheckHasNewMessage failed err=%v", err) | ||
914 | + } else { | ||
915 | + lastchatteamsec = chats.ChatTime | ||
916 | + } | ||
917 | + } | ||
918 | + | ||
919 | + if lastchatteamsec > lastteamsec { | ||
920 | + //新的聊天信息 | ||
921 | + redishandler.GetRedisClient().HSet(redis.USER_CHAT_ISNEW, strconv.Itoa(uuid), "1") | ||
922 | + return true, nil | ||
923 | + } | ||
924 | + | ||
925 | + //判断自己的私人聊天记录 | ||
926 | + var talklistuid []int | ||
927 | + rselfkey := redis.USER_CHAT_PRIVATE_LASTGET_KEY + ":" + strconv.Itoa(uuid) | ||
928 | + vv, err := redishandler.GetRedisClient().HGetAllKeys(rselfkey) | ||
929 | + if err != nil { | ||
930 | + return false, err | ||
931 | + } | ||
932 | + | ||
933 | + for _, val := range vv { | ||
934 | + bytestr := string(val.([]byte)) | ||
935 | + bytenum, _ := strconv.Atoi(bytestr) | ||
936 | + talklistuid = append(talklistuid, bytenum) | ||
937 | + } | ||
938 | + | ||
939 | + for _, val := range talklistuid { | ||
940 | + selfgetsec := 0 | ||
941 | + selftalksec := 0 | ||
942 | + rkeysselfs := redis.USER_CHAT_PRIVATE_INFO_KEY + ":" + strconv.Itoa(uuid) + ":" + strconv.Itoa(val) | ||
943 | + tmpstr, err := redishandler.GetRedisClient().HGet(rselfkey, strconv.Itoa(uuid)) | ||
944 | + if err == nil { | ||
945 | + selfgetsec, _ = strconv.Atoi(tmpstr) | ||
946 | + } | ||
947 | + | ||
948 | + //查询最后一条记录 | ||
949 | + cselfstr, err := redishandler.GetRedisClient().LIndex(rkeysselfs, 0) | ||
950 | + if err == nil { | ||
951 | + var chats ChatInfoDesc | ||
952 | + err = json.Unmarshal([]byte(cselfstr), &chats) | ||
953 | + if err == nil { | ||
954 | + selftalksec = chats.ChatTime | ||
955 | + } | ||
956 | + } | ||
957 | + | ||
958 | + if selfgetsec < selftalksec { | ||
959 | + redishandler.GetRedisClient().HSet(redis.USER_CHAT_ISNEW, strconv.Itoa(uuid), "1") | ||
960 | + return true, nil | ||
961 | + } | ||
962 | + } | ||
963 | + | ||
964 | + return false, nil | ||
965 | +} |
src/HttpServer/logic/httpserver.go
@@ -92,12 +92,25 @@ func startServerHttpServe() { | @@ -92,12 +92,25 @@ func startServerHttpServe() { | ||
92 | http.HandleFunc("/catcafe/user/newGetData",NewGetData) //新的获取玩家数据接口 | 92 | http.HandleFunc("/catcafe/user/newGetData",NewGetData) //新的获取玩家数据接口 |
93 | http.HandleFunc("/catcafe/user/newSaveData",NewSaveData) //新的保存玩家数据接口 | 93 | http.HandleFunc("/catcafe/user/newSaveData",NewSaveData) //新的保存玩家数据接口 |
94 | 94 | ||
95 | + http.HandleFunc("/catcafe/chat/queryNewMessage",queryNewMessage) //查询红点请求 | ||
96 | + | ||
95 | 97 | ||
96 | err := http.ListenAndServe(conf.GetServerHttpAddrConf(), nil) | 98 | err := http.ListenAndServe(conf.GetServerHttpAddrConf(), nil) |
97 | CheckErr(err) | 99 | CheckErr(err) |
98 | } | 100 | } |
99 | 101 | ||
100 | 102 | ||
103 | +func queryNewMessage(w http.ResponseWriter, r *http.Request) { | ||
104 | + | ||
105 | + result, _ := ioutil.ReadAll(r.Body) | ||
106 | + r.Body.Close() | ||
107 | + | ||
108 | + s := string(result) | ||
109 | + //logger.Info("queryNewMessage , body:%v", s) | ||
110 | + | ||
111 | + HandlequeryNewMessage(w,s) | ||
112 | +} | ||
113 | + | ||
101 | func NewSaveData(w http.ResponseWriter, r *http.Request) { | 114 | func NewSaveData(w http.ResponseWriter, r *http.Request) { |
102 | 115 | ||
103 | result, _ := ioutil.ReadAll(r.Body) | 116 | result, _ := ioutil.ReadAll(r.Body) |
src/HttpServer/logic/logic.go
@@ -274,6 +274,55 @@ func HandleQueryInvite(w http.ResponseWriter, data string) { | @@ -274,6 +274,55 @@ func HandleQueryInvite(w http.ResponseWriter, data string) { | ||
274 | } | 274 | } |
275 | 275 | ||
276 | 276 | ||
277 | +func HandlequeryNewMessage(w http.ResponseWriter, data string) { | ||
278 | + | ||
279 | + SetHeader(w) | ||
280 | + var resp QueryNewMessageResp | ||
281 | + resp.Status = "true" | ||
282 | + resp.Result.Data.Isnew = 0 | ||
283 | + var rdata QueryNewMessageReq | ||
284 | + err := json.Unmarshal([]byte(data), &rdata) | ||
285 | + for { | ||
286 | + if err != nil { | ||
287 | + logger.Error("HandlequeryNewMessage json unmarshal failed=%v", err) | ||
288 | + resp.Result.Code = ERROR_JSONUNMASHFAILED | ||
289 | + break | ||
290 | + } | ||
291 | + //先从缓存取,如果已经有新消息则直接返回 | ||
292 | + exist,err := redishandler.GetRedisClient().HExists(redis.USER_CHAT_ISNEW,strconv.Itoa(rdata.Uuid)) | ||
293 | + if err != nil { | ||
294 | + logger.Error("HandlequeryNewMessage save failed=%v", err) | ||
295 | + resp.Result.Code = ERROR_SRVDB_FAILED | ||
296 | + resp.Result.Data.Isnew = 0 | ||
297 | + break | ||
298 | + } | ||
299 | + | ||
300 | + if exist { | ||
301 | + resp.Result.Data.Isnew = 1 | ||
302 | + break | ||
303 | + } | ||
304 | + | ||
305 | + //如果没有 则进行判断 | ||
306 | + isnew,err := CheckHasNewMessage(rdata.Uuid) | ||
307 | + if err != nil { | ||
308 | + logger.Error("HandlequeryNewMessage CheckHasNewMessage failed=%v", err) | ||
309 | + resp.Result.Code = ERROR_SRVDB_FAILED | ||
310 | + resp.Result.Data.Isnew = 0 | ||
311 | + break | ||
312 | + } | ||
313 | + | ||
314 | + if isnew { | ||
315 | + resp.Result.Data.Isnew = 1 | ||
316 | + } | ||
317 | + | ||
318 | + break | ||
319 | + } | ||
320 | + | ||
321 | + //回包 | ||
322 | + respstr, _ := json.Marshal(&resp) | ||
323 | + fmt.Fprint(w, string(respstr)) | ||
324 | +} | ||
325 | + | ||
277 | func HandleNewSaveData(w http.ResponseWriter, data string) { | 326 | func HandleNewSaveData(w http.ResponseWriter, data string) { |
278 | SetHeader(w) | 327 | SetHeader(w) |
279 | var resp SaveDataBackupResp | 328 | var resp SaveDataBackupResp |
src/common/redis/def.go
1 | package redis | 1 | package redis |
2 | 2 | ||
3 | const ( | 3 | const ( |
4 | - USER_TOURIST_UID = "CATCAFE_USER_TOURIST_UID" //存储对应设备编码与uid的对应关系 | ||
5 | - USER_MAX_UUID = "CATCAFE_USER_MAX_UUID" //记录当前最大的uid,新增自增即可 | ||
6 | - USER_BASIC_DATA = "CATCAFE_USER_BASIC_DATA" //玩家基础信息 | ||
7 | - USER_EXT_DATA = "CATCAFE_USER_EXT_DATA" //玩家游戏数据 | ||
8 | - USER_BASE_DATA = "CATCAFE_USER_BASE_DATA" //小游戏自定义数据 | ||
9 | - MSG_CKECK_ACCESSTOKEN = "CATCAFE_MSG_CKECK_ACCESSTOKEN" //敏感词检测的key | ||
10 | - TEAM_USERTEAM_NAME = "CATCAFE_TEAM_USERTEAM_NAME" //存储了玩家队伍名称 | ||
11 | - TEAM_INFO = "CATCAFE_TEAM_INFO" //存储了玩家队伍信息 | ||
12 | - TEAM_MAX_UUID = "CATCAFE_TEAM_MAX_UUID" //记录当前最大的teamid,新增自增即可 | ||
13 | - TEAM_TEAMID_TOUUID = "CATCAFE_TEAM_TEAMID_TOUUID" //记录teamid与uuid的关系 | ||
14 | - FRIEND_LIST_KEY = "CATCAFE_FRIEND_LIST_KEY" //玩家的好友列表的key,需要在末尾加死":uuid" | ||
15 | - FRIEND_APPLYLIST_KEY = "CATCAFE_FRIEND_APPLYLIST_KEY" //玩家申请好友列表,需要在末尾加死":uuid" | ||
16 | - FRIEND_APPROVELIST_KEY = "CATCAFE_FRIEND_APPROVELIST_KEY" //待批准好友列表,需要在末尾加死":uuid" | ||
17 | - FRIEND_RECOMMANDLIST_KEY = "CATCAFE_FRIEND_RECOMMANDLIST_KEY" //推荐好友缓存key | ||
18 | - USER_ACCOUNT_PASSWORD_KEY = "CATCAFE_USER_ACCOUNT_PASSWORD_KEY" //玩家账号密码的key | ||
19 | - USER_INVITEREWARD_FETCH_REWARD = "CATCAFE_USER_INVITEREWARD_FETCH_REWARD" //玩家邀请记录 hset key + uuid field为被邀请者的uuid value为领取状态 | ||
20 | - USER_BEINVITE_UUIDRELATION = "CATCAFE_USER_BEINVITE_UUIDRELATION" //玩家被邀请关系记录表 | ||
21 | - USER_INVITEWORK_RELATION = "CATCAFE_USER_INVITEWORK_RELATION" //玩家被邀请打工记录表 | ||
22 | - USER_BACKUP_DATA = "CATCAFE_USER_BACKUP_DATA" //玩家数据保存的备份 | ||
23 | - USER_NEW_DATA_KEY = "cat:cafe:data_new:where:data_uid:" //玩家数据保存的新的key | 4 | + USER_TOURIST_UID = "CATCAFE_USER_TOURIST_UID" //存储对应设备编码与uid的对应关系 |
5 | + USER_MAX_UUID = "CATCAFE_USER_MAX_UUID" //记录当前最大的uid,新增自增即可 | ||
6 | + USER_BASIC_DATA = "CATCAFE_USER_BASIC_DATA" //玩家基础信息 | ||
7 | + USER_EXT_DATA = "CATCAFE_USER_EXT_DATA" //玩家游戏数据 | ||
8 | + USER_BASE_DATA = "CATCAFE_USER_BASE_DATA" //小游戏自定义数据 | ||
9 | + MSG_CKECK_ACCESSTOKEN = "CATCAFE_MSG_CKECK_ACCESSTOKEN" //敏感词检测的key | ||
10 | + TEAM_USERTEAM_NAME = "CATCAFE_TEAM_USERTEAM_NAME" //存储了玩家队伍名称 | ||
11 | + TEAM_INFO = "CATCAFE_TEAM_INFO" //存储了玩家队伍信息 | ||
12 | + TEAM_MAX_UUID = "CATCAFE_TEAM_MAX_UUID" //记录当前最大的teamid,新增自增即可 | ||
13 | + TEAM_TEAMID_TOUUID = "CATCAFE_TEAM_TEAMID_TOUUID" //记录teamid与uuid的关系 | ||
14 | + FRIEND_LIST_KEY = "CATCAFE_FRIEND_LIST_KEY" //玩家的好友列表的key,需要在末尾加死":uuid" | ||
15 | + FRIEND_APPLYLIST_KEY = "CATCAFE_FRIEND_APPLYLIST_KEY" //玩家申请好友列表,需要在末尾加死":uuid" | ||
16 | + FRIEND_APPROVELIST_KEY = "CATCAFE_FRIEND_APPROVELIST_KEY" //待批准好友列表,需要在末尾加死":uuid" | ||
17 | + FRIEND_RECOMMANDLIST_KEY = "CATCAFE_FRIEND_RECOMMANDLIST_KEY" //推荐好友缓存key | ||
18 | + USER_ACCOUNT_PASSWORD_KEY = "CATCAFE_USER_ACCOUNT_PASSWORD_KEY" //玩家账号密码的key | ||
19 | + USER_INVITEREWARD_FETCH_REWARD = "CATCAFE_USER_INVITEREWARD_FETCH_REWARD" //玩家邀请记录 hset key + uuid field为被邀请者的uuid value为领取状态 | ||
20 | + USER_BEINVITE_UUIDRELATION = "CATCAFE_USER_BEINVITE_UUIDRELATION" //玩家被邀请关系记录表 | ||
21 | + USER_INVITEWORK_RELATION = "CATCAFE_USER_INVITEWORK_RELATION" //玩家被邀请打工记录表 | ||
22 | + USER_BACKUP_DATA = "CATCAFE_USER_BACKUP_DATA" //玩家数据保存的备份 | ||
23 | + USER_NEW_DATA_KEY = "cat:cafe:data_new:where:data_uid:" //玩家数据保存的新的key | ||
24 | 24 | ||
25 | - USER_CHAT_ISNEW = "CATCAFE_USER_CHAT_ISNEW" //hset field为uuid 存在表示有新消息了不用再去计算 否则需要挨个去判断 | ||
26 | - WORLD_CHAT_INFO_KEY = "CATCAFE_WORLD_CHAT_INFO_KEY" //存储的是世界聊天 list结构 最新的消息在最头部 | ||
27 | - USER_CHAT_TEAM_LASTGET_KEY ="CATCAFE_USER_CHAT_TEAM_LASTGET_KEY" // 结构是hset field是uuid value是存储的是最后一次获取工会聊天的时间戳,用于和工会聊天最新一条消息做对比,如果时间比最新一条小则有新的消息 | ||
28 | - USER_CHAT_TEAM_INFO_KEY = "CATCAFE_USER_CHAT_TEAM_INFO_KEY" // 加teamid 存储的是队伍聊天的信息 list结构 最新的消息在最头部 | 25 | + USER_CHAT_ISNEW = "CATCAFE_USER_CHAT_ISNEW" //hset field为uuid 存在表示有新消息了不用再去计算 否则需要挨个去判断 |
26 | + WORLD_CHAT_INFO_KEY = "CATCAFE_WORLD_CHAT_INFO_KEY" //存储的是世界聊天 list结构 最新的消息在最头部 | ||
27 | + USER_CHAT_TEAM_LASTGET_KEY = "CATCAFE_USER_CHAT_TEAM_LASTGET_KEY" // 结构是hset field是uuid value是存储的是最后一次获取工会聊天的时间戳,用于和工会聊天最新一条消息做对比,如果时间比最新一条小则有新的消息 | ||
28 | + USER_CHAT_TEAM_INFO_KEY = "CATCAFE_USER_CHAT_TEAM_INFO_KEY" // 加teamid 存储的是队伍聊天的信息 list结构 最新的消息在最头部 | ||
29 | USER_CHAT_PRIVATE_LASTGET_KEY = "CATCAFE_USER_CHAT_PRIVATE_LASTGET_KEY" // hset key加自己的uuid field为目标的uuid value为时间戳 | 29 | USER_CHAT_PRIVATE_LASTGET_KEY = "CATCAFE_USER_CHAT_PRIVATE_LASTGET_KEY" // hset key加自己的uuid field为目标的uuid value为时间戳 |
30 | - USER_CHAT_PRIVATE_INFO_KEY = "CATCAFE_USER_CHAT_PRIVATE_INFO_KEY" //list key需要加上自己的uuid 存储的是和自己相关的所有聊天信息 | 30 | + USER_CHAT_PRIVATE_INFO_KEY = "CATCAFE_USER_CHAT_PRIVATE_INFO_KEY" //list key需要加上自己的:uuid再加上目标:uuid 存储的是和自己相关的所有聊天信息 |
31 | ) | 31 | ) |
src/mysql/dbmysql.go
@@ -169,6 +169,8 @@ func QueryAllData(f *os.File) error{ | @@ -169,6 +169,8 @@ func QueryAllData(f *os.File) error{ | ||
169 | } | 169 | } |
170 | 170 | ||
171 | 171 | ||
172 | + | ||
173 | + | ||
172 | func QueryInvite(uuid int) ([]QuerInviteDesc,error){ | 174 | func QueryInvite(uuid int) ([]QuerInviteDesc,error){ |
173 | var rtslice []QuerInviteDesc | 175 | var rtslice []QuerInviteDesc |
174 | 176 |