V2.5.2beta (#1101)

* fix: zap无法在运行时进行切割日志, config.docker.yaml与config.yaml同步 #1094

* feat: 为定时任务增加秒级控制

* feat: 调整代码结构,err更改为后置

* css 样式调整

Co-authored-by: SliverHorn <503551462@qq.com>
Co-authored-by: songzhibin97 <718428482@qq.com>
This commit is contained in:
奇淼(piexlmax
2022-05-28 19:22:23 +08:00
committed by GitHub
co-authored by SliverHorn songzhibin97
parent 513d4b6849
commit f4e1257400
49 changed files with 490 additions and 456 deletions
+14 -14
View File
@@ -22,14 +22,14 @@ const (
//@param: content []byte, fileName string, contentNumber int, contentTotal int, fileMd5 string
//@return: error, string
func BreakPointContinue(content []byte, fileName string, contentNumber int, contentTotal int, fileMd5 string) (error, string) {
func BreakPointContinue(content []byte, fileName string, contentNumber int, contentTotal int, fileMd5 string) (string, error) {
path := breakpointDir + fileMd5 + "/"
err := os.MkdirAll(path, os.ModePerm)
if err != nil {
return err, path
return path, err
}
err, pathc := makeFileContent(content, fileName, path, contentNumber)
return err, pathc
pathC, err := makeFileContent(content, fileName, path, contentNumber)
return pathC, err
}
//@author: [piexlmax](https://github.com/piexlmax)
@@ -51,21 +51,21 @@ func CheckMd5(content []byte, chunkMd5 string) (CanUpload bool) {
//@function: makeFileContent
//@description: 创建切片内容
//@param: content []byte, fileName string, FileDir string, contentNumber int
//@return: error, string
//@return: string, error
func makeFileContent(content []byte, fileName string, FileDir string, contentNumber int) (error, string) {
func makeFileContent(content []byte, fileName string, FileDir string, contentNumber int) (string, error) {
path := FileDir + fileName + "_" + strconv.Itoa(contentNumber)
f, err := os.Create(path)
if err != nil {
return err, path
return path, err
} else {
_, err = f.Write(content)
if err != nil {
return err, path
return path, err
}
}
defer f.Close()
return nil, path
return path, nil
}
//@author: [piexlmax](https://github.com/piexlmax)
@@ -74,15 +74,15 @@ func makeFileContent(content []byte, fileName string, FileDir string, contentNum
//@param: fileName string, FileMd5 string
//@return: error, string
func MakeFile(fileName string, FileMd5 string) (error, string) {
func MakeFile(fileName string, FileMd5 string) (string, error) {
rd, err := ioutil.ReadDir(breakpointDir + FileMd5)
if err != nil {
return err, finishDir + fileName
return finishDir + fileName, err
}
_ = os.MkdirAll(finishDir, os.ModePerm)
fd, err := os.OpenFile(finishDir+fileName, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0o644)
if err != nil {
return err, finishDir + fileName
return finishDir + fileName, err
}
defer fd.Close()
for k := range rd {
@@ -90,10 +90,10 @@ func MakeFile(fileName string, FileMd5 string) (error, string) {
_, err = fd.Write(content)
if err != nil {
_ = os.Remove(finishDir + fileName)
return err, finishDir + fileName
return finishDir + fileName, err
}
}
return nil, finishDir + fileName
return finishDir + fileName, nil
}
//@author: [piexlmax](https://github.com/piexlmax)
+4 -4
View File
@@ -17,7 +17,7 @@ func GetClaims(c *gin.Context) (*systemReq.CustomClaims, error) {
return claims, err
}
// 从Gin的Context中获取从jwt解析出来的用户ID
// GetUserID 从Gin的Context中获取从jwt解析出来的用户ID
func GetUserID(c *gin.Context) uint {
if claims, exists := c.Get("claims"); !exists {
if cl, err := GetClaims(c); err != nil {
@@ -31,7 +31,7 @@ func GetUserID(c *gin.Context) uint {
}
}
// 从Gin的Context中获取从jwt解析出来的用户UUID
// GetUserUuid 从Gin的Context中获取从jwt解析出来的用户UUID
func GetUserUuid(c *gin.Context) uuid.UUID {
if claims, exists := c.Get("claims"); !exists {
if cl, err := GetClaims(c); err != nil {
@@ -45,7 +45,7 @@ func GetUserUuid(c *gin.Context) uuid.UUID {
}
}
// 从Gin的Context中获取从jwt解析出来的用户角色id
// GetUserAuthorityId 从Gin的Context中获取从jwt解析出来的用户角色id
func GetUserAuthorityId(c *gin.Context) string {
if claims, exists := c.Get("claims"); !exists {
if cl, err := GetClaims(c); err != nil {
@@ -59,7 +59,7 @@ func GetUserAuthorityId(c *gin.Context) string {
}
}
// 从Gin的Context中获取从jwt解析出来的用户角色id
// GetUserInfo 从Gin的Context中获取从jwt解析出来的用户角色id
func GetUserInfo(c *gin.Context) *systemReq.CustomClaims {
if claims, exists := c.Get("claims"); !exists {
if cl, err := GetClaims(c); err != nil {
-29
View File
@@ -1,29 +0,0 @@
package utils
import (
"os"
"github.com/flipped-aurora/gin-vue-admin/server/global"
"github.com/natefinch/lumberjack"
"go.uber.org/zap/zapcore"
)
//@author: [SliverHorn](https://github.com/SliverHorn)
//@function: GetWriteSyncer
//@description: zap logger中加入file-rotatelogs
//@return: zapcore.WriteSyncer, error
func GetWriteSyncer(file string) zapcore.WriteSyncer {
lumberJackLogger := &lumberjack.Logger{
Filename: file, // 日志文件的位置
MaxSize: 10, // 在进行切割之前,日志文件的最大大小(以MB为单位)
MaxBackups: 200, // 保留旧文件的最大个数
MaxAge: 30, // 保留旧文件的最大天数
Compress: true, // 是否压缩/归档旧文件
}
if global.GVA_CONFIG.Zap.LogInConsole {
return zapcore.NewMultiWriteSyncer(zapcore.AddSync(os.Stdout), zapcore.AddSync(lumberJackLogger))
}
return zapcore.AddSync(lumberJackLogger)
}
+1 -1
View File
@@ -28,7 +28,7 @@ func (t *timer) AddTaskByFunc(taskName string, spec string, task func()) (cron.E
t.Lock()
defer t.Unlock()
if _, ok := t.taskList[taskName]; !ok {
t.taskList[taskName] = cron.New()
t.taskList[taskName] = cron.New(cron.WithSeconds())
}
id, err := t.taskList[taskName].AddFunc(spec, task)
t.taskList[taskName].Start()