新增: AI工单处理工作台 v1.0
- Go Gin 后端 (19个源文件): 认证、工单CRUD、GLM AI分析、状态流转、备注、操作日志 - Arco Design Vue 前端: 登录、工单列表/详情/创建、AI分析触发与确认 - MySQL 5表: ticket_user/ticket_info/ticket_ai_analysis/ticket_operation_log/ticket_note - 部署: tk.1216.top HTTPS, Nginx反代
This commit is contained in:
64
backend/internal/handler/auth_handler.go
Normal file
64
backend/internal/handler/auth_handler.go
Normal file
@@ -0,0 +1,64 @@
|
||||
package handler
|
||||
|
||||
import (
|
||||
"github.com/casehub/ticket-workbench/internal/dto"
|
||||
"github.com/casehub/ticket-workbench/internal/service"
|
||||
"github.com/gin-gonic/gin"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func Login(db *gorm.DB) gin.HandlerFunc {
|
||||
return func(c *gin.Context) {
|
||||
var req dto.LoginRequest
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
c.JSON(200, dto.Fail("参数错误"))
|
||||
return
|
||||
}
|
||||
|
||||
user, sessionID, err := service.Login(db, req.Account, req.Password)
|
||||
if err != nil {
|
||||
c.JSON(200, dto.Fail(err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(200, dto.Success(map[string]interface{}{
|
||||
"token": sessionID,
|
||||
"user": map[string]interface{}{
|
||||
"userid": user.Userid,
|
||||
"username": user.Username,
|
||||
"account": user.Account,
|
||||
"role": user.Role,
|
||||
"team": user.Team,
|
||||
},
|
||||
}))
|
||||
}
|
||||
}
|
||||
|
||||
func Logout() gin.HandlerFunc {
|
||||
return func(c *gin.Context) {
|
||||
sessionID := c.GetHeader("Authorization")
|
||||
if sessionID == "" {
|
||||
sessionID = c.GetHeader("jsessionid")
|
||||
}
|
||||
service.Logout(sessionID)
|
||||
c.JSON(200, dto.Success(nil))
|
||||
}
|
||||
}
|
||||
|
||||
func UserInfo() gin.HandlerFunc {
|
||||
return func(c *gin.Context) {
|
||||
userid, _ := c.Get("userid")
|
||||
username, _ := c.Get("username")
|
||||
account := c.GetString("account")
|
||||
role, _ := c.Get("role")
|
||||
team, _ := c.Get("team")
|
||||
|
||||
c.JSON(200, dto.Success(map[string]interface{}{
|
||||
"userid": userid,
|
||||
"username": username,
|
||||
"account": account,
|
||||
"role": role,
|
||||
"team": team,
|
||||
}))
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user