|
|
@@ -1,461 +1,193 @@
|
|
|
package controllers
|
|
|
|
|
|
import (
|
|
|
- "context"
|
|
|
- "encoding/json"
|
|
|
- "errors"
|
|
|
- "fwh-toolbox-server/database"
|
|
|
- "fwh-toolbox-server/ext/api/fwh_pro"
|
|
|
+ "fwh-toolbox-server/domain"
|
|
|
+ "fwh-toolbox-server/dto"
|
|
|
+ "fwh-toolbox-server/services"
|
|
|
"time"
|
|
|
|
|
|
- "go.mongodb.org/mongo-driver/bson"
|
|
|
- "go.mongodb.org/mongo-driver/mongo"
|
|
|
- "go.mongodb.org/mongo-driver/mongo/options"
|
|
|
+ "github.com/gofiber/fiber/v2"
|
|
|
+ "go.uber.org/zap"
|
|
|
)
|
|
|
|
|
|
-type StateConfig struct {
|
|
|
- Enable bool `bson:"enable" json:"enable"`
|
|
|
-}
|
|
|
-
|
|
|
-type SocConfig struct {
|
|
|
- Enable bool `bson:"enable" json:"enable"`
|
|
|
-}
|
|
|
-
|
|
|
-type APowerConfig struct {
|
|
|
- Enable bool `bson:"enable" json:"enable"`
|
|
|
-}
|
|
|
-
|
|
|
-type AlarmConfig struct {
|
|
|
- Enable bool `bson:"enable" json:"enable"`
|
|
|
-}
|
|
|
-
|
|
|
-type VersionConfig struct {
|
|
|
- Enable bool `bson:"enable" json:"enable"`
|
|
|
-}
|
|
|
-
|
|
|
-type TariffsConfig struct {
|
|
|
- Enable bool `bson:"enable" json:"enable"`
|
|
|
-}
|
|
|
-
|
|
|
-type OthersConfig struct {
|
|
|
- Enable bool `bson:"enable" json:"enable"`
|
|
|
-}
|
|
|
-
|
|
|
-type MonitorPageConfig struct {
|
|
|
- State StateConfig `bson:"state" json:"state"`
|
|
|
- Soc SocConfig `bson:"soc" json:"soc"`
|
|
|
- APower APowerConfig `bson:"aPower" json:"aPower"`
|
|
|
- Alarm AlarmConfig `bson:"alarm" json:"alarm"`
|
|
|
- Version VersionConfig `bson:"version" json:"version"`
|
|
|
- Tariffs TariffsConfig `bson:"tariffs" json:"tariffs"`
|
|
|
- Others OthersConfig `bson:"others" json:"others"`
|
|
|
-}
|
|
|
-
|
|
|
-type SitesMonitorConfig struct {
|
|
|
- Name string `bson:"name" json:"name"`
|
|
|
- Description string `bson:"description" json:"description"`
|
|
|
- SiteList []string `bson:"siteList" json:"siteList"`
|
|
|
- PageConfig *MonitorPageConfig `bson:"pageConfig,omitempty" json:"pageConfig,omitempty"`
|
|
|
-}
|
|
|
-
|
|
|
-type SiteBaseInfoPara struct {
|
|
|
- SiteList []string `json:"siteList"`
|
|
|
- PageSize uint `json:"pageSize"`
|
|
|
- PageNum uint `json:"pageNum"`
|
|
|
-}
|
|
|
-
|
|
|
-type SiteBaseInfo struct {
|
|
|
- Id string `json:"id"`
|
|
|
- Name *string `json:"name"`
|
|
|
- FhpSn string `json:"fhpSn"`
|
|
|
- ActiveStatus int `json:"activeStatus"`
|
|
|
- ActiveTime string `json:"activeTime"`
|
|
|
- Country string `json:"country"`
|
|
|
- Province string `json:"province"`
|
|
|
- City string `json:"city"`
|
|
|
- OnOffStatus int `json:"onOffStatus"`
|
|
|
- RealSysHdVersion string `json:"realSysHdVersion"`
|
|
|
- RunStatus int `json:"runStatus"`
|
|
|
- Version string `json:"version"`
|
|
|
-}
|
|
|
-
|
|
|
-type SiteBaseInfoResponse struct {
|
|
|
- Code int `json:"code"`
|
|
|
- Message string `json:"message"`
|
|
|
- Result []SiteBaseInfo `json:"result"`
|
|
|
- Success bool `json:"success"`
|
|
|
- Total uint `json:"total"`
|
|
|
-}
|
|
|
-
|
|
|
-type SiteInfoPara struct {
|
|
|
- SN *string `json:"sn"`
|
|
|
- PageSize uint `json:"pageSize"`
|
|
|
- PageNum uint `json:"pageNum"`
|
|
|
-}
|
|
|
-
|
|
|
-type SiteInfo struct {
|
|
|
- Id string `json:"id"`
|
|
|
- Name *string `json:"name"`
|
|
|
- FhpSn string `json:"fhpSn"` // aPower SN 多设备用,分割
|
|
|
- ActiveStatus int `json:"activeStatus"` // 激活状态 0-未激活 1-激活
|
|
|
- ActiveTime string `json:"activeTime"` // 激活时间(北京时间)
|
|
|
- LocalActiveTime string `json:"localActiveTime"` // 激活时间(站点当地时间)
|
|
|
- Country string `json:"country"` // 国家
|
|
|
- Province string `json:"province"` // 州/省
|
|
|
- City string `json:"city"` // 城市
|
|
|
- RealSysHdVersion string `json:"realSysHdVersion"` // 系统版本信息
|
|
|
- Version string `json:"version"` // 设备固件版本
|
|
|
- InstallerName string `json:"installerName"` // 安装商名称
|
|
|
- Longitude string `json:"longitude"` // 经度
|
|
|
- Latitude string `json:"latitude"` // 纬度
|
|
|
- ICCID string `json:"iccId"`
|
|
|
- IMEI string `json:"imei"`
|
|
|
- FirmUpgradeTime string `json:"firmUpgradeTime"` // 固件最后更新时间 YYYY-MM-DD HH:mm:SS
|
|
|
- CreateTime string `json:"createTime"` // 设备首次登录时间 YYYY-MM-DD HH:mm:SS
|
|
|
- TimeZone float32 `json:"timeZone"` // 时区数值
|
|
|
- ZoneInfo string `json:"zoneInfo"` // 时区信息 America/Los_Angeles
|
|
|
- GenEn int `json:"genEn"` // 发电机是否使能 0-不使能 1-使能
|
|
|
- Remark *string `json:"remark"` // 备注信息
|
|
|
-}
|
|
|
-
|
|
|
-type SiteInfoResponse struct {
|
|
|
- Code int `json:"code"`
|
|
|
- Message string `json:"message"`
|
|
|
- Result []SiteInfo `json:"result"`
|
|
|
- Success bool `json:"success"`
|
|
|
- Total uint `json:"total"`
|
|
|
-}
|
|
|
-
|
|
|
-type WorkModeInfo struct {
|
|
|
- Id uint `json:"id"`
|
|
|
- OldIndex uint `json:"oldIndex"`
|
|
|
- Name string `json:"name"`
|
|
|
- Soc float32 `json:"soc"`
|
|
|
- MaxSoc float32 `json:"maxSoc"`
|
|
|
- MinSoc float32 `json:"minSoc"`
|
|
|
- DischargeDepthSoc *float32 `json:"dischargeDepthSoc"`
|
|
|
- WorkMode uint `json:"workMode"`
|
|
|
- EnergyIncentivesType uint `json:"energyIncentivesType"`
|
|
|
- ElectricityType uint `json:"electricityType"`
|
|
|
-}
|
|
|
-
|
|
|
-type SiteModeInfo struct {
|
|
|
- CurrendId uint `json:"currendId"`
|
|
|
- List []WorkModeInfo `json:"list"`
|
|
|
-}
|
|
|
-
|
|
|
-type SiteModeInfoResponse struct {
|
|
|
- Code int `json:"code"`
|
|
|
- Msg string `json:"msg"`
|
|
|
- Result SiteModeInfo `json:"result"`
|
|
|
- Success bool `json:"success"`
|
|
|
-}
|
|
|
-
|
|
|
-type SitePowerFlow struct {
|
|
|
- Index uint `json:"index"` // 非当天为0,当天为实时数量
|
|
|
- DeviceTimeArray []string `json:"deviceTimeArray"` // 设备本地时间,格式 “2025-08-18 00:00:00”
|
|
|
- PowerFhpArray []float32 `json:"powerFhpArray"`
|
|
|
- PowerGenArray []float32 `json:"powerGenArray"`
|
|
|
- PowerLoadArray []float32 `json:"powerLoadArray"`
|
|
|
- PowerSunArray []float32 `json:"powerSunArray"`
|
|
|
- PowerUtiArray []float32 `json:"powerUtiArray"`
|
|
|
- SocArray []float32 `json:"socArray"`
|
|
|
- RunStatusArray []uint `json:"runStatusArray"` // 运行状态,0:待机;1:充电;2:放电;3:故障
|
|
|
- KwhTotalArray []float32 `json:"kwhTotalArray"` // 总可用电量,应该是根据SOC推算出来的。
|
|
|
-}
|
|
|
-
|
|
|
-type SitePowerFlowResponse struct {
|
|
|
- Code int `json:"code"`
|
|
|
- Msg string `json:"msg"`
|
|
|
- Result SitePowerFlow `json:"result"`
|
|
|
-}
|
|
|
-
|
|
|
-type SiteAlarmList struct {
|
|
|
- Id uint `json:"id"`
|
|
|
- GatewayId string `json:"gatewayId"`
|
|
|
- AlarmEqSn string `json:"alarmEqSn"`
|
|
|
- AlarmCode string `json:"alarmCode"`
|
|
|
- CommonAlarmCode string `json:"commonAlarmCode"`
|
|
|
- Level int `json:"level"`
|
|
|
- Time string `json:"time"`
|
|
|
- LogName string `json:"logName"`
|
|
|
- CommonLogName string `json:"commonLogName"`
|
|
|
- LogNameEn string `json:"logNameEn"`
|
|
|
- CommonLogNameEn string `json:"commonLogNameEn"`
|
|
|
-}
|
|
|
-
|
|
|
-type SiteAlarmListResponse struct {
|
|
|
- Code int `json:"code"`
|
|
|
- Message string `json:"message"`
|
|
|
- Result []SiteAlarmList `json:"result"`
|
|
|
- Success bool `json:"success"`
|
|
|
- Total uint `json:"total"`
|
|
|
-}
|
|
|
-
|
|
|
-// 从数据库获取站点监控配置列表
|
|
|
-func GetSiteMonitorConfig() ([]SitesMonitorConfig, error) {
|
|
|
- ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
|
|
- defer cancel()
|
|
|
-
|
|
|
- collection := database.GetCollection("SiteMonitorConfig")
|
|
|
- cursor, err := collection.Find(ctx, bson.M{}) // 空条件,查全部
|
|
|
+// 获取站点监控管理名称表
|
|
|
+// /sitesMonitor/manage/nameList
|
|
|
+func GetSitesMonitorNameList(c *fiber.Ctx) error {
|
|
|
+ names, err := services.GetSiteMonitorNameList()
|
|
|
if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- defer cursor.Close(ctx)
|
|
|
-
|
|
|
- var configList []SitesMonitorConfig
|
|
|
- for cursor.Next(ctx) {
|
|
|
- var cfg SitesMonitorConfig
|
|
|
- if err := cursor.Decode(&cfg); err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- configList = append(configList, cfg)
|
|
|
+ zap.L().Error("查询站点监控管理名称表错误。", zap.String("err", err.Error()))
|
|
|
+ return JSONResponseNoData(c, 500, "Database read failed. (MongoDb)")
|
|
|
}
|
|
|
-
|
|
|
- return configList, nil
|
|
|
+ return JSONResponse(c, 0, "success", names)
|
|
|
}
|
|
|
|
|
|
-// 从数据库获取监控名列表
|
|
|
-func GetSiteMonitorNameList() ([]string, error) {
|
|
|
- ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
|
|
- defer cancel()
|
|
|
-
|
|
|
- collection := database.GetCollection("SiteMonitorConfig")
|
|
|
- cursor, err := collection.Find(
|
|
|
- ctx,
|
|
|
- bson.M{}, // 空条件,查全部
|
|
|
- options.Find().SetProjection(bson.M{
|
|
|
- "name": 1, // 只要 name 字段
|
|
|
- "_id": 0, // 不要 _id 字段(默认会返回)
|
|
|
- }),
|
|
|
- )
|
|
|
+// 获取单个监控配置
|
|
|
+// /sitesMonitor/manage/config/:name
|
|
|
+func GetSitesMonitorConfig(c *fiber.Ctx) error {
|
|
|
+ name := c.Params("name")
|
|
|
+ configList, err := services.GetOneSiteMonitorConfig(name)
|
|
|
if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- defer cursor.Close(ctx)
|
|
|
-
|
|
|
- var nameList []string
|
|
|
- for cursor.Next(ctx) {
|
|
|
- var result struct {
|
|
|
- Name string `bson:"name"`
|
|
|
- }
|
|
|
- if err := cursor.Decode(&result); err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- nameList = append(nameList, result.Name)
|
|
|
- }
|
|
|
-
|
|
|
- return nameList, nil
|
|
|
-}
|
|
|
-
|
|
|
-// 从数据库获取一条站点监控配置
|
|
|
-func GetOneSiteMonitorConfig(name string) ([]SitesMonitorConfig, error) {
|
|
|
- ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
|
|
- defer cancel()
|
|
|
-
|
|
|
- collection := database.GetCollection("SiteMonitorConfig")
|
|
|
- var cfg SitesMonitorConfig
|
|
|
- err := collection.FindOne(ctx, bson.M{"name": name}).Decode(&cfg)
|
|
|
- if err == mongo.ErrNoDocuments {
|
|
|
- return []SitesMonitorConfig{}, nil
|
|
|
- } else if err != nil {
|
|
|
- return nil, err
|
|
|
+ zap.L().Error("查询单个监控配置错误。", zap.String("err", err.Error()))
|
|
|
+ return JSONResponseNoData(c, 500, "Database read failed. (MongoDb)")
|
|
|
+ } else if len(configList) != 1 {
|
|
|
+ return JSONResponseNoData(c, 204, "User not found")
|
|
|
+ }
|
|
|
+ return JSONResponse(c, 0, "success", configList[0])
|
|
|
+}
|
|
|
+
|
|
|
+// 更新一个监控配置
|
|
|
+// /sitesMonitor/manage/config/:name
|
|
|
+func UpdateSitesMonitorConfig(c *fiber.Ctx) error {
|
|
|
+ name := c.Params("name")
|
|
|
+ var body domain.SitesMonitorConfig
|
|
|
+ if err := c.BodyParser(&body); err != nil {
|
|
|
+ return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{
|
|
|
+ "code": 400,
|
|
|
+ "message": "Invalid request body",
|
|
|
+ })
|
|
|
+ }
|
|
|
+ err := services.UpdateSiteMonitorConfig(name, body)
|
|
|
+ if err != nil {
|
|
|
+ zap.L().Error("更新一个监控配置错误。", zap.String("err", err.Error()))
|
|
|
+ return JSONResponseNoData(c, 500, "Database write failed. (MongoDb)")
|
|
|
}
|
|
|
-
|
|
|
- var configList []SitesMonitorConfig
|
|
|
- configList = append(configList, cfg)
|
|
|
-
|
|
|
- return configList, nil
|
|
|
+ return JSONResponse(c, 0, "success", body)
|
|
|
}
|
|
|
|
|
|
-// 插入一条站点监控配置到数据库
|
|
|
-func InsertSiteMonitorConfig(config SitesMonitorConfig) error {
|
|
|
- ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
|
|
- defer cancel()
|
|
|
-
|
|
|
- collection := database.GetCollection("SiteMonitorConfig")
|
|
|
-
|
|
|
- // _, err := collection.InsertOne(ctx, config)
|
|
|
- filter := bson.M{"name": config.Name} // 按用户名匹配
|
|
|
- update := bson.M{
|
|
|
- "$set": config, // 如果存在就更新所有字段
|
|
|
+// 更新一个监控页面配置
|
|
|
+// /sitesMonitor/manage/pageConfig/:name
|
|
|
+func UpdateSitesMonitorPageConfig(c *fiber.Ctx) error {
|
|
|
+ name := c.Params("name")
|
|
|
+ var body domain.MonitorPageConfig
|
|
|
+ if err := c.BodyParser(&body); err != nil {
|
|
|
+ return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{
|
|
|
+ "code": 400,
|
|
|
+ "message": "Invalid request body",
|
|
|
+ })
|
|
|
}
|
|
|
-
|
|
|
- opts := options.Update().SetUpsert(true)
|
|
|
-
|
|
|
- _, err := collection.UpdateOne(ctx, filter, update, opts)
|
|
|
+ err := services.UpdateSiteMonitorPageConfig(name, body)
|
|
|
if err != nil {
|
|
|
- return err
|
|
|
+ zap.L().Error("更新一个监控页面配置错误。", zap.String("err", err.Error()))
|
|
|
+ return JSONResponseNoData(c, 500, "Database write failed. (MongoDb)")
|
|
|
}
|
|
|
-
|
|
|
- return nil
|
|
|
+ return JSONResponse(c, 0, "success", body)
|
|
|
}
|
|
|
|
|
|
-// 更新一条站点监控配置到数据库
|
|
|
-func UpdateSiteMonitorConfig(name string, config SitesMonitorConfig) error {
|
|
|
- ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
|
|
- defer cancel()
|
|
|
-
|
|
|
- collection := database.GetCollection("SiteMonitorConfig")
|
|
|
-
|
|
|
- // _, err := collection.InsertOne(ctx, config)
|
|
|
- filter := bson.M{"name": name} // 按用户名匹配
|
|
|
- update := bson.M{
|
|
|
- "$set": config, // 如果存在就更新所有字段
|
|
|
- }
|
|
|
-
|
|
|
- opts := options.Update().SetUpsert(true)
|
|
|
-
|
|
|
- _, err := collection.UpdateOne(ctx, filter, update, opts)
|
|
|
+// 删除一个监控
|
|
|
+// /sitesMonitor/manage/config/:name
|
|
|
+func DeleteSitesMonitorConfig(c *fiber.Ctx) error {
|
|
|
+ name := c.Params("name")
|
|
|
+ err := services.DeleteSiteMonitorConfig(name)
|
|
|
if err != nil {
|
|
|
- return err
|
|
|
+ zap.L().Error("删除一个监控错误。", zap.String("err", err.Error()))
|
|
|
+ return JSONResponseNoData(c, 500, "Database delete failed. (MongoDb)")
|
|
|
}
|
|
|
-
|
|
|
- return nil
|
|
|
+ return JSONResponseNoData(c, 0, "success")
|
|
|
}
|
|
|
|
|
|
-// 删除一条站点监控配置
|
|
|
-func DeleteSiteMonitorConfig(name string) error {
|
|
|
- ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
|
|
- defer cancel()
|
|
|
-
|
|
|
- filter := bson.M{"name": name} // 删除条件
|
|
|
- collection := database.GetCollection("SiteMonitorConfig")
|
|
|
- _, err := collection.DeleteOne(ctx, filter)
|
|
|
+// 获取所有监控配置
|
|
|
+// /sitesMonitor/manage/config
|
|
|
+func GetSitesMonitorAllConfig(c *fiber.Ctx) error {
|
|
|
+ configList, err := services.GetSiteMonitorConfig()
|
|
|
if err != nil {
|
|
|
- return err
|
|
|
+ zap.L().Error("查询所有监控配置错误。", zap.String("err", err.Error()))
|
|
|
+ return JSONResponseNoData(c, 500, "Database read failed. (MongoDb)")
|
|
|
}
|
|
|
-
|
|
|
- return nil
|
|
|
+ return JSONResponse(c, 0, "success", configList)
|
|
|
}
|
|
|
|
|
|
-// 更新一条站点监控页面配置到数据库
|
|
|
-func UpdateSiteMonitorPageConfig(name string, config MonitorPageConfig) error {
|
|
|
- ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
|
|
- defer cancel()
|
|
|
-
|
|
|
- collection := database.GetCollection("SiteMonitorConfig")
|
|
|
-
|
|
|
- // _, err := collection.InsertOne(ctx, config)
|
|
|
- filter := bson.M{"name": name} // 按用户名匹配
|
|
|
- update := bson.M{
|
|
|
- "$set": bson.M{
|
|
|
- "pageConfig": config, // 更新页面配置字段
|
|
|
- },
|
|
|
+// 创建一个监控配置
|
|
|
+// /sitesMonitor/manage/config
|
|
|
+func CreateSitesMonitorConfig(c *fiber.Ctx) error {
|
|
|
+ var body domain.SitesMonitorConfig
|
|
|
+ if err := c.BodyParser(&body); err != nil {
|
|
|
+ return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{
|
|
|
+ "code": 400,
|
|
|
+ "message": "Invalid request body",
|
|
|
+ })
|
|
|
}
|
|
|
-
|
|
|
- opts := options.Update().SetUpsert(true)
|
|
|
-
|
|
|
- _, err := collection.UpdateOne(ctx, filter, update, opts)
|
|
|
+ err := services.InsertSiteMonitorConfig(body)
|
|
|
if err != nil {
|
|
|
- return err
|
|
|
+ zap.L().Error("创建一个监控配置错误。", zap.String("err", err.Error()))
|
|
|
+ return JSONResponseNoData(c, 500, "Database write failed. (MongoDb)")
|
|
|
}
|
|
|
-
|
|
|
- return nil
|
|
|
+ return JSONResponse(c, 0, "success", body)
|
|
|
}
|
|
|
|
|
|
-// 从fwh_pro获取站点基本信息表
|
|
|
-func QuerySiteBaseInfoList(para SiteBaseInfoPara) (SiteBaseInfoResponse, error) {
|
|
|
- resByte, err := fwh_pro.QuerySiteBaseInfoList(para.SiteList, para.PageSize, para.PageNum)
|
|
|
- if err != nil {
|
|
|
- return SiteBaseInfoResponse{}, err
|
|
|
- }
|
|
|
- var siteInfoRes SiteBaseInfoResponse
|
|
|
- // 反序列化(unmarshal)
|
|
|
- jsonErr := json.Unmarshal(resByte, &siteInfoRes)
|
|
|
- if jsonErr != nil {
|
|
|
- return SiteBaseInfoResponse{}, jsonErr
|
|
|
+// 批量获取站点信息表
|
|
|
+// /sitesMonitor/site/infoList
|
|
|
+func GetSiteInfoList(c *fiber.Ctx) error {
|
|
|
+ var body dto.SiteBaseInfoPara
|
|
|
+ if err := c.BodyParser(&body); err != nil {
|
|
|
+ return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{
|
|
|
+ "code": 400,
|
|
|
+ "message": "Invalid request body",
|
|
|
+ })
|
|
|
}
|
|
|
-
|
|
|
- if siteInfoRes.Code == 401 {
|
|
|
- // TODO 尝试重新登录
|
|
|
- return SiteBaseInfoResponse{}, errors.New("certification expired")
|
|
|
+ infoList, err := services.QuerySiteBaseInfoList(body)
|
|
|
+ if err != nil {
|
|
|
+ zap.L().Error("查询批量站点信息表错误。", zap.String("err", err.Error()))
|
|
|
+ return JSONResponseNoData(c, 500, "Database write failed. (MongoDb)")
|
|
|
}
|
|
|
-
|
|
|
- return siteInfoRes, nil
|
|
|
+ return JSONResponse(c, 0, "success", infoList)
|
|
|
}
|
|
|
|
|
|
-// 从fwh_pro获取站点基本信息表
|
|
|
-func QuerySiteInfoList(para SiteInfoPara) (SiteInfoResponse, error) {
|
|
|
- resByte, err := fwh_pro.QuerySiteInfoList(para.SN, para.PageSize, para.PageNum)
|
|
|
+// 获取单个站点信息
|
|
|
+// /sitesMonitor/site/:site/info
|
|
|
+func GetOneSiteInfo(c *fiber.Ctx) error {
|
|
|
+ site := c.Params("site")
|
|
|
+ siteInfo, err := services.QuerySiteBaseInfoList(dto.SiteBaseInfoPara{
|
|
|
+ SiteList: []string{site},
|
|
|
+ PageSize: 10,
|
|
|
+ PageNum: 1,
|
|
|
+ })
|
|
|
if err != nil {
|
|
|
- return SiteInfoResponse{}, err
|
|
|
- }
|
|
|
- var siteInfoRes SiteInfoResponse
|
|
|
- // 反序列化(unmarshal)
|
|
|
- jsonErr := json.Unmarshal(resByte, &siteInfoRes)
|
|
|
- if jsonErr != nil {
|
|
|
- return SiteInfoResponse{}, jsonErr
|
|
|
+ zap.L().Error("查询单个站点信息错误。", zap.String("err", err.Error()))
|
|
|
+ return JSONResponseNoData(c, 500, "fwh_pro query failed.")
|
|
|
}
|
|
|
-
|
|
|
- if siteInfoRes.Code == 401 {
|
|
|
- // TODO 尝试重新登录
|
|
|
- return SiteInfoResponse{}, errors.New("certification expired")
|
|
|
- }
|
|
|
-
|
|
|
- return siteInfoRes, nil
|
|
|
+ return JSONResponse(c, 0, "success", siteInfo)
|
|
|
}
|
|
|
|
|
|
-// 从fwh_pro获取站点工作模式信息
|
|
|
-func QuerySiteModeInfo(site string) (SiteModeInfoResponse, error) {
|
|
|
- resByte, err := fwh_pro.QuerySiteModeInfo(site)
|
|
|
+// 获取单个站点工作模式信息
|
|
|
+// /sitesMonitor/site/:site/modeInfo
|
|
|
+func GetOneSiteModeInfo(c *fiber.Ctx) error {
|
|
|
+ site := c.Params("site")
|
|
|
+ siteModeInfo, err := services.QuerySiteModeInfo(site)
|
|
|
if err != nil {
|
|
|
- return SiteModeInfoResponse{}, err
|
|
|
+ zap.L().Error("查询单个站点工作模式信息错误。", zap.String("err", err.Error()))
|
|
|
+ return JSONResponseNoData(c, 500, "fwh_pro query failed.")
|
|
|
}
|
|
|
- var siteModeInfoRes SiteModeInfoResponse
|
|
|
- // 反序列化(unmarshal)
|
|
|
- jsonErr := json.Unmarshal(resByte, &siteModeInfoRes)
|
|
|
- if jsonErr != nil {
|
|
|
- return SiteModeInfoResponse{}, jsonErr
|
|
|
- }
|
|
|
-
|
|
|
- if siteModeInfoRes.Code == 401 {
|
|
|
- // TODO 尝试重新登录
|
|
|
- return SiteModeInfoResponse{}, errors.New("certification expired")
|
|
|
- }
|
|
|
-
|
|
|
- return siteModeInfoRes, nil
|
|
|
+ return JSONResponse(c, 0, "success", siteModeInfo)
|
|
|
}
|
|
|
|
|
|
-// 从fwh_pro获取站点功率流
|
|
|
-func QuerySitePowerFlow(site string, day time.Time) (SitePowerFlowResponse, error) {
|
|
|
- resByte, err := fwh_pro.QuerySitePowerFlow(site, day)
|
|
|
+// 获取单个站点功率流
|
|
|
+// /sitesMonitor/site/:site/powerFlow/:day
|
|
|
+func GetOneSitePowerFlow(c *fiber.Ctx) error {
|
|
|
+ site := c.Params("site")
|
|
|
+ day := c.Params("day")
|
|
|
+ dayTime, err := time.Parse(time.DateOnly, day)
|
|
|
if err != nil {
|
|
|
- return SitePowerFlowResponse{}, err
|
|
|
- }
|
|
|
- var sitePowerFlowRes SitePowerFlowResponse
|
|
|
- // 反序列化(unmarshal)
|
|
|
- jsonErr := json.Unmarshal(resByte, &sitePowerFlowRes)
|
|
|
- if jsonErr != nil {
|
|
|
- return SitePowerFlowResponse{}, jsonErr
|
|
|
+ zap.L().Error("查询单个站点功率流参数错误。(day)", zap.String("err", err.Error()))
|
|
|
+ return JSONResponseNoData(c, 500, "day parament error.")
|
|
|
}
|
|
|
|
|
|
- if sitePowerFlowRes.Code == 401 {
|
|
|
- // TODO 尝试重新登录
|
|
|
- return SitePowerFlowResponse{}, errors.New("certification expired")
|
|
|
+ sitePowerFlow, err := services.QuerySitePowerFlow(site, dayTime)
|
|
|
+ if err != nil {
|
|
|
+ zap.L().Error("查询单个站点功率流错误。", zap.String("err", err.Error()))
|
|
|
+ return JSONResponseNoData(c, 500, "fwh_pro query failed.")
|
|
|
}
|
|
|
-
|
|
|
- return sitePowerFlowRes, nil
|
|
|
+ return JSONResponse(c, 0, "success", sitePowerFlow)
|
|
|
}
|
|
|
|
|
|
-// 从fwh_pro获取站点告警列表
|
|
|
-func QuerySiteAlarmList(site string) (SiteAlarmListResponse, error) {
|
|
|
- resByte, err := fwh_pro.QuerySiteAlarmList(site)
|
|
|
- if err != nil {
|
|
|
- return SiteAlarmListResponse{}, err
|
|
|
- }
|
|
|
- var siteAlarmListRes SiteAlarmListResponse
|
|
|
- // 反序列化(unmarshal)
|
|
|
- jsonErr := json.Unmarshal(resByte, &siteAlarmListRes)
|
|
|
- if jsonErr != nil {
|
|
|
- return SiteAlarmListResponse{}, jsonErr
|
|
|
- }
|
|
|
+// 获取单个站点告警列表
|
|
|
+// /sitesMonitor/site/:site/alarmList
|
|
|
+func GetOneSiteAlarmList(c *fiber.Ctx) error {
|
|
|
+ site := c.Params("site")
|
|
|
|
|
|
- if siteAlarmListRes.Code == 401 {
|
|
|
- // TODO 尝试重新登录
|
|
|
- return SiteAlarmListResponse{}, errors.New("certification expired")
|
|
|
+ siteAlarmList, err := services.QuerySiteAlarmList(site)
|
|
|
+ if err != nil {
|
|
|
+ zap.L().Error("查询单个站点告警列表错误。", zap.String("err", err.Error()))
|
|
|
+ return JSONResponseNoData(c, 500, "fwh_pro query failed.")
|
|
|
}
|
|
|
-
|
|
|
- return siteAlarmListRes, nil
|
|
|
+ return JSONResponse(c, 0, "success", siteAlarmList)
|
|
|
}
|