Files
be.ems/features/ue/mf_callback_ticket/controller.go
2025-06-11 17:24:41 +08:00

156 lines
3.4 KiB
Go

package mf_callback_ticket
import (
"strconv"
"be.ems/src/framework/i18n"
"be.ems/src/framework/middleware"
"be.ems/src/framework/utils/ctx"
"be.ems/src/framework/vo/result"
"github.com/gin-gonic/gin"
)
// @Description Register Routes for mf calling
func Register(r *gin.RouterGroup) {
mfCallingGroup := r.Group("/ticket")
{
var m *CallbackTicket
mfCallingGroup.GET("/list",
middleware.PreAuthorize(nil),
m.List,
)
mfCallingGroup.PUT("/:ticketId",
middleware.PreAuthorize(nil),
m.Update,
)
mfCallingGroup.DELETE("/:ticketId",
middleware.PreAuthorize(nil),
m.Delete,
)
mfCallingGroup.GET("/:ticketId",
middleware.PreAuthorize(nil),
m.GetById,
)
}
}
func (m *CallbackTicket) List(c *gin.Context) {
language := ctx.AcceptLanguage(c)
neId := c.Query("neId")
if neId == "" {
c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400")))
return
}
var query CallbackTicketQuery
if err := c.ShouldBindQuery(&query); err != nil {
c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400")))
return
}
service := NewCallbackTicketService()
data, total, err := service.SelectCallbackTicket(query)
if err != nil {
c.JSON(500, result.ErrMsg(err.Error()))
return
}
c.JSON(200, result.Ok(gin.H{
"total": total,
"data": data,
}))
}
// Update 更新回调工单
func (m *CallbackTicket) Update(c *gin.Context) {
language := ctx.AcceptLanguage(c)
// 获取路径参数
ticketId := c.Param("ticketId")
// 绑定请求体
var ticket CallbackTicket
if err := c.ShouldBindJSON(&ticket); err != nil {
c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400")))
return
}
// 检查路径ID和请求体ID是否一致
if ticketId != "" {
id, err := strconv.ParseInt(ticketId, 10, 64)
if err != nil {
c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400")))
return
}
ticket.TicketId = id
}
service := NewCallbackTicketService()
if err := service.UpdateCallbackTicket(ticket); err != nil {
c.JSON(500, result.ErrMsg(err.Error()))
return
}
c.JSON(200, result.Ok(nil))
}
// Delete 删除回调工单
func (m *CallbackTicket) Delete(c *gin.Context) {
language := ctx.AcceptLanguage(c)
// 获取路径参数
ticketId := c.Param("ticketId")
if ticketId == "" {
c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400")))
return
}
id, err := strconv.ParseInt(ticketId, 10, 64)
if err != nil {
c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400")))
return
}
service := NewCallbackTicketService()
if err := service.DeleteCallbackTicket(id); err != nil {
c.JSON(500, result.ErrMsg(err.Error()))
return
}
c.JSON(200, result.Ok(nil))
}
// GetById 根据ID获取回调工单
func (m *CallbackTicket) GetById(c *gin.Context) {
language := ctx.AcceptLanguage(c)
// 获取路径参数
ticketId := c.Param("ticketId")
if ticketId == "" {
c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400")))
return
}
id, err := strconv.ParseInt(ticketId, 10, 64)
if err != nil {
c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400")))
return
}
service := NewCallbackTicketService()
ticket, err := service.SelectCallbackTicketById(id)
if err != nil {
c.JSON(500, result.ErrMsg(err.Error()))
return
}
if ticket == nil {
c.JSON(404, result.CodeMsg(404, i18n.TKey(language, "app.common.err404")))
return
}
c.JSON(200, result.Ok(gin.H{
"ticket": ticket,
}))
}