cashout.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package controller
  2. import (
  3. mhayaGin "github.com/mhaya/components/gin"
  4. cstring "github.com/mhaya/extend/string"
  5. "github.com/mhaya/game/game_cluster/internal/code"
  6. "github.com/mhaya/game/game_cluster/internal/constant"
  7. "github.com/mhaya/game/game_cluster/internal/data"
  8. "github.com/mhaya/game/game_cluster/internal/mdb/models"
  9. "github.com/mhaya/game/game_cluster/internal/param"
  10. mhayaLogger "github.com/mhaya/logger"
  11. )
  12. func (p *Controller) cashOut(c *mhayaGin.Context) {
  13. var pa param.CashOutReq
  14. if err := c.BindJSON(&pa); err != nil {
  15. mhayaLogger.Warnf("if cashOut err {. params=%s", pa)
  16. code.RenderResult(c, code.Error)
  17. return
  18. }
  19. if pa.Tp == 0 {
  20. code.RenderResult(c, code.Error)
  21. return
  22. }
  23. switch pa.Tp {
  24. case 1:
  25. ret, ok := data.DiscreteRuleConfig.Get(models.UCashOutConfig)
  26. if !ok {
  27. code.RenderResult(c, code.Error)
  28. return
  29. }
  30. i, _ := cstring.ToInt(ret.Condition)
  31. if pa.Amount < float64(i) {
  32. code.RenderResult(c, code.Error)
  33. return
  34. }
  35. case 2:
  36. ret, ok := data.DiscreteRuleConfig.Get(models.TonCashOutConfig)
  37. if !ok {
  38. code.RenderResult(c, code.Error)
  39. return
  40. }
  41. i, _ := cstring.ToInt(ret.Condition)
  42. if pa.Amount < float64(i) {
  43. code.RenderResult(c, code.Error)
  44. return
  45. }
  46. default:
  47. code.RenderResult(c, code.Error)
  48. return
  49. }
  50. token, err := p.Auth(c)
  51. if code.IsFail(err) {
  52. mhayaLogger.Warnf("if cashOut token err {. params=%s", c.GetHeader(constant.Token))
  53. code.RenderResult(c, code.AccountTokenValidateFail)
  54. return
  55. }
  56. errCode := p.CallWait(token.TargetPath, "cashOut", &pa, nil)
  57. if code.IsFail(errCode) {
  58. mhayaLogger.Warnf("[cashOut] param = %v, errCode = %v", pa, errCode)
  59. code.RenderResult(c, errCode)
  60. return
  61. }
  62. code.RenderResult(c, code.OK)
  63. }