This commit is contained in:
2026-08-15 01:12:04 +08:00
parent f63acae353
commit 6698e59c3a
45 changed files with 725 additions and 415 deletions
+54 -33
View File
@@ -1,9 +1,11 @@
package handler
import (
"errors"
"strconv"
"time"
"kra/internal/biz"
"kra/internal/server/httpx"
"kra/internal/service"
"kra/internal/service/dto"
@@ -56,27 +58,27 @@ func (h *Audit) Operation(c *gin.Context) {
}
func (h *Audit) DeleteOperation(c *gin.Context) {
var req dto.IDRequest
if c.ShouldBindJSON(&req) != nil || req.ID == 0 {
httpx.Fail(c, "参数错误")
if err := c.ShouldBindJSON(&req); err != nil {
httpx.Fail(c, err.Error())
return
}
if err := h.service.DeleteOperations(c.Request.Context(), []uint{req.ID}); err != nil {
httpx.Fail(c, "删除失败")
return
}
httpx.OK(c)
httpx.Write(c, httpx.CodeSuccess, gin.H{}, "删除成功")
}
func (h *Audit) DeleteOperations(c *gin.Context) {
var req dto.IDsRequest
if c.ShouldBindJSON(&req) != nil || len(req.IDs) == 0 {
httpx.Fail(c, "参数错误")
if err := c.ShouldBindJSON(&req); err != nil {
httpx.Fail(c, err.Error())
return
}
if err := h.service.DeleteOperations(c.Request.Context(), req.IDs); err != nil {
httpx.Fail(c, "删除失败")
httpx.Fail(c, "批量删除失败")
return
}
httpx.OK(c)
httpx.Write(c, httpx.CodeSuccess, gin.H{}, "批量删除成功")
}
func (h *Audit) Logins(c *gin.Context) {
@@ -100,27 +102,27 @@ func (h *Audit) Login(c *gin.Context) {
}
func (h *Audit) DeleteLogin(c *gin.Context) {
var req dto.IDRequest
if c.ShouldBindJSON(&req) != nil || req.ID == 0 {
httpx.Fail(c, "参数错误")
if err := c.ShouldBindJSON(&req); err != nil {
httpx.Fail(c, err.Error())
return
}
if err := h.service.DeleteLogins(c.Request.Context(), []uint{req.ID}); err != nil {
httpx.Fail(c, "删除失败")
return
}
httpx.OK(c)
httpx.Write(c, httpx.CodeSuccess, gin.H{}, "删除成功")
}
func (h *Audit) DeleteLogins(c *gin.Context) {
var req dto.IDsRequest
if c.ShouldBindJSON(&req) != nil || len(req.IDs) == 0 {
httpx.Fail(c, "参数错误")
if err := c.ShouldBindJSON(&req); err != nil {
httpx.Fail(c, err.Error())
return
}
if err := h.service.DeleteLogins(c.Request.Context(), req.IDs); err != nil {
httpx.Fail(c, "删除失败")
httpx.Fail(c, "批量删除失败")
return
}
httpx.OK(c)
httpx.Write(c, httpx.CodeSuccess, gin.H{}, "批量删除成功")
}
func (h *Audit) DataAccess(c *gin.Context) {
@@ -131,7 +133,7 @@ func (h *Audit) DataAccess(c *gin.Context) {
}
items, total, err := h.service.DataAccessRequest(c.Request.Context(), &req)
if err != nil {
httpx.Fail(c, "获取失败")
httpx.Fail(c, "获取失败:"+err.Error())
return
}
httpx.Write(c, httpx.CodeSuccess, httpx.PageResult{List: items, Total: total, Page: req.Page, PageSize: req.PageSize}, "获取成功")
@@ -143,16 +145,16 @@ func (h *Audit) DeleteDataAccess(c *gin.Context) {
return
}
if err := h.service.DeleteDataAccess(c.Request.Context(), req.IDs); err != nil {
httpx.Fail(c, "删除失败")
httpx.Fail(c, "删除失败:"+err.Error())
return
}
httpx.OK(c)
httpx.Write(c, httpx.CodeSuccess, gin.H{}, "删除成功")
}
func (h *Audit) LogDates(c *gin.Context) {
data, err := h.service.LogDates(c.Request.Context(), c.Query("month"))
if err != nil {
httpx.Fail(c, err.Error())
failLogViewer(c, err)
return
}
httpx.Write(c, httpx.CodeSuccess, data, "获取成功")
@@ -160,7 +162,7 @@ func (h *Audit) LogDates(c *gin.Context) {
func (h *Audit) LogFiles(c *gin.Context) {
data, err := h.service.LogFiles(c.Request.Context(), c.Query("date"))
if err != nil {
httpx.Fail(c, err.Error())
failLogViewer(c, err)
return
}
httpx.Write(c, httpx.CodeSuccess, data, "获取成功")
@@ -177,26 +179,45 @@ func (h *Audit) LogContent(c *gin.Context) {
}
data, err := h.service.LogContent(c.Request.Context(), c.Query("date"), c.Query("path"), cursor)
if err != nil {
httpx.Fail(c, err.Error())
failLogViewer(c, err)
return
}
httpx.Write(c, httpx.CodeSuccess, data, "获取成功")
}
func failLogViewer(c *gin.Context, err error) {
message := "读取日志失败"
switch {
case errors.Is(err, biz.ErrInvalidLogMonth):
message = "日志月份格式不正确"
case errors.Is(err, biz.ErrInvalidLogDate):
message = "日志日期格式不正确"
case errors.Is(err, biz.ErrInvalidLogPath):
message = "日志文件路径不合法"
case errors.Is(err, biz.ErrLogFileNotFound):
message = "日志文件不存在"
case errors.Is(err, biz.ErrLogFileUnreadable):
message = "日志文件不可读取"
case errors.Is(err, biz.ErrLogRootUnavailable):
message = "日志目录不可读取"
}
httpx.Fail(c, message)
}
func (h *Audit) DeleteError(c *gin.Context) {
id, _ := strconv.ParseUint(c.Query("ID"), 10, 64)
if err := h.service.DeleteErrors(c.Request.Context(), []uint{uint(id)}); err != nil {
httpx.Fail(c, "删除失败")
httpx.Fail(c, "删除失败:"+err.Error())
return
}
httpx.OK(c)
httpx.Write(c, httpx.CodeSuccess, gin.H{}, "删除成功")
}
func (h *Audit) DeleteErrors(c *gin.Context) {
if err := h.service.DeleteErrors(c.Request.Context(), IDsFromQuery(c)); err != nil {
httpx.Fail(c, "删除失败")
httpx.Fail(c, "批量删除失败:"+err.Error())
return
}
httpx.OK(c)
httpx.Write(c, httpx.CodeSuccess, gin.H{}, "批量删除成功")
}
func (h *Audit) UpdateError(c *gin.Context) {
var req dto.ErrorRecordRequest
@@ -205,19 +226,19 @@ func (h *Audit) UpdateError(c *gin.Context) {
return
}
if err := h.service.UpdateErrorRequest(c.Request.Context(), &req); err != nil {
httpx.Fail(c, "更新失败")
httpx.Fail(c, "更新失败:"+err.Error())
return
}
httpx.OK(c)
httpx.Write(c, httpx.CodeSuccess, gin.H{}, "更新成功")
}
func (h *Audit) Error(c *gin.Context) {
id, _ := strconv.ParseUint(c.Query("ID"), 10, 64)
item, err := h.service.Error(c.Request.Context(), uint(id))
if err != nil {
httpx.Fail(c, "查询失败")
httpx.Fail(c, "查询失败:"+err.Error())
return
}
httpx.Write(c, httpx.CodeSuccess, item, "查询成功")
httpx.OKWithData(c, item)
}
func (h *Audit) Errors(c *gin.Context) {
p, size := page(c)
@@ -232,20 +253,20 @@ func (h *Audit) Errors(c *gin.Context) {
}
items, total, err := h.service.ErrorsFilter(c.Request.Context(), p, size, c.Query("form"), c.Query("info"), createdAtRange)
if err != nil {
httpx.Fail(c, "获取失败")
httpx.Fail(c, "获取失败:"+err.Error())
return
}
httpx.Write(c, httpx.CodeSuccess, httpx.PageResult{List: items, Total: total, Page: p, PageSize: size}, "获取成功")
}
func (h *Audit) CreateError(c *gin.Context) {
var req dto.ErrorRecordRequest
if c.ShouldBindJSON(&req) != nil || req.Form == "" {
httpx.Fail(c, "参数错误")
if err := c.ShouldBindJSON(&req); err != nil {
httpx.Fail(c, err.Error())
return
}
if err := h.service.CreateErrorRequest(c.Request.Context(), &req); err != nil {
httpx.Fail(c, "创建失败")
httpx.Fail(c, "创建失败:"+err.Error())
return
}
httpx.OK(c)
httpx.Write(c, httpx.CodeSuccess, gin.H{}, "创建成功")
}