server_prizewheel.go 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package service
  2. import (
  3. "bet24.com/log"
  4. "bet24.com/servers/coreservice/client"
  5. "bet24.com/servers/coreservice/prizewheel"
  6. "context"
  7. "encoding/json"
  8. "github.com/pkg/errors"
  9. )
  10. func (s *Server) GetWheelPrizes(ctx context.Context, args *client.Request, reply *client.Reply) error {
  11. prizes := prizewheel.GetPrizes()
  12. if len(prizes) > 0 {
  13. reply.Resp.RetCode = 1
  14. d, _ := json.Marshal(prizes)
  15. reply.Resp.Data = string(d)
  16. }
  17. return nil
  18. }
  19. func (s *Server) DoWheel(ctx context.Context, args *client.Request, reply *client.Reply) error {
  20. var req client.PrizeWheel_req
  21. if err := json.Unmarshal([]byte(args.Data), &req); err != nil {
  22. log.Debug("Server.DoWheel unmarshal fail %v", err)
  23. return errors.New("unmarshal error")
  24. }
  25. var result struct {
  26. Prizes []*prizewheel.Prize
  27. ErrMsg string
  28. }
  29. result.Prizes, result.ErrMsg = prizewheel.Wheel(req.UserId, req.Times, req.NickName, req.IpAddress)
  30. reply.Resp.RetCode = 1
  31. if len(result.Prizes) == 0 {
  32. reply.Resp.RetCode = 0
  33. }
  34. d, _ := json.Marshal(result)
  35. reply.Resp.Data = string(d)
  36. return nil
  37. }
  38. func (s *Server) GetWheelTimes(ctx context.Context, args *client.Request, reply *client.Reply) error {
  39. var req client.Request_base
  40. if err := json.Unmarshal([]byte(args.Data), &req); err != nil {
  41. log.Debug("Server.GetWheelTimes unmarshal fail %v", err)
  42. return errors.New("unmarshal error")
  43. }
  44. var ret struct {
  45. Times int //已抽奖次数
  46. PrizeTimes int //总抽奖次数
  47. PrizeCost int //多少金币抽一次
  48. }
  49. ret.Times, ret.PrizeTimes, ret.PrizeCost = prizewheel.GetWheelTimes(req.UserId)
  50. reply.Resp.RetCode = 1
  51. d, _ := json.Marshal(ret)
  52. reply.Resp.Data = string(d)
  53. return nil
  54. }
  55. func (s *Server) GetPrizeRecord(ctx context.Context, args *client.Request, reply *client.Reply) error {
  56. record := prizewheel.GetRecord()
  57. reply.Resp.RetCode = 1
  58. d, _ := json.Marshal(record)
  59. reply.Resp.Data = string(d)
  60. return nil
  61. }