Merge branch 'dev' of http://git.legu.cc/liwei_3d/go_dreamfactory into dev
This commit is contained in:
commit
2ab6d09c06
@ -71,7 +71,9 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.VikingChal
|
|||||||
}
|
}
|
||||||
mapData["boss"] = viking.Boss
|
mapData["boss"] = viking.Boss
|
||||||
}
|
}
|
||||||
|
if req.Report != nil {
|
||||||
|
costTime = req.Report.Costtime
|
||||||
|
}
|
||||||
// 耗时校验 当前战斗胜利时间消耗小于之前刷新数据
|
// 耗时校验 当前战斗胜利时间消耗小于之前刷新数据
|
||||||
code, _ = this.module.battle.CheckBattleReport(session, req.Report)
|
code, _ = this.module.battle.CheckBattleReport(session, req.Report)
|
||||||
if code != pb.ErrorCode_Success {
|
if code != pb.ErrorCode_Success {
|
||||||
@ -88,11 +90,9 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.VikingChal
|
|||||||
mapData["leftCount"] = viking.LeftCount
|
mapData["leftCount"] = viking.LeftCount
|
||||||
viking.ChallengeCount++
|
viking.ChallengeCount++
|
||||||
mapData["challengeCount"] = viking.ChallengeCount
|
mapData["challengeCount"] = viking.ChallengeCount
|
||||||
|
|
||||||
// 时间写入
|
|
||||||
key := strconv.Itoa(int(req.BossId)) + "_" + strconv.Itoa(int(req.Difficulty))
|
key := strconv.Itoa(int(req.BossId)) + "_" + strconv.Itoa(int(req.Difficulty))
|
||||||
//if t, ok := viking.BossTime[key]; ok {
|
|
||||||
if viking.BossTime[key] > costTime || viking.BossTime[key] == 0 { // 刷新记录
|
if viking.BossTime[key] > costTime || viking.BossTime[key] == 0 && req.Difficulty >= viking.Boss[req.BossId] { // 刷新记录
|
||||||
viking.BossTime[key] = costTime
|
viking.BossTime[key] = costTime
|
||||||
szLine := make([]*pb.LineUp, 5)
|
szLine := make([]*pb.LineUp, 5)
|
||||||
Leadpos := 0
|
Leadpos := 0
|
||||||
@ -111,7 +111,23 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.VikingChal
|
|||||||
}
|
}
|
||||||
// 写入排行榜
|
// 写入排行榜
|
||||||
objID := ""
|
objID := ""
|
||||||
if newChallenge { // 插入
|
bFind := false
|
||||||
|
ranks := this.module.modulerank.getVikingRankList(session.GetUserId())
|
||||||
|
for _, v := range ranks {
|
||||||
|
if v.Bosstype == req.BossId {
|
||||||
|
mapRankData := make(map[string]interface{}, 0)
|
||||||
|
mapRankData["difficulty"] = req.Difficulty
|
||||||
|
mapRankData["bosstype"] = req.BossId
|
||||||
|
mapRankData["Leadpos"] = Leadpos
|
||||||
|
mapRankData["line"] = szLine
|
||||||
|
mapRankData["costTime"] = costTime
|
||||||
|
this.module.modulerank.ChangeUserRank(session.GetUserId(), v.Id, mapRankData)
|
||||||
|
objID = v.Id
|
||||||
|
bFind = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if !bFind {
|
||||||
userinfo := this.module.ModuleUser.GetUser(session.GetUserId())
|
userinfo := this.module.ModuleUser.GetUser(session.GetUserId())
|
||||||
new := &pb.DBVikingRank{
|
new := &pb.DBVikingRank{
|
||||||
Id: primitive.NewObjectID().Hex(),
|
Id: primitive.NewObjectID().Hex(),
|
||||||
@ -126,33 +142,16 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.VikingChal
|
|||||||
CostTime: costTime,
|
CostTime: costTime,
|
||||||
}
|
}
|
||||||
objID = new.Id
|
objID = new.Id
|
||||||
this.module.modulerank.AddList(session.GetUserId(), new.Id, new)
|
this.module.modulerank.AddRankList(session.GetUserId(), new.Id, new)
|
||||||
} else { // 更新数据
|
|
||||||
ranks := this.module.modulerank.getVikingRankList(session.GetUserId())
|
|
||||||
for _, v := range ranks {
|
|
||||||
if v.Bosstype == req.BossId && v.Difficulty == req.Difficulty {
|
|
||||||
mapRankData := make(map[string]interface{}, 0)
|
|
||||||
mapRankData["difficulty"] = req.Difficulty
|
|
||||||
mapRankData["bosstype"] = req.BossId
|
|
||||||
mapRankData["Leadpos"] = Leadpos
|
|
||||||
mapRankData["line"] = szLine
|
|
||||||
mapRankData["costTime"] = costTime
|
|
||||||
this.module.modulerank.ChangeUserRank(session.GetUserId(), v.Id, mapRankData)
|
|
||||||
objID = v.Id
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
this.module.modulerank.SetRankListData("vikingRank"+strconv.Itoa(int(req.BossId)), req.Difficulty<<16+costTime, objID)
|
this.module.modulerank.SetRankListData("vikingRank"+strconv.Itoa(int(req.BossId)), req.Difficulty<<16+costTime, objID)
|
||||||
}
|
}
|
||||||
//}
|
|
||||||
mapData["bossTime"] = viking.BossTime // 更新时间
|
mapData["bossTime"] = viking.BossTime // 更新时间
|
||||||
if newChallenge { // 新关卡挑战通过 发放首通奖励
|
if newChallenge { // 新关卡挑战通过 发放首通奖励
|
||||||
if code = this.module.DispenseRes(session, cfg.Firstprize, true); code != pb.ErrorCode_Success {
|
if code = this.module.DispenseRes(session, cfg.Firstprize, true); code != pb.ErrorCode_Success {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
viking.Boss[req.BossId] += 1
|
|
||||||
mapData["boss"] = viking.Boss
|
|
||||||
for _, v := range cfg.Firstprize {
|
for _, v := range cfg.Firstprize {
|
||||||
asset = append(asset, &pb.UserAssets{
|
asset = append(asset, &pb.UserAssets{
|
||||||
A: v.A,
|
A: v.A,
|
||||||
|
@ -51,6 +51,14 @@ func (this *apiComp) RankList(session comm.IUserSession, req *pb.VikingRankListR
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
uids := this.friend.GetFriendList(session.GetUserId())
|
||||||
|
for _, id := range uids {
|
||||||
|
rankData := this.module.modulerank.getVikingRankListByBossType(id, req.BoosType)
|
||||||
|
if rankData != nil {
|
||||||
|
szRank = append(szRank, rankData)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
session.SendMsg(string(this.module.GetType()), VikingRankListResp, &pb.VikingRankListResp{Ranks: szRank})
|
session.SendMsg(string(this.module.GetType()), VikingRankListResp, &pb.VikingRankListResp{Ranks: szRank})
|
||||||
|
@ -9,7 +9,6 @@ import (
|
|||||||
"go_dreamfactory/pb"
|
"go_dreamfactory/pb"
|
||||||
|
|
||||||
"github.com/go-redis/redis/v8"
|
"github.com/go-redis/redis/v8"
|
||||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type ModelRank struct {
|
type ModelRank struct {
|
||||||
@ -23,22 +22,13 @@ func (this *ModelRank) Init(service core.IService, module core.IModule, comp cor
|
|||||||
this.moduleViking = module.(*Viking)
|
this.moduleViking = module.(*Viking)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
func (this *ModelRank) AddRank(uId string, data *pb.DBVikingRank) (err error) {
|
func (this *ModelRank) AddRankList(uId string, id string, data *pb.DBVikingRank) (err error) {
|
||||||
if err = this.Add(uId, data); err != nil {
|
if err = this.AddList(uId, id, data); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *ModelRank) GetUserRandData(uid string) (result *pb.DBVikingRank, err error) {
|
|
||||||
result = &pb.DBVikingRank{}
|
|
||||||
if err = this.Get(uid, result); err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
err = nil
|
|
||||||
return result, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// 更新排行榜数据
|
// 更新排行榜数据
|
||||||
func (this *ModelRank) ChangeUserRank(uid string, objId string, value map[string]interface{}) (err error) {
|
func (this *ModelRank) ChangeUserRank(uid string, objId string, value map[string]interface{}) (err error) {
|
||||||
if len(value) == 0 {
|
if len(value) == 0 {
|
||||||
@ -47,21 +37,6 @@ func (this *ModelRank) ChangeUserRank(uid string, objId string, value map[string
|
|||||||
return this.ChangeList(uid, objId, value)
|
return this.ChangeList(uid, objId, value)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *ModelRank) GetRankData(bossType int32) (data []*pb.DBVikingRank, err error) {
|
|
||||||
tmpdata := make([]*pb.DBVikingRank, 0)
|
|
||||||
data = make([]*pb.DBVikingRank, 0)
|
|
||||||
err = this.Redis.LRange(comm.TableVikingRankList, 0, -1, &tmpdata)
|
|
||||||
if err == nil {
|
|
||||||
for _, v := range tmpdata {
|
|
||||||
if v.Bosstype == bossType {
|
|
||||||
data = append(data, v)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// 获取排行榜数据
|
// 获取排行榜数据
|
||||||
func (this *ModelRank) getVikingRankList(uid string) []*pb.DBVikingRank {
|
func (this *ModelRank) getVikingRankList(uid string) []*pb.DBVikingRank {
|
||||||
ranks := make([]*pb.DBVikingRank, 0)
|
ranks := make([]*pb.DBVikingRank, 0)
|
||||||
@ -72,42 +47,6 @@ func (this *ModelRank) getVikingRankList(uid string) []*pb.DBVikingRank {
|
|||||||
return ranks
|
return ranks
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *ModelRank) updateVikingRankList(session comm.IUserSession, difficulty int32, boosType int32, Leadpos int32, line []*pb.LineUp, costTime int32) {
|
|
||||||
// 查询是不是更新数据
|
|
||||||
ranks := this.getVikingRankList(session.GetUserId())
|
|
||||||
bfind := false
|
|
||||||
for _, v := range ranks {
|
|
||||||
if v.Bosstype == boosType && v.Difficulty == difficulty {
|
|
||||||
mapRankData := make(map[string]interface{}, 0)
|
|
||||||
mapRankData["difficulty"] = difficulty
|
|
||||||
mapRankData["bosstype"] = boosType
|
|
||||||
mapRankData["Leadpos"] = Leadpos
|
|
||||||
mapRankData["line"] = line
|
|
||||||
mapRankData["costTime"] = costTime
|
|
||||||
this.ChangeUserRank(session.GetUserId(), v.Id, mapRankData)
|
|
||||||
bfind = true
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if !bfind {
|
|
||||||
userinfo := this.moduleViking.ModuleUser.GetUser(session.GetUserId())
|
|
||||||
new := &pb.DBVikingRank{
|
|
||||||
Id: primitive.NewObjectID().Hex(),
|
|
||||||
Uid: session.GetUserId(),
|
|
||||||
Difficulty: difficulty,
|
|
||||||
Bosstype: boosType,
|
|
||||||
Nickname: userinfo.Name,
|
|
||||||
Icon: "",
|
|
||||||
Lv: userinfo.Lv,
|
|
||||||
Leadpos: Leadpos,
|
|
||||||
Line: line,
|
|
||||||
CostTime: costTime,
|
|
||||||
}
|
|
||||||
this.AddList(session.GetUserId(), new.Id, new)
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
func (this *ModelRank) getVikingRankListByBossType(uid string, bossType int32) *pb.DBVikingRank {
|
func (this *ModelRank) getVikingRankListByBossType(uid string, bossType int32) *pb.DBVikingRank {
|
||||||
ranks := make([]*pb.DBVikingRank, 0)
|
ranks := make([]*pb.DBVikingRank, 0)
|
||||||
err := this.GetList(uid, &ranks)
|
err := this.GetList(uid, &ranks)
|
||||||
|
Loading…
Reference in New Issue
Block a user