package parkour import ( "go_dreamfactory/comm" "go_dreamfactory/pb" ) //参数校验 func (this *apiComp) QuitTeamCheck(session comm.IUserSession, req *pb.ParkourQuitTeamReq) (code pb.ErrorCode) { return } ///退出队伍 func (this *apiComp) QuitTeam(session comm.IUserSession, req *pb.ParkourQuitTeamReq) (code pb.ErrorCode, data *pb.ErrorData) { var ( tean *pb.DBRaceTeam member *pb.DBRaceMember users []string ok bool err error ) if code = this.QuitTeamCheck(session, req); code != pb.ErrorCode_Success { return } if tean, err = this.module.teamComp.queryteam(req.Captainid); err != nil { code = pb.ErrorCode_DBError return } for i, v := range tean.Member { if v.Uid == session.GetUserId() { tean.Member = append(tean.Member[0:i], tean.Member[i+1:]...) member = v ok = true } else { users = append(users, v.Uid) } } if !ok { code = pb.ErrorCode_ReqParameterError return } if err = this.module.teamComp.Change(req.Captainid, map[string]interface{}{ "member": tean.Member, }); err != nil { code = pb.ErrorCode_DBError return } this.module.SendMsgToUsers(string(this.module.GetType()), "teamquitnotice", &pb.ParkourTeamQuitNoticePush{Member: member}, users...) this.module.SendMsgToUsers(string(this.module.GetType()), "teamchanage", &pb.ParkourTeamChanagePush{Team: tean}, users...) session.SendMsg(string(this.module.GetType()), "quitteam", &pb.ParkourQuitTeamResp{}) return }