zhangqian
2023-09-28 f05f4cca1340f0ddec7261d4dbe65dd331224423
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
package router
 
import (
    v1 "apsClient/api/v1"
    "apsClient/conf"
    _ "apsClient/docs"
    "github.com/gin-contrib/cors"
    "github.com/gin-gonic/gin"
    swaggerFiles "github.com/swaggo/files"
    ginSwagger "github.com/swaggo/gin-swagger"
    "net/http"
)
 
func InitRouter() *gin.Engine {
    gin.SetMode(gin.ReleaseMode)
 
    Router := gin.Default()
    Router.Use(gin.Recovery())
    if conf.Conf.System.Env == "develop" {
        Router.Use(gin.Logger())
    }
    Router.Use(cors.Default())
    Router.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
 
    PublicGroup := Router.Group("api")
    {
        // 健康监测
        PublicGroup.GET("/health", func(c *gin.Context) {
            c.JSON(http.StatusOK, "ok")
        })
    }
 
    v1Group := Router.Group("v1")
 
    taskApi := new(v1.TaskApi)
    taskGroup := v1Group.Group("task")
    {
        taskGroup.GET("countdown", taskApi.TaskCountdown)      // 新任务倒计时
        taskGroup.GET("get", taskApi.TaskGet)                  // 获取工序
        taskGroup.GET("start/:id", taskApi.GetProcessParams)   // 获取工艺参数
        taskGroup.POST("sendProcessParams", taskApi.TaskStart) // 下发工艺参数并开始工序
        taskGroup.PUT("finish/:id", taskApi.TaskFinish)        // 完成工序
    }
 
    configApi := new(v1.ConfigApi)
    configGroup := v1Group.Group("config")
    {
        configGroup.GET("net", configApi.GetNetConfig)  // 获取网络配置
        configGroup.POST("net", configApi.SetNetConfig) // 设置网络
        configGroup.GET("plc", configApi.PlcGet)        // 获取plc配置
        configGroup.POST("plc", configApi.PlcUpdate)    // 设置plc
    }
 
    plcApi := new(v1.PlcApi)
    plcGroup := v1Group.Group("plc")
    {
        plcGroup.POST("productProgress", plcApi.GetProductProgress)                 // 获取生产进度
        plcGroup.POST("productProgressRealTime", plcApi.GetProductProgressRealTime) // 实时获取生产进度
        plcGroup.POST("setProductNumber", plcApi.SetProductNumber)                  // 下发生产总量
    }
 
    eventsApi := new(v1.EventsApi)
    eventsGroup := v1Group.Group("events")
    {
        eventsGroup.GET("", eventsApi.Events) // 推送数据
    }
 
    InitPlcBrandRouter(v1Group)
 
    return Router
}