|
@@ -17,7 +17,7 @@ import (
|
|
|
"time"
|
|
|
)
|
|
|
|
|
|
-type MediaPdfController struct {
|
|
|
+type MediaController struct {
|
|
|
BaseAuthController
|
|
|
}
|
|
|
|
|
@@ -26,7 +26,7 @@ type MediaPdfController struct {
|
|
|
// @Description 获取报告作者
|
|
|
// @Success 200 {object} models.ReportAuthorResp
|
|
|
// @router /author [get]
|
|
|
-func (this *MediaPdfController) Author() {
|
|
|
+func (this *MediaController) Author() {
|
|
|
br := new(models.BaseResponse).Init()
|
|
|
defer func() {
|
|
|
this.Data["json"] = br
|
|
@@ -51,7 +51,7 @@ func (this *MediaPdfController) Author() {
|
|
|
// @Param request body request.ReportPdfAddReq true "type json string"
|
|
|
// @Success 200 {object} models.ReportAuthorResp
|
|
|
// @router /add [post]
|
|
|
-func (this *MediaPdfController) Add() {
|
|
|
+func (this *MediaController) Add() {
|
|
|
br := new(models.BaseResponse).Init()
|
|
|
defer func() {
|
|
|
this.Data["json"] = br
|
|
@@ -153,7 +153,7 @@ func (this *MediaPdfController) Add() {
|
|
|
// @Param File query file true "文件"
|
|
|
// @Success 200 {object} models.ReportAuthorResp
|
|
|
// @router /uploadPdf [post]
|
|
|
-func (this *MediaPdfController) UploadPdf() {
|
|
|
+func (this *MediaController) UploadPdf() {
|
|
|
br := new(models.BaseResponse).Init()
|
|
|
defer func() {
|
|
|
this.Data["json"] = br
|
|
@@ -247,7 +247,7 @@ func (this *MediaPdfController) UploadPdf() {
|
|
|
// @Param SortType query string true "排序方式"
|
|
|
// @Success 200 {object} models.ReportAuthorResp
|
|
|
// @router /list [get]
|
|
|
-func (this *MediaPdfController) List() {
|
|
|
+func (this *MediaController) List() {
|
|
|
br := new(models.BaseResponse).Init()
|
|
|
defer func() {
|
|
|
this.Data["json"] = br
|
|
@@ -396,7 +396,7 @@ func (this *MediaPdfController) List() {
|
|
|
// @Param request body request.ReportPdfEditReq true "type json string"
|
|
|
// @Success 200 {object} models.ReportAuthorResp
|
|
|
// @router /edit [post]
|
|
|
-func (this *MediaPdfController) Edit() {
|
|
|
+func (this *MediaController) Edit() {
|
|
|
br := new(models.BaseResponse).Init()
|
|
|
defer func() {
|
|
|
this.Data["json"] = br
|
|
@@ -488,7 +488,7 @@ func (this *MediaPdfController) Edit() {
|
|
|
// @Param ReportPdfId query string true "pdf研报id"
|
|
|
// @Success 200 {object} models.BaseResponse
|
|
|
// @router /publish [get]
|
|
|
-func (this *MediaPdfController) Publish() {
|
|
|
+func (this *MediaController) Publish() {
|
|
|
br := new(models.BaseResponse).Init()
|
|
|
defer func() {
|
|
|
this.Data["json"] = br
|
|
@@ -539,7 +539,7 @@ func (this *MediaPdfController) Publish() {
|
|
|
// @Param ReportPdfId query string true "pdf研报id"
|
|
|
// @Success 200 {object} models.BaseResponse
|
|
|
// @router /publishCancel [get]
|
|
|
-func (this *MediaPdfController) PublishCancel() {
|
|
|
+func (this *MediaController) PublishCancel() {
|
|
|
br := new(models.BaseResponse).Init()
|
|
|
defer func() {
|
|
|
this.Data["json"] = br
|
|
@@ -589,7 +589,7 @@ func (this *MediaPdfController) PublishCancel() {
|
|
|
// @Param ReportPdfId query string true "pdf研报id"
|
|
|
// @Success 200 {object} models.BaseResponse
|
|
|
// @router /delete [get]
|
|
|
-func (this *MediaPdfController) Delete() {
|
|
|
+func (this *MediaController) Delete() {
|
|
|
br := new(models.BaseResponse).Init()
|
|
|
defer func() {
|
|
|
this.Data["json"] = br
|
|
@@ -640,7 +640,7 @@ func (this *MediaPdfController) Delete() {
|
|
|
// @Param ReportPdfId query string true "pdf研报id"
|
|
|
// @Success 200 {object} models.BaseResponse
|
|
|
// @router /detail [get]
|
|
|
-func (this *MediaPdfController) Detail() {
|
|
|
+func (this *MediaController) Detail() {
|
|
|
br := new(models.BaseResponse).Init()
|
|
|
defer func() {
|
|
|
this.Data["json"] = br
|
|
@@ -663,3 +663,184 @@ func (this *MediaPdfController) Detail() {
|
|
|
br.Success = true
|
|
|
br.Msg = "获取研报成功"
|
|
|
}
|
|
|
+
|
|
|
+const (
|
|
|
+ img = "image"
|
|
|
+ video = "video"
|
|
|
+ audio = "audio"
|
|
|
+ img_ext = ".jpg|.jpeg|.png|.gif|.bmp|.webp"
|
|
|
+)
|
|
|
+
|
|
|
+func checkMediaType(media string) bool {
|
|
|
+ return media == img || media == video || media == audio
|
|
|
+}
|
|
|
+
|
|
|
+// @Title 上传图片
|
|
|
+// @Description 上传图片
|
|
|
+// @Param File query file true "文件"
|
|
|
+// @Success 200 {object} models.ReportAuthorResp
|
|
|
+// @router /uploadFile [post]
|
|
|
+func (this *MediaController) UploadAudio(mediaType string) {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ f, h, err := this.GetFile("File")
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取资源信息失败"
|
|
|
+ br.ErrMsg = "获取资源信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ defer f.Close()
|
|
|
+ if !checkMediaType(mediaType) {
|
|
|
+ br.Msg = "上传文件类型失败"
|
|
|
+ br.ErrMsg = "上传文件类型非法,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ ext := path.Ext(h.Filename)
|
|
|
+ //if ext != ".pdf" {
|
|
|
+ // br.Msg = "文件格式不正确"
|
|
|
+ // return
|
|
|
+ //}
|
|
|
+ size, err := strconv.Atoi(utils.UPLOAD_IMG_SIZE)
|
|
|
+ if err != nil {
|
|
|
+ size = 15
|
|
|
+ }
|
|
|
+ if h.Size > 1024*1024*int64(size) {
|
|
|
+ br.Msg = "文件大小不能超过15M"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ dateDir := time.Now().Format("20060102")
|
|
|
+ uploadDir := utils.STATIC_DIR + "ht/img" + dateDir
|
|
|
+ err = os.MkdirAll(uploadDir, utils.DIR_MOD)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "存储目录创建失败"
|
|
|
+ br.ErrMsg = "存储目录创建失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ randStr := utils.GetRandStringNoSpecialChar(28)
|
|
|
+ fileName := randStr + ext
|
|
|
+ fpath := uploadDir + "/" + fileName
|
|
|
+ err = this.SaveToFile("File", fpath)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "文件上传失败"
|
|
|
+ br.ErrMsg = "文件上传失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ pdfUploadDir := utils.RESOURCE_DIR + "img/"
|
|
|
+ savePdfToOssPath := pdfUploadDir + time.Now().Format("200601/20060102/")
|
|
|
+ pptName := utils.GetRandStringNoSpecialChar(28)
|
|
|
+ savePdfToOssPath += pptName + ext
|
|
|
+
|
|
|
+ defer func() {
|
|
|
+ _ = os.Remove(fpath)
|
|
|
+ }()
|
|
|
+
|
|
|
+ ossClient := services.NewOssClient()
|
|
|
+ if ossClient == nil {
|
|
|
+ br.Msg = "文件上传失败"
|
|
|
+ br.ErrMsg = "初始化OSS服务失败"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ pdfUrl, err := ossClient.UploadFile("", fpath, savePdfToOssPath)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "文件上传失败"
|
|
|
+ br.ErrMsg = "文件上传失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ base := path.Base(h.Filename)
|
|
|
+ resp := new(response.ReportPdfUploadResp)
|
|
|
+ resp.Url = pdfUrl
|
|
|
+ resp.FileName = base
|
|
|
+
|
|
|
+ br.Data = resp
|
|
|
+ br.Msg = "上传成功"
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+}
|
|
|
+
|
|
|
+// @Title 上传图片
|
|
|
+// @Description 上传图片
|
|
|
+// @Param File query file true "文件"
|
|
|
+// @Success 200 {object} models.ReportAuthorResp
|
|
|
+// @router /uploadFile [post]
|
|
|
+func (this *MediaController) UploadVideo(mediaType string) {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ f, h, err := this.GetFile("File")
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取资源信息失败"
|
|
|
+ br.ErrMsg = "获取资源信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ defer f.Close()
|
|
|
+ if !checkMediaType(mediaType) {
|
|
|
+ br.Msg = "上传文件类型失败"
|
|
|
+ br.ErrMsg = "上传文件类型非法,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ ext := path.Ext(h.Filename)
|
|
|
+ //if ext != ".pdf" {
|
|
|
+ // br.Msg = "文件格式不正确"
|
|
|
+ // return
|
|
|
+ //}
|
|
|
+ size, err := strconv.Atoi(utils.UPLOAD_IMG_SIZE)
|
|
|
+ if err != nil {
|
|
|
+ size = 15
|
|
|
+ }
|
|
|
+ if h.Size > 1024*1024*int64(size) {
|
|
|
+ br.Msg = "文件大小不能超过15M"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ dateDir := time.Now().Format("20060102")
|
|
|
+ uploadDir := utils.STATIC_DIR + "ht/img" + dateDir
|
|
|
+ err = os.MkdirAll(uploadDir, utils.DIR_MOD)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "存储目录创建失败"
|
|
|
+ br.ErrMsg = "存储目录创建失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ randStr := utils.GetRandStringNoSpecialChar(28)
|
|
|
+ fileName := randStr + ext
|
|
|
+ fpath := uploadDir + "/" + fileName
|
|
|
+ err = this.SaveToFile("File", fpath)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "文件上传失败"
|
|
|
+ br.ErrMsg = "文件上传失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ pdfUploadDir := utils.RESOURCE_DIR + "img/"
|
|
|
+ savePdfToOssPath := pdfUploadDir + time.Now().Format("200601/20060102/")
|
|
|
+ pptName := utils.GetRandStringNoSpecialChar(28)
|
|
|
+ savePdfToOssPath += pptName + ext
|
|
|
+
|
|
|
+ defer func() {
|
|
|
+ _ = os.Remove(fpath)
|
|
|
+ }()
|
|
|
+
|
|
|
+ ossClient := services.NewOssClient()
|
|
|
+ if ossClient == nil {
|
|
|
+ br.Msg = "文件上传失败"
|
|
|
+ br.ErrMsg = "初始化OSS服务失败"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ pdfUrl, err := ossClient.UploadFile("", fpath, savePdfToOssPath)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "文件上传失败"
|
|
|
+ br.ErrMsg = "文件上传失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ base := path.Base(h.Filename)
|
|
|
+ resp := new(response.ReportPdfUploadResp)
|
|
|
+ resp.Url = pdfUrl
|
|
|
+ resp.FileName = base
|
|
|
+
|
|
|
+ br.Data = resp
|
|
|
+ br.Msg = "上传成功"
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+}
|