Files
ticket-workbench/backend/internal/service/auth_service.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

47 lines
997 B
Go

package service
import (
"crypto/md5"
"encoding/hex"
"fmt"
"github.com/casehub/ticket-workbench/internal/model"
"github.com/google/uuid"
"gorm.io/gorm"
)
var sessions = make(map[string]*model.TicketUser)
func MD5Hash(text string) string {
hash := md5.Sum([]byte(text))
return hex.EncodeToString(hash[:])
}
func Login(db *gorm.DB, account, password string) (*model.TicketUser, string, error) {
var user model.TicketUser
err := db.Where("account = ? AND status = 1", account).First(&user).Error
if err != nil {
if err == gorm.ErrRecordNotFound {
return nil, "", fmt.Errorf("账号或密码错误")
}
return nil, "", err
}
if user.Password != MD5Hash(password) {
return nil, "", fmt.Errorf("账号或密码错误")
}
sessionID := uuid.New().String()
sessions[sessionID] = &user
return &user, sessionID, nil
}
func Logout(sessionID string) {
delete(sessions, sessionID)
}
func GetUserBySession(sessionID string) *model.TicketUser {
return sessions[sessionID]
}