package fwh_pro import ( "encoding/json" "errors" "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 编码 return FwhHttpGet("https://energy.franklinwh.com/api-energy/power/getFhpPowerByDayOld", params) } // 从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 }