From d067dff387be8f7474b474eead125988b73b0a2a Mon Sep 17 00:00:00 2001 From: 陆恒 Date: Fri, 24 Apr 2020 15:25:40 +0800 Subject: [PATCH] 好友相关接口 --- src/HttpServer/logic/datadef.go | 24 ++++++++++++++++++++++++ src/HttpServer/logic/errordef.go | 4 ++++ src/HttpServer/logic/function.go | 9 +++++++-- src/HttpServer/logic/httpserver.go | 26 ++++++++++++++++++++++++++ src/HttpServer/logic/logic.go | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 169 insertions(+), 2 deletions(-) diff --git a/src/HttpServer/logic/datadef.go b/src/HttpServer/logic/datadef.go index ef72b74..388a0f9 100644 --- a/src/HttpServer/logic/datadef.go +++ b/src/HttpServer/logic/datadef.go @@ -503,6 +503,30 @@ type GetRecommendListResp struct { Result GetRecommendListResult `json:"result"` } + +type HandleFriendRequestReq struct{ + Token string `json:"token"` + User_id int `json:"user_id"` + Type int `json:"type"` +} + + +type HandleFriendRequestResp struct { + Status string `json:"status"` + Result CommonResult `json:"result"` +} + +type DelFriendReq struct{ + Token string `json:"token"` + User_id int `json:"user_id"` +} + + +type DelFriendResp struct { + Status string `json:"status"` + Result CommonResult `json:"result"` +} + //********************************************************************************************************** diff --git a/src/HttpServer/logic/errordef.go b/src/HttpServer/logic/errordef.go index 285af72..583ffff 100644 --- a/src/HttpServer/logic/errordef.go +++ b/src/HttpServer/logic/errordef.go @@ -30,4 +30,8 @@ const ( RROR_FRIENDINAPPROVELISTFAILED = 25 //已经在等待批准列表 ERROR_FRIENDAPPROVELIMIT = 26 //当日批准已达上限 ERROR_FRIENDGETRECOMMADNFAILED = 27 //获取推荐好友失败 + ERROR_NOTINAPPROVELIST = 28 //玩家不在好友申请列表 + ERROR_FRIENDAPPROVEFAILED = 29 //好友审批失败 + ERROR_FRIENDNOTFRIEND = 30 //不是好友 + ERROR_FRIENDDELFRIENDFAILED = 31 //删除好友失败 ) \ No newline at end of file diff --git a/src/HttpServer/logic/function.go b/src/HttpServer/logic/function.go index d787b67..8ffee6f 100644 --- a/src/HttpServer/logic/function.go +++ b/src/HttpServer/logic/function.go @@ -393,6 +393,11 @@ func (alist *ApproveList) InApproveList(uuid int) bool { return false } +// +func DelFromApproveList(uuid,deluuid int) error { + return nil +} + //待批准列表 func GetUserApproveList(uuid int) (*ApproveList,error) { rt := new(ApproveList) @@ -512,11 +517,11 @@ func GetUserFriendList(uuid int) (*FriendList,error) { return rt,nil } -func SaveUserFriendList(uuid int,adduuid int) error { +func SaveUserFriendList(uuid int,adduuid int,status int) error { userkey := redis.FRIEND_LIST_KEY + ":" + strconv.Itoa(uuid) var finfo FriendInfo finfo.Uuid = adduuid - finfo.Status = 0 + finfo.Status = status str,err := json.Marshal(&finfo) if err != nil { logger.Error("SaveUserFriendList failed,err=%v",err) diff --git a/src/HttpServer/logic/httpserver.go b/src/HttpServer/logic/httpserver.go index 493b209..251219a 100644 --- a/src/HttpServer/logic/httpserver.go +++ b/src/HttpServer/logic/httpserver.go @@ -50,6 +50,8 @@ func startServerHttpServe() { http.HandleFunc("/catcafe/friend/getList", GetFriendList) //获取好友列表 http.HandleFunc("/catcafe/friend/getAuditList", GetAuditList) //获取待审核好友列表 http.HandleFunc("/catcafe/friend/getRecommendList", GetRecommendList) //获取推荐好友列表 + http.HandleFunc("/catcafe/friend/handleFriendRequest", HandleFriendRequest) //处理好友请求 + http.HandleFunc("/catcafe/friend/delFriend", DelFriend) //删除好友 err := http.ListenAndServe(conf.GetServerHttpAddrConf(), nil) @@ -57,6 +59,30 @@ func startServerHttpServe() { } +func DelFriend(w http.ResponseWriter, r *http.Request) { + + result, _ := ioutil.ReadAll(r.Body) + r.Body.Close() + + s := string(result) + logger.Info("DelFriend , body:%v,uuid=%v", s) + + HandleDelFriend(w,s) +} + + +func HandleFriendRequest(w http.ResponseWriter, r *http.Request) { + + result, _ := ioutil.ReadAll(r.Body) + r.Body.Close() + + s := string(result) + logger.Info("HandleFriendRequest , body:%v,uuid=%v", s) + + HandleHandleFriendRequest(w,s) +} + + func GetRecommendList(w http.ResponseWriter, r *http.Request) { result, _ := ioutil.ReadAll(r.Body) diff --git a/src/HttpServer/logic/logic.go b/src/HttpServer/logic/logic.go index 7fa3d72..31306cc 100644 --- a/src/HttpServer/logic/logic.go +++ b/src/HttpServer/logic/logic.go @@ -1381,4 +1381,112 @@ func HandleGetRecommendList(w http.ResponseWriter, data string) { //回包 respstr, _ := json.Marshal(&resp) fmt.Fprint(w, string(respstr)) +} + + +func HandleHandleFriendRequest(w http.ResponseWriter, data string) { + SetHeader(w) + var resp HandleFriendRequestResp + resp.Status = "true" + resp.Result.Code = ERROR_OK + var rdata HandleFriendRequestReq + err := json.Unmarshal([]byte(data), &rdata) + for { + if err != nil { + logger.Error("HandleHandleFriendRequest json unmarshal failed=%v", err) + resp.Result.Code = ERROR_JSONUNMASHFAILED + break + } + + uuid,err := GetTouristUid(rdata.Token) + if err != nil || uuid==0{ + logger.Error("HandleHandleFriendRequest GetTouristUid failed=%v", err) + resp.Result.Code = ERROR_GETUSERIDFAILED + break + } + + approvelist,err := GetUserApproveList(uuid) + if !approvelist.InApproveList(rdata.User_id) { + logger.Error("HandleHandleFriendRequest NOTINAPPROVELIST failed=%v", err) + resp.Result.Code = ERROR_NOTINAPPROVELIST + break + } + + //从待批准列表删除 + err = DelFromApproveList(uuid,rdata.User_id) + if err != nil { + logger.Error("HandleHandleFriendRequest ERROR_FRIENDAPPROVEFAILED failed=%v", err) + resp.Result.Code = ERROR_FRIENDAPPROVEFAILED + break + } + + if rdata.Type == 0 { + //如果同意将其加入好友列表 status 1表示删除 0表示未删除 + err = SaveUserFriendList(uuid,rdata.User_id,0) + if err != nil { + logger.Error("HandleHandleFriendRequest ERROR_FRIENDAPPROVEFAILED failed=%v", err) + resp.Result.Code = ERROR_FRIENDAPPROVEFAILED + break + } + } + + + resp.Result.Code = ERROR_OK + break + } + + //回包 + respstr, _ := json.Marshal(&resp) + fmt.Fprint(w, string(respstr)) +} + + +func HandleDelFriend(w http.ResponseWriter, data string) { + SetHeader(w) + var resp DelFriendResp + resp.Status = "true" + resp.Result.Code = ERROR_OK + var rdata DelFriendReq + err := json.Unmarshal([]byte(data), &rdata) + for { + if err != nil { + logger.Error("HandleDelFriend json unmarshal failed=%v", err) + resp.Result.Code = ERROR_JSONUNMASHFAILED + break + } + + uuid,err := GetTouristUid(rdata.Token) + if err != nil || uuid==0{ + logger.Error("HandleDelFriend GetTouristUid failed=%v", err) + resp.Result.Code = ERROR_GETUSERIDFAILED + break + } + + friendlist,err := GetUserFriendList(uuid) + if err != nil { + logger.Error("HandleDelFriend GetFriendList failed=%v", err) + resp.Result.Code = ERROR_GETFRIENDLISTAILED + break + } + if !friendlist.IsInFreiendList(rdata.User_id) { + logger.Error("HandleSetFriendRequest ERROR_FRIENDNOTFRIEND failed=%v", err) + resp.Result.Code = ERROR_FRIENDNOTFRIEND + break + } + + err = SaveUserFriendList(uuid,rdata.User_id,1) + if err != nil { + logger.Error("HandleSetFriendRequest ERROR_FRIENDAPPROVEFAILED failed=%v", err) + resp.Result.Code = ERROR_FRIENDDELFRIENDFAILED + break + } + + + resp.Result.Code = ERROR_OK + break + } + + //回包 + respstr, _ := json.Marshal(&resp) + fmt.Fprint(w, string(respstr)) } \ No newline at end of file -- libgit2 0.21.0