package controllers import ( "github.com/gin-gonic/gin" "net/http" "psi/constant" "psi/database" systemReq "psi/models/request" systemRes "psi/models/response" "psi/service" "psi/utils" "strconv" ) type WaveApi struct{} var waveService = service.WaveService{} // GetWaveTaskList 获取波次任务列表 func (r *WaveApi) GetWaveTaskList(c *gin.Context) { var req systemReq.GetWaveTaskListRequest if err := c.ShouldBindQuery(&req); err != nil { ValidAndFail(constant.LoggerChannelRequest, "波次任务列表请求参数异常", "参数错误: "+err.Error(), c, err) return } userInfo := utils.GetUserInfo(c) result, err := waveService.GetWaveTaskList(req, userInfo.ID, userInfo.Role, database.GetDB(c)) if err != nil { utils.FailWithRequestLog(constant.LoggerChannelWork, "波次任务列表异常", err, c, req) return } c.JSON(http.StatusOK, gin.H{ "code": 200, "data": result, }) } // GetWaveTaskDetail 获取波次任务详情 func (r *WaveApi) GetWaveTaskDetail(c *gin.Context) { var req systemReq.GetWaveTaskDetailRequest if err := c.ShouldBindQuery(&req); err != nil { ValidAndFail(constant.LoggerChannelRequest, "波次任务详情请求参数异常", "参数错误: "+err.Error(), c, err) return } userInfo := utils.GetUserInfo(c) result, err := waveService.GetWaveTaskDetail(req.ID, userInfo.ID, userInfo.Role, database.GetDB(c)) if err != nil { utils.FailWithRequestLog(constant.LoggerChannelWork, "波次任务详情异常", err, c, req) return } systemRes.OkWithDetailed(result, "查询成功", c) } func (r *WaveApi) GetWaveStatusById(c *gin.Context) { waveIDStr := c.Query("id") if waveIDStr == "" { systemRes.FailWithValidateMessage("参数错误: id不能为空", c) return } waveID, err := strconv.ParseInt(waveIDStr, 10, 64) if err != nil || waveID <= 0 { systemRes.FailWithValidateMessage("参数错误: id格式不正确", c) return } waveTask, err := waveService.GetWaveStatusById(waveID, database.GetDB(c)) if err != nil { systemRes.FailWithMessage(err.Error(), c) return } systemRes.OkWithDetailed(gin.H{ "id": waveTask.ID, "status": waveTask.Status, }, "查询成功", c) }