Files
ticket-workbench/backend/internal/handler/auth_handler.go
绝尘 4793b1a533 新增: 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反代
2026-05-13 17:05:49 +08:00

65 lines
1.4 KiB
Go

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