81 lines
2.8 KiB
Go
81 lines
2.8 KiB
Go
package sysin
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/gogf/gf/v2/errors/gerror"
|
|
"github.com/gogf/gf/v2/os/gtime"
|
|
)
|
|
|
|
type DashboardSummaryInp struct {
|
|
StartDate *gtime.Time `json:"startDate" dc:"开始日期"`
|
|
EndDate *gtime.Time `json:"endDate" dc:"结束日期"`
|
|
}
|
|
|
|
func (in *DashboardSummaryInp) Filter(ctx context.Context) error {
|
|
if in.StartDate == nil && in.EndDate == nil {
|
|
return nil
|
|
}
|
|
if in.StartDate == nil || in.EndDate == nil {
|
|
return gerror.New("开始日期和结束日期必须同时填写")
|
|
}
|
|
if in.StartDate.After(in.EndDate) {
|
|
return gerror.New("开始日期不能晚于结束日期")
|
|
}
|
|
if in.EndDate.Sub(in.StartDate) > 366*24*60*60*1e9 {
|
|
return gerror.New("单次最多查询366天")
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type DashboardRangeModel struct {
|
|
StartDate string `json:"startDate"`
|
|
EndDate string `json:"endDate"`
|
|
}
|
|
|
|
type DashboardMetricModel struct {
|
|
Code string `json:"code"`
|
|
Title string `json:"title"`
|
|
Value int64 `json:"value"`
|
|
PreviousValue int64 `json:"previousValue"`
|
|
ChangeRate float64 `json:"changeRate"`
|
|
ValueType string `json:"valueType" dc:"count或amount"`
|
|
Masked bool `json:"masked"`
|
|
Description string `json:"description"`
|
|
RouteName string `json:"routeName"`
|
|
}
|
|
|
|
type DashboardTrendPointModel struct {
|
|
Date string `json:"date"`
|
|
OrderAmount int64 `json:"orderAmount"`
|
|
RechargeAmount int64 `json:"rechargeAmount"`
|
|
WithdrawalAmount int64 `json:"withdrawalAmount"`
|
|
CommissionAmount int64 `json:"commissionAmount"`
|
|
}
|
|
|
|
type DashboardChannelModel struct {
|
|
Channel string `json:"channel"`
|
|
Label string `json:"label"`
|
|
RechargeCount int64 `json:"rechargeCount"`
|
|
RechargeAmount int64 `json:"rechargeAmount"`
|
|
WithdrawalCount int64 `json:"withdrawalCount"`
|
|
WithdrawalAmount int64 `json:"withdrawalAmount"`
|
|
PreviousRechargeCount int64 `json:"previousRechargeCount"`
|
|
PreviousRechargeAmount int64 `json:"previousRechargeAmount"`
|
|
PreviousWithdrawalCount int64 `json:"previousWithdrawalCount"`
|
|
PreviousWithdrawalAmount int64 `json:"previousWithdrawalAmount"`
|
|
Masked bool `json:"masked"`
|
|
}
|
|
|
|
type DashboardSummaryModel struct {
|
|
Range DashboardRangeModel `json:"range"`
|
|
Metrics []*DashboardMetricModel `json:"metrics"`
|
|
Trend []*DashboardTrendPointModel `json:"trend"`
|
|
Channels []*DashboardChannelModel `json:"channels"`
|
|
GeneratedAt *gtime.Time `json:"generatedAt"`
|
|
DataAsOf *gtime.Time `json:"dataAsOf"`
|
|
DataDelaySeconds int64 `json:"dataDelaySeconds"`
|
|
DataReady bool `json:"dataReady"`
|
|
Warning string `json:"warning"`
|
|
}
|