package service import ( "crazy-fox-backend-api/model" "crazy-fox-backend-api/utils" "github.com/jmoiron/sqlx/types" jsoniter "github.com/json-iterator/go" "github.com/pkg/errors" ) type actCrazyCardGroup struct{} // 展示数据处理 func (This *actCrazyCardGroup) handleActShow(confInfo *model.ActConfInfo) (json types.JSONText, err error) { var confMap map[int64]model.CrazyCardGroupRewardConf if err = jsoniter.Unmarshal(confInfo.Reward, &confMap); err != nil { return json, errors.Wrap(err, "疯狂卡组 奖励Json解析失败") } // 数据转换 showConf := utils.MapValues(confMap, true) if json, err = jsoniter.Marshal(showConf); err != nil { return json, errors.Wrap(err, "疯狂卡组 奖励序列化失败") } return } // 保存数据处理 func (This *actCrazyCardGroup) handleActSave(confInfo *model.ActConfInfo) (err error) { var showConf []model.CrazyCardGroupRewardConf if err = jsoniter.Unmarshal(confInfo.ActShowConf, &showConf); err != nil { return errors.Wrap(err, "疯狂卡组 奖励Json解析失败") } // 数据转换 rewardMap, err := This.convertIntoRepoConf(showConf) if err != nil { return errors.Wrap(err, "疯狂卡组 奖励数据转换失败") } // 收集配置 if confInfo.Reward, err = jsoniter.Marshal(rewardMap); err != nil { return errors.Wrap(err, "疯狂卡组 收集配置数据序列化失败") } return } // 分层数据处理 func (This *actCrazyCardGroup) handleActRewardSection(*model.ActConfInfo, ...map[string]any) error { return nil } // 导入数据处理 func (This *actCrazyCardGroup) handleActImport(_ *model.ActDetailInfo, _ [][][]string) (json types.JSONText, err error) { return } func (This *actCrazyCardGroup) convertIntoRepoConf(rewardArr []model.CrazyCardGroupRewardConf) (map[int64]model.CrazyCardGroupRewardConf, error) { confMap := make(map[int64]model.CrazyCardGroupRewardConf, len(rewardArr)) for i := 0; i < len(rewardArr); i++ { one := rewardArr[i] one.Stage = int64(i + 1) confMap[one.Stage] = one } return confMap, nil }