simCardManageControllers.go 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /*
  2. * SIM Card Manage API List
  3. * /simCardManage/info - GET 查询SIM卡信息
  4. * /simCardManage/monthly - GET 查询SIM卡月数据
  5. */
  6. package controllers
  7. import (
  8. "fwh-toolbox-server/services"
  9. "regexp"
  10. "strconv"
  11. "github.com/gofiber/fiber/v2"
  12. "go.uber.org/zap"
  13. )
  14. var yearMonthRegexp = regexp.MustCompile(`^\d{4}-(0[1-9]|1[0-2])$`)
  15. // 查询SIM卡信息
  16. // /simCardManage/info
  17. func GetSimCardBatchInfo(c *fiber.Ctx) error {
  18. search := c.Query("search", "")
  19. pageStr := c.Query("page", "1")
  20. page, err := strconv.ParseUint(pageStr, 10, 64)
  21. if err != nil {
  22. zap.L().Warn("Invalid request parameter", zap.String("err", err.Error()), zap.String("page", pageStr))
  23. return Fail(c, "Invalid request parameter (page)")
  24. }
  25. sizeStr := c.Query("size", "20")
  26. size, err := strconv.ParseUint(sizeStr, 10, 64)
  27. if err != nil {
  28. zap.L().Warn("Invalid request parameter", zap.String("err", err.Error()), zap.String("size", sizeStr))
  29. return Fail(c, "Invalid request parameter (size)")
  30. }
  31. status := c.Query("status", "")
  32. var statusPtr *string
  33. if status != "" {
  34. statusPtr = &status
  35. }
  36. platform := c.Query("platform", "")
  37. var platformPtr *string
  38. if platform != "" {
  39. platformPtr = &platform
  40. }
  41. date, err := services.GetSimCardBatchInfo(uint(page), uint(size), search, statusPtr, platformPtr)
  42. if err != nil {
  43. return Error(c, "Get SIM card info failed.")
  44. }
  45. return Success(c, date)
  46. }
  47. // 查询SIM卡月数据
  48. // /simCardManage/monthly
  49. func GetSimCardMonthlyData(c *fiber.Ctx) error {
  50. id := c.Query("id", "")
  51. month := c.Query("month", "")
  52. if id == "" {
  53. zap.L().Warn("id parameter is empty")
  54. return Fail(c, "id parameter is empty")
  55. }
  56. if !yearMonthRegexp.MatchString(month) {
  57. zap.L().Warn("month parameter is in the wrong format", zap.String("month", month))
  58. return Fail(c, "month parameter is in the wrong format")
  59. }
  60. date, err := services.GetSimCardMonthlyData(month, id)
  61. if err != nil {
  62. return Error(c, "Get SIM card monthly data failed.")
  63. }
  64. return Success(c, date)
  65. }