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 |