fonchain-fiee/pkg/service/ai_images/feedback.go
2025-02-19 14:24:15 +08:00

132 lines
3.0 KiB
Go

package ai_images
import (
"strconv"
"dubbo.apache.org/dubbo-go/v3/common/logger"
"github.com/fonchain_enterprise/fonchain-main/api/feedback"
"github.com/fonchain_enterprise/fonchain-main/pkg/e"
"github.com/fonchain_enterprise/fonchain-main/pkg/model/login"
"github.com/fonchain_enterprise/fonchain-main/pkg/service"
"github.com/gin-gonic/gin"
"github.com/gin-gonic/gin/binding"
)
func Create(c *gin.Context) {
var req feedback.FeedbackRequest
if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil {
service.Error(c, e.InvalidParams, err)
return
}
userInfo := login.GetUserInfoFromC(c)
logger.Info("-------------------------------")
logger.Info("userInfo:", userInfo)
// TODO 创建审批 防止重复提交
// lockKey := fmt.Sprintf("create_feedback_%v_%v", userInfo.ID, req.FeedbackType)
// reply := cache.RedisClient.SetNX(lockKey, 0, 3*time.Second)
// if !reply.Val() {
// service.Error(c, e.Error, nil, e.ErrorCreateFeedback)
// return
// }
//提交人
req.SubmitterName = userInfo.NickName
req.SubmitterID = userInfo.ID
res, err := service.FeedbackProvider.Create(c, &req)
if err != nil {
service.Error(c, e.Error, err)
return
}
service.Success(c, res)
}
func Remove(c *gin.Context) {
var req feedback.FeedbackDetail
if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil {
service.Error(c, e.InvalidParams, err)
return
}
res, err := service.FeedbackProvider.Remove(c, &req)
if err != nil {
service.Error(c, e.Error, err)
return
}
service.Success(c, res)
}
func Detail(c *gin.Context) {
var req feedback.FeedbackDetail
if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil {
service.Error(c, e.InvalidParams, err)
return
}
res, err := service.FeedbackProvider.Detail(c, &req)
if err != nil {
service.Error(c, e.Error, err)
return
}
service.Success(c, res)
}
func Update(c *gin.Context) {
var req feedback.FeedbackDetail
if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil {
service.Error(c, e.InvalidParams, err)
return
}
userInfo := login.GetUserInfoFromC(c)
logger.Info("-------------------------------")
logger.Info("userInfo:", userInfo)
// TODO 创建审批 防止重复提交
// lockKey := fmt.Sprintf("create_feedback_%v_%v", userInfo.ID, req.FeedbackType)
// reply := cache.RedisClient.SetNX(lockKey, 0, 3*time.Second)
// if !reply.Val() {
// service.Error(c, e.Error, nil, e.ErrorCreateFeedback)
// return
// }
//提交人
req.HandleName = userInfo.NickName
req.HandleID = strconv.FormatInt(int64(userInfo.ID), 10)
res, err := service.FeedbackProvider.Update(c, &req)
if err != nil {
service.Error(c, e.Error, err)
return
}
service.Success(c, res)
}
func List(c *gin.Context) {
var req feedback.FeedbackList
if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil {
service.Error(c, e.InvalidParams, err)
return
}
res, err := service.FeedbackProvider.List(c, &req)
if err != nil {
service.Error(c, e.Error, err)
return
}
service.Success(c, res)
}