simCardManageServices.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. package services
  2. import (
  3. "fwh-toolbox-server/domain"
  4. "fwh-toolbox-server/dto"
  5. "fwh-toolbox-server/repositories"
  6. "go.uber.org/zap"
  7. )
  8. // 查询SIM卡信息(批量)
  9. func GetSimCardBatchInfo(page uint, size uint, search string, status *string, platform *string) (*dto.ResPage[dto.SimCardInfo], error) {
  10. infoList, err := repositories.GetSimCardBatchInfo(page, size, search, status, platform)
  11. if err != nil {
  12. zap.L().Error("repositories.GetSimCardBatchInfo failed.", zap.String("err", err.Error()), zap.Uint("page", page), zap.Uint("size", size), zap.String("search", search), zap.Any("status", status))
  13. return nil, err
  14. }
  15. result := dto.ResPage[dto.SimCardInfo]{
  16. Data: []dto.SimCardInfo{},
  17. PageSize: infoList.PageSize,
  18. PageNum: infoList.PageNum,
  19. Total: infoList.Total,
  20. }
  21. for _, info := range infoList.Data {
  22. snList := []string{}
  23. siteList, err := repositories.GetSiteInfoManageListFromGiccid(info.GICCID)
  24. if err != nil {
  25. zap.L().Error("repositories.GetSiteInfoManageListFromGiccid failed.", zap.String("err", err.Error()), zap.String("GICCID", info.GICCID))
  26. } else {
  27. for _, site := range siteList {
  28. snList = append(snList, site.Sn)
  29. }
  30. }
  31. result.Data = append(result.Data, dto.SimCardInfo{
  32. GICCID: info.GICCID,
  33. SN: snList,
  34. IMEI: info.IMEI,
  35. IMSI: info.IMSI,
  36. MSISDN: info.MSISDN,
  37. Status: info.Status,
  38. Platform: info.Platform,
  39. ExpirationTime: info.ExpirationTime,
  40. Month: info.Month,
  41. AllDataUsage: info.AllDataUsage,
  42. UpdateTime: info.UpdateTime,
  43. })
  44. }
  45. return &result, nil
  46. }
  47. // 查询SIM卡信息(单卡)
  48. func GetSimCardInfo(id string) (*domain.SimCardInfo, error) {
  49. return repositories.GetSimCardInfo(id)
  50. }
  51. // GetSimCardBatchByIDs 按 GICCID 列表批量查询 SIM 卡信息(含关联 SN),
  52. // 返回富信息列表(与 GetSimCardBatchInfo 的 Data 元素结构一致)。
  53. // 未命中的 GICCID 不会出现在结果中。
  54. func GetSimCardBatchByIDs(ids []string) ([]dto.SimCardInfo, error) {
  55. infoList, err := repositories.GetSimCardInfoByIDs(ids)
  56. if err != nil {
  57. zap.L().Error("repositories.GetSimCardInfoByIDs failed.", zap.String("err", err.Error()), zap.Int("idCount", len(ids)))
  58. return nil, err
  59. }
  60. result := make([]dto.SimCardInfo, 0, len(infoList))
  61. for _, info := range infoList {
  62. snList := []string{}
  63. siteList, err := repositories.GetSiteInfoManageListFromGiccid(info.GICCID)
  64. if err != nil {
  65. zap.L().Error("repositories.GetSiteInfoManageListFromGiccid failed.", zap.String("err", err.Error()), zap.String("GICCID", info.GICCID))
  66. } else {
  67. for _, site := range siteList {
  68. snList = append(snList, site.Sn)
  69. }
  70. }
  71. result = append(result, dto.SimCardInfo{
  72. GICCID: info.GICCID,
  73. SN: snList,
  74. IMEI: info.IMEI,
  75. IMSI: info.IMSI,
  76. MSISDN: info.MSISDN,
  77. Status: info.Status,
  78. Platform: info.Platform,
  79. ExpirationTime: info.ExpirationTime,
  80. Month: info.Month,
  81. AllDataUsage: info.AllDataUsage,
  82. UpdateTime: info.UpdateTime,
  83. })
  84. }
  85. return result, nil
  86. }
  87. // 查询SIM卡月数据(单卡)
  88. func GetSimCardMonthlyData(month string, id string) (*domain.SimCardMonthlyData, error) {
  89. return repositories.GetSimCardMonthlyData(month, id)
  90. }