marge: 合并代码
This commit is contained in:
@@ -121,51 +121,170 @@ func PostMMLToNF(w http.ResponseWriter, r *http.Request) {
|
|||||||
services.ResponseWithJson(w, http.StatusOK, response)
|
services.ResponseWithJson(w, http.StatusOK, response)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
defer conn.Close()
|
||||||
|
|
||||||
loginStr := fmt.Sprintf("%s\n%s\n", config.GetYamlConfig().MML.User, config.GetYamlConfig().MML.Password)
|
conn.SetDeadline(time.Now().Add(10 * time.Second))
|
||||||
n, err = conn.Write([]byte(loginStr))
|
switch strings.ToLower(neType) {
|
||||||
if err != nil {
|
case "upf":
|
||||||
log.Errorf("Error: %s", err.Error())
|
body, err := io.ReadAll(io.LimitReader(r.Body, global.RequestBodyMaxLen))
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
time.Sleep(time.Millisecond * TIME_DELAY_AFTER_WRITE)
|
|
||||||
|
|
||||||
n, err = conn.Read(buf[0:])
|
|
||||||
if err != nil {
|
|
||||||
log.Errorf("Error: %s", err.Error())
|
|
||||||
return
|
|
||||||
}
|
|
||||||
log.Debug(string(buf[0:n]))
|
|
||||||
|
|
||||||
body, err := io.ReadAll(io.LimitReader(r.Body, global.RequestBodyMaxLen))
|
|
||||||
if err != nil {
|
|
||||||
log.Error("io.ReadAll is failed:", err)
|
|
||||||
services.ResponseNotFound404UriNotExist(w, r)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
log.Debug("Body:", string(body))
|
|
||||||
|
|
||||||
mmlRequest := new(MMLRequest)
|
|
||||||
_ = json.Unmarshal(body, mmlRequest)
|
|
||||||
|
|
||||||
for _, mml := range mmlRequest.MML {
|
|
||||||
mmlCommand := fmt.Sprintf("%s\n", mml)
|
|
||||||
log.Debug("mml command:", mmlCommand)
|
|
||||||
_, err = conn.Write([]byte(mmlCommand))
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorf("Error: %s", err.Error())
|
log.Error("io.ReadAll is failed:", err)
|
||||||
|
services.ResponseNotFound404UriNotExist(w, r)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
log.Trace("Body:", string(body))
|
||||||
|
|
||||||
|
mmlRequest := new(MMLRequest)
|
||||||
|
_ = json.Unmarshal(body, mmlRequest)
|
||||||
|
|
||||||
|
n, err = conn.Read(buf[0:])
|
||||||
|
if err != nil {
|
||||||
|
log.Error("Failed to read:", err)
|
||||||
|
mmlResult = append(mmlResult, err.Error())
|
||||||
|
response := Response{mmlResult}
|
||||||
|
services.ResponseWithJson(w, http.StatusOK, response)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
log.Debug(string(buf[0:n]))
|
||||||
|
|
||||||
|
// loginStr := fmt.Sprintf("%s\n%s\n", config.GetYamlConfig().MML.User, config.GetYamlConfig().MML.Password)
|
||||||
|
// _, err = conn.Write([]byte(loginStr))
|
||||||
|
// if err != nil {
|
||||||
|
// log.Error("Failed to write:", err)
|
||||||
|
// mmlResult = append(mmlResult, err.Error())
|
||||||
|
// response := Response{mmlResult}
|
||||||
|
// services.ResponseWithJson(w, http.StatusOK, response)
|
||||||
|
// return
|
||||||
|
// }
|
||||||
|
// time.Sleep(time.Millisecond * TIME_DELAY_AFTER_WRITE)
|
||||||
|
|
||||||
|
n, err = conn.Write([]byte(config.GetYamlConfig().MML.User + "\n"))
|
||||||
|
if err != nil {
|
||||||
|
log.Error("Failed to write:", err)
|
||||||
|
mmlResult = append(mmlResult, err.Error())
|
||||||
|
response := Response{mmlResult}
|
||||||
|
services.ResponseWithJson(w, http.StatusOK, response)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
log.Debug(string(buf[0:n]))
|
||||||
|
time.Sleep(time.Millisecond * TIME_DELAY_AFTER_WRITE)
|
||||||
|
|
||||||
|
// n, err = conn.Read(buf[0:])
|
||||||
|
// if err != nil {
|
||||||
|
// log.Error("Failed to read:", err)
|
||||||
|
// mmlResult = append(mmlResult, err.Error())
|
||||||
|
// response := Response{mmlResult}
|
||||||
|
// services.ResponseWithJson(w, http.StatusOK, response)
|
||||||
|
// return
|
||||||
|
// }
|
||||||
|
// log.Debug(string(buf[0:n]))
|
||||||
|
|
||||||
|
n, err = conn.Write([]byte(config.GetYamlConfig().MML.Password + "\n"))
|
||||||
|
if err != nil {
|
||||||
|
log.Error("Failed to write:", err)
|
||||||
|
mmlResult = append(mmlResult, err.Error())
|
||||||
|
response := Response{mmlResult}
|
||||||
|
services.ResponseWithJson(w, http.StatusOK, response)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
log.Debug(string(buf[0:n]))
|
||||||
|
|
||||||
|
time.Sleep(time.Millisecond * TIME_DELAY_AFTER_WRITE)
|
||||||
|
|
||||||
|
// n, err = conn.Read(buf[0:])
|
||||||
|
// if err != nil {
|
||||||
|
// log.Error("Failed to read:", err)
|
||||||
|
// mmlResult = append(mmlResult, err.Error())
|
||||||
|
// response := Response{mmlResult}
|
||||||
|
// services.ResponseWithJson(w, http.StatusOK, response)
|
||||||
|
// return
|
||||||
|
// }
|
||||||
|
// log.Debug(string(buf[0:n]))
|
||||||
|
|
||||||
|
for _, mml := range mmlRequest.MML {
|
||||||
|
mmlCommand := fmt.Sprintf("%s\n", mml)
|
||||||
|
log.Debug("mml command:", mmlCommand)
|
||||||
|
_, err = conn.Write([]byte(mmlCommand))
|
||||||
|
if err != nil {
|
||||||
|
log.Error("Failed to write:", err)
|
||||||
|
mmlResult = append(mmlResult, err.Error())
|
||||||
|
response := Response{mmlResult}
|
||||||
|
services.ResponseWithJson(w, http.StatusOK, response)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
time.Sleep(time.Millisecond * TIME_DELAY_AFTER_WRITE)
|
||||||
|
|
||||||
|
// n, err = conn.Read(buf[0:])
|
||||||
|
// if err != nil {
|
||||||
|
// log.Error("Failed to read:", err)
|
||||||
|
// mmlResult = append(mmlResult, err.Error())
|
||||||
|
// response := Response{mmlResult}
|
||||||
|
// services.ResponseWithJson(w, http.StatusOK, response)
|
||||||
|
// return
|
||||||
|
// }
|
||||||
|
// log.Trace(string(buf[0 : n-len(neType)-2]))
|
||||||
|
// mmlResult = append(mmlResult, string(buf[0:n-len(neType)-2]))
|
||||||
|
|
||||||
|
// can't read buffer from upf telnet server, so return ok always
|
||||||
|
mmlResult = append(mmlResult, "COMMAND OK\n")
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
loginStr := fmt.Sprintf("%s\n%s\n", config.GetYamlConfig().MML.User, config.GetYamlConfig().MML.Password)
|
||||||
|
_, err = conn.Write([]byte(loginStr))
|
||||||
|
if err != nil {
|
||||||
|
log.Error("Failed to write:", err)
|
||||||
|
mmlResult = append(mmlResult, err.Error())
|
||||||
|
response := Response{mmlResult}
|
||||||
|
services.ResponseWithJson(w, http.StatusOK, response)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
time.Sleep(time.Millisecond * TIME_DELAY_AFTER_WRITE)
|
time.Sleep(time.Millisecond * TIME_DELAY_AFTER_WRITE)
|
||||||
|
|
||||||
n, err = conn.Read(buf[0:])
|
n, err = conn.Read(buf[0:])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorf("Error: %s", err.Error())
|
log.Error("Failed to read:", err)
|
||||||
|
mmlResult = append(mmlResult, err.Error())
|
||||||
|
response := Response{mmlResult}
|
||||||
|
services.ResponseWithJson(w, http.StatusOK, response)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
log.Debug(string(buf[0 : n-len(neType)-2]))
|
log.Trace(string(buf[0:n]))
|
||||||
mmlResult = append(mmlResult, string(buf[0:n-len(neType)-2]))
|
|
||||||
|
body, err := io.ReadAll(io.LimitReader(r.Body, global.RequestBodyMaxLen))
|
||||||
|
if err != nil {
|
||||||
|
log.Error("Failed to ReadAll:", err)
|
||||||
|
services.ResponseNotFound404UriNotExist(w, r)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
log.Trace("Body:", string(body))
|
||||||
|
|
||||||
|
mmlRequest := new(MMLRequest)
|
||||||
|
_ = json.Unmarshal(body, mmlRequest)
|
||||||
|
|
||||||
|
for _, mml := range mmlRequest.MML {
|
||||||
|
mmlCommand := fmt.Sprintf("%s\n", mml)
|
||||||
|
_, err = conn.Write([]byte(mmlCommand))
|
||||||
|
if err != nil {
|
||||||
|
log.Error("Failed to write:", err)
|
||||||
|
mmlResult = append(mmlResult, err.Error())
|
||||||
|
response := Response{mmlResult}
|
||||||
|
services.ResponseWithJson(w, http.StatusOK, response)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
time.Sleep(time.Millisecond * TIME_DELAY_AFTER_WRITE)
|
||||||
|
|
||||||
|
n, err = conn.Read(buf[0:])
|
||||||
|
if err != nil {
|
||||||
|
log.Error("Failed to read:", err)
|
||||||
|
mmlResult = append(mmlResult, err.Error())
|
||||||
|
response := Response{mmlResult}
|
||||||
|
services.ResponseWithJson(w, http.StatusOK, response)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
log.Trace(string(buf[0 : n-len(neType)-2]))
|
||||||
|
mmlResult = append(mmlResult, string(buf[0:n-len(neType)-2]))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -247,7 +247,7 @@ func (s *EmsLogger) SetLevel(l LogLevel) {
|
|||||||
|
|
||||||
var Elogger Logger
|
var Elogger Logger
|
||||||
|
|
||||||
func InitLogger(logFile string, period int, count int, prefix string, logLevel LogLevel) {
|
func InitLogger(logFile string, period int, count int, prefix string, logLevel LogLevel) io.Writer {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
logFile, err := os.OpenFile(file, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0766)
|
logFile, err := os.OpenFile(file, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0766)
|
||||||
@@ -259,6 +259,7 @@ func InitLogger(logFile string, period int, count int, prefix string, logLevel L
|
|||||||
logWriter := getLogWriter(logFile, period, count)
|
logWriter := getLogWriter(logFile, period, count)
|
||||||
Elogger = NewEmsLogger3(logWriter, prefix, DEFAULT_LOG_FLAG, logLevel)
|
Elogger = NewEmsLogger3(logWriter, prefix, DEFAULT_LOG_FLAG, logLevel)
|
||||||
fmt.Printf("logFile=%s, period=%d, count=%d, prefix=%s, logLevel=%s\n", logFile, period, count, prefix, GetLevelString())
|
fmt.Printf("logFile=%s, period=%d, count=%d, prefix=%s, logLevel=%s\n", logFile, period, count, prefix, GetLevelString())
|
||||||
|
return logWriter
|
||||||
}
|
}
|
||||||
|
|
||||||
// Trace implement ILogger
|
// Trace implement ILogger
|
||||||
|
|||||||
@@ -117,12 +117,12 @@ func init() {
|
|||||||
Register("Get", fm.CustomUriAlarms, fm.GetAlarmFromNF, nil)
|
Register("Get", fm.CustomUriAlarms, fm.GetAlarmFromNF, nil)
|
||||||
|
|
||||||
// performance restful Register
|
// performance restful Register
|
||||||
Register("POST", pm.PerformanceUri, pm.PostKPIReportFromNF, nil)
|
Register("POST", pm.PerformanceUri, pm.PostKPIReportFromNF, midware.LogOperate(collectlogs.OptionNew("KPIReport", collectlogs.BUSINESS_TYPE_INSERT)))
|
||||||
Register("POST", pm.MeasureTaskUri, pm.PostMeasureTaskToNF, nil)
|
Register("POST", pm.MeasureTaskUri, pm.PostMeasureTaskToNF, midware.LogOperate(collectlogs.OptionNew("MeasureTask", collectlogs.BUSINESS_TYPE_INSERT)))
|
||||||
Register("PUT", pm.MeasureTaskUri, pm.PutMeasureTaskToNF, nil)
|
Register("PUT", pm.MeasureTaskUri, pm.PutMeasureTaskToNF, midware.LogOperate(collectlogs.OptionNew("MeasureTask", collectlogs.BUSINESS_TYPE_UPDATE)))
|
||||||
Register("DELETE", pm.MeasureTaskUri, pm.DeleteMeasureTaskToNF, nil)
|
Register("DELETE", pm.MeasureTaskUri, pm.DeleteMeasureTaskToNF, midware.LogOperate(collectlogs.OptionNew("MeasureTask", collectlogs.BUSINESS_TYPE_DELETE)))
|
||||||
Register("PATCH", pm.MeasureTaskUri, pm.PatchMeasureTaskToNF, nil)
|
Register("PATCH", pm.MeasureTaskUri, pm.PatchMeasureTaskToNF, midware.LogOperate(collectlogs.OptionNew("MeasureTask", collectlogs.BUSINESS_TYPE_UPDATE)))
|
||||||
Register("POST", pm.MeasureReportUri, pm.PostMeasureReportFromNF, nil)
|
Register("POST", pm.MeasureReportUri, pm.PostMeasureReportFromNF, midware.LogOperate(collectlogs.OptionNew("MeasureTask", collectlogs.BUSINESS_TYPE_UPDATE)))
|
||||||
|
|
||||||
Register("POST", pm.MeasurementUri, pm.PostMeasurementFromNF, nil)
|
Register("POST", pm.MeasurementUri, pm.PostMeasurementFromNF, nil)
|
||||||
Register("GET", pm.MeasurementUri, pm.GetMeasurementFromNF, nil)
|
Register("GET", pm.MeasurementUri, pm.GetMeasurementFromNF, nil)
|
||||||
@@ -139,9 +139,9 @@ func init() {
|
|||||||
|
|
||||||
// parameter config management
|
// parameter config management
|
||||||
Register("GET", cm.ParamConfigUri, cm.GetParamConfigFromNF, nil)
|
Register("GET", cm.ParamConfigUri, cm.GetParamConfigFromNF, nil)
|
||||||
Register("POST", cm.ParamConfigUri, cm.PostParamConfigToNF, nil)
|
Register("POST", cm.ParamConfigUri, cm.PostParamConfigToNF, midware.LogOperate(collectlogs.OptionNew("Parameter config management", collectlogs.BUSINESS_TYPE_INSERT)))
|
||||||
Register("PUT", cm.ParamConfigUri, cm.PutParamConfigToNF, nil)
|
Register("PUT", cm.ParamConfigUri, cm.PutParamConfigToNF, midware.LogOperate(collectlogs.OptionNew("Parameter config management", collectlogs.BUSINESS_TYPE_UPDATE)))
|
||||||
Register("DELETE", cm.ParamConfigUri, cm.DeleteParamConfigToNF, nil)
|
Register("DELETE", cm.ParamConfigUri, cm.DeleteParamConfigToNF, midware.LogOperate(collectlogs.OptionNew("Parameter config management", collectlogs.BUSINESS_TYPE_INSERT)))
|
||||||
|
|
||||||
Register("GET", cm.CustomParamConfigUri, cm.GetParamConfigFromNF, nil)
|
Register("GET", cm.CustomParamConfigUri, cm.GetParamConfigFromNF, nil)
|
||||||
Register("POST", cm.CustomParamConfigUri, cm.PostParamConfigToNF, nil)
|
Register("POST", cm.CustomParamConfigUri, cm.PostParamConfigToNF, nil)
|
||||||
@@ -234,9 +234,9 @@ func init() {
|
|||||||
Register("POST", trace.CustomUriTcpdumpNeUPFTask, trace.TcpdumpNeUPFTask, midware.LogOperate(collectlogs.OptionNew("Packet capturing task", collectlogs.BUSINESS_TYPE_INSERT)))
|
Register("POST", trace.CustomUriTcpdumpNeUPFTask, trace.TcpdumpNeUPFTask, midware.LogOperate(collectlogs.OptionNew("Packet capturing task", collectlogs.BUSINESS_TYPE_INSERT)))
|
||||||
|
|
||||||
// file management
|
// file management
|
||||||
Register("POST", file.UriFile, file.UploadFile, nil)
|
Register("POST", file.UriFile, file.UploadFile, midware.LogOperate(collectlogs.OptionNew("File management", collectlogs.BUSINESS_TYPE_INSERT)))
|
||||||
Register("GET", file.UriFile, file.DownloadFile, nil)
|
Register("GET", file.UriFile, file.DownloadFile, midware.LogOperate(collectlogs.OptionNew("File management", collectlogs.BUSINESS_TYPE_OTHER)))
|
||||||
Register("DELETE", file.UriFile, file.DeleteFile, nil)
|
Register("DELETE", file.UriFile, file.DeleteFile, midware.LogOperate(collectlogs.OptionNew("File management", collectlogs.BUSINESS_TYPE_DELETE)))
|
||||||
|
|
||||||
Register("POST", file.CustomUriFile, file.UploadFile, nil)
|
Register("POST", file.CustomUriFile, file.UploadFile, nil)
|
||||||
Register("GET", file.CustomUriFile, file.DownloadFile, nil)
|
Register("GET", file.CustomUriFile, file.DownloadFile, nil)
|
||||||
|
|||||||
@@ -13,9 +13,9 @@ server:
|
|||||||
# 日志
|
# 日志
|
||||||
logger:
|
logger:
|
||||||
fileDir: "/usr/local/omc/log"
|
fileDir: "/usr/local/omc/log"
|
||||||
fileName: "ems_agt.log"
|
fileName: "restagent.log"
|
||||||
level: 2 # 日志记录的等级 0:silent<1:info<2:warn<3:error
|
level: 2 # 日志记录的等级 0:silent<1:info<2:warn<3:error
|
||||||
maxDay: 30 # 日志会保留 30 天
|
maxDay: 180 # 日志会保留 180 天
|
||||||
maxSize: 10 # 调整按 10MB 大小的切割
|
maxSize: 10 # 调整按 10MB 大小的切割
|
||||||
|
|
||||||
# 静态文件配置, 相对项目根路径或填绝对路径
|
# 静态文件配置, 相对项目根路径或填绝对路径
|
||||||
@@ -175,7 +175,6 @@ user:
|
|||||||
# 管理员列表
|
# 管理员列表
|
||||||
adminList:
|
adminList:
|
||||||
- "1"
|
- "1"
|
||||||
- "2"
|
|
||||||
|
|
||||||
# char 字符验证码配置
|
# char 字符验证码配置
|
||||||
charCaptcha:
|
charCaptcha:
|
||||||
|
|||||||
@@ -35,7 +35,6 @@ func (s cronlog) Error(err error, msg string, keysAndValues ...any) {
|
|||||||
if data, ok := job.Data.(JobData); ok {
|
if data, ok := job.Data.(JobData); ok {
|
||||||
// 日志数据
|
// 日志数据
|
||||||
jobLog := jobLogData{
|
jobLog := jobLogData{
|
||||||
JobID: job.Opts.JobId,
|
|
||||||
Timestamp: job.Timestamp,
|
Timestamp: job.Timestamp,
|
||||||
Data: data,
|
Data: data,
|
||||||
Result: err.Error(),
|
Result: err.Error(),
|
||||||
@@ -59,7 +58,6 @@ func (s cronlog) Completed(result any, msg string, keysAndValues ...any) {
|
|||||||
if data, ok := job.Data.(JobData); ok {
|
if data, ok := job.Data.(JobData); ok {
|
||||||
// 日志数据
|
// 日志数据
|
||||||
jobLog := jobLogData{
|
jobLog := jobLogData{
|
||||||
JobID: job.Opts.JobId,
|
|
||||||
Timestamp: job.Timestamp,
|
Timestamp: job.Timestamp,
|
||||||
Data: data,
|
Data: data,
|
||||||
Result: result,
|
Result: result,
|
||||||
@@ -71,7 +69,6 @@ func (s cronlog) Completed(result any, msg string, keysAndValues ...any) {
|
|||||||
|
|
||||||
// jobLogData 日志记录数据
|
// jobLogData 日志记录数据
|
||||||
type jobLogData struct {
|
type jobLogData struct {
|
||||||
JobID string
|
|
||||||
Timestamp int64
|
Timestamp int64
|
||||||
Data JobData
|
Data JobData
|
||||||
Result any
|
Result any
|
||||||
@@ -82,11 +79,6 @@ func (jl *jobLogData) SaveLog(status string) {
|
|||||||
// 读取任务信息
|
// 读取任务信息
|
||||||
sysJob := jl.Data.SysJob
|
sysJob := jl.Data.SysJob
|
||||||
|
|
||||||
// 任务ID与任务信息ID不相同
|
|
||||||
if jl.JobID == "" || jl.JobID != sysJob.JobID {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// 任务日志不需要记录
|
// 任务日志不需要记录
|
||||||
if sysJob.SaveLog == "" || sysJob.SaveLog == common.STATUS_NO {
|
if sysJob.SaveLog == "" || sysJob.SaveLog == common.STATUS_NO {
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -84,13 +84,13 @@ func (l *Logger) checkFile() {
|
|||||||
currTime := time.Now()
|
currTime := time.Now()
|
||||||
if l.logDay != currTime.Day() {
|
if l.logDay != currTime.Day() {
|
||||||
l.logDay = currTime.Day()
|
l.logDay = currTime.Day()
|
||||||
l.rotateFile(currTime.AddDate(0, 0, -1).Format("2006_01_02"))
|
l.rotateFile(currTime.AddDate(0, 0, -1).Format("20060102"))
|
||||||
// 移除超过保存最长天数的文件
|
// 移除超过保存最长天数的文件
|
||||||
l.removeOldFile(currTime.AddDate(0, 0, -l.maxDay))
|
l.removeOldFile(currTime.AddDate(0, 0, -l.maxDay))
|
||||||
} else if fileInfo.Size() >= l.maxSize {
|
} else if fileInfo.Size() >= l.maxSize {
|
||||||
l.rotateFile(currTime.Format("2006_01_02_150405"))
|
l.rotateFile(currTime.Format("20060102_150405"))
|
||||||
} else if time.Since(fileInfo.ModTime()).Hours() > 24 {
|
} else if time.Since(fileInfo.ModTime()).Hours() > 24 {
|
||||||
l.rotateFile(fileInfo.ModTime().Format("2006_01_02"))
|
l.rotateFile(fileInfo.ModTime().Format("20060102"))
|
||||||
}
|
}
|
||||||
|
|
||||||
time.AfterFunc(1*time.Minute, l.checkFile)
|
time.AfterFunc(1*time.Minute, l.checkFile)
|
||||||
@@ -100,7 +100,7 @@ func (l *Logger) checkFile() {
|
|||||||
func (l *Logger) rotateFile(timeFormat string) {
|
func (l *Logger) rotateFile(timeFormat string) {
|
||||||
l.fileHandle.Close()
|
l.fileHandle.Close()
|
||||||
|
|
||||||
newFileName := fmt.Sprintf("%s.%s", l.fileName, timeFormat)
|
newFileName := fmt.Sprintf("%s-%s", l.fileName, timeFormat)
|
||||||
newFilePath := filepath.Join(l.filePath, newFileName)
|
newFilePath := filepath.Join(l.filePath, newFileName)
|
||||||
oldfilePath := filepath.Join(l.filePath, l.fileName)
|
oldfilePath := filepath.Join(l.filePath, l.fileName)
|
||||||
|
|
||||||
@@ -134,14 +134,14 @@ func (l *Logger) removeOldFile(oldFileDate time.Time) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for _, file := range files {
|
for _, file := range files {
|
||||||
idx := strings.LastIndex(file.Name(), ".log.")
|
idx := strings.LastIndex(file.Name(), ".log-")
|
||||||
if idx == -1 {
|
if idx == -1 {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
dateStr := file.Name()[idx+5 : idx+15]
|
dateStr := file.Name()[idx+5 : idx+13]
|
||||||
|
|
||||||
// 解析日期字符串
|
// 解析日期字符串
|
||||||
fileDate, err := time.Parse("2006_01_02", dateStr)
|
fileDate, err := time.Parse("20060102", dateStr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
l.Errorf("logger RemoveOldFile Parse err: %v", err.Error())
|
l.Errorf("logger RemoveOldFile Parse err: %v", err.Error())
|
||||||
continue
|
continue
|
||||||
|
|||||||
@@ -15,11 +15,11 @@ func Setup(router *gin.Engine) {
|
|||||||
// 路由主页
|
// 路由主页
|
||||||
indexGroup := router.Group("/")
|
indexGroup := router.Group("/")
|
||||||
indexGroup.GET("",
|
indexGroup.GET("",
|
||||||
middleware.RateLimit(middleware.LimitOption{
|
// middleware.RateLimit(middleware.LimitOption{
|
||||||
Time: 300,
|
// Time: 300,
|
||||||
Count: 10,
|
// Count: 10,
|
||||||
Type: middleware.LIMIT_IP,
|
// Type: middleware.LIMIT_IP,
|
||||||
}),
|
// }),
|
||||||
controller.NewIndex.Handler,
|
controller.NewIndex.Handler,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -28,32 +28,32 @@ func Setup(router *gin.Engine) {
|
|||||||
|
|
||||||
// 验证码操作处理
|
// 验证码操作处理
|
||||||
indexGroup.GET("/captchaImage",
|
indexGroup.GET("/captchaImage",
|
||||||
middleware.RateLimit(middleware.LimitOption{
|
// middleware.RateLimit(middleware.LimitOption{
|
||||||
Time: 300,
|
// Time: 300,
|
||||||
Count: 60,
|
// Count: 60,
|
||||||
Type: middleware.LIMIT_IP,
|
// Type: middleware.LIMIT_IP,
|
||||||
}),
|
// }),
|
||||||
controller.NewCaptcha.Image,
|
controller.NewCaptcha.Image,
|
||||||
)
|
)
|
||||||
|
|
||||||
// 账号身份操作处理
|
// 账号身份操作处理
|
||||||
{
|
{
|
||||||
indexGroup.POST("/login",
|
indexGroup.POST("/login",
|
||||||
middleware.RateLimit(middleware.LimitOption{
|
// middleware.RateLimit(middleware.LimitOption{
|
||||||
Time: 300,
|
// Time: 300,
|
||||||
Count: 10,
|
// Count: 10,
|
||||||
Type: middleware.LIMIT_IP,
|
// Type: middleware.LIMIT_IP,
|
||||||
}),
|
// }),
|
||||||
controller.NewAccount.Login,
|
controller.NewAccount.Login,
|
||||||
)
|
)
|
||||||
indexGroup.GET("/getInfo", middleware.PreAuthorize(nil), controller.NewAccount.Info)
|
indexGroup.GET("/getInfo", middleware.PreAuthorize(nil), controller.NewAccount.Info)
|
||||||
indexGroup.GET("/getRouters", middleware.PreAuthorize(nil), controller.NewAccount.Router)
|
indexGroup.GET("/getRouters", middleware.PreAuthorize(nil), controller.NewAccount.Router)
|
||||||
indexGroup.POST("/logout",
|
indexGroup.POST("/logout",
|
||||||
middleware.RateLimit(middleware.LimitOption{
|
// middleware.RateLimit(middleware.LimitOption{
|
||||||
Time: 300,
|
// Time: 300,
|
||||||
Count: 5,
|
// Count: 5,
|
||||||
Type: middleware.LIMIT_IP,
|
// Type: middleware.LIMIT_IP,
|
||||||
}),
|
// }),
|
||||||
controller.NewAccount.Logout,
|
controller.NewAccount.Logout,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -61,11 +61,11 @@ func Setup(router *gin.Engine) {
|
|||||||
// 账号注册操作处理
|
// 账号注册操作处理
|
||||||
{
|
{
|
||||||
indexGroup.POST("/register",
|
indexGroup.POST("/register",
|
||||||
middleware.RateLimit(middleware.LimitOption{
|
// middleware.RateLimit(middleware.LimitOption{
|
||||||
Time: 300,
|
// Time: 300,
|
||||||
Count: 10,
|
// Count: 10,
|
||||||
Type: middleware.LIMIT_IP,
|
// Type: middleware.LIMIT_IP,
|
||||||
}),
|
// }),
|
||||||
controller.NewRegister.Register,
|
controller.NewRegister.Register,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,5 +10,5 @@ type IMonitor interface {
|
|||||||
RunMonitorDataCancel(removeBefore bool, interval float64)
|
RunMonitorDataCancel(removeBefore bool, interval float64)
|
||||||
|
|
||||||
// SelectMonitorInfo 查询监控资源信息
|
// SelectMonitorInfo 查询监控资源信息
|
||||||
SelectMonitorInfo(query map[string]any) map[string]MonitorData
|
SelectMonitorInfo(query map[string]any) map[string]any
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -212,14 +212,8 @@ func (s *MonitorImpl) saveNetDataToDB(ctx context.Context, interval float64) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// MonitorData 监控资源信息
|
|
||||||
type MonitorData struct {
|
|
||||||
Date []int64 `json:"date"`
|
|
||||||
Value []any `json:"value"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// SelectMonitorInfo 查询监控资源信息
|
// SelectMonitorInfo 查询监控资源信息
|
||||||
func (s *MonitorImpl) SelectMonitorInfo(query map[string]any) map[string]MonitorData {
|
func (s *MonitorImpl) SelectMonitorInfo(query map[string]any) map[string]any {
|
||||||
infoType := query["type"]
|
infoType := query["type"]
|
||||||
startTimeMilli := query["startTime"]
|
startTimeMilli := query["startTime"]
|
||||||
endTimeMilli := query["endTime"]
|
endTimeMilli := query["endTime"]
|
||||||
@@ -228,7 +222,7 @@ func (s *MonitorImpl) SelectMonitorInfo(query map[string]any) map[string]Monitor
|
|||||||
name := query["name"]
|
name := query["name"]
|
||||||
|
|
||||||
// 返回数据
|
// 返回数据
|
||||||
backdatas := map[string]MonitorData{}
|
backDatas := map[string]any{}
|
||||||
|
|
||||||
// 基本信息
|
// 基本信息
|
||||||
if infoType == "all" || infoType == "cpu" || infoType == "memory" {
|
if infoType == "all" || infoType == "cpu" || infoType == "memory" {
|
||||||
@@ -238,13 +232,7 @@ func (s *MonitorImpl) SelectMonitorInfo(query map[string]any) map[string]Monitor
|
|||||||
"neType": neType,
|
"neType": neType,
|
||||||
"neId": neId,
|
"neId": neId,
|
||||||
})
|
})
|
||||||
// 组装数据
|
backDatas["base"] = rows
|
||||||
var itemData MonitorData
|
|
||||||
for _, base := range rows {
|
|
||||||
itemData.Date = append(itemData.Date, base.CreateTime)
|
|
||||||
itemData.Value = append(itemData.Value, base)
|
|
||||||
}
|
|
||||||
backdatas["base"] = itemData
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 磁盘IO
|
// 磁盘IO
|
||||||
@@ -256,13 +244,7 @@ func (s *MonitorImpl) SelectMonitorInfo(query map[string]any) map[string]Monitor
|
|||||||
"neId": neId,
|
"neId": neId,
|
||||||
"name": name,
|
"name": name,
|
||||||
})
|
})
|
||||||
// 组装数据
|
backDatas["io"] = rows
|
||||||
var itemData MonitorData
|
|
||||||
for _, base := range rows {
|
|
||||||
itemData.Date = append(itemData.Date, base.CreateTime)
|
|
||||||
itemData.Value = append(itemData.Value, base)
|
|
||||||
}
|
|
||||||
backdatas["io"] = itemData
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 网络
|
// 网络
|
||||||
@@ -274,14 +256,8 @@ func (s *MonitorImpl) SelectMonitorInfo(query map[string]any) map[string]Monitor
|
|||||||
"neId": neId,
|
"neId": neId,
|
||||||
"name": name,
|
"name": name,
|
||||||
})
|
})
|
||||||
// 组装数据
|
backDatas["network"] = rows
|
||||||
var itemData MonitorData
|
|
||||||
for _, base := range rows {
|
|
||||||
itemData.Date = append(itemData.Date, base.CreateTime)
|
|
||||||
itemData.Value = append(itemData.Value, base)
|
|
||||||
}
|
|
||||||
backdatas["network"] = itemData
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return backdatas
|
return backDatas
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -120,8 +120,6 @@ func (s *SysProfileController) UpdateProfile(c *gin.Context) {
|
|||||||
c.JSON(200, result.ErrMsg(msg))
|
c.JSON(200, result.ErrMsg(msg))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
body.PhoneNumber = "nil"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 检查邮箱格式并判断是否唯一
|
// 检查邮箱格式并判断是否唯一
|
||||||
@@ -138,8 +136,6 @@ func (s *SysProfileController) UpdateProfile(c *gin.Context) {
|
|||||||
c.JSON(200, result.ErrMsg(msg))
|
c.JSON(200, result.ErrMsg(msg))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
body.Email = "nil"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 用户基本资料
|
// 用户基本资料
|
||||||
|
|||||||
@@ -387,9 +387,7 @@ func (r *SysMenuImpl) UpdateMenu(sysMenu model.SysMenu) int64 {
|
|||||||
} else {
|
} else {
|
||||||
params["icon"] = "#"
|
params["icon"] = "#"
|
||||||
}
|
}
|
||||||
if sysMenu.Remark != "" {
|
params["remark"] = sysMenu.Remark
|
||||||
params["remark"] = sysMenu.Remark
|
|
||||||
}
|
|
||||||
if sysMenu.UpdateBy != "" {
|
if sysMenu.UpdateBy != "" {
|
||||||
params["update_by"] = sysMenu.UpdateBy
|
params["update_by"] = sysMenu.UpdateBy
|
||||||
params["update_time"] = time.Now().UnixMilli()
|
params["update_time"] = time.Now().UnixMilli()
|
||||||
|
|||||||
@@ -248,9 +248,7 @@ func (r *SysRoleImpl) UpdateRole(sysRole model.SysRole) int64 {
|
|||||||
if sysRole.Status != "" {
|
if sysRole.Status != "" {
|
||||||
params["status"] = sysRole.Status
|
params["status"] = sysRole.Status
|
||||||
}
|
}
|
||||||
if sysRole.Remark != "" {
|
params["remark"] = sysRole.Remark
|
||||||
params["remark"] = sysRole.Remark
|
|
||||||
}
|
|
||||||
if sysRole.UpdateBy != "" {
|
if sysRole.UpdateBy != "" {
|
||||||
params["update_by"] = sysRole.UpdateBy
|
params["update_by"] = sysRole.UpdateBy
|
||||||
params["update_time"] = time.Now().UnixMilli()
|
params["update_time"] = time.Now().UnixMilli()
|
||||||
|
|||||||
@@ -476,23 +476,10 @@ func (r *SysUserImpl) UpdateUser(sysUser model.SysUser) int64 {
|
|||||||
if sysUser.Avatar != "" {
|
if sysUser.Avatar != "" {
|
||||||
params["avatar"] = sysUser.Avatar
|
params["avatar"] = sysUser.Avatar
|
||||||
}
|
}
|
||||||
if sysUser.Email != "" {
|
|
||||||
if sysUser.Email == "nil" {
|
params["email"] = sysUser.Email
|
||||||
params["email"] = ""
|
params["phonenumber"] = sysUser.PhoneNumber
|
||||||
} else {
|
params["sex"] = sysUser.Sex
|
||||||
params["email"] = sysUser.Email
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if sysUser.PhoneNumber != "" {
|
|
||||||
if sysUser.PhoneNumber == "nil" {
|
|
||||||
params["phonenumber"] = ""
|
|
||||||
} else {
|
|
||||||
params["phonenumber"] = sysUser.PhoneNumber
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if sysUser.Sex != "" {
|
|
||||||
params["sex"] = sysUser.Sex
|
|
||||||
}
|
|
||||||
if sysUser.Password != "" {
|
if sysUser.Password != "" {
|
||||||
password := crypto.BcryptHash(sysUser.Password)
|
password := crypto.BcryptHash(sysUser.Password)
|
||||||
params["password"] = password
|
params["password"] = password
|
||||||
@@ -500,9 +487,7 @@ func (r *SysUserImpl) UpdateUser(sysUser model.SysUser) int64 {
|
|||||||
if sysUser.Status != "" {
|
if sysUser.Status != "" {
|
||||||
params["status"] = sysUser.Status
|
params["status"] = sysUser.Status
|
||||||
}
|
}
|
||||||
if sysUser.Remark != "" {
|
params["remark"] = sysUser.Remark
|
||||||
params["remark"] = sysUser.Remark
|
|
||||||
}
|
|
||||||
if sysUser.UpdateBy != "" {
|
if sysUser.UpdateBy != "" {
|
||||||
params["update_by"] = sysUser.UpdateBy
|
params["update_by"] = sysUser.UpdateBy
|
||||||
params["update_time"] = time.Now().UnixMilli()
|
params["update_time"] = time.Now().UnixMilli()
|
||||||
|
|||||||
Reference in New Issue
Block a user