package fwh_pro import ( "encoding/json" "errors" "fmt" "fwh-toolbox-server/config" "fwh-toolbox-server/dto" "net/url" "time" ) // 查询站点功率流信息 func querySitePowerFlow(sn string, day time.Time) ([]byte, error) { // 构造 query 参数 params := url.Values{} params.Add("gatewayId", sn) params.Add("dayTime", day.Format(time.DateOnly)) // 会自动 URL 编码 reqUrl := fmt.Sprintf("https://%s/api-energy/power/getFhpPowerByDayOld", config.FWH_ENERGY) response, err := FwhHttpGet(reqUrl, params) if err != nil { return nil, err } return response.Body, nil } // 从fwh_pro获取站点功率流 func QuerySitePowerFlow(site string, day time.Time) (dto.SitePowerFlowResponse, error) { resByte, err := querySitePowerFlow(site, day) if err != nil { return dto.SitePowerFlowResponse{}, err } var sitePowerFlowRes dto.SitePowerFlowResponse // 反序列化(unmarshal) jsonErr := json.Unmarshal(resByte, &sitePowerFlowRes) if jsonErr != nil { return dto.SitePowerFlowResponse{}, jsonErr } if sitePowerFlowRes.Code == 401 { // TODO 尝试重新登录 return dto.SitePowerFlowResponse{}, errors.New("certification expired") } return sitePowerFlowRes, nil }