mirror of
https://github.com/usual2970/certimate.git
synced 2025-06-08 13:39:53 +00:00
71 lines
1.9 KiB
Go
71 lines
1.9 KiB
Go
package repository
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/usual2970/certimate/internal/app"
|
|
"github.com/usual2970/certimate/internal/domain"
|
|
)
|
|
|
|
type StatisticsRepository struct{}
|
|
|
|
func NewStatisticsRepository() *StatisticsRepository {
|
|
return &StatisticsRepository{}
|
|
}
|
|
|
|
func (r *StatisticsRepository) Get(ctx context.Context) (*domain.Statistics, error) {
|
|
rs := &domain.Statistics{}
|
|
|
|
// 所有证书
|
|
certTotal := struct {
|
|
Total int `db:"total"`
|
|
}{}
|
|
if err := app.GetApp().Dao().DB().NewQuery("SELECT COUNT(*) AS total FROM certificate").One(&certTotal); err != nil {
|
|
return nil, err
|
|
}
|
|
rs.CertificateTotal = certTotal.Total
|
|
|
|
// 即将过期证书
|
|
certExpireSoonTotal := struct {
|
|
Total int `db:"total"`
|
|
}{}
|
|
if err := app.GetApp().Dao().DB().
|
|
NewQuery("SELECT COUNT(*) AS total FROM certificate WHERE expireAt > DATETIME('now') and expireAt < DATETIME('now', '+20 days')").
|
|
One(&certExpireSoonTotal); err != nil {
|
|
return nil, err
|
|
}
|
|
rs.CertificateExpireSoon = certExpireSoonTotal.Total
|
|
|
|
// 已过期证书
|
|
certExpiredTotal := struct {
|
|
Total int `db:"total"`
|
|
}{}
|
|
if err := app.GetApp().Dao().DB().
|
|
NewQuery("SELECT COUNT(*) AS total FROM certificate WHERE expireAt < DATETIME('now')").
|
|
One(&certExpiredTotal); err != nil {
|
|
return nil, err
|
|
}
|
|
rs.CertificateExpired = certExpiredTotal.Total
|
|
|
|
// 所有工作流
|
|
workflowTotal := struct {
|
|
Total int `db:"total"`
|
|
}{}
|
|
if err := app.GetApp().Dao().DB().NewQuery("SELECT COUNT(*) AS total FROM workflow").One(&workflowTotal); err != nil {
|
|
return nil, err
|
|
}
|
|
rs.WorkflowTotal = workflowTotal.Total
|
|
|
|
// 已启用工作流
|
|
workflowEnabledTotal := struct {
|
|
Total int `db:"total"`
|
|
}{}
|
|
if err := app.GetApp().Dao().DB().NewQuery("SELECT COUNT(*) AS total FROM workflow WHERE enabled IS TRUE").One(&workflowEnabledTotal); err != nil {
|
|
return nil, err
|
|
}
|
|
rs.WorkflowEnabled = workflowEnabledTotal.Total
|
|
rs.WorkflowDisabled = workflowTotal.Total - workflowEnabledTotal.Total
|
|
|
|
return rs, nil
|
|
}
|