package controllers import ( "basic.com/dbapi.git" "github.com/gin-gonic/gin" "strconv" "webserver/extend/code" "webserver/extend/util" ) type FileAnalysisController struct { } // @Security ApiKeyAuth // @Summary 获取本地文件列表 // @Description 获取本地文件列表 // @Produce json // @Tags 本地文件 // @Param fileName query string false "根据文件名称查询" // @Param page query int true "当前页" // @Param size query int true "每页数量" // @Param type query int true "0:处理完成,1:处理中,2:未配规则,3:处理失败" // @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}" // @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}" // @Router /data/api-v/fileAnalysis/findAllFile [get] func (fac FileAnalysisController) FindAllFile(c *gin.Context) { fileName := c.Query("fileName") page,_ := strconv.Atoi(c.Query("page")) size,_ := strconv.Atoi(c.Query("size")) fType,_ := strconv.Atoi(c.Query("type")) var api dbapi.FileAnalysisApi b, d := api.FindAllFile(fileName, fType, page, size) if b { util.ResponseFormat(c,code.Success, d) } else { util.ResponseFormat(c,code.Success,[]interface{}{}) } } type IdArrVo struct { Ids []string `json:"ids" binding:"required"` } type SortVo struct { Id string `json:"id" binding:"required"` Direct int `json:"direct" binding:"required"` } type FileStatusVo struct { Ids []string `json:"ids" binding:"required"` Status int `json:"status"` } const ( File_Img_Id_Pre = "img_" File_Video_Id_Pre = "video_" File_Audio_Id_Pre = "audio_" ) // @Security ApiKeyAuth // @Summary 开启或暂停文件分析 // @Description 开启或暂停文件分析 // @Accept json // @Produce json // @Tags 本地文件 // @Param reqBody body controllers.FileStatusVo true "开启暂停参数,暂停status=0,开启status=1" // @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}" // @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}" // @Router /data/api-v/fileAnalysis/updateStatus [post] func (fac FileAnalysisController) UpdateStatus(c *gin.Context) { var reqBody FileStatusVo err := c.BindJSON(&reqBody) if err !=nil { util.ResponseFormat(c,code.RequestParamError,"参数有误") return } var api dbapi.FileAnalysisApi if api.UpdateStatus(reqBody.Ids, reqBody.Status) { util.ResponseFormat(c,code.Success,"") } else { util.ResponseFormat(c,code.ComError,"") } } // @Security ApiKeyAuth // @Summary 删除本地文件 // @Description 删除本地文件 // @Accept json // @Produce json // @Tags 本地文件 // @Param reqBody body controllers.IdArrVo true "删除文件id列表" // @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}" // @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}" // @Router /data/api-v/fileAnalysis/delete [post] func (fac FileAnalysisController) Delete(c *gin.Context) { var reqBody IdArrVo err := c.BindJSON(&reqBody) if err !=nil { util.ResponseFormat(c,code.RequestParamError,"参数有误") return } var api dbapi.FileAnalysisApi if api.Delete(reqBody.Ids) { util.ResponseFormat(c,code.DelSuccess,"") } else { util.ResponseFormat(c,code.ComError,"") } } const ( Sort_Up = 1 Sort_Down = 2 ) // @Security ApiKeyAuth // @Summary 本地文件排序 // @Description 本地文件排序 // @Accept json // @Produce json // @Tags 本地文件 // @Param reqBody body controllers.SortVo true "排序参数,向上direct=1,向下direct=2" // @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}" // @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}" // @Router /data/api-v/fileAnalysis/sortFile [post] func (fac FileAnalysisController) SortFile(c *gin.Context) { var reqBody SortVo err := c.BindJSON(&reqBody) if err !=nil || (reqBody.Direct !=Sort_Up && reqBody.Direct !=Sort_Down) { util.ResponseFormat(c,code.RequestParamError,"参数有误") return } var api dbapi.FileAnalysisApi if api.SortFile(reqBody.Id,reqBody.Direct) { util.ResponseFormat(c,code.UpdateSuccess,"更新成功") } else { util.ResponseFormat(c,code.UpdateFail,"更新失败") } } // @Security ApiKeyAuth // @Summary 按数据栈id查找文件 // @Description 按数据栈id查找文件 // @Accept json // @Produce json // @Tags 本地文件 // @Param stackId query string true "stackId" // @Param type query int true "type" // @Param name query string false "搜索条件" // @Param page query int true "当前页" // @Param size query int true "每页数量" // @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}" // @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}" // @Router /data/api-v/fileAnalysis/findByStackId [get] func (fac FileAnalysisController) FindByStackId(c *gin.Context) { stackId := c.Query("stackId") if stackId == "" { util.ResponseFormat(c,code.RequestParamError, "") return } typ,_ := strconv.Atoi(c.Query("type")) page,_ := strconv.Atoi(c.Query("page")) size,_ := strconv.Atoi(c.Query("size")) name := c.Query("name") if page <= 0 { page = 1 } if size <= 0 { size = 20 } var api dbapi.FileAnalysisApi b,d := api.FindByStackId(stackId, typ, name, page, size) if !b { util.ResponseFormat(c,code.ComError, "") } else { util.ResponseFormat(c,code.Success, d) } } // @Summary 重命名 // @Description 重命名 // @Accept json // @Produce json // @Tags 本地文件 // @Param id formData string true "文件id" // @Param name formData string true "文件新名称" // @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}" // @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}" // @Router /data/api-v/fileAnalysis/rename [post] func (fac FileAnalysisController) Rename(c *gin.Context) { id := c.Request.FormValue("id") name := c.Request.FormValue("name") if id == "" || name == "" { util.ResponseFormat(c,code.RequestParamError,"") return } var api dbapi.FileAnalysisApi if api.Rename(id, name) { util.ResponseFormat(c,code.Success, "") } else { util.ResponseFormat(c,code.ComError,"") } } // @Summary 移动 // @Description 移动 // @Accept json // @Produce json // @Tags 本地文件 // @Param id formData string true "文件id" // @Param stackId formData string true "数据栈id" // @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}" // @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}" // @Router /data/api-v/fileAnalysis/move [post] func (fac FileAnalysisController) Move(c *gin.Context) { id := c.Request.FormValue("id") stackId := c.Request.FormValue("stackId") if id == "" || stackId == "" { util.ResponseFormat(c,code.RequestParamError,"") return } var api dbapi.FileAnalysisApi if api.Move(id, stackId) { util.ResponseFormat(c,code.Success, "") } else { util.ResponseFormat(c,code.ComError,"") } } type FileMoveVo struct { Id string `json:"id" binding:"required"` StackIds []string `json:"stackIds" binding:"required"` } // @Summary 复制 // @Description 复制 // @Accept json // @Produce json // @Tags 本地文件 // @Param reqBody body controllers.FileMoveVo true "文件复制参数" // @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}" // @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}" // @Router /data/api-v/fileAnalysis/copy [post] func (fac FileAnalysisController) Copy(c *gin.Context) { var reqBody FileMoveVo err := c.BindJSON(&reqBody) if err != nil { util.ResponseFormat(c,code.RequestParamError,"") return } var api dbapi.FileAnalysisApi if api.Copy(reqBody.Id, reqBody.StackIds) { util.ResponseFormat(c,code.Success, "") } else { util.ResponseFormat(c,code.ComError,"") } }