fwh_siteInfo.go 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. package fwh_test
  2. import (
  3. "fmt"
  4. "fwh-toolbox-server/domain"
  5. "fwh-toolbox-server/dto"
  6. "net/url"
  7. "strconv"
  8. "strings"
  9. )
  10. type SiteBaseInfoListPayload struct {
  11. Search *string `json:"search,omitempty"` // 只能搜索单条SN
  12. Serials *string `json:"serials,omitempty"` // 可搜索多条SN,SN之间以‘,’隔开
  13. CountryId *int `json:"countryId,omitempty"`
  14. ProvinceId *int `json:"provinceId,omitempty"`
  15. CityId *int `json:"cityId,omitempty"`
  16. NetworkStatus *int `json:"networkStatus,omitempty"`
  17. DeviceStatus *int `json:"deviceStatus,omitempty"`
  18. OnOffStatus *int `json:"onOffStatus,omitempty"`
  19. PageSize uint `json:"pageSize"`
  20. PageNum uint `json:"pageNum"`
  21. Lang string `json:"lang"`
  22. }
  23. type SiteInfoListPayload struct {
  24. Search *string `json:"search,omitempty"` // 只能搜索单条SN
  25. CountryId *int `json:"countryId,omitempty"`
  26. ProvinceId *int `json:"provinceId,omitempty"`
  27. CityId *int `json:"cityId,omitempty"`
  28. PageSize uint `json:"pageSize"`
  29. PageNum uint `json:"pageNum"`
  30. Lang string `json:"lang"`
  31. }
  32. type SiteModeInfoPayload struct {
  33. GatewayId string `json:"gatewayId"`
  34. ShowType int `json:"showType"`
  35. Lang string `json:"lang"`
  36. }
  37. // 查询站点基本信息
  38. func querySiteBaseInfoList(sn []string, pageSize uint, pageNum uint) (*domain.FwhResponse[[]dto.SiteBaseInfo], error) {
  39. snList := strings.Join(sn, ",")
  40. // 要发送的 JSON
  41. payload := SiteBaseInfoListPayload{
  42. Serials: &snList,
  43. PageSize: pageSize,
  44. PageNum: pageNum,
  45. Lang: "ZH_CN",
  46. }
  47. // 要发送的表单数据
  48. form := url.Values{}
  49. form.Set("serials", *payload.Serials) // *string 转 string
  50. form.Set("pageSize", fmt.Sprintf("%d", payload.PageSize))
  51. form.Set("pageNum", fmt.Sprintf("%d", payload.PageNum))
  52. form.Set("lang", payload.Lang)
  53. response, err := FwhHttpPostUnmarshal[[]dto.SiteBaseInfo](getFullEnergyUrl("/hes-gateway/manage/selectIotFirmwareGatewayList"), form)
  54. if err != nil {
  55. return nil, err
  56. }
  57. return response, nil
  58. }
  59. // 从fwh_test获取站点基本信息表
  60. func QuerySiteBaseInfoList(para dto.SiteBaseInfoPara) (*domain.FwhResponse[[]dto.SiteBaseInfo], error) {
  61. siteInfoRes, err := querySiteBaseInfoList(para.SiteList, para.PageSize, para.PageNum)
  62. if err != nil {
  63. return nil, err
  64. }
  65. if siteInfoRes.Code != 200 {
  66. return nil, fmt.Errorf("[QuerySiteBaseInfoList] 查询失败 code: %d, message: %s", siteInfoRes.Code, siteInfoRes.Message)
  67. }
  68. return siteInfoRes, nil
  69. }
  70. // 查询站点信息
  71. func querySiteInfoList(sn *string, pageSize uint, pageNum uint) (*domain.FwhPageResponse[[]domain.FwhSiteInfo], error) {
  72. // 构造 query 参数
  73. params := url.Values{}
  74. if sn != nil {
  75. params.Add("search", *sn)
  76. }
  77. params.Add("searchFlag", fmt.Sprintf("%d", 0)) // 0-全部 1-aGate名称 11-aGate序列号 2-aPower序列号 7-EMS_MAIN版本 8-EMS_DSP版本 10-aPower子版本号 13-协议版本 14-硬件版本 16-备注
  78. params.Add("pageSize", fmt.Sprintf("%d", pageSize))
  79. params.Add("pageNum", fmt.Sprintf("%d", pageNum))
  80. params.Add("lang", "ZH_CN")
  81. response, err := FwhHttpGetUnmarshalPage[[]domain.FwhSiteInfo](getFullEnergyUrl("/hes-gateway/manage/selectIotGatewayList"), params)
  82. if err != nil {
  83. return nil, err
  84. }
  85. return response, nil
  86. }
  87. // 从fwh_test获取站点基本信息表
  88. func QuerySiteInfoList(para dto.SiteInfoPara) (*domain.FwhPageResponse[[]domain.FwhSiteInfo], error) {
  89. siteInfoRes, err := querySiteInfoList(para.SN, para.PageSize, para.PageNum)
  90. if err != nil {
  91. return nil, err
  92. }
  93. if siteInfoRes.Code != 200 {
  94. return nil, fmt.Errorf("[QuerySiteInfoList] 查询失败 code: %d, message: %s", siteInfoRes.Code, siteInfoRes.Message)
  95. }
  96. return siteInfoRes, nil
  97. }
  98. // 查询站点列表(通用)
  99. func querySiteList(
  100. search string,
  101. searchFlag int,
  102. pageSize uint,
  103. pageNum uint,
  104. ) (*domain.FwhPageResponse[[]domain.FwhSiteInfo], error) {
  105. // 构造 query 参数
  106. params := url.Values{}
  107. params.Add("search", search)
  108. params.Add("searchFlag", fmt.Sprintf("%d", searchFlag)) // 0-全部 1-aGate名称 11-aGate序列号 2-aPower序列号 7-EMS_MAIN版本 8-EMS_DSP版本 10-aPower子版本号 13-协议版本 14-硬件版本 16-备注
  109. params.Add("pageSize", fmt.Sprintf("%d", pageSize))
  110. params.Add("pageNum", fmt.Sprintf("%d", pageNum))
  111. params.Add("lang", "ZH_CN")
  112. response, err := FwhHttpGetUnmarshalPage[[]domain.FwhSiteInfo](getFullEnergyUrl("/hes-gateway/manage/selectIotGatewayList"), params)
  113. if err != nil {
  114. return nil, err
  115. }
  116. return response, nil
  117. }
  118. // 从fwh_test获取站点列表
  119. func QuerySiteList(
  120. search string,
  121. searchFlag int,
  122. pageSize uint,
  123. pageNum uint,
  124. ) (*domain.FwhPageResponse[[]domain.FwhSiteInfo], error) {
  125. siteInfoRes, err := querySiteList(search, searchFlag, pageSize, pageNum)
  126. if err != nil {
  127. return nil, err
  128. }
  129. if siteInfoRes.Code != 200 {
  130. return nil, fmt.Errorf("[QuerySiteInfoList] 查询失败 code: %d, message: %s", siteInfoRes.Code, siteInfoRes.Message)
  131. }
  132. return siteInfoRes, nil
  133. }
  134. // 查询站点工作模式信息
  135. func querySiteModeInfo(sn string) (*domain.FwhResponse[dto.SiteModeInfo], error) {
  136. // 要发送的 JSON
  137. payload := SiteModeInfoPayload{
  138. GatewayId: sn,
  139. ShowType: 1,
  140. Lang: "ZH_CN",
  141. }
  142. // 要发送的表单数据
  143. form := url.Values{}
  144. form.Set("gatewayId", payload.GatewayId)
  145. form.Set("showType", strconv.Itoa(payload.ShowType))
  146. form.Set("lang", payload.Lang)
  147. response, err := FwhHttpPostUnmarshal[dto.SiteModeInfo](getFullEnergyUrl("/hes-gateway/manage/tou/getGatewayTouListV2"), form)
  148. if err != nil {
  149. return nil, err
  150. }
  151. return response, nil
  152. }
  153. // 从fwh_test获取站点工作模式信息
  154. func QuerySiteModeInfo(site string) (*domain.FwhResponse[dto.SiteModeInfo], error) {
  155. siteModeInfoRes, err := querySiteModeInfo(site)
  156. if err != nil {
  157. return nil, err
  158. }
  159. if siteModeInfoRes.Code != 200 {
  160. return nil, fmt.Errorf("[QuerySiteModeInfo] 查询失败 code: %d, message: %s", siteModeInfoRes.Code, siteModeInfoRes.Message)
  161. }
  162. return siteModeInfoRes, nil
  163. }