Browse Source

添加图片上传接口

xingzai 1 year ago
parent
commit
7be2be3399
3 changed files with 79 additions and 0 deletions
  1. 69 0
      controllers/report.go
  2. 9 0
      routers/commentsRouter.go
  3. 1 0
      routers/router.go

+ 69 - 0
controllers/report.go

@@ -2,8 +2,14 @@ package controllers
 
 import (
 	"encoding/json"
+	"fmt"
+	"github.com/beego/beego/v2/server/web"
 	"hongze/hz_crm_api/models"
+	"hongze/hz_crm_api/services"
+	"hongze/hz_crm_api/services/alarm_msg"
 	"hongze/hz_crm_api/utils"
+	"os"
+	"path"
 	"strings"
 	"time"
 )
@@ -13,6 +19,11 @@ type ReportController struct {
 	BaseAuthController
 }
 
+// 报告上传
+type ReportUploadCommonController struct {
+	web.Controller
+}
+
 // GetDayWeekReportChapterTypeList
 // @Title 获取晨报周报章节类型列表
 // @Description 获取晨报周报章节类型列表
@@ -311,3 +322,61 @@ func (this *ReportController) GetStopDayWeekReportChapterTypeList() {
 	br.Msg = "获取成功"
 	br.Data = resp
 }
+
+// @Title 图片上传
+// @Description 图片上传接口
+// @Param   File   query   file  true       "文件"
+// @Success 200 上传成功
+// @router /uploadImg [post]
+func (this *ReportUploadCommonController) UploadImg() {
+	var err error
+	defer func() {
+		if err != nil {
+			fmt.Println("文件上传失败:", err.Error())
+			go alarm_msg.SendAlarmMsg("URI:"+this.Ctx.Input.URI()+" 文件上传失败:"+err.Error(), 3)
+			//go utils.SendEmail(utils.APPNAME+"失败提醒", "URI:"+this.Ctx.Input.URI()+" 文件上传失败:"+err.Error(), utils.EmailSendToUsers)
+		}
+	}()
+	f, h, err := this.GetFile("file")
+	if err != nil {
+		return
+	}
+	ext := path.Ext(h.Filename)
+	dateDir := time.Now().Format("20060102")
+	uploadDir := utils.STATIC_DIR + "hongze/" + dateDir
+	err = os.MkdirAll(uploadDir, 777)
+	if err != nil {
+		return
+	}
+	randStr := utils.GetRandStringNoSpecialChar(28)
+	fileName := randStr + ext
+	fpath := uploadDir + "/" + fileName
+	defer f.Close() //关闭上传文件
+	err = this.SaveToFile("file", fpath)
+	if err != nil {
+		return
+	}
+	//上传到阿里云
+	resourceUrl, err := services.UploadAliyunV2(fileName, fpath)
+	if err != nil {
+		return
+	}
+
+	defer func() {
+		os.Remove(fpath)
+	}()
+
+	item := new(models.Resource)
+	item.ResourceUrl = resourceUrl
+	item.ResourceType = 1
+	item.CreateTime = time.Now()
+	newId, err := models.AddResource(item)
+	if err != nil {
+		return
+	}
+	resp := new(models.ResourceResp)
+	resp.Id = newId
+	resp.ResourceUrl = resourceUrl
+	this.Data["json"] = map[string]string{"link": resourceUrl}
+	this.ServeJSON()
+}

+ 9 - 0
routers/commentsRouter.go

@@ -9394,6 +9394,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["hongze/hz_crm_api/controllers:ReportUploadCommonController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers:ReportUploadCommonController"],
+        beego.ControllerComments{
+            Method: "UploadImg",
+            Router: `/uploadImg`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["hongze/hz_crm_api/controllers:ResearchGroupController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers:ResearchGroupController"],
         beego.ControllerComments{
             Method: "GetAdminResearchGroup",

+ 1 - 0
routers/router.go

@@ -65,6 +65,7 @@ func init() {
 				&controllers.StatisticReportController{},
 				&controllers.StatisticYbLogController{},
 				&controllers.StatisticReportCommonController{},
+				&controllers.ReportUploadCommonController{},
 			),
 		),
 		web.NSNamespace("/voice",