上传代码
This commit is contained in:
parent
8d727166c9
commit
87d5b92097
@ -21,7 +21,8 @@ func (this *apiComp) Info(session comm.IUserSession, req *pb.ParkourInfoReq) (co
|
||||
if code = this.InfoCheck(session, req); code != pb.ErrorCode_Success {
|
||||
return
|
||||
}
|
||||
isopen = this.module.configure.isopen()
|
||||
// isopen = this.module.configure.isopen()
|
||||
isopen = true
|
||||
if isopen {
|
||||
if info, err = this.module.parkourComp.queryinfo(session.GetUserId()); err != nil {
|
||||
code = pb.ErrorCode_DBError
|
||||
|
@ -59,7 +59,7 @@ func (this *apiComp) Invite(session comm.IUserSession, req *pb.ParkourInviteReq)
|
||||
}
|
||||
}
|
||||
if !ok {
|
||||
info.Member = append(info.Member, &pb.DBRaceMember{Uid: tuser.Uid, Name: tuser.Name, Avatar: tuser.Avatar, Mount: info.Dfmount, Hp: mount.Hp})
|
||||
info.Member = append(info.Member, &pb.DBRaceMember{Uid: tuser.Uid, Name: tuser.Name, Avatar: tuser.Avatar, Lv: tuser.Lv, Mount: info.Dfmount, Hp: mount.Hp})
|
||||
}
|
||||
|
||||
if tinfo, err = this.module.parkourComp.queryinfo(req.Uid); err != nil {
|
||||
@ -77,7 +77,8 @@ func (this *apiComp) Invite(session comm.IUserSession, req *pb.ParkourInviteReq)
|
||||
|
||||
//目标是否在线
|
||||
if !this.module.ModuleUser.IsOnline(req.Uid) {
|
||||
member = &pb.DBRaceMember{Uid: tuser.Uid, Name: tuser.Name, Avatar: tuser.Avatar, Mount: tinfo.Dfmount, Hp: mount.Hp, Isai: true}
|
||||
member = &pb.DBRaceMember{Uid: tuser.Uid, Name: tuser.Name, Avatar: tuser.Avatar, Lv: tuser.Lv, Mount: tinfo.Dfmount, Hp: mount.Hp, Isai: true}
|
||||
info.Captainid = session.GetUserId()
|
||||
info.Member = append(info.Member, member)
|
||||
users = make([]string, len(info.Member))
|
||||
for i, v := range info.Member {
|
||||
@ -100,12 +101,13 @@ func (this *apiComp) Invite(session comm.IUserSession, req *pb.ParkourInviteReq)
|
||||
}
|
||||
}
|
||||
if !ok {
|
||||
info.Invite = append(info.Invite, &pb.DBRaceInvite{Uid: tuser.Uid, Name: tuser.Name, Avatar: tuser.Avatar, Expired: configure.Now().Add(time.Second * 10).Unix()})
|
||||
info.Invite = append(info.Invite, &pb.DBRaceInvite{Uid: tuser.Uid, Name: tuser.Name, Avatar: tuser.Avatar, Lv: tuser.Lv, Expired: configure.Now().Add(time.Second * 10).Unix()})
|
||||
}
|
||||
this.module.SendMsgToUser(string(this.module.GetType()), "invitenotice",
|
||||
&pb.ParkourInviteNoticePush{Team: info, State: 1}, req.Uid)
|
||||
}
|
||||
if err = this.module.parkourComp.Change(session.GetUserId(), map[string]interface{}{
|
||||
"captainid": info.Captainid,
|
||||
"invite": info.Invite,
|
||||
"member": info.Member,
|
||||
}); err != nil {
|
||||
|
@ -64,12 +64,13 @@ func (this *apiComp) InviteHandle(session comm.IUserSession, req *pb.ParkourInvi
|
||||
code = pb.ErrorCode_ConfigNoFound
|
||||
return
|
||||
}
|
||||
member = &pb.DBRaceMember{Uid: invite.Uid, Name: invite.Name, Avatar: invite.Avatar, Mount: info.Dfmount, Hp: mount.Hp}
|
||||
member = &pb.DBRaceMember{Uid: invite.Uid, Name: invite.Name, Avatar: invite.Avatar, Lv: invite.Lv, Mount: info.Dfmount, Hp: mount.Hp}
|
||||
tean.Captainid = tean.Uid
|
||||
tean.State = pb.RaceTeamState_teaming
|
||||
tean.Member = append(tean.Member, member)
|
||||
if err = this.module.parkourComp.Change(session.GetUserId(), map[string]interface{}{
|
||||
"captainid": tean.Captainid,
|
||||
"state": tean.State,
|
||||
}); err != nil {
|
||||
code = pb.ErrorCode_DBError
|
||||
return
|
||||
|
@ -52,17 +52,29 @@ func (this *apiComp) JoinTeam(session comm.IUserSession, req *pb.ParkourJoinTeam
|
||||
}
|
||||
users[i] = v.Uid
|
||||
}
|
||||
if tean.Captainid == "" {
|
||||
user := this.module.ModuleUser.GetUser(tean.Uid)
|
||||
if mount, err = this.module.configure.getGameBuzkashiMount(tean.Dfmount); err != nil {
|
||||
code = pb.ErrorCode_ConfigNoFound
|
||||
return
|
||||
}
|
||||
member = &pb.DBRaceMember{Uid: session.GetUserId(), Name: user.Name, Avatar: user.Avatar, Lv: user.Lv, Mount: tean.Dfmount, Hp: mount.Hp}
|
||||
tean.Captainid = tean.Uid
|
||||
tean.State = pb.RaceTeamState_teaming
|
||||
tean.Member = append(tean.Member, member)
|
||||
users = append(users, tean.Uid)
|
||||
}
|
||||
|
||||
users = append(users, session.GetUserId())
|
||||
if mount, err = this.module.configure.getGameBuzkashiMount(info.Dfmount); err != nil {
|
||||
code = pb.ErrorCode_ConfigNoFound
|
||||
return
|
||||
}
|
||||
user := this.module.ModuleUser.GetUser(session.GetUserId())
|
||||
member = &pb.DBRaceMember{Uid: session.GetUserId(), Name: user.Name, Avatar: user.Avatar, Mount: info.Dfmount, Hp: mount.Hp}
|
||||
tean.Captainid = tean.Uid
|
||||
tean.State = pb.RaceTeamState_teaming
|
||||
member = &pb.DBRaceMember{Uid: session.GetUserId(), Name: user.Name, Avatar: user.Avatar, Lv: user.Lv, Mount: info.Dfmount, Hp: mount.Hp}
|
||||
tean.Member = append(tean.Member, member)
|
||||
if err = this.module.parkourComp.Change(session.GetUserId(), map[string]interface{}{
|
||||
"state": tean.State,
|
||||
"captainid": tean.Captainid,
|
||||
}); err != nil {
|
||||
code = pb.ErrorCode_DBError
|
||||
|
@ -14,6 +14,7 @@ func (this *apiComp) QuitTeamCheck(session comm.IUserSession, req *pb.ParkourQui
|
||||
func (this *apiComp) QuitTeam(session comm.IUserSession, req *pb.ParkourQuitTeamReq) (code pb.ErrorCode, data *pb.ErrorData) {
|
||||
var (
|
||||
tean *pb.DBParkour
|
||||
ntean *pb.DBParkour
|
||||
member *pb.DBRaceMember
|
||||
users []string
|
||||
ok bool
|
||||
@ -31,7 +32,7 @@ func (this *apiComp) QuitTeam(session comm.IUserSession, req *pb.ParkourQuitTeam
|
||||
tean.Member = append(tean.Member[0:i], tean.Member[i+1:]...)
|
||||
member = v
|
||||
ok = true
|
||||
} else {
|
||||
} else if !v.Isai {
|
||||
users = append(users, v.Uid)
|
||||
}
|
||||
}
|
||||
@ -39,8 +40,53 @@ func (this *apiComp) QuitTeam(session comm.IUserSession, req *pb.ParkourQuitTeam
|
||||
code = pb.ErrorCode_ReqParameterError
|
||||
return
|
||||
}
|
||||
if req.Captainid == session.GetUserId() { //自己是队长
|
||||
if len(users) > 0 {
|
||||
for i, v := range users {
|
||||
if i == 0 {
|
||||
if ntean, err = this.module.parkourComp.queryinfo(v); err != nil {
|
||||
code = pb.ErrorCode_DBError
|
||||
return
|
||||
} else {
|
||||
ntean.Captainid = users[0]
|
||||
ntean.Member = tean.Member
|
||||
if err = this.module.parkourComp.Change(v, map[string]interface{}{
|
||||
"captainid": v,
|
||||
"member": tean.Member,
|
||||
}); err != nil {
|
||||
code = pb.ErrorCode_DBError
|
||||
return
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if err = this.module.parkourComp.Change(v, map[string]interface{}{
|
||||
"captainid": users[0],
|
||||
}); err != nil {
|
||||
code = pb.ErrorCode_DBError
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
this.module.SendMsgToUsers(string(this.module.GetType()), "teamchanage",
|
||||
&pb.ParkourTeamChanagePush{Team: ntean}, users...)
|
||||
}
|
||||
|
||||
tean.Invite = make([]*pb.DBRaceInvite, 0)
|
||||
tean.Member = make([]*pb.DBRaceMember, 0)
|
||||
if err = this.module.parkourComp.Change(session.GetUserId(), map[string]interface{}{
|
||||
"captainid": session.GetUserId(),
|
||||
"state": pb.RaceTeamState_resting,
|
||||
"captainid": "",
|
||||
"invite": tean.Invite,
|
||||
"member": tean.Member,
|
||||
}); err != nil {
|
||||
code = pb.ErrorCode_DBError
|
||||
return
|
||||
}
|
||||
|
||||
} else {
|
||||
if err = this.module.parkourComp.Change(session.GetUserId(), map[string]interface{}{
|
||||
"state": pb.RaceTeamState_resting,
|
||||
"captainid": "",
|
||||
}); err != nil {
|
||||
code = pb.ErrorCode_DBError
|
||||
return
|
||||
@ -51,12 +97,14 @@ func (this *apiComp) QuitTeam(session comm.IUserSession, req *pb.ParkourQuitTeam
|
||||
code = pb.ErrorCode_DBError
|
||||
return
|
||||
}
|
||||
|
||||
if len(users) > 0 {
|
||||
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
|
||||
|
@ -151,7 +151,7 @@ func (this *ModelParkourComp) queryinfo(uid string) (result *pb.DBParkour, err e
|
||||
result = &pb.DBParkour{
|
||||
Id: primitive.NewObjectID().Hex(),
|
||||
Uid: uid,
|
||||
State: pb.RaceTeamState_teaming,
|
||||
State: pb.RaceTeamState_resting,
|
||||
Mounts: make(map[string]int32),
|
||||
Invite: make([]*pb.DBRaceInvite, 0),
|
||||
Member: []*pb.DBRaceMember{},
|
||||
@ -187,7 +187,7 @@ func (this *ModelParkourComp) queryinfos(uids []string) (results []*pb.DBParkour
|
||||
temp := &pb.DBParkour{
|
||||
Id: primitive.NewObjectID().Hex(),
|
||||
Uid: v,
|
||||
State: pb.RaceTeamState_teaming,
|
||||
State: pb.RaceTeamState_resting,
|
||||
Mounts: make(map[string]int32),
|
||||
Invite: make([]*pb.DBRaceInvite, 0),
|
||||
Member: []*pb.DBRaceMember{},
|
||||
@ -227,7 +227,7 @@ func (this *ModelParkourComp) addUserMounts(uid string, mounts map[string]int32)
|
||||
result = &pb.DBParkour{
|
||||
Id: primitive.NewObjectID().Hex(),
|
||||
Uid: uid,
|
||||
State: pb.RaceTeamState_teaming,
|
||||
State: pb.RaceTeamState_resting,
|
||||
Invite: make([]*pb.DBRaceInvite, 0),
|
||||
Mounts: make(map[string]int32),
|
||||
Member: []*pb.DBRaceMember{},
|
||||
|
@ -393,10 +393,10 @@ func (this *Parkour) overtimer(task *timewheel.Task, args ...interface{}) {
|
||||
func (this *Parkour) useroffline(uid, sessionid string) {
|
||||
var (
|
||||
info *pb.DBParkour
|
||||
|
||||
team *pb.DBParkour
|
||||
member *pb.DBRaceMember
|
||||
users []string
|
||||
keep bool
|
||||
index int32
|
||||
err error
|
||||
)
|
||||
@ -445,12 +445,14 @@ func (this *Parkour) useroffline(uid, sessionid string) {
|
||||
if v.Uid == uid {
|
||||
index = int32(i)
|
||||
member = v
|
||||
keep = true
|
||||
continue
|
||||
}
|
||||
if v.Uid != uid && !v.Isai {
|
||||
users = append(users, v.Uid)
|
||||
}
|
||||
}
|
||||
if keep {
|
||||
team.Member = append(team.Member[0:index], team.Member[index+1:]...)
|
||||
if err = this.parkourComp.Change(team.Uid, map[string]interface{}{
|
||||
"member": team.Member,
|
||||
@ -465,7 +467,7 @@ func (this *Parkour) useroffline(uid, sessionid string) {
|
||||
this.SendMsgToUsers(string(this.GetType()), "teamchanage",
|
||||
&pb.ParkourTeamChanagePush{Team: team}, users...)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
} else if info.State == pb.RaceTeamState_matching {
|
||||
if info.Captainid == uid {
|
||||
|
@ -119,3 +119,7 @@ func (this *ModelRtask) checkCondi(uid string, condiId int32) (err error, ok boo
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func (this *ModelRtask) userlock(uid string) (result *redis.RedisMutex, err error) {
|
||||
return this.DBModel.Redis.NewRedisMutex(fmt.Sprintf("ulocktask:%s", uid))
|
||||
}
|
||||
|
@ -357,6 +357,12 @@ func (this *ModuleRtask) TriggerTask(uid string, taskParams ...*comm.TaskParam)
|
||||
return
|
||||
}
|
||||
|
||||
lock, _ := this.modelRtask.userlock(uid)
|
||||
err := lock.Lock()
|
||||
if err != nil {
|
||||
this.Error("TriggerTask userlock err!", log.Field{Key: "err", Value: err.Error()})
|
||||
}
|
||||
defer lock.Unlock()
|
||||
for _, tp := range taskParams {
|
||||
if code := this.processOneTask(session, tp.TT, tp.Params...); code != pb.ErrorCode_Success {
|
||||
|
||||
@ -364,7 +370,6 @@ func (this *ModuleRtask) TriggerTask(uid string, taskParams ...*comm.TaskParam)
|
||||
session.Push()
|
||||
comm.PuttaskParam(tp)
|
||||
}
|
||||
|
||||
this.PutUserSession(session)
|
||||
return
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user