Commit e62704c866ef71e0725e923fb5878a9d0e9e1cb5
1 parent
a7c5dd9a
Exists in
master
提交
Showing
3 changed files
with
75 additions
and
7 deletions
Show diff stats
src/HttpServer/logic/function.go
... | ... | @@ -1150,6 +1150,16 @@ func GetPrivateChatMessage(uuid, taduid int) []QueryChatMessageData { |
1150 | 1150 | } |
1151 | 1151 | |
1152 | 1152 | func WorldChat(message string, uuid int) (int, string) { |
1153 | + | |
1154 | + //需要检查是否能发言 | |
1155 | + isexist, err := redishandler.GetRedisClient().HExists(redis.USER_CHATFORBIGLIST_WORLD_KEY, strconv.Itoa(uuid)) | |
1156 | + if err == nil { | |
1157 | + if isexist { | |
1158 | + //被禁言了 无法发言 | |
1159 | + return 99, "you are forbided" | |
1160 | + } | |
1161 | + } | |
1162 | + | |
1153 | 1163 | length, err := redishandler.GetRedisClient().LLen(redis.WORLD_CHAT_INFO_KEY) |
1154 | 1164 | if err == nil { |
1155 | 1165 | if length >= CHATLIMITNUM { |
... | ... | @@ -1192,6 +1202,15 @@ func WorldChat(message string, uuid int) (int, string) { |
1192 | 1202 | } |
1193 | 1203 | |
1194 | 1204 | func TeamChat(message string, uuid int) (int, string) { |
1205 | + //需要检查是否能发言 | |
1206 | + isexist, err := redishandler.GetRedisClient().HExists(redis.USER_CHATFORBIGLIST_TEAM_KEY, strconv.Itoa(uuid)) | |
1207 | + if err == nil { | |
1208 | + if isexist { | |
1209 | + //被禁言了 无法发言 | |
1210 | + return 99, "you are forbided" | |
1211 | + } | |
1212 | + } | |
1213 | + | |
1195 | 1214 | tid, err := QueryUserTeamId(uuid) |
1196 | 1215 | if err != nil { |
1197 | 1216 | logger.Error("TeamChat err=%v", err) |
... | ... | @@ -1240,6 +1259,14 @@ func TeamChat(message string, uuid int) (int, string) { |
1240 | 1259 | } |
1241 | 1260 | |
1242 | 1261 | func PrivateChat(message string, uuid int, taruid int) (int, string) { |
1262 | + isexist, err := redishandler.GetRedisClient().HExists(redis.USER_CHATFORBIGLIST_PRIVATE_KEY, strconv.Itoa(uuid)) | |
1263 | + if err == nil { | |
1264 | + if isexist { | |
1265 | + //被禁言了 无法发言 | |
1266 | + return 99, "you are forbided" | |
1267 | + } | |
1268 | + } | |
1269 | + | |
1243 | 1270 | //存入待收人的列表 |
1244 | 1271 | rkey := redis.USER_CHAT_PRIVATE_INFO_KEY + ":" + strconv.Itoa(taruid) + ":" + strconv.Itoa(uuid) |
1245 | 1272 | length, err := redishandler.GetRedisClient().LLen(rkey) | ... | ... |
src/HttpServer/logic/httpserver.go
... | ... | @@ -4,6 +4,7 @@ import ( |
4 | 4 | "HttpServer/conf" |
5 | 5 | "HttpServer/redishandler" |
6 | 6 | "common/logger" |
7 | + "common/redis" | |
7 | 8 | "fmt" |
8 | 9 | "io" |
9 | 10 | "io/ioutil" |
... | ... | @@ -71,6 +72,7 @@ func startServerHttpServe() { |
71 | 72 | http.HandleFunc("/catcafe/ClearData", ClearData) //情况账号的测试接口 |
72 | 73 | http.HandleFunc("/catcafe/AddWhiteList", AddWhiteList) //情况账号的测试接口 |
73 | 74 | http.HandleFunc("/catcafe/AddGoldAndLove", AddGoldAndLove) //情况账号的测试接口 |
75 | + http.HandleFunc("/catcafe/ForbidChats", ForbidChats) //禁言接口 | |
74 | 76 | http.HandleFunc("/catcafe/QueryAllAccount", QueryAllAccount) //查询所有账号的等级信息等数据 |
75 | 77 | //------------------------------------------------------------- |
76 | 78 | http.HandleFunc("/catcafe/login", UserLogin) //游客登录 |
... | ... | @@ -258,6 +260,42 @@ func QueryAllAccount(w http.ResponseWriter, r *http.Request) { |
258 | 260 | fmt.Fprint(w, "success") |
259 | 261 | } |
260 | 262 | |
263 | +func ForbidChats(w http.ResponseWriter, r *http.Request) { | |
264 | + query := r.URL.Query() | |
265 | + suuid := query.Get("uuid") | |
266 | + stype := query.Get("type") //0世界频道 1工会频道 2私聊 | |
267 | + soption := query.Get("option") //1解封 其他禁言 | |
268 | + | |
269 | + if suuid == "" { | |
270 | + fmt.Fprint(w, "uuid is nil,please check") | |
271 | + return | |
272 | + } | |
273 | + | |
274 | + rkey := "" | |
275 | + if stype == "0" { | |
276 | + rkey = redis.USER_CHATFORBIGLIST_WORLD_KEY | |
277 | + } else if stype == "1" { | |
278 | + rkey = redis.USER_CHATFORBIGLIST_TEAM_KEY | |
279 | + } else { | |
280 | + rkey = redis.USER_CHATFORBIGLIST_PRIVATE_KEY | |
281 | + } | |
282 | + | |
283 | + if soption == "1" { | |
284 | + err := redishandler.GetRedisClient().HDel(rkey, suuid) | |
285 | + if err != nil { | |
286 | + logger.Error("ForbidChats err=%v") | |
287 | + } | |
288 | + } else { | |
289 | + err := redishandler.GetRedisClient().HSet(rkey, suuid, "1") | |
290 | + if err != nil { | |
291 | + logger.Error("ForbidChats err=%v") | |
292 | + } | |
293 | + } | |
294 | + | |
295 | + fmt.Fprint(w, "禁言成功!") | |
296 | + | |
297 | +} | |
298 | + | |
261 | 299 | func AddGoldAndLove(w http.ResponseWriter, r *http.Request) { |
262 | 300 | |
263 | 301 | query := r.URL.Query() | ... | ... |
src/common/redis/def.go
... | ... | @@ -22,11 +22,14 @@ const ( |
22 | 22 | USER_BACKUP_DATA = "CATCAFE_USER_BACKUP_DATA" //玩家数据保存的备份 |
23 | 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结构 最新的消息在最头部 | |
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再加上目标:uuid 存储的是和自己相关的所有聊天信息 | |
31 | - USER_CHAT_EMOJUNLOCK_KEY = "CATCAFE_USER_CHAT_EMOJUNLOCK_KEY" //hset 记录的是玩家表情页签解锁情况 []int 0表示未解锁 1表示解锁 | |
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为时间戳 | |
30 | + USER_CHAT_PRIVATE_INFO_KEY = "CATCAFE_USER_CHAT_PRIVATE_INFO_KEY" //list key需要加上自己的:uuid再加上目标:uuid 存储的是和自己相关的所有聊天信息 | |
31 | + USER_CHAT_EMOJUNLOCK_KEY = "CATCAFE_USER_CHAT_EMOJUNLOCK_KEY" //hset 记录的是玩家表情页签解锁情况 []int 0表示未解锁 1表示解锁 | |
32 | + USER_CHATFORBIGLIST_WORLD_KEY = "CAECAFE_USER_CHATFORBIGLIST_WORLD_KEY" //hset 记录玩家世界是否被禁言 | |
33 | + USER_CHATFORBIGLIST_TEAM_KEY = "CAECAFE_USER_CHATFORBIGLIST_TEAM_KEY" //hset 记录玩家工会是否被禁言 | |
34 | + USER_CHATFORBIGLIST_PRIVATE_KEY = "CAECAFE_USER_CHATFORBIGLIST_PRIVATE_KEY" //hset 记录玩家私聊是否被禁言 | |
32 | 35 | ) | ... | ... |