diff --git a/modules/hero/api_strengthenUpSkill.go b/modules/hero/api_strengthenUpSkill.go index 1453a3fee..eb90d175e 100644 --- a/modules/hero/api_strengthenUpSkill.go +++ b/modules/hero/api_strengthenUpSkill.go @@ -31,7 +31,9 @@ func (this *apiComp) StrengthenUpSkill(session comm.IUserSession, req *pb.HeroSt costColor int32 // 消耗卡品质 _hero *pb.DBHero // 操作的英雄 _costHero *pb.DBHero // 消耗的英雄 + ChangeList []*pb.DBHero // 推送 改变的英雄 ) + ChangeList = make([]*pb.DBHero, 0) tmpUpSkillID = make(map[int32]*pb.SkillData, 0) probability = make(map[int32]int32, 0) code = this.StrengthenUpSkillCheck(session, req) // check @@ -114,23 +116,32 @@ func (this *apiComp) StrengthenUpSkill(session comm.IUserSession, req *pb.HeroSt break } } + + // 扣除材料 + code = this.module.DelCard(session.GetUserId(), _costHero, 1) + if code != pb.ErrorCode_Success { + return + } + // 堆叠情况 + if _hero.SameCount > 1 { + _hero.SameCount -= 1 + newHero := this.module.modelHero.CloneNewHero(_hero) + ChangeList = append(ChangeList, newHero) + } _heroMap := map[string]interface{}{ "normalSkill": _hero.NormalSkill, "isOverlying": false, + "sameCount": 1, } + _hero.SameCount = 1 err1 = this.module.modelHero.ChangeList(session.GetUserId(), req.HeroObjID, _heroMap) // 修改英雄信息 if err1 != nil { this.module.Errorf("update hero skill failed:%v", err1) code = pb.ErrorCode_DBError return } - // 扣除材料 - c := this.module.DelCard(session.GetUserId(), _costHero, 1) - if c != pb.ErrorCode_Success { - code = pb.ErrorCode_DBError - return - } - session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: []*pb.DBHero{_costHero}}) + ChangeList = append(ChangeList, _costHero) + session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: ChangeList}) err1 = this.module.modelHero.ChangeHeroProperty(session, _hero) // 推送属性变化 if err1 != nil { this.module.Errorf("ChangeHeroProperty err!") diff --git a/modules/mgolog/db_comp.go b/modules/mgolog/db_comp.go index 32800d48c..2c4f870f3 100644 --- a/modules/mgolog/db_comp.go +++ b/modules/mgolog/db_comp.go @@ -82,7 +82,7 @@ func (this *DB_Comp) Model_UpdateDBByLog(uid string) (err error) { if data.Act == string(comm.LogHandleType_Insert) { if len(data.D) < 2 { // 参数校验 - log.Errorf("parameter len _id : %s,uid : %s d.len:%v", data.ID, data.UID, len(data.D)) + log.Errorf("Insert : %+v err : 参数异常 %d, ", data, len(data.D)) continue } _obj := make(bson.A, len(data.D[1].(bson.A))) @@ -93,11 +93,7 @@ func (this *DB_Comp) Model_UpdateDBByLog(uid string) (err error) { _, err := this.DB.InsertMany(core.SqlTable(_key), _obj) if err != nil { - log.Errorf("insert %s db err:%v", (core.SqlTable(_key)), err) - for k, v := range _obj { - log.Errorf("条件 %s db err:%v", k, v) - } - + log.Errorf("Insert : %+v err :%v, ", data, err) ErrorLogCount[data.ID]++ if ErrorLogCount[data.ID] >= ErrorMaxNum { // 实在是写失败了那就删除吧 log.Errorf("insert db err max num %s db err:%v", data.ID, err) @@ -114,7 +110,7 @@ func (this *DB_Comp) Model_UpdateDBByLog(uid string) (err error) { // } } else if data.Act == string(comm.LogHandleType_Delete) { if len(data.D) < 2 { // 参数校验 - log.Errorf("parameter len _id : %s,uid : %s d.len:%v", data.ID, data.UID, len(data.D)) + log.Errorf("Delete : %+v err : 参数异常 %d, ", data, len(data.D)) continue } _key := data.D[0].(string) @@ -125,10 +121,7 @@ func (this *DB_Comp) Model_UpdateDBByLog(uid string) (err error) { } _, err = this.DB.DeleteMany(core.SqlTable(_key), _obj, options.Delete()) if err != nil { - log.Errorf("delete %s db err:%v", core.SqlTable(_key), err) - for k, v := range _obj { - log.Errorf("条件 %s db err:%v", k, v) - } + log.Errorf("Delete : %+v err :%v, ", data, err) ErrorLogCount[data.ID]++ if ErrorLogCount[data.ID] >= ErrorMaxNum { // 实在是写失败了那就删除吧 @@ -142,7 +135,7 @@ func (this *DB_Comp) Model_UpdateDBByLog(uid string) (err error) { } } else { // update if len(data.D) < 3 { // 参数校验 - log.Errorf("parameter len _id : %s,uid : %s d.len:%v", data.ID, data.UID, len(data.D)) + log.Errorf("Update : %+v err : 参数异常 %d, ", data, len(data.D)) continue } @@ -158,18 +151,12 @@ func (this *DB_Comp) Model_UpdateDBByLog(uid string) (err error) { } _, err = this.DB.UpdateMany(core.SqlTable(_tableName), Where, bson.M{"$set": Query}, options.MergeUpdateOptions().SetUpsert(true)) //, new(options.UpdateOptions).SetUpsert(true) if err != nil { - log.Errorf("Update %s db err:%v", core.SqlTable(_tableName), err) - for k, v := range Where { - log.Errorf("条件 %s db err:%v", k, v) - } - for k, v := range Query { - log.Errorf("执行 %s db err:%v", k, v) - } + log.Errorf("Update : %+v err :%v, ", data, err) + ErrorLogCount[data.ID]++ if ErrorLogCount[data.ID] >= ErrorMaxNum { // 超过一定次数写失败了那就删除吧 log.Errorf("update db err max num %s db err:%v", data.ID, err) // 打印更新信息 - _, err = this.DB.DeleteOne(core.SqlTable(this.TableName), bson.M{"_id": data.ID}) if err != nil { log.Errorf("insert %s db err:%+v", data.ID, err)