Commit 3e2ecbe749fdf6a5b44f5768055442d83fe27351
1 parent
328b6d0f
Exists in
master
加入退出队伍相关接口
Showing
5 changed files
with
333 additions
and
14 deletions
Show diff stats
src/HttpServer/logic/datadef.go
| @@ -157,6 +157,16 @@ type CreateTeamReq struct{ | @@ -157,6 +157,16 @@ type CreateTeamReq struct{ | ||
| 157 | Limit int `json:"limit"` | 157 | Limit int `json:"limit"` |
| 158 | } | 158 | } |
| 159 | 159 | ||
| 160 | +//队伍列表人员id | ||
| 161 | +type TeamMemInfo struct { | ||
| 162 | + MemList []int | ||
| 163 | +} | ||
| 164 | + | ||
| 165 | +//队伍建筑信息 | ||
| 166 | +type TeamBuildingInfo struct { | ||
| 167 | + | ||
| 168 | +} | ||
| 169 | + | ||
| 160 | type CreateTeamInfo struct { | 170 | type CreateTeamInfo struct { |
| 161 | Id int `json:"id"` | 171 | Id int `json:"id"` |
| 162 | Name string `json:"name"` | 172 | Name string `json:"name"` |
| @@ -169,8 +179,15 @@ type CreateTeamInfo struct { | @@ -169,8 +179,15 @@ type CreateTeamInfo struct { | ||
| 169 | Status int `json:"status"` | 179 | Status int `json:"status"` |
| 170 | Create_time int `json:"create_time"` | 180 | Create_time int `json:"create_time"` |
| 171 | Update_time int `json:"update_time"` | 181 | Update_time int `json:"update_time"` |
| 182 | +} | ||
| 172 | 183 | ||
| 184 | +//队伍信息 | ||
| 185 | +type TeamInfo struct { | ||
| 186 | + BaseInfo CreateTeamInfo | ||
| 187 | + MemInfo TeamMemInfo | ||
| 188 | + BInfo TeamBuildingInfo | ||
| 173 | } | 189 | } |
| 190 | + | ||
| 174 | type CreateTeamDesc struct { | 191 | type CreateTeamDesc struct { |
| 175 | Team_data CreateTeamInfo `json:"team_data"` | 192 | Team_data CreateTeamInfo `json:"team_data"` |
| 176 | } | 193 | } |
| @@ -186,6 +203,39 @@ type CreateTeamResp struct { | @@ -186,6 +203,39 @@ type CreateTeamResp struct { | ||
| 186 | } | 203 | } |
| 187 | 204 | ||
| 188 | 205 | ||
| 206 | +type JoinTeamReq struct{ | ||
| 207 | + Token string `json:"token"` | ||
| 208 | + Team_id int `json:"team_id"` | ||
| 209 | +} | ||
| 210 | + | ||
| 211 | +type JoinTeamResp struct { | ||
| 212 | + Status string `json:"status"` | ||
| 213 | + Result CommonResult `json:"result"` | ||
| 214 | +} | ||
| 215 | + | ||
| 216 | + | ||
| 217 | +type JoinTeamByInviteReq struct{ | ||
| 218 | + Token string `json:"token"` | ||
| 219 | + Inviter_id int `json:"inviter_id"` | ||
| 220 | +} | ||
| 221 | + | ||
| 222 | +type JoinTeamByInviteResp struct { | ||
| 223 | + Status string `json:"status"` | ||
| 224 | + Result CommonResult `json:"result"` | ||
| 225 | +} | ||
| 226 | + | ||
| 227 | +type QuitTeamReq struct{ | ||
| 228 | + Token string `json:"token"` | ||
| 229 | + User_id int `json:"user_id"` | ||
| 230 | + Type int `json:"type"` | ||
| 231 | +} | ||
| 232 | + | ||
| 233 | +type QuitTeamResp struct { | ||
| 234 | + Status string `json:"status"` | ||
| 235 | + Result CommonResult `json:"result"` | ||
| 236 | +} | ||
| 237 | + | ||
| 238 | + | ||
| 189 | //********************************************************************************************************** | 239 | //********************************************************************************************************** |
| 190 | 240 | ||
| 191 | 241 |
src/HttpServer/logic/errordef.go
| @@ -16,4 +16,6 @@ const ( | @@ -16,4 +16,6 @@ const ( | ||
| 16 | ERROR_GETTEAMINFO_FAILED = 11 //查询队伍信息失败 | 16 | ERROR_GETTEAMINFO_FAILED = 11 //查询队伍信息失败 |
| 17 | ERROR_NOTCAPTION = 12 //不是队长无法修改队伍信息 | 17 | ERROR_NOTCAPTION = 12 //不是队长无法修改队伍信息 |
| 18 | ERROR_TEAMNAMETHSDAME = 13 //修改队伍时名称重复 | 18 | ERROR_TEAMNAMETHSDAME = 13 //修改队伍时名称重复 |
| 19 | + ERROR_TEAMALREADYINTEAM = 14 //已经在队伍中无法再加入 | ||
| 20 | + ERROR_TEAMNOTINTEAM = 15 //不在在队伍中无法再推出 | ||
| 19 | ) | 21 | ) |
| 20 | \ No newline at end of file | 22 | \ No newline at end of file |
src/HttpServer/logic/function.go
| @@ -15,6 +15,28 @@ func SetHeader(w http.ResponseWriter) { | @@ -15,6 +15,28 @@ func SetHeader(w http.ResponseWriter) { | ||
| 15 | w.Header().Set("Access-Control-Allow-Headers", "Content-Type,Uuid") | 15 | w.Header().Set("Access-Control-Allow-Headers", "Content-Type,Uuid") |
| 16 | } | 16 | } |
| 17 | 17 | ||
| 18 | +func (tinfo *TeamInfo) IsInTeam(uuid int) bool { | ||
| 19 | + inteam := false | ||
| 20 | + for _,val := range tinfo.MemInfo.MemList { | ||
| 21 | + if val == uuid { | ||
| 22 | + inteam = true | ||
| 23 | + break | ||
| 24 | + } | ||
| 25 | + } | ||
| 26 | + return inteam | ||
| 27 | +} | ||
| 28 | + | ||
| 29 | +func (tinfo *TeamInfo) DelTeamMember(uuid int) { | ||
| 30 | + | ||
| 31 | + for k,val := range tinfo.MemInfo.MemList { | ||
| 32 | + if val == uuid { | ||
| 33 | + tinfo.MemInfo.MemList = append(tinfo.MemInfo.MemList[:k],tinfo.MemInfo.MemList[k+1:]...) | ||
| 34 | + break | ||
| 35 | + } | ||
| 36 | + } | ||
| 37 | + | ||
| 38 | +} | ||
| 39 | + | ||
| 18 | //设置 | 40 | //设置 |
| 19 | func SetTouristUid(utoken string,uid int) error{ | 41 | func SetTouristUid(utoken string,uid int) error{ |
| 20 | err := redishandler.GetRedisClient().HSet(redis.USER_TOURIST_UID, utoken,strconv.Itoa(uid)) | 42 | err := redishandler.GetRedisClient().HSet(redis.USER_TOURIST_UID, utoken,strconv.Itoa(uid)) |
| @@ -142,7 +164,7 @@ func SetUserTeamName(name string,teamid int) { | @@ -142,7 +164,7 @@ func SetUserTeamName(name string,teamid int) { | ||
| 142 | } | 164 | } |
| 143 | 165 | ||
| 144 | //保存队伍信息 | 166 | //保存队伍信息 |
| 145 | -func SaveTeamInfo(teamid int,tinfo *CreateTeamInfo) error { | 167 | +func SaveTeamInfo(teamid int,tinfo *TeamInfo) error { |
| 146 | team,_ := json.Marshal(tinfo) | 168 | team,_ := json.Marshal(tinfo) |
| 147 | err := redishandler.GetRedisClient().HSet(redis.TEAM_INFO, strconv.Itoa(teamid), string(team)) | 169 | err := redishandler.GetRedisClient().HSet(redis.TEAM_INFO, strconv.Itoa(teamid), string(team)) |
| 148 | if err != nil { | 170 | if err != nil { |
| @@ -153,8 +175,8 @@ func SaveTeamInfo(teamid int,tinfo *CreateTeamInfo) error { | @@ -153,8 +175,8 @@ func SaveTeamInfo(teamid int,tinfo *CreateTeamInfo) error { | ||
| 153 | } | 175 | } |
| 154 | 176 | ||
| 155 | //获取队伍信息 | 177 | //获取队伍信息 |
| 156 | -func GetTeamInfo(teamid int) (*CreateTeamInfo,error) { | ||
| 157 | - info := new(CreateTeamInfo) | 178 | +func GetTeamInfo(teamid int) (*TeamInfo,error) { |
| 179 | + info := new(TeamInfo) | ||
| 158 | vv,err := redishandler.GetRedisClient().HGet(redis.TEAM_INFO,strconv.Itoa(teamid)) | 180 | vv,err := redishandler.GetRedisClient().HGet(redis.TEAM_INFO,strconv.Itoa(teamid)) |
| 159 | if err != nil { | 181 | if err != nil { |
| 160 | logger.Error("GetTeamInfo failed,err=%v",err) | 182 | logger.Error("GetTeamInfo failed,err=%v",err) |
src/HttpServer/logic/httpserver.go
| @@ -36,12 +36,48 @@ func startServerHttpServe() { | @@ -36,12 +36,48 @@ func startServerHttpServe() { | ||
| 36 | http.HandleFunc("/catcafe/team/textCheck", TextCheck) //敏感词检测 | 36 | http.HandleFunc("/catcafe/team/textCheck", TextCheck) //敏感词检测 |
| 37 | http.HandleFunc("/catcafe/team/createTeam", CreateTeam) //创建队伍 | 37 | http.HandleFunc("/catcafe/team/createTeam", CreateTeam) //创建队伍 |
| 38 | http.HandleFunc("/catcafe/team/updateTeamData", UpdateTeamData) //修改队伍信息 | 38 | http.HandleFunc("/catcafe/team/updateTeamData", UpdateTeamData) //修改队伍信息 |
| 39 | + http.HandleFunc("/catcafe/team/joinTeam", JoinTeam) //主动加入队伍 | ||
| 40 | + http.HandleFunc("/catcafe/team/joinTeamByInvite", JoinTeamByInvite) //被邀请加入队伍 | ||
| 41 | + http.HandleFunc("/catcafe/team/quitTeam", QuitTeam) //被邀请加入队伍 | ||
| 39 | 42 | ||
| 40 | 43 | ||
| 41 | err := http.ListenAndServe(conf.GetServerHttpAddrConf(), nil) | 44 | err := http.ListenAndServe(conf.GetServerHttpAddrConf(), nil) |
| 42 | CheckErr(err) | 45 | CheckErr(err) |
| 43 | } | 46 | } |
| 44 | 47 | ||
| 48 | +func QuitTeam(w http.ResponseWriter, r *http.Request) { | ||
| 49 | + | ||
| 50 | + result, _ := ioutil.ReadAll(r.Body) | ||
| 51 | + r.Body.Close() | ||
| 52 | + | ||
| 53 | + s := string(result) | ||
| 54 | + logger.Info("QuitTeam , body:%v,uuid=%v", s) | ||
| 55 | + | ||
| 56 | + HandleQuitTeam(w,s) | ||
| 57 | +} | ||
| 58 | + | ||
| 59 | +func JoinTeamByInvite(w http.ResponseWriter, r *http.Request) { | ||
| 60 | + | ||
| 61 | + result, _ := ioutil.ReadAll(r.Body) | ||
| 62 | + r.Body.Close() | ||
| 63 | + | ||
| 64 | + s := string(result) | ||
| 65 | + logger.Info("JoinTeamByInvite , body:%v,uuid=%v", s) | ||
| 66 | + | ||
| 67 | + HandleJoinTeamByInvite(w,s) | ||
| 68 | +} | ||
| 69 | + | ||
| 70 | +func JoinTeam(w http.ResponseWriter, r *http.Request) { | ||
| 71 | + | ||
| 72 | + result, _ := ioutil.ReadAll(r.Body) | ||
| 73 | + r.Body.Close() | ||
| 74 | + | ||
| 75 | + s := string(result) | ||
| 76 | + logger.Info("JoinTeam , body:%v,uuid=%v", s) | ||
| 77 | + | ||
| 78 | + HandleJoinTeam(w,s) | ||
| 79 | +} | ||
| 80 | + | ||
| 45 | func UpdateTeamData(w http.ResponseWriter, r *http.Request) { | 81 | func UpdateTeamData(w http.ResponseWriter, r *http.Request) { |
| 46 | 82 | ||
| 47 | result, _ := ioutil.ReadAll(r.Body) | 83 | result, _ := ioutil.ReadAll(r.Body) |
src/HttpServer/logic/logic.go
| @@ -446,6 +446,8 @@ func HandleCreateTeam(w http.ResponseWriter, data string) { | @@ -446,6 +446,8 @@ func HandleCreateTeam(w http.ResponseWriter, data string) { | ||
| 446 | }*/ | 446 | }*/ |
| 447 | 447 | ||
| 448 | //初始化队伍数据 | 448 | //初始化队伍数据 |
| 449 | + var bteaminfo TeamInfo | ||
| 450 | + bteaminfo.MemInfo.MemList = append(bteaminfo.MemInfo.MemList,uuid) | ||
| 449 | var teaminfo CreateTeamInfo | 451 | var teaminfo CreateTeamInfo |
| 450 | teaminfo.Name = rdata.Name | 452 | teaminfo.Name = rdata.Name |
| 451 | teaminfo.Status = 0 | 453 | teaminfo.Status = 0 |
| @@ -459,9 +461,9 @@ func HandleCreateTeam(w http.ResponseWriter, data string) { | @@ -459,9 +461,9 @@ func HandleCreateTeam(w http.ResponseWriter, data string) { | ||
| 459 | teaminfo.Num = 1 | 461 | teaminfo.Num = 1 |
| 460 | teaminfo.Update_time = int(time.Now().Unix()) | 462 | teaminfo.Update_time = int(time.Now().Unix()) |
| 461 | resp.Result.Data.Team_data = teaminfo | 463 | resp.Result.Data.Team_data = teaminfo |
| 462 | - | 464 | + bteaminfo.BaseInfo = teaminfo |
| 463 | //保存队伍数据 | 465 | //保存队伍数据 |
| 464 | - SaveTeamInfo(teaminfo.Id,&teaminfo) | 466 | + SaveTeamInfo(teaminfo.Id,&bteaminfo) |
| 465 | 467 | ||
| 466 | //保存队伍id | 468 | //保存队伍id |
| 467 | SaveTeamToUuid(teaminfo.Id,uuid) | 469 | SaveTeamToUuid(teaminfo.Id,uuid) |
| @@ -523,29 +525,29 @@ func HandleUpdateTeamData(w http.ResponseWriter, data string) { | @@ -523,29 +525,29 @@ func HandleUpdateTeamData(w http.ResponseWriter, data string) { | ||
| 523 | break | 525 | break |
| 524 | } | 526 | } |
| 525 | 527 | ||
| 526 | - if teaminfo.Captain_id != uuid { | 528 | + if teaminfo.BaseInfo.Creator_id != uuid { |
| 527 | logger.Error("HandleUpdateTeamData notcaption failed=%v", err) | 529 | logger.Error("HandleUpdateTeamData notcaption failed=%v", err) |
| 528 | resp.Result.Code = ERROR_NOTCAPTION | 530 | resp.Result.Code = ERROR_NOTCAPTION |
| 529 | break | 531 | break |
| 530 | } | 532 | } |
| 531 | - if teaminfo.Name == rdata.Name { | 533 | + if teaminfo.BaseInfo.Name == rdata.Name { |
| 532 | logger.Error("HandleUpdateTeamData namesame failed=%v", err) | 534 | logger.Error("HandleUpdateTeamData namesame failed=%v", err) |
| 533 | resp.Result.Code = ERROR_TEAMNAMETHSDAME | 535 | resp.Result.Code = ERROR_TEAMNAMETHSDAME |
| 534 | break | 536 | break |
| 535 | } | 537 | } |
| 536 | 538 | ||
| 537 | - orinname := teaminfo.Name | ||
| 538 | - teaminfo.Name = rdata.Name | ||
| 539 | - teaminfo.Is_open = rdata.Is_open | ||
| 540 | - teaminfo.Least = rdata.Limit | ||
| 541 | - teaminfo.Update_time = int(time.Now().Unix()) | 539 | + orinname := teaminfo.BaseInfo.Name |
| 540 | + teaminfo.BaseInfo.Name = rdata.Name | ||
| 541 | + teaminfo.BaseInfo.Is_open = rdata.Is_open | ||
| 542 | + teaminfo.BaseInfo.Least = rdata.Limit | ||
| 543 | + teaminfo.BaseInfo.Update_time = int(time.Now().Unix()) | ||
| 542 | 544 | ||
| 543 | //保存队伍数据 | 545 | //保存队伍数据 |
| 544 | - SaveTeamInfo(teaminfo.Id,teaminfo) | 546 | + SaveTeamInfo(teaminfo.BaseInfo.Id,teaminfo) |
| 545 | 547 | ||
| 546 | DelUserTeamName(orinname) | 548 | DelUserTeamName(orinname) |
| 547 | //保存队伍名称 | 549 | //保存队伍名称 |
| 548 | - SetUserTeamName(rdata.Name,teaminfo.Id) | 550 | + SetUserTeamName(rdata.Name,teaminfo.BaseInfo.Id) |
| 549 | 551 | ||
| 550 | resp.Result.Code = ERROR_OK | 552 | resp.Result.Code = ERROR_OK |
| 551 | break | 553 | break |
| @@ -555,3 +557,210 @@ func HandleUpdateTeamData(w http.ResponseWriter, data string) { | @@ -555,3 +557,210 @@ func HandleUpdateTeamData(w http.ResponseWriter, data string) { | ||
| 555 | respstr, _ := json.Marshal(&resp) | 557 | respstr, _ := json.Marshal(&resp) |
| 556 | fmt.Fprint(w, string(respstr)) | 558 | fmt.Fprint(w, string(respstr)) |
| 557 | } | 559 | } |
| 560 | + | ||
| 561 | + | ||
| 562 | +func HandleJoinTeam(w http.ResponseWriter, data string) { | ||
| 563 | + SetHeader(w) | ||
| 564 | + var resp JoinTeamResp | ||
| 565 | + resp.Status = "true" | ||
| 566 | + resp.Result.Code = ERROR_OK | ||
| 567 | + var rdata JoinTeamReq | ||
| 568 | + err := json.Unmarshal([]byte(data), &rdata) | ||
| 569 | + for { | ||
| 570 | + if err != nil { | ||
| 571 | + logger.Error("HandleJoinTeam json unmarshal failed=%v", err) | ||
| 572 | + resp.Result.Code = ERROR_JSONUNMASHFAILED | ||
| 573 | + break | ||
| 574 | + } | ||
| 575 | + | ||
| 576 | + uuid,err := GetTouristUid(rdata.Token) | ||
| 577 | + if err != nil || uuid==0{ | ||
| 578 | + logger.Error("HandleJoinTeam GetTouristUid failed=%v", err) | ||
| 579 | + resp.Result.Code = ERROR_GETUSERIDFAILED | ||
| 580 | + break | ||
| 581 | + } | ||
| 582 | + | ||
| 583 | + //获取店铺数据 | ||
| 584 | + tinfo,err := GetTeamInfo(rdata.Team_id) | ||
| 585 | + if err != nil { | ||
| 586 | + logger.Error("HandleJoinTeam GetTeamInfoFailed failed=%v", err) | ||
| 587 | + resp.Result.Code = ERROR_GETTEAMINFO_FAILED | ||
| 588 | + break | ||
| 589 | + } | ||
| 590 | + | ||
| 591 | + //判断店铺数量 | ||
| 592 | + vv := m_userInfo.Get(uint32(uuid)) | ||
| 593 | + if vv == nil { | ||
| 594 | + logger.Error("HandleJoinTeam failed=%v", err) | ||
| 595 | + resp.Result.Code = ERROR_GETUSERMAPBYUIDFAILED | ||
| 596 | + break | ||
| 597 | + } | ||
| 598 | + | ||
| 599 | + uinfo := vv.(*UserData) | ||
| 600 | + if uinfo.Shopnum < tinfo.BaseInfo.Least { | ||
| 601 | + logger.Error("HandleJoinTeam failed=%v", err) | ||
| 602 | + resp.Result.Code = ERROR_CREATE_SHOPNOTENOUGH | ||
| 603 | + break | ||
| 604 | + } | ||
| 605 | + | ||
| 606 | + //判断一下是否已经在队伍中 | ||
| 607 | + inteam := tinfo.IsInTeam(uuid) | ||
| 608 | + | ||
| 609 | + if inteam { | ||
| 610 | + logger.Error("HandleJoinTeam already inteam failed=%v", err) | ||
| 611 | + resp.Result.Code = ERROR_TEAMALREADYINTEAM | ||
| 612 | + break | ||
| 613 | + } | ||
| 614 | + | ||
| 615 | + tinfo.MemInfo.MemList = append(tinfo.MemInfo.MemList,uuid) | ||
| 616 | + | ||
| 617 | + //保存队伍数据 | ||
| 618 | + SaveTeamInfo(tinfo.BaseInfo.Id,tinfo) | ||
| 619 | + | ||
| 620 | + | ||
| 621 | + resp.Result.Code = ERROR_OK | ||
| 622 | + resp.Result.Data = "" | ||
| 623 | + break | ||
| 624 | + } | ||
| 625 | + | ||
| 626 | + //回包 | ||
| 627 | + respstr, _ := json.Marshal(&resp) | ||
| 628 | + fmt.Fprint(w, string(respstr)) | ||
| 629 | +} | ||
| 630 | + | ||
| 631 | + | ||
| 632 | +func HandleJoinTeamByInvite(w http.ResponseWriter, data string) { | ||
| 633 | + SetHeader(w) | ||
| 634 | + var resp JoinTeamByInviteResp | ||
| 635 | + resp.Status = "true" | ||
| 636 | + resp.Result.Code = ERROR_OK | ||
| 637 | + var rdata JoinTeamByInviteReq | ||
| 638 | + err := json.Unmarshal([]byte(data), &rdata) | ||
| 639 | + for { | ||
| 640 | + if err != nil { | ||
| 641 | + logger.Error("HandleJoinTeamByInvite json unmarshal failed=%v", err) | ||
| 642 | + resp.Result.Code = ERROR_JSONUNMASHFAILED | ||
| 643 | + break | ||
| 644 | + } | ||
| 645 | + | ||
| 646 | + uuid,err := GetTouristUid(rdata.Token) | ||
| 647 | + if err != nil || uuid==0{ | ||
| 648 | + logger.Error("HandleJoinTeamByInvite GetTouristUid failed=%v", err) | ||
| 649 | + resp.Result.Code = ERROR_GETUSERIDFAILED | ||
| 650 | + break | ||
| 651 | + } | ||
| 652 | + | ||
| 653 | + | ||
| 654 | + //获取店铺数据 | ||
| 655 | + teamid,err := GetTeamByUuid(rdata.Inviter_id) | ||
| 656 | + if err != nil { | ||
| 657 | + logger.Error("HandleJoinTeamByInvite GetTeamInfoFailed failed=%v", err) | ||
| 658 | + resp.Result.Code = ERROR_GETTEAMINFO_FAILED | ||
| 659 | + break | ||
| 660 | + } | ||
| 661 | + tinfo ,err := GetTeamInfo(teamid) | ||
| 662 | + if err != nil { | ||
| 663 | + logger.Error("HandleJoinTeamByInvite GetTeamInfoFailed failed=%v", err) | ||
| 664 | + resp.Result.Code = ERROR_GETTEAMINFO_FAILED | ||
| 665 | + break | ||
| 666 | + } | ||
| 667 | + | ||
| 668 | + | ||
| 669 | + //判断一下是否已经在队伍中 | ||
| 670 | + inteam := tinfo.IsInTeam(uuid) | ||
| 671 | + | ||
| 672 | + if inteam { | ||
| 673 | + logger.Error("HandleJoinTeamByInvite already inteam failed=%v", err) | ||
| 674 | + resp.Result.Code = ERROR_TEAMALREADYINTEAM | ||
| 675 | + break | ||
| 676 | + } | ||
| 677 | + | ||
| 678 | + tinfo.MemInfo.MemList = append(tinfo.MemInfo.MemList,uuid) | ||
| 679 | + | ||
| 680 | + //保存队伍数据 | ||
| 681 | + SaveTeamInfo(tinfo.BaseInfo.Id,tinfo) | ||
| 682 | + | ||
| 683 | + | ||
| 684 | + resp.Result.Code = ERROR_OK | ||
| 685 | + resp.Result.Data = "" | ||
| 686 | + break | ||
| 687 | + } | ||
| 688 | + | ||
| 689 | + //回包 | ||
| 690 | + respstr, _ := json.Marshal(&resp) | ||
| 691 | + fmt.Fprint(w, string(respstr)) | ||
| 692 | +} | ||
| 693 | + | ||
| 694 | + | ||
| 695 | +func HandleQuitTeam(w http.ResponseWriter, data string) { | ||
| 696 | + SetHeader(w) | ||
| 697 | + var resp QuitTeamResp | ||
| 698 | + resp.Status = "true" | ||
| 699 | + resp.Result.Code = ERROR_OK | ||
| 700 | + var rdata QuitTeamReq | ||
| 701 | + err := json.Unmarshal([]byte(data), &rdata) | ||
| 702 | + for { | ||
| 703 | + if err != nil { | ||
| 704 | + logger.Error("HandleQuitTeam json unmarshal failed=%v", err) | ||
| 705 | + resp.Result.Code = ERROR_JSONUNMASHFAILED | ||
| 706 | + break | ||
| 707 | + } | ||
| 708 | + | ||
| 709 | + uuid,err := GetTouristUid(rdata.Token) | ||
| 710 | + if err != nil || uuid==0{ | ||
| 711 | + logger.Error("HandleQuitTeam GetTouristUid failed=%v", err) | ||
| 712 | + resp.Result.Code = ERROR_GETUSERIDFAILED | ||
| 713 | + break | ||
| 714 | + } | ||
| 715 | + | ||
| 716 | + teamid,err := GetTeamByUuid(uuid) | ||
| 717 | + if err != nil { | ||
| 718 | + logger.Error("HandleQuitTeam GetTeamInfoFailed failed=%v", err) | ||
| 719 | + resp.Result.Code = ERROR_GETTEAMINFO_FAILED | ||
| 720 | + break | ||
| 721 | + } | ||
| 722 | + tinfo ,err := GetTeamInfo(teamid) | ||
| 723 | + if err != nil { | ||
| 724 | + logger.Error("HandleQuitTeam GetTeamInfoFailed failed=%v", err) | ||
| 725 | + resp.Result.Code = ERROR_GETTEAMINFO_FAILED | ||
| 726 | + break | ||
| 727 | + } | ||
| 728 | + //判断一下是否已经在队伍中 | ||
| 729 | + inteam := tinfo.IsInTeam(uuid) | ||
| 730 | + | ||
| 731 | + if !inteam { | ||
| 732 | + logger.Error("HandleQuitTeam not inteam failed=%v", err) | ||
| 733 | + resp.Result.Code = ERROR_TEAMNOTINTEAM | ||
| 734 | + break | ||
| 735 | + } | ||
| 736 | + | ||
| 737 | + if rdata.Type == 0 { | ||
| 738 | + //踢人 需要判断是否是队长 | ||
| 739 | + if uuid!=tinfo.BaseInfo.Captain_id { | ||
| 740 | + logger.Error("HandleQuitTeam not caption failed=%v", err) | ||
| 741 | + resp.Result.Code = ERROR_NOTCAPTION | ||
| 742 | + break | ||
| 743 | + } | ||
| 744 | + }else { | ||
| 745 | + //主动离开 需要扣除投资额 | ||
| 746 | + //todo 扣除投资额 | ||
| 747 | + } | ||
| 748 | + | ||
| 749 | + | ||
| 750 | + //删除成员信息 | ||
| 751 | + //tinfo.MemInfo.MemList = append(tinfo.MemInfo.MemList,uuid) | ||
| 752 | + tinfo.DelTeamMember(rdata.User_id) | ||
| 753 | + | ||
| 754 | + //保存队伍数据 | ||
| 755 | + SaveTeamInfo(tinfo.BaseInfo.Id,tinfo) | ||
| 756 | + | ||
| 757 | + | ||
| 758 | + resp.Result.Code = ERROR_OK | ||
| 759 | + resp.Result.Data = "" | ||
| 760 | + break | ||
| 761 | + } | ||
| 762 | + | ||
| 763 | + //回包 | ||
| 764 | + respstr, _ := json.Marshal(&resp) | ||
| 765 | + fmt.Fprint(w, string(respstr)) | ||
| 766 | +} | ||
| 558 | \ No newline at end of file | 767 | \ No newline at end of file |