Commit 39e6bdb482376c5519e5dd32a2fad46b25ee5369

Authored by 陆恒
1 parent f1192a58
Exists in master

提交

src/HttpServer/logic/datadef.go
... ... @@ -308,6 +308,99 @@ type AddTeamBuffResp struct {
308 308 Result AddTeamBuffResult `json:"result"`
309 309 }
310 310  
  311 +type GetTeamBuffReq struct{
  312 + Token string `json:"token"`
  313 +}
  314 +
  315 +type GetTeamBuffResp struct {
  316 + Status string `json:"status"`
  317 + Result AddTeamBuffResult `json:"result"`
  318 +}
  319 +
  320 +type GetTeamDataReq struct{
  321 + Token string `json:"token"`
  322 +}
  323 +
  324 +type GetTeamDataTeamUserList struct {
  325 + Uuid int `json:"uuid"`
  326 +}
  327 +
  328 +type GetTeamDataDesc struct {
  329 + Team_data CreateTeamInfo `json:"team_data"`
  330 + Team_user_list []GetTeamDataTeamUserList `json:"team_user_list"`
  331 + Build_list QuitTeamDesc `json:"build_list"`
  332 +}
  333 +
  334 +type GetTeamDataResult struct {
  335 + Code int `json:"code"`
  336 + Data GetTeamDataDesc `json:"data"`
  337 +}
  338 +
  339 +type GetTeamDataResp struct {
  340 + Status string `json:"status"`
  341 + Result GetTeamDataResult `json:"result"`
  342 +}
  343 +
  344 +type GetDataByUserIdReq struct{
  345 + Token string `json:"token"`
  346 + Field string `json:"field"`
  347 + User_id int `json:"user_id"`
  348 +}
  349 +
  350 +type GetDataByUserIdDesc struct {
  351 + Base_data string `json:"base_data"`
  352 + User_base_data UserBaseData `json:"user_base_data"`
  353 + Extdata UserExtData `json:"user_ext_data"`
  354 +}
  355 +
  356 +type GetDataByUserIdResult struct {
  357 + Code int `json:"code"`
  358 + Data GetDataByUserIdDesc `json:"data"`
  359 +}
  360 +
  361 +type GetDataByUserIdResp struct {
  362 + Status string `json:"status"`
  363 + Result GetDataByUserIdResult `json:"result"`
  364 +}
  365 +
  366 +
  367 +type GetTeamListReq struct{
  368 + Token string `json:"token"`
  369 + Store_num int `json:"store_num"`
  370 + Page int `json:"page"`
  371 +}
  372 +
  373 +type GetTeamListDesc struct {
  374 + Items []int `json:"items"`
  375 + Count int `json:"count"`
  376 +}
  377 +
  378 +type GetTeamListResult struct {
  379 + Code int `json:"code"`
  380 + Data GetTeamListDesc `json:"data"`
  381 +}
  382 +
  383 +
  384 +type GetTeamListResp struct {
  385 + Status string `json:"status"`
  386 + Result GetTeamListResult `json:"result"`
  387 +}
  388 +
  389 +type SearchTeamReq struct{
  390 + Token string `json:"token"`
  391 + Name string `json:"name"`
  392 + Store_num int `json:"store_num"`
  393 + Page int `json:"page"`
  394 +}
  395 +
  396 +
  397 +
  398 +
  399 +type SearchTeamResp struct {
  400 + Status string `json:"status"`
  401 + Result GetTeamListResult `json:"result"`
  402 +}
  403 +
311 404  
312 405 //**********************************************************************************************************
313 406  
... ...
src/HttpServer/logic/errordef.go
... ... @@ -18,4 +18,6 @@ const (
18 18 ERROR_TEAMNAMETHSDAME = 13 //修改队伍时名称重复
19 19 ERROR_TEAMALREADYINTEAM = 14 //已经在队伍中无法再加入
20 20 ERROR_TEAMNOTINTEAM = 15 //不在在队伍中无法再推出
  21 + ERROR_GETUSERINFOBYIDFAILED = 16 //通过uid查询玩家数据失败
  22 + ERROR_GETTEAMLISTFAILED = 17 //查询队伍列表失败
21 23 )
22 24 \ No newline at end of file
... ...
src/HttpServer/logic/function.go
... ... @@ -6,7 +6,9 @@ import (
6 6 "common/redis"
7 7 "encoding/json"
8 8 "net/http"
  9 + "sort"
9 10 "strconv"
  11 + "strings"
10 12 "time"
11 13 )
12 14  
... ... @@ -112,6 +114,9 @@ func (tinfo *TeamInfo) DelTeamMember(uuid int) {
112 114 }
113 115 }
114 116  
  117 + //删除team关系
  118 + SaveTeamToUuid(0,uuid)
  119 +
115 120 }
116 121  
117 122 //设置
... ... @@ -284,4 +289,96 @@ func GetTeamByUuid(uuid int) (int,error) {
284 289  
285 290 teamid,err := strconv.Atoi(vv)
286 291 return teamid,err
  292 +}
  293 +
  294 +type TeamSlice []*TeamInfo
  295 +
  296 +func (a TeamSlice) Len() int { // 重写 Len() 方法
  297 + return len(a)
  298 +}
  299 +func (a TeamSlice) Swap(i, j int){ // 重写 Swap() 方法
  300 + a[i], a[j] = a[j], a[i]
  301 +}
  302 +func (a TeamSlice) Less(i, j int) bool { // 重写 Less() 方法, 从大到小排序
  303 + return a[j].BaseInfo.Assets < a[i].BaseInfo.Assets
  304 +}
  305 +
  306 +
  307 +//获取所有的team,分页 传入页签
  308 +func GetTeamListByCond(shopnum int,page int) (TeamSlice,error,int) {
  309 + if page < 0 {
  310 + logger.Error("GetTeamListByCond invalid page=%v",page)
  311 + page = 1
  312 + }
  313 + var rtslice TeamSlice
  314 + vv,err := redishandler.GetRedisClient().HGetAllValues(redis.TEAM_INFO)
  315 + if err != nil {
  316 + logger.Error("GetTeamListByCond err")
  317 + return nil,err,0
  318 + }
  319 +
  320 + for _,val := range vv {
  321 + one := new(TeamInfo)
  322 + bytestr := val.([]byte)
  323 + err = json.Unmarshal(bytestr, one)
  324 + if err == nil {
  325 + if one.BaseInfo.Num <= shopnum {
  326 + rtslice = append(rtslice,one)
  327 + }
  328 + }
  329 + }
  330 + //排序
  331 + sort.Sort(rtslice)
  332 +
  333 + begin := (page-1) * 10
  334 + end := begin + 9
  335 + sumlen := len(rtslice)
  336 + if begin > sumlen{
  337 + begin = sumlen - 10
  338 + }
  339 + if end > sumlen {
  340 + end = sumlen - 1
  341 + }
  342 +
  343 + return rtslice[begin:end],nil,sumlen
  344 +
  345 +}
  346 +
  347 +func GetTeamListByNameCond(shopnum int,page int, name string) (TeamSlice,error,int) {
  348 + if page < 0 {
  349 + logger.Error("GetTeamListByCond invalid page=%v",page)
  350 + page = 1
  351 + }
  352 + var rtslice TeamSlice
  353 + vv,err := redishandler.GetRedisClient().HGetAllValues(redis.TEAM_INFO)
  354 + if err != nil {
  355 + logger.Error("GetTeamListByCond err")
  356 + return nil,err,0
  357 + }
  358 +
  359 + for _,val := range vv {
  360 + one := new(TeamInfo)
  361 + bytestr := val.([]byte)
  362 + err = json.Unmarshal(bytestr, one)
  363 + if err == nil {
  364 + if one.BaseInfo.Num <= shopnum && strings.Index(one.BaseInfo.Name,name) != -1{
  365 + rtslice = append(rtslice,one)
  366 + }
  367 + }
  368 + }
  369 + //排序
  370 + sort.Sort(rtslice)
  371 +
  372 + begin := (page-1) * 10
  373 + end := begin + 9
  374 + sumlen := len(rtslice)
  375 + if begin > sumlen{
  376 + begin = sumlen - 10
  377 + }
  378 + if end > sumlen {
  379 + end = sumlen - 1
  380 + }
  381 +
  382 + return rtslice[begin:end],nil,sumlen
  383 +
287 384 }
288 385 \ No newline at end of file
... ...
src/HttpServer/logic/httpserver.go
... ... @@ -41,12 +41,72 @@ func startServerHttpServe() {
41 41 http.HandleFunc("/catcafe/team/quitTeam", QuitTeam) //被邀请加入队伍
42 42 http.HandleFunc("/catcafe/team/updateTeamBuild", UpdateTeamBuild) //升级队伍建筑等级
43 43 http.HandleFunc("/catcafe/team/addTeamBuff", AddTeamBuff) //添加BUFF时间
  44 + http.HandleFunc("/catcafe/team/getTeamBuff", GetTeamBuff) //获取BUFF时间
  45 + http.HandleFunc("/catcafe/team/getTeamData", GetTeamData) //获取玩家队伍信息
  46 + http.HandleFunc("/catcafe/team/getDataByUserId", GetDataByUserId) //获取队伍成员的详细数据
  47 + http.HandleFunc("/catcafe/team/getTeamList", GetTeamList) //查询队伍列表
  48 + http.HandleFunc("/catcafe/team/searchTeam", SearchTeam) //根据名称搜索队伍
44 49  
45 50  
46 51 err := http.ListenAndServe(conf.GetServerHttpAddrConf(), nil)
47 52 CheckErr(err)
48 53 }
49 54  
  55 +func SearchTeam(w http.ResponseWriter, r *http.Request) {
  56 +
  57 + result, _ := ioutil.ReadAll(r.Body)
  58 + r.Body.Close()
  59 +
  60 + s := string(result)
  61 + logger.Info("SearchTeam , body:%v,uuid=%v", s)
  62 +
  63 + HandleSearchTeam(w,s)
  64 +}
  65 +
  66 +func GetTeamList(w http.ResponseWriter, r *http.Request) {
  67 +
  68 + result, _ := ioutil.ReadAll(r.Body)
  69 + r.Body.Close()
  70 +
  71 + s := string(result)
  72 + logger.Info("GetTeamList , body:%v,uuid=%v", s)
  73 +
  74 + HandleGetTeamList(w,s)
  75 +}
  76 +
  77 +func GetDataByUserId(w http.ResponseWriter, r *http.Request) {
  78 +
  79 + result, _ := ioutil.ReadAll(r.Body)
  80 + r.Body.Close()
  81 +
  82 + s := string(result)
  83 + logger.Info("GetDataByUserId , body:%v,uuid=%v", s)
  84 +
  85 + HandleGetDataByUserId(w,s)
  86 +}
  87 +
  88 +func GetTeamData(w http.ResponseWriter, r *http.Request) {
  89 +
  90 + result, _ := ioutil.ReadAll(r.Body)
  91 + r.Body.Close()
  92 +
  93 + s := string(result)
  94 + logger.Info("GetTeamData , body:%v,uuid=%v", s)
  95 +
  96 + HandleGetTeamData(w,s)
  97 +}
  98 +
  99 +func GetTeamBuff(w http.ResponseWriter, r *http.Request) {
  100 +
  101 + result, _ := ioutil.ReadAll(r.Body)
  102 + r.Body.Close()
  103 +
  104 + s := string(result)
  105 + logger.Info("GetTeamBuff , body:%v,uuid=%v", s)
  106 +
  107 + HandleGetTeamBuff(w,s)
  108 +}
  109 +
50 110  
51 111 func AddTeamBuff(w http.ResponseWriter, r *http.Request) {
52 112  
... ...
src/HttpServer/logic/logic.go
... ... @@ -262,10 +262,10 @@ func HandlesaveData(w http.ResponseWriter, data string) {
262 262  
263 263 func HandlegetData(w http.ResponseWriter, data string) {
264 264 SetHeader(w)
265   - var resp SaveDataResp
  265 + var resp GetDataResp
266 266 resp.Status = "true"
267 267 resp.Result.Code = ERROR_OK
268   - var rdata SaveDataReq
  268 + var rdata GetDataReq
269 269 err := json.Unmarshal([]byte(data), &rdata)
270 270 for {
271 271 if err != nil {
... ... @@ -290,7 +290,7 @@ func HandlegetData(w http.ResponseWriter, data string) {
290 290 break
291 291 }
292 292  
293   - resp.Result.Data = ubase
  293 + resp.Result.Data.Base_data = ubase
294 294 resp.Result.Code = ERROR_OK
295 295 break
296 296 }
... ... @@ -614,6 +614,8 @@ func HandleJoinTeam(w http.ResponseWriter, data string) {
614 614  
615 615 tinfo.MemInfo.MemList = append(tinfo.MemInfo.MemList,uuid)
616 616  
  617 + //保存队伍与uuid
  618 + SaveTeamToUuid(tinfo.BaseInfo.Id,uuid)
617 619 //保存队伍数据
618 620 SaveTeamInfo(tinfo.BaseInfo.Id,tinfo)
619 621  
... ... @@ -677,6 +679,9 @@ func HandleJoinTeamByInvite(w http.ResponseWriter, data string) {
677 679  
678 680 tinfo.MemInfo.MemList = append(tinfo.MemInfo.MemList,uuid)
679 681  
  682 +
  683 + //保存队伍与uuid
  684 + SaveTeamToUuid(tinfo.BaseInfo.Id,uuid)
680 685 //保存队伍数据
681 686 SaveTeamInfo(tinfo.BaseInfo.Id,tinfo)
682 687  
... ... @@ -885,4 +890,255 @@ func HandleAddTeamBuff(w http.ResponseWriter, data string) {
885 890 //回包
886 891 respstr, _ := json.Marshal(&resp)
887 892 fmt.Fprint(w, string(respstr))
  893 +}
  894 +
  895 +func HandleGetTeamBuff(w http.ResponseWriter, data string) {
  896 + SetHeader(w)
  897 + var resp GetTeamBuffResp
  898 + resp.Status = "true"
  899 + resp.Result.Code = ERROR_OK
  900 + var rdata GetTeamBuffReq
  901 + err := json.Unmarshal([]byte(data), &rdata)
  902 + for {
  903 + if err != nil {
  904 + logger.Error("HandleGetTeamBuff json unmarshal failed=%v", err)
  905 + resp.Result.Code = ERROR_JSONUNMASHFAILED
  906 + break
  907 + }
  908 +
  909 + uuid,err := GetTouristUid(rdata.Token)
  910 + if err != nil || uuid==0{
  911 + logger.Error("HandleGetTeamBuff GetTouristUid failed=%v", err)
  912 + resp.Result.Code = ERROR_GETUSERIDFAILED
  913 + break
  914 + }
  915 +
  916 + teamid,err := GetTeamByUuid(uuid)
  917 + if err != nil {
  918 + logger.Error("HandleGetTeamBuff GetTeamInfoFailed failed=%v", err)
  919 + resp.Result.Code = ERROR_GETTEAMINFO_FAILED
  920 + break
  921 + }
  922 + tinfo ,err := GetTeamInfo(teamid)
  923 + if err != nil {
  924 + logger.Error("HandleGetTeamBuff GetTeamInfoFailed failed=%v", err)
  925 + resp.Result.Code = ERROR_GETTEAMINFO_FAILED
  926 + break
  927 + }
  928 +
  929 +
  930 + //处理buff
  931 + for _,vak := range tinfo.BInfo.Buff {
  932 + var tmp AddTeamBuffSpec
  933 + tmp.Build_type = vak.Type
  934 + for _,val1 := range vak.BuffInfo {
  935 + var tmp1 BuffTimeInfo
  936 + tmp1.Buff_begin_time = val1.BeginTime
  937 + tmp1.Buff_end_time = val1.EndTime
  938 + tmp.Buff_time = append(tmp.Buff_time,tmp1)
  939 + }
  940 + resp.Result.Data.Build_list = append(resp.Result.Data.Build_list,tmp)
  941 + }
  942 +
  943 + resp.Result.Code = ERROR_OK
  944 + break
  945 + }
  946 +
  947 + //回包
  948 + respstr, _ := json.Marshal(&resp)
  949 + fmt.Fprint(w, string(respstr))
  950 +}
  951 +
  952 +func HandleGetTeamData(w http.ResponseWriter, data string) {
  953 + SetHeader(w)
  954 + var resp GetTeamDataResp
  955 + resp.Status = "true"
  956 + resp.Result.Code = ERROR_OK
  957 + var rdata GetTeamDataReq
  958 + err := json.Unmarshal([]byte(data), &rdata)
  959 + for {
  960 + if err != nil {
  961 + logger.Error("HandleGetTeamData json unmarshal failed=%v", err)
  962 + resp.Result.Code = ERROR_JSONUNMASHFAILED
  963 + break
  964 + }
  965 +
  966 + uuid,err := GetTouristUid(rdata.Token)
  967 + if err != nil || uuid==0{
  968 + logger.Error("HandleGetTeamData GetTouristUid failed=%v", err)
  969 + resp.Result.Code = ERROR_GETUSERIDFAILED
  970 + break
  971 + }
  972 +
  973 + teamid,err := GetTeamByUuid(uuid)
  974 + if err != nil {
  975 + logger.Error("HandleGetTeamData GetTeamInfoFailed failed=%v", err)
  976 + resp.Result.Code = ERROR_GETTEAMINFO_FAILED
  977 + break
  978 + }
  979 + tinfo ,err := GetTeamInfo(teamid)
  980 + if err != nil {
  981 + logger.Error("HandleGetTeamData GetTeamInfoFailed failed=%v", err)
  982 + resp.Result.Code = ERROR_GETTEAMINFO_FAILED
  983 + break
  984 + }
  985 +
  986 + resp.Result.Data.Team_data = tinfo.BaseInfo
  987 + for _,val := range tinfo.MemInfo.MemList {
  988 + var tmp GetTeamDataTeamUserList
  989 + tmp.Uuid = val
  990 + resp.Result.Data.Team_user_list = append(resp.Result.Data.Team_user_list,tmp)
  991 + }
  992 + for _,val := range tinfo.BInfo.Devote {
  993 + var tmp TeamDevoteInfo
  994 + tmp = val
  995 + resp.Result.Data.Build_list.Build_list = append(resp.Result.Data.Build_list.Build_list,tmp)
  996 + }
  997 +
  998 + resp.Result.Code = ERROR_OK
  999 + break
  1000 + }
  1001 +
  1002 + //回包
  1003 + respstr, _ := json.Marshal(&resp)
  1004 + fmt.Fprint(w, string(respstr))
  1005 +}
  1006 +
  1007 +
  1008 +func HandleGetDataByUserId(w http.ResponseWriter, data string) {
  1009 + SetHeader(w)
  1010 + var resp GetDataByUserIdResp
  1011 + resp.Status = "true"
  1012 + resp.Result.Code = ERROR_OK
  1013 + var rdata GetDataByUserIdReq
  1014 + err := json.Unmarshal([]byte(data), &rdata)
  1015 + for {
  1016 + if err != nil {
  1017 + logger.Error("HandleGetDataByUserId json unmarshal failed=%v", err)
  1018 + resp.Result.Code = ERROR_JSONUNMASHFAILED
  1019 + break
  1020 + }
  1021 +
  1022 + uuid,err := GetTouristUid(rdata.Token)
  1023 + if err != nil || uuid==0{
  1024 + logger.Error("HandleGetDataByUserId GetTouristUid failed=%v", err)
  1025 + resp.Result.Code = ERROR_GETUSERIDFAILED
  1026 + break
  1027 + }
  1028 +
  1029 + basic,err := GetUserBasic(rdata.User_id)
  1030 + if err != nil {
  1031 + logger.Error("HandleGetDataByUserId GetUserBasic failed=%v", err)
  1032 + resp.Result.Code = ERROR_GETUSERINFOBYIDFAILED
  1033 + break
  1034 + }
  1035 + base,err := GetUserBaseData(rdata.User_id)
  1036 + if err != nil {
  1037 + logger.Error("HandleGetDataByUserId GetUserBase failed=%v", err)
  1038 + resp.Result.Code = ERROR_GETUSERINFOBYIDFAILED
  1039 + break
  1040 + }
  1041 + ext,err := GetUserExt(rdata.User_id)
  1042 + if err != nil {
  1043 + logger.Error("HandleGetDataByUserId GetUserExt failed=%v", err)
  1044 + resp.Result.Code = ERROR_GETUSERINFOBYIDFAILED
  1045 + break
  1046 + }
  1047 +
  1048 + resp.Result.Data.Base_data = base
  1049 + resp.Result.Data.User_base_data = *basic
  1050 + resp.Result.Data.Extdata = *ext
  1051 +
  1052 + resp.Result.Code = ERROR_OK
  1053 + break
  1054 + }
  1055 +
  1056 + //回包
  1057 + respstr, _ := json.Marshal(&resp)
  1058 + fmt.Fprint(w, string(respstr))
  1059 +}
  1060 +
  1061 +
  1062 +func HandleGetTeamList(w http.ResponseWriter, data string) {
  1063 + SetHeader(w)
  1064 + var resp GetTeamListResp
  1065 + resp.Status = "true"
  1066 + resp.Result.Code = ERROR_OK
  1067 + var rdata GetTeamListReq
  1068 + err := json.Unmarshal([]byte(data), &rdata)
  1069 + for {
  1070 + if err != nil {
  1071 + logger.Error("HandleGetTeamList json unmarshal failed=%v", err)
  1072 + resp.Result.Code = ERROR_JSONUNMASHFAILED
  1073 + break
  1074 + }
  1075 +
  1076 + uuid,err := GetTouristUid(rdata.Token)
  1077 + if err != nil || uuid==0{
  1078 + logger.Error("HandleGetTeamList GetTouristUid failed=%v", err)
  1079 + resp.Result.Code = ERROR_GETUSERIDFAILED
  1080 + break
  1081 + }
  1082 +
  1083 + teams,err,sum := GetTeamListByCond(rdata.Store_num,rdata.Page)
  1084 + if err != nil {
  1085 + logger.Error("HandleGetTeamList GetTeamListByCond failed=%v", err)
  1086 + resp.Result.Code = ERROR_GETTEAMLISTFAILED
  1087 + break
  1088 + }
  1089 +
  1090 + resp.Result.Data.Count = sum
  1091 + for _,val := range teams {
  1092 + resp.Result.Data.Items = append(resp.Result.Data.Items,val.BaseInfo.Id)
  1093 + }
  1094 +
  1095 + resp.Result.Code = ERROR_OK
  1096 + break
  1097 + }
  1098 +
  1099 + //回包
  1100 + respstr, _ := json.Marshal(&resp)
  1101 + fmt.Fprint(w, string(respstr))
  1102 +}
  1103 +
  1104 +func HandleSearchTeam(w http.ResponseWriter, data string) {
  1105 + SetHeader(w)
  1106 + var resp SearchTeamResp
  1107 + resp.Status = "true"
  1108 + resp.Result.Code = ERROR_OK
  1109 + var rdata SearchTeamReq
  1110 + err := json.Unmarshal([]byte(data), &rdata)
  1111 + for {
  1112 + if err != nil {
  1113 + logger.Error("HandleSearchTeam json unmarshal failed=%v", err)
  1114 + resp.Result.Code = ERROR_JSONUNMASHFAILED
  1115 + break
  1116 + }
  1117 +
  1118 + uuid,err := GetTouristUid(rdata.Token)
  1119 + if err != nil || uuid==0{
  1120 + logger.Error("HandleSearchTeam GetTouristUid failed=%v", err)
  1121 + resp.Result.Code = ERROR_GETUSERIDFAILED
  1122 + break
  1123 + }
  1124 +
  1125 + teams,err,sum := GetTeamListByNameCond(rdata.Store_num,rdata.Page,rdata.Name)
  1126 + if err != nil {
  1127 + logger.Error("HandleSearchTeam GetTeamListByCond failed=%v", err)
  1128 + resp.Result.Code = ERROR_GETTEAMLISTFAILED
  1129 + break
  1130 + }
  1131 +
  1132 + resp.Result.Data.Count = sum
  1133 + for _,val := range teams {
  1134 + resp.Result.Data.Items = append(resp.Result.Data.Items,val.BaseInfo.Id)
  1135 + }
  1136 +
  1137 + resp.Result.Code = ERROR_OK
  1138 + break
  1139 + }
  1140 +
  1141 + //回包
  1142 + respstr, _ := json.Marshal(&resp)
  1143 + fmt.Fprint(w, string(respstr))
888 1144 }
889 1145 \ No newline at end of file
... ...