优化结构

This commit is contained in:
Yvan
2026-08-22 12:13:16 +08:00
parent d987244d0e
commit b27a66e9d3
200 changed files with 1794 additions and 1715 deletions
+7 -7
View File
@@ -2,11 +2,11 @@ package handler
import (
"errors"
"kra/internal/biz/system"
"log/slog"
"strconv"
"time"
"kra/internal/biz"
"kra/internal/service"
"kra/internal/service/dto"
@@ -215,17 +215,17 @@ func failLogViewer(c *gin.Context, err error, logger *slog.Logger) {
}
message := "读取日志失败"
switch {
case errors.Is(err, biz.ErrInvalidLogMonth):
case errors.Is(err, system.ErrInvalidLogMonth):
message = "日志月份格式不正确"
case errors.Is(err, biz.ErrInvalidLogDate):
case errors.Is(err, system.ErrInvalidLogDate):
message = "日志日期格式不正确"
case errors.Is(err, biz.ErrInvalidLogPath):
case errors.Is(err, system.ErrInvalidLogPath):
message = "日志文件路径不合法"
case errors.Is(err, biz.ErrLogFileNotFound):
case errors.Is(err, system.ErrLogFileNotFound):
message = "日志文件不存在"
case errors.Is(err, biz.ErrLogFileUnreadable):
case errors.Is(err, system.ErrLogFileUnreadable):
message = "日志文件不可读取"
case errors.Is(err, biz.ErrLogRootUnavailable):
case errors.Is(err, system.ErrLogRootUnavailable):
message = "日志目录不可读取"
}
Fail(c, message)
+4 -3
View File
@@ -1,10 +1,11 @@
package handler
import (
"github.com/gin-gonic/gin"
"kra/internal/biz"
"kra/internal/biz/system"
"kra/internal/server/httpx"
"kra/internal/server/middleware"
"github.com/gin-gonic/gin"
)
const (
@@ -22,4 +23,4 @@ func OKWithData(c *gin.Context, data any) { httpx.OKWithDat
func Fail(c *gin.Context, message string) { httpx.Fail(c, message) }
func NoAuth(c *gin.Context, message string) { httpx.NoAuth(c, message) }
func SetTokenCookie(c *gin.Context, value string, maxAge int) { httpx.SetTokenCookie(c, value, maxAge) }
func Claims(c *gin.Context) *biz.AuthClaims { return middleware.Claims(c) }
func Claims(c *gin.Context) *system.AuthClaims { return middleware.Claims(c) }
+8 -8
View File
@@ -3,11 +3,11 @@ package handler
import (
"context"
"errors"
"kra/internal/biz/system"
"strconv"
"strings"
"time"
"kra/internal/biz"
"kra/internal/service"
"kra/internal/service/dto"
@@ -75,23 +75,23 @@ func (h *Public) Login(c *gin.Context) {
result, err := h.auth.Login(c.Request.Context(), &req, c.ClientIP(), c.Request.UserAgent())
if err != nil {
switch {
case errors.Is(err, biz.ErrAccountLocked):
var locked *biz.AccountLockedError
case errors.Is(err, system.ErrAccountLocked):
var locked *system.AccountLockedError
errors.As(err, &locked)
minutes := 0
if locked != nil {
minutes = locked.Minutes
}
Fail(c, "账号已锁定,请 "+strconv.Itoa(minutes)+" 分钟后再试")
case errors.Is(err, biz.ErrCaptchaInvalid):
case errors.Is(err, system.ErrCaptchaInvalid):
Fail(c, "验证码错误")
case errors.Is(err, biz.ErrUserDisabled):
case errors.Is(err, system.ErrUserDisabled):
Fail(c, "用户被禁止登录")
case errors.Is(err, biz.ErrTokenIssue):
case errors.Is(err, system.ErrTokenIssue):
Fail(c, "获取token失败")
case errors.Is(err, biz.ErrLoginState):
case errors.Is(err, system.ErrLoginState):
Fail(c, "设置登录状态失败")
case errors.Is(err, biz.ErrTokenRevoke):
case errors.Is(err, system.ErrTokenRevoke):
Fail(c, "jwt作废失败")
default:
Fail(c, "用户名不存在或者密码错误")
+12 -12
View File
@@ -3,11 +3,11 @@ package handler
import (
"errors"
"fmt"
"kra/internal/biz/system"
"net/http"
"strconv"
"time"
"kra/internal/biz"
"kra/internal/service"
"kra/internal/service/dto"
@@ -18,8 +18,8 @@ type Version struct{ service *service.VersionService }
func NewVersion(service *service.VersionService) *Version { return &Version{service: service} }
func versionStage(err error) (biz.VersionStage, bool) {
var stageErr *biz.VersionStageError
func versionStage(err error) (system.VersionStage, bool) {
var stageErr *system.VersionStageError
if !errors.As(err, &stageErr) {
return "", false
}
@@ -89,15 +89,15 @@ func (h *Version) Export(c *gin.Context) {
}
if err := h.service.Export(c.Request.Context(), req.VersionName, req.VersionCode, req.Description, req.MenuIDs, req.APIIDs, req.DictIDs); err != nil {
switch stage, _ := versionStage(err); stage {
case biz.VersionStageMenus:
case system.VersionStageMenus:
Fail(c, "获取菜单数据失败:"+err.Error())
case biz.VersionStageAPIs:
case system.VersionStageAPIs:
Fail(c, "获取API数据失败:"+err.Error())
case biz.VersionStageDictionaries:
case system.VersionStageDictionaries:
Fail(c, "获取字典数据失败:"+err.Error())
case biz.VersionStageJSON:
case system.VersionStageJSON:
Fail(c, "JSON序列化失败:"+err.Error())
case biz.VersionStageSave:
case system.VersionStageSave:
Fail(c, "保存版本记录失败:"+err.Error())
default:
Fail(c, "创建发版失败:"+err.Error())
@@ -131,16 +131,16 @@ func (h *Version) Import(c *gin.Context) {
return
}
if err := h.service.ImportRequest(c.Request.Context(), &req); err != nil {
if errors.Is(err, biz.ErrInvalidVersion) {
if errors.Is(err, system.ErrInvalidVersion) {
Fail(c, "版本信息格式错误")
return
}
switch stage, _ := versionStage(err); stage {
case biz.VersionStageMenus:
case system.VersionStageMenus:
Fail(c, "导入菜单失败: "+err.Error())
case biz.VersionStageAPIs:
case system.VersionStageAPIs:
Fail(c, "导入API失败: "+err.Error())
case biz.VersionStageDictionaries:
case system.VersionStageDictionaries:
Fail(c, "导入字典失败: "+err.Error())
default:
Fail(c, "导入失败:"+err.Error())