detail.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package redpacket
  2. import (
  3. "app/commons/constant"
  4. "github.com/gin-gonic/gin"
  5. )
  6. // GetDetail 获取红包详情
  7. func (s *Server) GetDetail(ctx *gin.Context) {
  8. c := s.FromContext(ctx)
  9. packetNo := ctx.Param("packetNo")
  10. if packetNo == "" {
  11. c.Fail(constant.ErrorParams)
  12. return
  13. }
  14. packet, records, err := s.RedPacketService.GetRedPacketDetail(packetNo)
  15. if err != nil {
  16. c.Fail("红包不存在")
  17. return
  18. }
  19. c.Resp(gin.H{
  20. "packet": packet,
  21. "records": records,
  22. })
  23. }
  24. // GetRecords 获取我的红包记录
  25. func (s *Server) GetRecords(ctx *gin.Context) {
  26. c := s.FromContext(ctx)
  27. type request struct {
  28. Page int `form:"page"`
  29. PageSize int `form:"pageSize"`
  30. }
  31. req := new(request)
  32. if err := c.ShouldBindQuery(req); err != nil {
  33. c.Fail(constant.ErrorParams)
  34. return
  35. }
  36. // 默认值
  37. if req.Page <= 0 {
  38. req.Page = 1
  39. }
  40. if req.PageSize <= 0 || req.PageSize > 100 {
  41. req.PageSize = 20
  42. }
  43. records, total, err := s.RedPacketService.GetUserRedPacketRecords(
  44. c.UserId(),
  45. req.Page,
  46. req.PageSize,
  47. )
  48. if err != nil {
  49. c.Fail("查询失败")
  50. return
  51. }
  52. c.Resp(gin.H{
  53. "records": records,
  54. "total": total,
  55. "page": req.Page,
  56. "pageSize": req.PageSize,
  57. })
  58. }