diff --git a/dto/ht-cardholder.go b/dto/ht-cardholder.go index d331d54..1b6073e 100644 --- a/dto/ht-cardholder.go +++ b/dto/ht-cardholder.go @@ -43,4 +43,6 @@ type ReqHtCardHolderOpen struct { // RspHtCardHolderOpen 返回 打开卡包 type RspHtCardHolderOpen struct { + HtCardHolderInfo + NewCards []int `form:"new_cards" json:"new_cards"` // 新获得的卡牌列表 } diff --git a/service/constd/index.go b/service/constd/index.go index 0ff28dc..c7982ad 100644 --- a/service/constd/index.go +++ b/service/constd/index.go @@ -40,10 +40,11 @@ const ( RECODE_MERGE_TONGXINGZHENGBUCUNZAI_ERROR = "2051" RECODE_MERGE_QINGXIANGMTXZ_ERROR = "2052" - RECODE_MERGE_CARDHOLDER_NOTOPEN1_ERROR = "2101" - RECODE_MERGE_CARDHOLDER_NOTOPEN2_ERROR = "2102" - RECODE_MERGE_CARDHOLDER_CARDHOLDERID_ERROR = "2103" - RECODE_MERGE_CARDHOLDER_COUNTILLEGAL_ERROR = "2104" + RECODE_MERGE_CARDHOLDER_NOTOPEN1_ERROR = "2101" + RECODE_MERGE_CARDHOLDER_NOTOPEN2_ERROR = "2102" + RECODE_MERGE_CARDHOLDER_CARDHOLDERID_ERROR = "2103" + RECODE_MERGE_CARDHOLDER_COUNTILLEGAL_ERROR = "2104" + RECODE_MERGE_CARDHOLDER_CARDHOLDER_NOTENOUGH_ERROR = "2105" ) var recodeText = map[string]string{ @@ -84,10 +85,11 @@ var recodeText = map[string]string{ RECODE_MERGE_TONGXINGZHENGBUCUNZAI_ERROR: "通行证不存在", RECODE_MERGE_QINGXIANGMTXZ_ERROR: "请先购买通行证", - RECODE_MERGE_CARDHOLDER_NOTOPEN1_ERROR: "活动未开始", - RECODE_MERGE_CARDHOLDER_NOTOPEN2_ERROR: "活动已结束", - RECODE_MERGE_CARDHOLDER_CARDHOLDERID_ERROR: "卡包ID错误", - RECODE_MERGE_CARDHOLDER_COUNTILLEGAL_ERROR: "数目不合法", + RECODE_MERGE_CARDHOLDER_NOTOPEN1_ERROR: "活动未开始", + RECODE_MERGE_CARDHOLDER_NOTOPEN2_ERROR: "活动已结束", + RECODE_MERGE_CARDHOLDER_CARDHOLDERID_ERROR: "卡包ID错误", + RECODE_MERGE_CARDHOLDER_COUNTILLEGAL_ERROR: "数目不合法", + RECODE_MERGE_CARDHOLDER_CARDHOLDER_NOTENOUGH_ERROR: "卡包不足", } func RecodeText(code string) string { diff --git a/service/ht-cardholder/config-registry.go b/service/ht-cardholder/config-registry.go index d350743..a4f6204 100644 --- a/service/ht-cardholder/config-registry.go +++ b/service/ht-cardholder/config-registry.go @@ -4,6 +4,7 @@ import ( "apigame/lx-util/lxalilog" "apigame/service/constd" "encoding/json" + "errors" ) var ( @@ -109,3 +110,21 @@ func (r *RegistryConfigs) Decode(confRaw CardActivityConfigRaw) { //logs.Debug("🐸", conf.NormalCardStarSequence) //logs.Debug("🐸", conf.CardSequenceConfig) } + +// FindCardSequenceConfig 查找配置 星级ID对应的卡片 +func FindCardSequenceConfig(id, sequenceId, cohort string) (conf CardSequenceConfig, has bool) { + conf = CardSequenceConfig{} + has = false + for _, c := range Registry.Config.CardSequenceConfig { + if c.Id == id && + c.SequenceId == sequenceId && + c.Cohort == cohort { + has = true + return + } + } + if !has { + lxalilog.Errors(errors.New("ht_cardholder CardSequenceConfig error"), " LoadData Error", id, sequenceId, cohort) + } + return +} diff --git a/service/ht-cardholder/handle.go b/service/ht-cardholder/handle.go index ee9d491..c496d87 100644 --- a/service/ht-cardholder/handle.go +++ b/service/ht-cardholder/handle.go @@ -34,16 +34,18 @@ func HandleGetNew(req *dto.ReqHtCardHolderGetNew) (code string, rsp dto.RspHtCar // 尝试更新配置 TryUpdateConfigs() + // 检查活动状态 code = CheckStatus() if code != constd.RECODE_OK { return } - - if _, ok := Registry.Config.CardholderConfig[strconv.Itoa(req.Id)]; !ok { + // 检查卡包ID + _, okCardholderConfig := Registry.Config.CardholderConfig[strconv.Itoa(req.Id)] + if !okCardholderConfig { code = constd.RECODE_MERGE_CARDHOLDER_CARDHOLDERID_ERROR return } - + // 检查卡包数量 if req.Count < 1 { code = constd.RECODE_MERGE_CARDHOLDER_COUNTILLEGAL_ERROR return @@ -51,6 +53,7 @@ func HandleGetNew(req *dto.ReqHtCardHolderGetNew) (code string, rsp dto.RspHtCar // 读取游戏数据 gameData := LoadData(req.UID) + gameData.DetailsData.Cardholder[req.Id] += req.Count SaveData(gameData) @@ -67,8 +70,37 @@ func HandleOpen(req *dto.ReqHtCardHolderOpen) (code string, rsp dto.RspHtCardHol // 尝试更新配置 TryUpdateConfigs() - // 读取游戏数据 + // 检查活动状态 + code = CheckStatus() + if code != constd.RECODE_OK { + return + } + //// 检查卡包ID + //confCardholder, okCardholderConfig := Registry.Config.CardholderConfig[strconv.Itoa(req.Id)] + //if !okCardholderConfig { + // code = constd.RECODE_MERGE_CARDHOLDER_CARDHOLDERID_ERROR + // return + //} + // + //// 读取游戏数据 //gameData := LoadData(req.UID) + // + //// 判断卡包数目 + //countOld, _ := gameData.DetailsData.Cardholder[req.Id] + //if countOld < 1 { + // code = constd.RECODE_MERGE_CARDHOLDER_CARDHOLDER_NOTENOUGH_ERROR + // return + //} + // + //// 开始处理抽卡 + //sequenceId, cohort := GetUserSequenceIdAndCohort(req.UID) + //// 先抽保底卡 + //if confCardholder.GuaranteedStar != "0" { + // confGuaranteed, hasGuaranteed := FindCardSequenceConfig(confCardholder.GuaranteedStar, sequenceId, cohort) + // if hasGuaranteed { + // + // } + //} return } @@ -132,3 +164,11 @@ func CheckStatus() string { } return constd.RECODE_OK } + +// GetUserSequenceIdAndCohort 获取 用户序列组ID(sequenceId) 用户分组(cohort) +func GetUserSequenceIdAndCohort(uid int64) (sequenceId, cohort string) { + // todo 这里后续要对接 + sequenceId = "1" + cohort = "1" + return +} -- libgit2 0.21.0