gm_redis.go 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package msg
  2. import (
  3. "fmt"
  4. "github.com/gin-gonic/gin"
  5. "net/http"
  6. "rocommon/service"
  7. "rocommon/util"
  8. "roserver/baseserver/model"
  9. dbmodel "roserver/db/model"
  10. "roserver/serverproto"
  11. "strconv"
  12. )
  13. func GmGetDataFromRedis(c *gin.Context) {
  14. uid := c.Param("uid")
  15. t := c.Param("type")
  16. switch t {
  17. case "item":
  18. bag := &serverproto.RoleBag{}
  19. if err := model.GetMessageFromRedis("role_bag_", uid, bag); err != nil && err != service.NIL {
  20. c.JSON(http.StatusBadRequest, fmt.Errorf("err != nil :%+v", err))
  21. return
  22. }
  23. c.JSON(http.StatusOK, bag)
  24. case "base":
  25. base := &serverproto.RoleBase{}
  26. if err := model.GetMessageFromRedis("role_", uid, base); err != nil && err != service.NIL {
  27. c.JSON(http.StatusBadRequest, fmt.Errorf("err != nil :%+v", err))
  28. return
  29. }
  30. c.JSON(http.StatusOK, base)
  31. case "open_time":
  32. ssAckMsg := &serverproto.SSGetServerCompetitionAck{RounInfo: &serverproto.StRecRound{}}
  33. dbmodel.ServerCompetitionGet(ssAckMsg)
  34. c.JSON(http.StatusOK, ssAckMsg)
  35. default:
  36. c.String(http.StatusOK, "参数错误")
  37. }
  38. }
  39. func GetServiceConnByZone(c *gin.Context) {
  40. c.JSON(http.StatusOK, model.ServiceConnByZone)
  41. }
  42. func GetPayAllMoney(c *gin.Context) {
  43. listStr, err := service.GetRedis().HKeys(model.PayOrderPrefix).Result()
  44. if err != nil {
  45. return
  46. }
  47. var Response = struct {
  48. All float32 `json:"all"`
  49. Goods map[string]float32 `json:"goods"`
  50. }{
  51. All: 0,
  52. Goods: make(map[string]float32),
  53. }
  54. for idx := 0; idx < len(listStr); idx++ {
  55. msgStr, err := service.GetRedis().HGet(model.PayOrderPrefix, listStr[idx]).Result()
  56. if err != nil {
  57. util.ErrorF("GetPayOrderOkListFromRedis ok order not exist orderId=%v err=%v", listStr[idx], err)
  58. continue
  59. }
  60. payInfo := &serverproto.PayOrderSaveInfo{}
  61. err = model.GetDecodeMessage(payInfo, msgStr)
  62. if err != nil {
  63. util.ErrorF("GetPayOrderOkListFromRedis decode order=%v err=%v", listStr[idx], err)
  64. continue
  65. }
  66. if payInfo.OrderState == int32(serverproto.PayOrderState_EPayOrderState_PayOk) {
  67. Response.All += payInfo.Amount
  68. strKey := fmt.Sprintf("%s_%s", strconv.Itoa(int(payInfo.GoodsId)), strconv.Itoa(int(payInfo.GoodsType)))
  69. Response.Goods[strKey] += payInfo.Amount
  70. }
  71. }
  72. c.JSON(http.StatusOK, Response)
  73. }