bi/controller/realdata_controller.go
1340691923@qq.com ebbf4120bf 第一次提交
2022-01-26 16:40:50 +08:00

234 lines
5.6 KiB
Go

package controller
import (
"errors"
"github.com/1340691923/xwl_bi/platform-basic-libs/jwt"
"github.com/1340691923/xwl_bi/platform-basic-libs/request"
"github.com/1340691923/xwl_bi/platform-basic-libs/response"
"github.com/1340691923/xwl_bi/platform-basic-libs/service/consumer_data"
"github.com/1340691923/xwl_bi/platform-basic-libs/service/debug_data"
"github.com/1340691923/xwl_bi/platform-basic-libs/service/realdata"
"github.com/gofiber/fiber/v2"
"strconv"
)
type RealDataController struct {
BaseController
}
//查看实时数据列表
func (this RealDataController) List(ctx *fiber.Ctx) error {
type ReqData struct {
Appid int `json:"appid"`
SearchKw string `json:"search_kw"`
Date string `json:"date"`
}
var reqData ReqData
if err := ctx.BodyParser(&reqData); err != nil {
return this.Error(ctx, err)
}
appid := strconv.Itoa(reqData.Appid)
searchKw := reqData.SearchKw
date := reqData.Date
clientReportData := consumer_data.ClientReportData{
TableId: appid,
}
res, err := clientReportData.GetList(ctx.Context(), searchKw, date)
if err != nil {
return this.Error(ctx, err)
}
return this.Success(ctx, response.SearchSuccess, map[string]interface{}{"list": res.Hits.Hits})
}
//错误数据列表
func (this RealDataController) FailDataList(ctx *fiber.Ctx) error {
type ReqData struct {
Appid int `json:"appid"`
Minutes int `json:"minutes"`
}
var reqData ReqData
if err := ctx.BodyParser(&reqData); err != nil {
return this.Error(ctx, err)
}
if reqData.Minutes == 0 {
reqData.Minutes = 10
}
realDataService := realdata.RealDataService{}
res,err := realDataService.FailDataList(reqData.Minutes,reqData.Appid)
if err != nil {
return this.Error(ctx, err)
}
return this.Success(ctx, response.SearchSuccess, map[string]interface{}{"list": res})
}
//抽样示例
func (this RealDataController) FailDataDesc(ctx *fiber.Ctx) error {
type ReqData struct {
StartTime string `json:"start_time"`
EndTime string `json:"end_time"`
Appid int `json:"appid"`
ErrorReason string `json:"error_reason"`
ErrorHandling string `json:"error_handling"`
ReportType string `json:"report_type"`
}
var reqData ReqData
if err := ctx.BodyParser(&reqData); err != nil {
return this.Error(ctx, err)
}
startTime := reqData.StartTime
endTime := reqData.EndTime
appid := strconv.Itoa(reqData.Appid)
errorReason := reqData.ErrorReason
errorHandling := reqData.ErrorHandling
reportType := reqData.ReportType
realDataService := realdata.RealDataService{}
res,err := realDataService.FailDataDesc(appid,startTime,endTime,errorReason,errorHandling,reportType)
if err != nil {
return this.Error(ctx, err)
}
return this.Success(ctx, response.SearchSuccess, map[string]interface{}{"data": res})
}
//查看所有上报数据情况
func (this RealDataController) ReportCount(ctx *fiber.Ctx) error {
var err error
var reqData request.ReportCountReq
if err := ctx.BodyParser(&reqData); err != nil {
return this.Error(ctx, err)
}
startTime := reqData.StartTime
endTime := reqData.EndTime
appid := strconv.Itoa(reqData.Appid)
realDataService := realdata.RealDataService{}
res,err := realDataService.ReportCount(appid,startTime,endTime)
if err != nil {
return this.Error(ctx, err)
}
return this.Success(ctx, response.SearchSuccess, map[string]interface{}{"list": res})
}
//事件失败详情
func (this RealDataController) EventFailDesc(ctx *fiber.Ctx) error {
var reqData request.EventFailDescReq
if err := ctx.BodyParser(&reqData); err != nil {
return this.Error(ctx, err)
}
startTime := reqData.StartTime
endTime := reqData.EndTime
appid := strconv.Itoa(reqData.Appid)
dataName := reqData.DataName
realDataService := realdata.RealDataService{}
res,err := realDataService.EventFailDesc(appid,startTime,endTime,dataName)
if err != nil {
return this.Error(ctx, err)
}
return this.Success(ctx, response.SearchSuccess, map[string]interface{}{"list": res})
}
//添加DEBUG设备ID
func (this RealDataController) AddDebugDeviceID(ctx *fiber.Ctx) error {
var reqData request.AddDebugDeviceIDReq
if err := ctx.BodyParser(&reqData); err != nil {
return this.Error(ctx, err)
}
appid := strconv.Itoa(reqData.Appid)
remark := reqData.Remark
deviceID := reqData.DeviceID
if deviceID == "" {
return this.Error(ctx, errors.New("设备ID不能为空"))
}
c, _ := jwt.ParseToken(this.GetToken(ctx))
debugData := debug_data.DebugData{}
err :=debugData.AddDebugDeviceID(appid,deviceID,remark,c.UserID)
if err != nil {
return this.Error(ctx, err)
}
return this.Success(ctx, response.OperateSuccess, nil)
}
//删除测试设备
func (this RealDataController) DelDebugDeviceID(ctx *fiber.Ctx) error {
var reqData request.DelDebugDeviceIDReq
if err := ctx.BodyParser(&reqData); err != nil {
return this.Error(ctx, err)
}
appid := strconv.Itoa(reqData.Appid)
deviceID := reqData.DeviceID
c, _ := jwt.ParseToken(this.GetToken(ctx))
debugData := debug_data.DebugData{}
err :=debugData.DelDebugDeviceID(appid,deviceID,c.UserID)
if err != nil {
return this.Error(ctx, err)
}
return this.Success(ctx, response.OperateSuccess, nil)
}
//查看测试设备列表
func (this RealDataController) DebugDeviceIDList(ctx *fiber.Ctx) error {
var reqData request.DebugDeviceIDListReq
if err := ctx.BodyParser(&reqData); err != nil {
return this.Error(ctx, err)
}
appid := reqData.Appid
c, _ := jwt.ParseToken(this.GetToken(ctx))
debugData := debug_data.DebugData{}
res,err :=debugData.DebugDeviceIDList(appid,c.UserID)
if err != nil {
return this.Error(ctx, err)
}
return this.Success(ctx, response.SearchSuccess, map[string]interface{}{"list": res})
}