35 lines
1.1 KiB
Go
35 lines
1.1 KiB
Go
package handler
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"silk-server-go/internal/middleware"
|
|
"silk-server-go/internal/service"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
// RegisterDetectionMethodRoutes 注册检测方式推荐路由
|
|
func RegisterDetectionMethodRoutes(rg *gin.RouterGroup, db *gorm.DB) {
|
|
rg.GET("/detection-methods/recommend",
|
|
middleware.RequirePermission(db, "lamp:read"),
|
|
recommendDetectionMethod())
|
|
}
|
|
|
|
// recommendDetectionMethod 按设备/紧急/操作者/成本偏好推荐检测方式(纯计算)
|
|
func recommendDetectionMethod() gin.HandlerFunc {
|
|
return func(c *gin.Context) {
|
|
in := service.DetectionRecommendInput{
|
|
HasLamp: c.Query("hasLamp") == "true",
|
|
HasSers: c.Query("hasSers") == "true",
|
|
HasQPCR: c.Query("hasQpcr") == "true",
|
|
HasHyperspectral: c.Query("hasHyperspectral") == "true",
|
|
Urgency: c.DefaultQuery("urgency", "routine"),
|
|
OperatorLevel: c.DefaultQuery("operatorLevel", "expert"),
|
|
CostPreference: c.DefaultQuery("costPreference", "balanced"),
|
|
}
|
|
c.JSON(http.StatusOK, service.RecommendMethod(in))
|
|
}
|
|
}
|