package controller import ( "github.com/gin-gonic/gin" "strconv" "strings" "trading-go/model" "trading-go/response" "trading-go/util" ) // Upload // @Tags 图片模块 // @Summary 上传图片 // @Accept multipart/form-data // @Produce application/json // @Param pic formData file true "图片" // @Success 200 {object} response.Response // @Router /pic/upload [post] func Upload(c *gin.Context) { var pic model.Pic file, err := c.FormFile("pic") if err != nil { msg := err.Error() response.Fail(c.Writer, msg, 500) return } suffixs := strings.Split(file.Filename, ".") suffix := suffixs[len(suffixs)-1] err = util.CheckImg(suffix) if err != nil { msg := err.Error() response.Fail(c.Writer, msg, 400) return } path := util.MakePath(file.Filename) if err != nil { msg := err.Error() response.Fail(c.Writer, msg, 500) return } err = c.SaveUploadedFile(file, "."+path) if err != nil { msg := err.Error() response.Fail(c.Writer, msg, 500) return } url := "http://" + c.Request.Host + path pic.Url = url response.Success(c.Writer, "success", pic) } // GetAllPic // @Tags 图片模块 // @Summary 获取所有图片 // @Produce application/json // @Success 200 {object} response.Response // @Router /pic [get] func GetAllPic(c *gin.Context) { var pic model.Pic pics, err := pic.GetAll() if err != nil { msg := err.Error() response.Fail(c.Writer, msg, 500) return } response.Success(c.Writer, "success", pics) } // DPic // @Tags 图片模块 // @Summary 删除图片 // @Produce application/json // @Param id path uint true "图片id" // @Success 200 {object} response.Response // @Router /pic/delete/{id} [delete] func DPic(c *gin.Context) { var pic model.Pic ids := c.Param("id") id, err := strconv.Atoi(ids) if err != nil { response.Fail(c.Writer, err.Error(), 500) return } pic.Id = uint(id) err = pic.Delete() if err != nil { msg := err.Error() response.Fail(c.Writer, msg, 500) return } response.Success(c.Writer, "success", nil) } // GetPicPaged // @Tags 图片模块 // @Summary 分页获取图片 // @Produce application/json // @Param page path int true "页数" // @Param pageSize path int true "一页的大小" // @Success 200 {object} response.Response // @Router /pic/{page}/{pageSize} [get] func GetPicPaged(c *gin.Context) { var pic model.Pic p := c.Param("page") pS := c.Param("pageSize") page, err := strconv.Atoi(p) pageSize, err := strconv.Atoi(pS) if err != nil { response.Fail(c.Writer, err.Error(), 500) return } rsp, err := pic.GetPaged(page, pageSize) if err != nil { msg := err.Error() response.Fail(c.Writer, msg, 500) return } cnt, err := pic.GetCnt() if err != nil { msg := err.Error() response.Fail(c.Writer, msg, 500) return } if cnt > page*pageSize { rsp.HNext = true } response.Success(c.Writer, "success", rsp) }