新增: 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:
46
backend/internal/service/auth_service.go
Normal file
46
backend/internal/service/auth_service.go
Normal file
@@ -0,0 +1,46 @@
|
||||
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]
|
||||
}
|
||||
Reference in New Issue
Block a user