act_accumulated_pay.go 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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 actAccumulatedPay struct{}
  10. // 展示数据处理
  11. func (This *actAccumulatedPay) handleActShow(confInfo *model.ActConfInfo) (json types.JSONText, err error) {
  12. var confMap map[int64]model.AccumulatedPayRewardConf
  13. if err = jsoniter.Unmarshal(confInfo.Reward, &confMap); err != nil {
  14. return json, errors.Wrap(err, "累计充值 奖励Json解析失败")
  15. }
  16. var baseConf model.AccumulatedPayBaseConf
  17. if err = jsoniter.Unmarshal(confInfo.ExtraData, &baseConf); err != nil {
  18. return json, errors.Wrap(err, "累计充值 基础配置Json解析失败")
  19. }
  20. // 数据转换
  21. showConf := This.convertIntoShowConf(confMap, baseConf)
  22. if json, err = jsoniter.Marshal(showConf); err != nil {
  23. return json, errors.Wrap(err, "累计充值 奖励序列化失败")
  24. }
  25. return
  26. }
  27. // 保存数据处理
  28. func (This *actAccumulatedPay) handleActSave(confInfo *model.ActConfInfo) (err error) {
  29. var showConf model.AccumulatedPayShowConf
  30. if err = jsoniter.Unmarshal(confInfo.ActShowConf, &showConf); err != nil {
  31. return errors.Wrap(err, "累计充值 奖励Json解析失败")
  32. }
  33. // 数据转换
  34. rewardMap := This.convertIntoRepoConf(showConf.RewardConf)
  35. if confInfo.Reward, err = jsoniter.Marshal(rewardMap); err != nil {
  36. return errors.Wrap(err, "累计充值 奖励数据序列化失败")
  37. }
  38. if confInfo.ExtraData, err = jsoniter.Marshal(showConf.BaseConf); err != nil {
  39. return errors.Wrap(err, "累计充值 基础配置序列化失败")
  40. }
  41. return
  42. }
  43. // 分层数据处理
  44. func (This *actAccumulatedPay) handleActRewardSection(*model.ActConfInfo, ...map[string]any) error {
  45. return nil
  46. }
  47. // 导入数据处理
  48. func (This *actAccumulatedPay) handleActImport(*model.ActDetailInfo, [][][]string) (json types.JSONText, err error) {
  49. return
  50. }
  51. func (This *actAccumulatedPay) convertIntoShowConf(confMap map[int64]model.AccumulatedPayRewardConf, baseConf model.AccumulatedPayBaseConf) (showConf model.AccumulatedPayShowConf) {
  52. showConf.BaseConf = baseConf
  53. showConf.RewardConf = utils.MapValues(confMap, true)
  54. return showConf
  55. }
  56. func (This *actAccumulatedPay) convertIntoRepoConf(rewardConfArr []model.AccumulatedPayRewardConf) map[int64]model.AccumulatedPayRewardConf {
  57. rewardMap := make(map[int64]model.AccumulatedPayRewardConf, len(rewardConfArr))
  58. for i, conf := range rewardConfArr {
  59. conf.Stage = int64(i + 1)
  60. rewardMap[conf.Stage] = conf
  61. }
  62. return rewardMap
  63. }