act_crazy_card_group.go 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package service
  2. import (
  3. "crazy-fox-backend-api/model"
  4. "crazy-fox-backend-api/utils"
  5. "github.com/jmoiron/sqlx/types"
  6. jsoniter "github.com/json-iterator/go"
  7. "github.com/pkg/errors"
  8. )
  9. type actCrazyCardGroup struct{}
  10. // 展示数据处理
  11. func (This *actCrazyCardGroup) handleActShow(confInfo *model.ActConfInfo) (json types.JSONText, err error) {
  12. var confMap map[int64]model.CrazyCardGroupRewardConf
  13. if err = jsoniter.Unmarshal(confInfo.Reward, &confMap); err != nil {
  14. return json, errors.Wrap(err, "疯狂卡组 奖励Json解析失败")
  15. }
  16. // 数据转换
  17. showConf := utils.MapValues(confMap, true)
  18. if json, err = jsoniter.Marshal(showConf); err != nil {
  19. return json, errors.Wrap(err, "疯狂卡组 奖励序列化失败")
  20. }
  21. return
  22. }
  23. // 保存数据处理
  24. func (This *actCrazyCardGroup) handleActSave(confInfo *model.ActConfInfo) (err error) {
  25. var showConf []model.CrazyCardGroupRewardConf
  26. if err = jsoniter.Unmarshal(confInfo.ActShowConf, &showConf); err != nil {
  27. return errors.Wrap(err, "疯狂卡组 奖励Json解析失败")
  28. }
  29. // 数据转换
  30. rewardMap, err := This.convertIntoRepoConf(showConf)
  31. if err != nil {
  32. return errors.Wrap(err, "疯狂卡组 奖励数据转换失败")
  33. }
  34. // 收集配置
  35. if confInfo.Reward, err = jsoniter.Marshal(rewardMap); err != nil {
  36. return errors.Wrap(err, "疯狂卡组 收集配置数据序列化失败")
  37. }
  38. return
  39. }
  40. // 分层数据处理
  41. func (This *actCrazyCardGroup) handleActRewardSection(*model.ActConfInfo, ...map[string]any) error {
  42. return nil
  43. }
  44. // 导入数据处理
  45. func (This *actCrazyCardGroup) handleActImport(_ *model.ActDetailInfo, _ [][][]string) (json types.JSONText, err error) {
  46. return
  47. }
  48. func (This *actCrazyCardGroup) convertIntoRepoConf(rewardArr []model.CrazyCardGroupRewardConf) (map[int64]model.CrazyCardGroupRewardConf, error) {
  49. confMap := make(map[int64]model.CrazyCardGroupRewardConf, len(rewardArr))
  50. for i := 0; i < len(rewardArr); i++ {
  51. one := rewardArr[i]
  52. one.Stage = int64(i + 1)
  53. confMap[one.Stage] = one
  54. }
  55. return confMap, nil
  56. }