210 lines
6.0 KiB
Go
210 lines
6.0 KiB
Go
package api
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
jwt "github.com/appleboy/gin-jwt/v2"
|
|
"github.com/gin-gonic/gin"
|
|
"go.uber.org/zap"
|
|
"joylink.club/bj-rtsts-server/ats/verify/simulation"
|
|
"joylink.club/bj-rtsts-server/dto"
|
|
apiproto "joylink.club/bj-rtsts-server/grpcproto"
|
|
)
|
|
|
|
func InitSimulationRouter(api *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
|
|
authed := api.Group("/v1/simulation").Use(authMiddleware.MiddlewareFunc())
|
|
authed.POST("/create", create)
|
|
authed.POST("/destroy/:id", destroy)
|
|
authed.GET("/list", findAllSimulations)
|
|
authed.POST("/train/add", addTrain)
|
|
authed.POST("/check/data", checkSimMapData)
|
|
authed.POST("/train/remove", removeTrain)
|
|
authed.POST("/switch/operation", switchOperation)
|
|
|
|
apiproto.RegisterMsgServer(&apiproto.SimulationServer{})
|
|
}
|
|
|
|
// 创建ATS测试仿真
|
|
//
|
|
// @Summary 创建ATS测试仿真
|
|
//
|
|
// @Security JwtAuth
|
|
//
|
|
// @Description 创建ATS测试仿真
|
|
// @Tags ATS测试仿真Api
|
|
// @Accept json
|
|
// @Produce json
|
|
// @Param Authorization header string true "JWT Token"
|
|
// @Param SimulationCreateReqDto body dto.SimulationCreateReqDto true "创建仿真请求"
|
|
// @Success 200 {object} dto.SimulationCreateRspDto
|
|
// @Failure 500 {object} dto.ErrorDto
|
|
// @Router /api/v1/simulation/create [post]
|
|
func create(c *gin.Context) {
|
|
//user,_:=c.Get(middleware.IdentityKey)
|
|
req := dto.SimulationCreateReqDto{}
|
|
if err := c.ShouldBind(&req); nil != err {
|
|
panic(err)
|
|
}
|
|
zap.S().Debug("创建仿真请求:", req)
|
|
rsp := dto.SimulationCreateRspDto{}
|
|
rsp.MapId = req.MapId
|
|
//rsp.SimulationId = fmt.Sprintf("sim-%d", req.MapId)
|
|
rsp.SimulationId = simulation.CreateSimulation(1, nil)
|
|
c.JSON(http.StatusOK, &rsp)
|
|
}
|
|
|
|
// ATS测试仿真-添加列车
|
|
//
|
|
// @Summary ATS测试仿真-添加列车
|
|
//
|
|
// @Security JwtAuth
|
|
//
|
|
// @Description ATS测试仿真-添加列车
|
|
// @Tags ATS测试仿真Api
|
|
// @Accept json
|
|
// @Produce json
|
|
// @Param Authorization header string true "JWT Token"
|
|
// @Param AddTrainReqDto body dto.AddTrainReqDto true "ATS测试仿真-添加列车"
|
|
// @Success 200 {object} dto.AddTrainRspDto
|
|
// @Failure 500 {object} dto.ErrorDto
|
|
// @Router /api/v1/simulation/train/add [post]
|
|
func addTrain(c *gin.Context) {
|
|
//user,_:=c.Get(middleware.IdentityKey)
|
|
req := dto.AddTrainReqDto{}
|
|
if err := c.ShouldBind(&req); nil != err {
|
|
panic(err)
|
|
}
|
|
zap.S().Debug("ATS测试仿真-添加列车,请求:", req)
|
|
rsp := dto.AddTrainRspDto{}
|
|
rsp.SimulationId = req.SimulationId
|
|
rsp.TrainId = "666"
|
|
c.JSON(http.StatusOK, &rsp)
|
|
}
|
|
|
|
// ATS仿真销毁
|
|
//
|
|
// @Summary ATS仿真销毁
|
|
//
|
|
// @Security JwtAuth
|
|
//
|
|
// @Description ATS测试仿真-添加列车
|
|
// @Tags ATS测试仿真Api
|
|
// @Accept json
|
|
// @Produce json
|
|
// @Param Authorization header string true "JWT Token"
|
|
// @Param id path int true "仿真id"
|
|
// @Success 200 {object} string
|
|
// @Failure 500 {object} dto.ErrorDto
|
|
// @Router /api/v1/simulation/train/destroy/{id} [get]
|
|
func destroy(c *gin.Context) {
|
|
simId := c.Param("id")
|
|
zap.S().Debug("ATS测试仿真-ATS仿真销毁 请求:", simId)
|
|
c.JSON(http.StatusOK, "ok")
|
|
}
|
|
|
|
// 获取ATS测试系统所有仿真实例的基本信息
|
|
//
|
|
// @Summary 获取ATS测试系统所有仿真实例的基本信息
|
|
//
|
|
// @Security JwtAuth
|
|
//
|
|
// @Description ATS测试仿真-添加列车
|
|
// @Tags ATS测试仿真Api
|
|
// @Accept json
|
|
// @Produce json
|
|
// @Param Authorization header string true "JWT Token"
|
|
//
|
|
// @Success 200 {object} dto.SimulationInfoRepDtoArr
|
|
// @Failure 500 {object} dto.ErrorDto
|
|
// @Router /api/v1/simulation/list [get]
|
|
func findAllSimulations(c *gin.Context) {
|
|
zap.S().Debug("ATS测试仿真-获取ATS测试系统所有仿真实例的基本信息,请求")
|
|
//TODO 后续调用
|
|
c.JSON(http.StatusOK, dto.SimulationInfoRepDtoArr{dto.SimulationInfoRepDto{"1", "123"}, dto.SimulationInfoRepDto{"2", "333"}})
|
|
}
|
|
|
|
// ATS测试仿真地图数据校验
|
|
//
|
|
// @Summary ATS测试仿真地图数据校验
|
|
//
|
|
// @Security JwtAuth
|
|
//
|
|
// @Description ATS测试仿真-添加列车
|
|
// @Tags ATS测试仿真Api
|
|
// @Accept json
|
|
// @Produce json
|
|
// @Param Authorization header string true "JWT Token"
|
|
// @Param RemoveTrainDto body dto.CheckMapDataReqDto true "ATS测试仿真-地图数据"
|
|
//
|
|
// @Success 200 {object} dto.CheckMapDataRspDto
|
|
// @Failure 500 {object} dto.ErrorDto
|
|
// @Router /api/v1/simulation/check/data [post]
|
|
func checkSimMapData(c *gin.Context) {
|
|
rt := &dto.CheckMapDataRspDto{}
|
|
err := c.Bind(rt)
|
|
if err != nil {
|
|
c.JSON(http.StatusInternalServerError, "参数错误")
|
|
|
|
} else {
|
|
//TODO 后续调用
|
|
c.JSON(http.StatusOK, dto.CheckMapDataRspDto{true, []string{"error"}})
|
|
}
|
|
}
|
|
|
|
// ATS测试仿真-移除列车
|
|
//
|
|
// @Summary ATS测试仿真-移除列车
|
|
//
|
|
// @Security JwtAuth
|
|
//
|
|
// @Description ATS测试仿真-移除列车
|
|
// @Tags ATS测试仿真Api
|
|
// @Accept json
|
|
// @Produce json
|
|
// @Param Authorization header string true "JWT Token"
|
|
// @Param RemoveTrainDto body dto.RemoveTrainDto true "ATS测试仿真-移除列车"
|
|
//
|
|
// @Success 200 {object} string
|
|
// @Failure 500 {object} dto.ErrorDto
|
|
// @Router /api/v1/simulation/train/remove [post]
|
|
func removeTrain(c *gin.Context) {
|
|
rt := &dto.RemoveTrainDto{}
|
|
err := c.Bind(rt)
|
|
if err != nil {
|
|
c.JSON(http.StatusInternalServerError, "参数错误")
|
|
|
|
} else {
|
|
//TODO 后续调用列车删除操作
|
|
c.JSON(http.StatusOK, "ok")
|
|
}
|
|
|
|
}
|
|
|
|
// 获取ATS测试-操作道岔
|
|
//
|
|
// @Summary 获取ATS测试-操作道岔
|
|
//
|
|
// @Security JwtAuth
|
|
//
|
|
// @Description ATS测试仿真-添加列车
|
|
// @Tags ATS测试仿真Api
|
|
// @Accept json
|
|
// @Produce json
|
|
// @Param Authorization header string true "JWT Token"
|
|
// @Param RemoveTrainDto body dto.SwitchOperationReqDto true "ATS测试仿真-操作道岔"
|
|
//
|
|
// @Success 200 {object} string
|
|
// @Failure 500 {object} dto.ErrorDto
|
|
// @Router /api/v1/simulation/switch/operation [post]
|
|
func switchOperation(c *gin.Context) {
|
|
switchOper := &dto.SwitchOperationReqDto{}
|
|
err := c.Bind(switchOper)
|
|
|
|
if err != nil {
|
|
c.JSON(http.StatusInternalServerError, "参数错误")
|
|
} else {
|
|
//TODO 后续调用道岔操作
|
|
c.JSON(http.StatusOK, "ok")
|
|
}
|
|
}
|