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) }