refactor: remove company management APIs
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
package services
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"git.beifan.cn/trace-system/backend-go/database"
|
||||
"git.beifan.cn/trace-system/backend-go/models"
|
||||
)
|
||||
|
||||
// DashboardService 控制台统计服务
|
||||
type DashboardService struct{}
|
||||
|
||||
// GetStats 获取控制台工单统计
|
||||
func (s *DashboardService) GetStats() (map[string]any, error) {
|
||||
var aftersales []models.AftersalesOrder
|
||||
if err := database.DB.Preload("Technician").Order("created_at DESC").Find(&aftersales).Error; err != nil {
|
||||
return nil, errors.New("查询售后工单统计失败")
|
||||
}
|
||||
|
||||
aftersalesTotal := len(aftersales)
|
||||
aftersalesPending := 0
|
||||
aftersalesClosed := 0
|
||||
aftersalesRejected := 0
|
||||
for _, order := range aftersales {
|
||||
switch order.WorkOrderStatus {
|
||||
case "pending_confirmation":
|
||||
aftersalesPending++
|
||||
case "closed":
|
||||
aftersalesClosed++
|
||||
case "rejected":
|
||||
aftersalesRejected++
|
||||
}
|
||||
}
|
||||
|
||||
recentAftersales := make([]map[string]any, 0)
|
||||
for i, order := range aftersales {
|
||||
if i >= 10 {
|
||||
break
|
||||
}
|
||||
technicianName := ""
|
||||
if order.Technician != nil {
|
||||
technicianName = order.Technician.Name
|
||||
}
|
||||
recentAftersales = append(recentAftersales, map[string]any{
|
||||
"serialNumber": order.SerialNumber,
|
||||
"companyName": order.CompanyName,
|
||||
"serviceType": order.ServiceType,
|
||||
"workOrderStatus": order.WorkOrderStatus,
|
||||
"authorizationStatus": order.AuthorizationStatus,
|
||||
"technicianName": technicianName,
|
||||
"createdAt": order.CreatedAt,
|
||||
})
|
||||
}
|
||||
|
||||
return map[string]any{
|
||||
"overview": map[string]any{
|
||||
"totalAftersales": aftersalesTotal,
|
||||
"pendingConfirmation": aftersalesPending,
|
||||
"closedAftersales": aftersalesClosed,
|
||||
"rejectedAftersales": aftersalesRejected,
|
||||
},
|
||||
"recentAftersales": recentAftersales,
|
||||
}, nil
|
||||
}
|
||||
Reference in New Issue
Block a user