fighting.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package forms
  2. import (
  3. "errors"
  4. "github.com/spf13/cast"
  5. "strings"
  6. )
  7. type FightingListReq struct {
  8. ListReq
  9. Id int64 `json:"id" form:"id"`
  10. UserId int64 `json:"user_id" form:"playerId"`
  11. ChapterId int32 `json:"chapter_id" form:"chapter_id"`
  12. Difficulty int32 `json:"difficulty" form:"difficulty"`
  13. EventAt []int64 `json:"event_at" form:"event_at[]"`
  14. }
  15. func (req *FightingListReq) Check() error {
  16. if req.EventAt != nil && len(req.EventAt) != 2 {
  17. return errors.New("时间必须选择一个区间或者留空")
  18. }
  19. if len(req.EventAt) == 2 {
  20. if req.EventAt[0] > req.EventAt[1] {
  21. return errors.New("时间选择的区间值不合理")
  22. }
  23. // 默认是毫秒
  24. req.EventAt[0] = req.EventAt[0] / 1000
  25. req.EventAt[1] = req.EventAt[1] / 1000
  26. }
  27. return nil
  28. }
  29. type FightingExportReq struct {
  30. Id int64 `json:"id" form:"id"`
  31. UserId int64 `json:"user_id" form:"playerId"`
  32. ChapterId int32 `json:"chapter_id" form:"chapter_id"`
  33. Difficulty int32 `json:"difficulty" form:"difficulty"`
  34. EventAt string `json:"event_at" form:"event_at"`
  35. EventStamp []int64 `json:"-"`
  36. }
  37. func (req *FightingExportReq) Check() error {
  38. eventAt := strings.Split(req.EventAt, ",")
  39. if len(eventAt) != 2 {
  40. return errors.New("必须选择一个时间区间且不能大于一天")
  41. }
  42. if cast.ToInt64(eventAt[0]) > cast.ToInt64(eventAt[1]) {
  43. return errors.New("时间选择的区间值不合理")
  44. }
  45. // 默认是毫秒
  46. req.EventStamp = append(req.EventStamp, cast.ToInt64(eventAt[0])/1000, cast.ToInt64(eventAt[1])/1000)
  47. if (req.EventStamp[1] - req.EventStamp[0]) > 24*3600 {
  48. return errors.New("不能导出大于一天的数据")
  49. }
  50. return nil
  51. }