@@ -0,0 +1,154 @@
|
||||
package web
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"videoweb/app/service/authser"
|
||||
"videoweb/app/service/feedbackser"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
// Feedback 意见反馈页:渲染 template/pages/feedback.html。
|
||||
func Feedback(c *gin.Context) {
|
||||
HTMLOK(c, "feedback.html", gin.H{
|
||||
"title": "意见反馈 - 黄果短剧",
|
||||
})
|
||||
}
|
||||
|
||||
// FeedbackAdd BFF:代理 POST /api/app/feedback/add。
|
||||
// 文档:http://172.104.181.99:25319/swagger/index.html#/意见反馈相关接口/post_api_app_feedback_add
|
||||
func FeedbackAdd(c *gin.Context) {
|
||||
var body feedbackser.FeedbackReq
|
||||
if err := c.ShouldBindJSON(&body); err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"code": 400,
|
||||
"msg": "invalid body",
|
||||
"tip": "参数错误",
|
||||
"data": nil,
|
||||
})
|
||||
return
|
||||
}
|
||||
body.Content = strings.TrimSpace(body.Content)
|
||||
body.Contact = strings.TrimSpace(body.Contact)
|
||||
if body.Type < 1 || body.Type > 4 {
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"code": 400,
|
||||
"msg": "invalid type",
|
||||
"tip": "请选择问题类型",
|
||||
"data": nil,
|
||||
})
|
||||
return
|
||||
}
|
||||
if body.Content == "" {
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"code": 400,
|
||||
"msg": "content required",
|
||||
"tip": "请填写问题描述",
|
||||
"data": nil,
|
||||
})
|
||||
return
|
||||
}
|
||||
if runes := []rune(body.Content); len(runes) > 500 {
|
||||
body.Content = string(runes[:500])
|
||||
}
|
||||
if len(body.Screenshots) > 3 {
|
||||
body.Screenshots = body.Screenshots[:3]
|
||||
}
|
||||
|
||||
env, err := feedbackser.Add(c, body)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"code": 500,
|
||||
"msg": err.Error(),
|
||||
"tip": "提交失败,请稍后重试",
|
||||
"data": nil,
|
||||
})
|
||||
return
|
||||
}
|
||||
if env == nil {
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"code": 500,
|
||||
"msg": "empty response",
|
||||
"tip": "提交失败,请稍后重试",
|
||||
"data": nil,
|
||||
})
|
||||
return
|
||||
}
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"code": env.Code,
|
||||
"msg": env.Msg,
|
||||
"tip": env.Tip,
|
||||
"data": env.Data,
|
||||
})
|
||||
}
|
||||
|
||||
// UploadImage BFF:代理 POST /api/app/upload/image。
|
||||
// 文档:http://172.104.181.99:25319/swagger/index.html#/上传/post_api_app_upload_image
|
||||
func UploadImage(c *gin.Context) {
|
||||
fileHeader, err := c.FormFile("file")
|
||||
if err != nil || fileHeader == nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"code": 400,
|
||||
"msg": "file required",
|
||||
"tip": "请选择图片文件",
|
||||
"data": nil,
|
||||
})
|
||||
return
|
||||
}
|
||||
f, err := fileHeader.Open()
|
||||
if err != nil {
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"code": 500,
|
||||
"msg": err.Error(),
|
||||
"tip": "读取图片失败",
|
||||
"data": nil,
|
||||
})
|
||||
return
|
||||
}
|
||||
defer f.Close()
|
||||
|
||||
name := filepath.Base(fileHeader.Filename)
|
||||
if name == "" || name == "." || name == "/" {
|
||||
name = "image.jpg"
|
||||
}
|
||||
resp, err := authser.UploadImage(c, name, f)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"code": 500,
|
||||
"msg": err.Error(),
|
||||
"tip": "上传失败,请稍后重试",
|
||||
"data": nil,
|
||||
})
|
||||
return
|
||||
}
|
||||
if resp == nil {
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"code": 500,
|
||||
"msg": "empty response",
|
||||
"tip": "上传失败,请稍后重试",
|
||||
"data": nil,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
var data gin.H
|
||||
if resp.Data != nil {
|
||||
url := strings.TrimSpace(resp.Data.SourceNameFs)
|
||||
if url == "" {
|
||||
url = strings.TrimSpace(resp.Data.ID)
|
||||
}
|
||||
data = gin.H{
|
||||
"id": resp.Data.ID,
|
||||
"sourceNameFs": resp.Data.SourceNameFs,
|
||||
"url": url,
|
||||
}
|
||||
}
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"code": resp.Code,
|
||||
"msg": resp.Msg,
|
||||
"tip": resp.Tip,
|
||||
"data": data,
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user