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 | 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 | 22 | type WechatLoginReq struct { |
| 18 | 23 | Channel_id int `json:"channel_id"` |
| 19 | 24 | Invite_type int `json:"invite_type"` |
| ... | ... | @@ -113,6 +118,24 @@ type QueryInviteResp struct { |
| 113 | 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 | 140 | type InviteWorkReq struct{ |
| 118 | 141 | Uuid int `json:"uuid"` | ... | ... |
src/HttpServer/logic/function.go
| ... | ... | @@ -22,36 +22,35 @@ func SetHeader(w http.ResponseWriter) { |
| 22 | 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 | 27 | index := 0 |
| 29 | - for k,val := range tinfo.BInfo.Buff { | |
| 28 | + for k, val := range tinfo.BInfo.Buff { | |
| 30 | 29 | if val.Type == btype { |
| 31 | 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 | 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 | 39 | var tmp AddTeamBuffSpec |
| 41 | 40 | tmp.Build_type = vak.Type |
| 42 | - for _,val1 := range vak.BuffInfo { | |
| 41 | + for _, val1 := range vak.BuffInfo { | |
| 43 | 42 | var tmp1 BuffTimeInfo |
| 44 | 43 | tmp1.Buff_begin_time = val1.BeginTime |
| 45 | 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 | 52 | bfind := false |
| 54 | - for k,val := range tinfo.BInfo.Devote { | |
| 53 | + for k, val := range tinfo.BInfo.Devote { | |
| 55 | 54 | if val.Type == btype { |
| 56 | 55 | tinfo.BInfo.Devote[k].Assets += assets |
| 57 | 56 | bfind = true |
| ... | ... | @@ -63,37 +62,37 @@ func (tinfo *TeamInfo) DoDevote(btype int,assets int ,uuid int,muti int) { |
| 63 | 62 | tmp.UserId = uuid |
| 64 | 63 | tmp.Assets = assets |
| 65 | 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 | 68 | //需要处理一下buff |
| 70 | 69 | nowtime := int(time.Now().Unix()) |
| 71 | - addTime := 1800*muti | |
| 70 | + addTime := 1800 * muti | |
| 72 | 71 | var index = 0 |
| 73 | - for k,val := range tinfo.BInfo.Buff { | |
| 72 | + for k, val := range tinfo.BInfo.Buff { | |
| 74 | 73 | if val.Type == btype { |
| 75 | 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 | 78 | if tinfo.BInfo.Buff[index].BuffInfo[len(tinfo.BInfo.Buff[index].BuffInfo)-1].EndTime >= nowtime { |
| 80 | 79 | tinfo.BInfo.Buff[index].BuffInfo[len(tinfo.BInfo.Buff[index].BuffInfo)-1].EndTime += addTime |
| 81 | 80 | } else { |
| 82 | 81 | var tmp TeamBuffInfo |
| 83 | 82 | tmp.BeginTime = nowtime |
| 84 | 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 | 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 | 93 | v := tinfo.BInfo.Buff[index].BuffInfo[i] |
| 95 | 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 | 96 | i-- |
| 98 | 97 | } |
| 99 | 98 | } |
| ... | ... | @@ -101,7 +100,7 @@ func (tinfo *TeamInfo) DoDevote(btype int,assets int ,uuid int,muti int) { |
| 101 | 100 | |
| 102 | 101 | func (tinfo *TeamInfo) IsInTeam(uuid int) bool { |
| 103 | 102 | inteam := false |
| 104 | - for _,val := range tinfo.MemInfo.MemList { | |
| 103 | + for _, val := range tinfo.MemInfo.MemList { | |
| 105 | 104 | if val == uuid { |
| 106 | 105 | inteam = true |
| 107 | 106 | break |
| ... | ... | @@ -110,123 +109,123 @@ func (tinfo *TeamInfo) IsInTeam(uuid int) bool { |
| 110 | 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 | 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 | 117 | break |
| 119 | 118 | } |
| 120 | 119 | } |
| 121 | 120 | |
| 122 | 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 | 129 | if err != nil { |
| 131 | - logger.Error("SetTouristUid failed,err=%v",err) | |
| 130 | + logger.Error("SetTouristUid failed,err=%v", err) | |
| 132 | 131 | return err |
| 133 | 132 | } |
| 134 | 133 | return nil |
| 135 | 134 | } |
| 136 | 135 | |
| 137 | 136 | //获取游客的uid 返回值为uid |
| 138 | -func GetTouristUid(utoken string) (int,error){ | |
| 137 | +func GetTouristUid(utoken string) (int, error) { | |
| 139 | 138 | uidstr, err := redishandler.GetRedisClient().HGet(redis.USER_TOURIST_UID, utoken) |
| 140 | 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 | 147 | //获取玩家新的uuid |
| 149 | 148 | func GetNewUUid() int { |
| 150 | 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 | 151 | if err != nil { |
| 153 | - logger.Error("GetNewUUid failed,err=%v",err) | |
| 152 | + logger.Error("GetNewUUid failed,err=%v", err) | |
| 154 | 153 | return 0 |
| 155 | 154 | } |
| 156 | 155 | |
| 157 | - return newuuid+100000 | |
| 156 | + return newuuid + 100000 | |
| 158 | 157 | } |
| 159 | 158 | |
| 160 | 159 | //获取新的teamid |
| 161 | 160 | func GetNewTeamId() int { |
| 162 | 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 | 163 | if err != nil { |
| 165 | - logger.Error("GetNewUUid failed,err=%v",err) | |
| 164 | + logger.Error("GetNewUUid failed,err=%v", err) | |
| 166 | 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 | 172 | err := redishandler.GetRedisClient().HSet(redis.USER_BASE_DATA, strconv.Itoa(uuid), value) |
| 174 | 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 | 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 | 188 | err := redishandler.GetRedisClient().HSet(redis.USER_BASIC_DATA, strconv.Itoa(uuid), value) |
| 190 | 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 | 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 | 198 | basic := new(UserBaseData) |
| 200 | 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 | 205 | if extdata == nil { |
| 207 | 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 | 211 | err := redishandler.GetRedisClient().HSet(redis.USER_EXT_DATA, strconv.Itoa(extdata.Userid), string(ext)) |
| 213 | 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 | 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 | 221 | ext := new(UserData) |
| 223 | 222 | err = json.Unmarshal([]byte(strval), ext) |
| 224 | - return ext,err | |
| 223 | + return ext, err | |
| 225 | 224 | } |
| 226 | 225 | |
| 227 | 226 | //检测队伍名称是否已经存在 |
| 228 | 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 | 229 | if err != nil { |
| 231 | 230 | return true |
| 232 | 231 | } |
| ... | ... | @@ -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 | 237 | err := redishandler.GetRedisClient().HDel(redis.TEAM_USERTEAM_NAME, name) |
| 239 | 238 | if err != nil { |
| 240 | 239 | logger.Error("SetUserTeamName err=%v),err") |
| ... | ... | @@ -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 | 246 | err := redishandler.GetRedisClient().HSet(redis.TEAM_USERTEAM_NAME, name, strconv.Itoa(teamid)) |
| 248 | 247 | if err != nil { |
| 249 | 248 | logger.Error("SetUserTeamName err=%v),err") |
| ... | ... | @@ -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 | 255 | err := redishandler.GetRedisClient().HSet(redis.TEAM_INFO, strconv.Itoa(teamid), string(team)) |
| 257 | 256 | if err != nil { |
| 258 | 257 | logger.Error("SaveTeamInfo err=%v),err") |
| ... | ... | @@ -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 | 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 | 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 | 272 | err = json.Unmarshal([]byte(vv), info) |
| 274 | - return info,err | |
| 273 | + return info, err | |
| 275 | 274 | } |
| 276 | 275 | |
| 277 | 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 | 279 | if err != nil { |
| 281 | 280 | logger.Error("SaveTeamToUuid err=%v),err") |
| 282 | 281 | return err |
| ... | ... | @@ -285,111 +284,110 @@ func SaveTeamToUuid(teamid,uuid int) error { |
| 285 | 284 | } |
| 286 | 285 | |
| 287 | 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 | 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 | 298 | type TeamSlice []*TeamInfo |
| 300 | 299 | |
| 301 | -func (a TeamSlice) Len() int { // 重写 Len() 方法 | |
| 300 | +func (a TeamSlice) Len() int { // 重写 Len() 方法 | |
| 302 | 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 | 304 | a[i], a[j] = a[j], a[i] |
| 306 | 305 | } |
| 307 | 306 | func (a TeamSlice) Less(i, j int) bool { // 重写 Less() 方法, 从大到小排序 |
| 308 | 307 | return a[j].BaseInfo.Assets < a[i].BaseInfo.Assets |
| 309 | 308 | } |
| 310 | 309 | |
| 311 | - | |
| 312 | 310 | //获取所有的team,分页 传入页签 |
| 313 | -func GetTeamListByCond(shopnum int,page int) (TeamSlice,error,int) { | |
| 311 | +func GetTeamListByCond(shopnum int, page int) (TeamSlice, error, int) { | |
| 314 | 312 | if page < 0 { |
| 315 | - logger.Error("GetTeamListByCond invalid page=%v",page) | |
| 313 | + logger.Error("GetTeamListByCond invalid page=%v", page) | |
| 316 | 314 | page = 1 |
| 317 | 315 | } |
| 318 | 316 | var rtslice TeamSlice |
| 319 | - vv,err := redishandler.GetRedisClient().HGetAllValues(redis.TEAM_INFO) | |
| 317 | + vv, err := redishandler.GetRedisClient().HGetAllValues(redis.TEAM_INFO) | |
| 320 | 318 | if err != nil { |
| 321 | 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 | 324 | one := new(TeamInfo) |
| 327 | 325 | bytestr := val.([]byte) |
| 328 | 326 | err = json.Unmarshal(bytestr, one) |
| 329 | 327 | if err == nil { |
| 330 | 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 | 334 | sort.Sort(rtslice) |
| 337 | 335 | |
| 338 | - begin := (page-1) * 10 | |
| 336 | + begin := (page - 1) * 10 | |
| 339 | 337 | end := begin + 9 |
| 340 | 338 | sumlen := len(rtslice) |
| 341 | - if begin > sumlen{ | |
| 339 | + if begin > sumlen { | |
| 342 | 340 | begin = sumlen - 10 |
| 343 | 341 | } |
| 344 | 342 | if end > sumlen { |
| 345 | 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 | 351 | if page < 0 { |
| 354 | - logger.Error("GetTeamListByCond invalid page=%v",page) | |
| 352 | + logger.Error("GetTeamListByCond invalid page=%v", page) | |
| 355 | 353 | page = 1 |
| 356 | 354 | } |
| 357 | 355 | var rtslice TeamSlice |
| 358 | - vv,err := redishandler.GetRedisClient().HGetAllValues(redis.TEAM_INFO) | |
| 356 | + vv, err := redishandler.GetRedisClient().HGetAllValues(redis.TEAM_INFO) | |
| 359 | 357 | if err != nil { |
| 360 | 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 | 363 | one := new(TeamInfo) |
| 366 | 364 | bytestr := val.([]byte) |
| 367 | 365 | err = json.Unmarshal(bytestr, one) |
| 368 | 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 | 373 | sort.Sort(rtslice) |
| 376 | 374 | |
| 377 | - begin := (page-1) * 10 | |
| 375 | + begin := (page - 1) * 10 | |
| 378 | 376 | end := begin + 9 |
| 379 | 377 | sumlen := len(rtslice) |
| 380 | - if begin > sumlen{ | |
| 378 | + if begin > sumlen { | |
| 381 | 379 | begin = sumlen - 10 |
| 382 | 380 | } |
| 383 | 381 | if end > sumlen { |
| 384 | 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 | 389 | func (alist *ApproveList) InApproveList(uuid int) bool { |
| 392 | - for _,val := range alist.Approve_info { | |
| 390 | + for _, val := range alist.Approve_info { | |
| 393 | 391 | if val.Uuid == uuid { |
| 394 | 392 | return true |
| 395 | 393 | } |
| ... | ... | @@ -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 | 400 | return nil |
| 403 | 401 | } |
| 404 | 402 | |
| 405 | 403 | //待批准列表 |
| 406 | -func GetUserApproveList(uuid int) (*ApproveList,error) { | |
| 404 | +func GetUserApproveList(uuid int) (*ApproveList, error) { | |
| 407 | 405 | rt := new(ApproveList) |
| 408 | 406 | //存储为hset key为 固定key+uuid ,field为被添加者的uuid,fieldW为FriendInfo |
| 409 | 407 | userkey := redis.FRIEND_APPROVELIST_KEY + ":" + strconv.Itoa(uuid) |
| 410 | - vv,err := redishandler.GetRedisClient().HGetAllValues(userkey) | |
| 408 | + vv, err := redishandler.GetRedisClient().HGetAllValues(userkey) | |
| 411 | 409 | if err != nil { |
| 412 | 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 | 416 | one := new(ApplyInfo) |
| 419 | 417 | bytestr := val.([]byte) |
| 420 | 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 | 435 | userkey := redis.FRIEND_APPROVELIST_KEY + ":" + strconv.Itoa(uuid) |
| 438 | 436 | var finfo ApplyInfo |
| 439 | 437 | finfo.Uuid = adduuid |
| 440 | 438 | finfo.Apply_time = int(time.Now().Unix()) |
| 441 | - str,err := json.Marshal(&finfo) | |
| 439 | + str, err := json.Marshal(&finfo) | |
| 442 | 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 | 444 | return err |
| 447 | 445 | } |
| 448 | 446 | |
| 449 | 447 | func (alist *ApplyList) InApplyList(uuid int) bool { |
| 450 | - for _,val := range alist.Apply_info { | |
| 448 | + for _, val := range alist.Apply_info { | |
| 451 | 449 | if val.Uuid == uuid { |
| 452 | 450 | return true |
| 453 | 451 | } |
| ... | ... | @@ -455,88 +453,88 @@ func (alist *ApplyList) InApplyList(uuid int) bool { |
| 455 | 453 | return false |
| 456 | 454 | } |
| 457 | 455 | |
| 458 | -func GetUserApplyList(uuid int) (*ApplyList,error) { | |
| 456 | +func GetUserApplyList(uuid int) (*ApplyList, error) { | |
| 459 | 457 | rt := new(ApplyList) |
| 460 | 458 | //存储为hset key为 固定key+uuid ,field为被添加者的uuid,fieldW为FriendInfo |
| 461 | 459 | userkey := redis.FRIEND_APPLYLIST_KEY + ":" + strconv.Itoa(uuid) |
| 462 | - vv,err := redishandler.GetRedisClient().HGetAllValues(userkey) | |
| 460 | + vv, err := redishandler.GetRedisClient().HGetAllValues(userkey) | |
| 463 | 461 | if err != nil { |
| 464 | 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 | 468 | one := new(ApplyInfo) |
| 471 | 469 | bytestr := val.([]byte) |
| 472 | 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 | 487 | userkey := redis.FRIEND_APPLYLIST_KEY + ":" + strconv.Itoa(uuid) |
| 490 | 488 | var finfo ApplyInfo |
| 491 | 489 | finfo.Uuid = adduuid |
| 492 | 490 | finfo.Apply_time = int(time.Now().Unix()) |
| 493 | - str,err := json.Marshal(&finfo) | |
| 491 | + str, err := json.Marshal(&finfo) | |
| 494 | 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 | 496 | return err |
| 499 | 497 | } |
| 500 | 498 | |
| 501 | -func GetUserFriendList(uuid int) (*FriendList,error) { | |
| 499 | +func GetUserFriendList(uuid int) (*FriendList, error) { | |
| 502 | 500 | //todo |
| 503 | 501 | rt := new(FriendList) |
| 504 | 502 | //存储为hset key为 固定key+uuid ,field为被添加者的uuid,fieldW为FriendInfo |
| 505 | 503 | userkey := redis.FRIEND_LIST_KEY + ":" + strconv.Itoa(uuid) |
| 506 | - vv,err := redishandler.GetRedisClient().HGetAllValues(userkey) | |
| 504 | + vv, err := redishandler.GetRedisClient().HGetAllValues(userkey) | |
| 507 | 505 | if err != nil { |
| 508 | 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 | 511 | one := new(FriendInfo) |
| 514 | 512 | bytestr := val.([]byte) |
| 515 | 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 | 523 | userkey := redis.FRIEND_LIST_KEY + ":" + strconv.Itoa(uuid) |
| 526 | 524 | var finfo FriendInfo |
| 527 | 525 | finfo.Uuid = adduuid |
| 528 | 526 | finfo.Status = status |
| 529 | - str,err := json.Marshal(&finfo) | |
| 527 | + str, err := json.Marshal(&finfo) | |
| 530 | 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 | 532 | return err |
| 535 | 533 | } |
| 536 | 534 | |
| 537 | 535 | //判断是否已经是好友 |
| 538 | 536 | func (flist *FriendList) IsInFreiendList(uuid int) bool { |
| 539 | - for _,val := range flist.Friends { | |
| 537 | + for _, val := range flist.Friends { | |
| 540 | 538 | if val.Uuid == uuid && val.Status == 0 { |
| 541 | 539 | return true |
| 542 | 540 | } |
| ... | ... | @@ -544,53 +542,52 @@ func (flist *FriendList) IsInFreiendList(uuid int) bool { |
| 544 | 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 | 547 | if err != nil { |
| 550 | - logger.Error("SaveCacheRecommandFriendList err=%v",err) | |
| 548 | + logger.Error("SaveCacheRecommandFriendList err=%v", err) | |
| 551 | 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 | 552 | if err != nil { |
| 555 | - logger.Error("SaveCacheRecommandFriendList err=%v",err) | |
| 553 | + logger.Error("SaveCacheRecommandFriendList err=%v", err) | |
| 556 | 554 | return |
| 557 | 555 | } |
| 558 | 556 | } |
| 559 | 557 | |
| 560 | -func GetCacheRecommandFriendList(uuid int) (*GetRecommendListDesc,error) { | |
| 558 | +func GetCacheRecommandFriendList(uuid int) (*GetRecommendListDesc, error) { | |
| 561 | 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 | 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 | 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 | 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 | 577 | return err |
| 580 | 578 | } |
| 581 | 579 | |
| 582 | - | |
| 583 | 580 | func GetFfiendData(frienduuid int) *GetRecommendListInfo { |
| 584 | - tmpext,err := GetUserExt(frienduuid) | |
| 581 | + tmpext, err := GetUserExt(frienduuid) | |
| 585 | 582 | if err != nil { |
| 586 | 583 | return nil |
| 587 | 584 | } |
| 588 | - tmpbasic,err := GetUserBasic(frienduuid) | |
| 585 | + tmpbasic, err := GetUserBasic(frienduuid) | |
| 589 | 586 | if err != nil { |
| 590 | 587 | return nil |
| 591 | 588 | } |
| 592 | 589 | |
| 593 | - tmpinfo := new(GetRecommendListInfo) | |
| 590 | + tmpinfo := new(GetRecommendListInfo) | |
| 594 | 591 | tmpinfo.Hot = tmpext.Hot |
| 595 | 592 | tmpinfo.Bean = tmpext.Bean |
| 596 | 593 | tmpinfo.Userid = tmpext.Userid |
| ... | ... | @@ -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 | 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 | 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 | 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 | 724 | //首先对pwd加密 |
| 732 | 725 | h := md5.New() |
| 733 | 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 | 729 | return err |
| 737 | 730 | } |
| 738 | 731 | |
| 739 | -func CheckAccout(account ,pwd string) error { | |
| 732 | +func CheckAccout(account, pwd string) error { | |
| 740 | 733 | h := md5.New() |
| 741 | 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 | 737 | if err != nil { |
| 745 | 738 | return err |
| 746 | 739 | } |
| 747 | - if pwdstr!= newpwd { | |
| 740 | + if pwdstr != newpwd { | |
| 748 | 741 | return errors.New("pwdword not right!") |
| 749 | 742 | } |
| 750 | 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 | 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 | 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 | 755 | if err != nil { |
| 763 | - logger.Error("GetAccountToken failed err=%v",err) | |
| 756 | + logger.Error("GetAccountToken failed err=%v", err) | |
| 764 | 757 | return "" |
| 765 | 758 | } |
| 766 | 759 | |
| ... | ... | @@ -771,7 +764,7 @@ type WorkList []InviteWorkDesc |
| 771 | 764 | |
| 772 | 765 | func (wl *WorkList) IsInWork(uuid int) bool { |
| 773 | 766 | isIn := false |
| 774 | - for _,val := range *wl { | |
| 767 | + for _, val := range *wl { | |
| 775 | 768 | if val.Uuid == uuid { |
| 776 | 769 | isIn = true |
| 777 | 770 | } |
| ... | ... | @@ -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 | 779 | if err != nil { |
| 787 | 780 | //logger.Error("GetdagongList err=%v",err) |
| 788 | - return nil,nil,nil | |
| 781 | + return nil, nil, nil | |
| 789 | 782 | } |
| 790 | 783 | |
| 791 | 784 | var reallist WorkList |
| 792 | 785 | var list WorkList |
| 793 | - err = json.Unmarshal([]byte(vv),&list) | |
| 786 | + err = json.Unmarshal([]byte(vv), &list) | |
| 794 | 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 | 792 | //此处时间改为600s |
| 800 | 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 | 796 | //list = append(list[:i],list[i+1:]...) |
| 804 | 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 | 810 | if err != nil { |
| 818 | 811 | //logger.Error("GetdagongList err=%v",err) |
| 819 | - return nil,nil,nil | |
| 812 | + return nil, nil, nil | |
| 820 | 813 | } |
| 821 | 814 | |
| 822 | 815 | var list WorkList |
| 823 | - err = json.Unmarshal([]byte(vv),&list) | |
| 816 | + err = json.Unmarshal([]byte(vv), &list) | |
| 824 | 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 | 822 | var offlist []InviteWorkOffDesc |
| 830 | 823 | //此处时间改为600s |
| 831 | 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 | 827 | var tmp InviteWorkOffDesc |
| 835 | 828 | tmp.Uuid = list[i].Uuid |
| 836 | 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 | 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 | 845 | if err != nil { |
| 855 | - logger.Error("AddDagongList err=%v",err) | |
| 846 | + logger.Error("AddDagongList err=%v", err) | |
| 856 | 847 | return err |
| 857 | 848 | } |
| 858 | 849 | |
| ... | ... | @@ -862,19 +853,112 @@ func AddDagongList(uuid int,masteruuid int,list WorkList) error { |
| 862 | 853 | tmp.Nickname = nickname |
| 863 | 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 | 859 | if err != nil { |
| 869 | - logger.Error("AddDagongList err=%v",err) | |
| 860 | + logger.Error("AddDagongList err=%v", err) | |
| 870 | 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 | 865 | if err != nil { |
| 875 | - logger.Error("AddDagongList err=%v",err) | |
| 866 | + logger.Error("AddDagongList err=%v", err) | |
| 876 | 867 | return err |
| 877 | 868 | } |
| 878 | 869 | |
| 879 | 870 | return nil |
| 880 | -} | |
| 881 | 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 | 92 | http.HandleFunc("/catcafe/user/newGetData",NewGetData) //新的获取玩家数据接口 |
| 93 | 93 | http.HandleFunc("/catcafe/user/newSaveData",NewSaveData) //新的保存玩家数据接口 |
| 94 | 94 | |
| 95 | + http.HandleFunc("/catcafe/chat/queryNewMessage",queryNewMessage) //查询红点请求 | |
| 96 | + | |
| 95 | 97 | |
| 96 | 98 | err := http.ListenAndServe(conf.GetServerHttpAddrConf(), nil) |
| 97 | 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 | 114 | func NewSaveData(w http.ResponseWriter, r *http.Request) { |
| 102 | 115 | |
| 103 | 116 | result, _ := ioutil.ReadAll(r.Body) | ... | ... |
src/HttpServer/logic/logic.go
| ... | ... | @@ -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 | 326 | func HandleNewSaveData(w http.ResponseWriter, data string) { |
| 278 | 327 | SetHeader(w) |
| 279 | 328 | var resp SaveDataBackupResp | ... | ... |
src/common/redis/def.go
| 1 | 1 | package redis |
| 2 | 2 | |
| 3 | 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 | 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 | ) | ... | ... |