Просмотр исходного кода

Merge branch 'wzxjohn-feature/wellknown'

creamlike1024 10 месяцев назад
Родитель
Сommit
54f5b1a951
3 измененных файлов с 26 добавлено и 6 удалено
  1. 1 1
      controller/log.go
  2. 22 3
      model/log.go
  3. 3 2
      web/src/components/SystemSetting.js

+ 1 - 1
controller/log.go

@@ -196,7 +196,7 @@ func DeleteHistoryLogs(c *gin.Context) {
 		})
 		})
 		return
 		return
 	}
 	}
-	count, err := model.DeleteOldLog(targetTimestamp)
+	count, err := model.DeleteOldLog(c.Request.Context(), targetTimestamp, 100)
 	if err != nil {
 	if err != nil {
 		c.JSON(http.StatusOK, gin.H{
 		c.JSON(http.StatusOK, gin.H{
 			"success": false,
 			"success": false,

+ 22 - 3
model/log.go

@@ -1,6 +1,7 @@
 package model
 package model
 
 
 import (
 import (
+	"context"
 	"fmt"
 	"fmt"
 	"one-api/common"
 	"one-api/common"
 	"os"
 	"os"
@@ -340,7 +341,25 @@ func SumUsedToken(logType int, startTimestamp int64, endTimestamp int64, modelNa
 	return token
 	return token
 }
 }
 
 
-func DeleteOldLog(targetTimestamp int64) (int64, error) {
-	result := LOG_DB.Where("created_at < ?", targetTimestamp).Delete(&Log{})
-	return result.RowsAffected, result.Error
+func DeleteOldLog(ctx context.Context, targetTimestamp int64, limit int) (int64, error) {
+	var total int64 = 0
+
+	for {
+		if nil != ctx.Err() {
+			return total, ctx.Err()
+		}
+
+		result := LOG_DB.Where("created_at < ?", targetTimestamp).Limit(limit).Delete(&Log{})
+		if nil != result.Error {
+			return total, result.Error
+		}
+
+		total += result.RowsAffected
+
+		if result.RowsAffected < int64(limit) {
+			break
+		}
+	}
+
+	return total, nil
 }
 }

+ 3 - 2
web/src/components/SystemSetting.js

@@ -19,6 +19,7 @@ import {
   verifyJSON,
   verifyJSON,
 } from '../helpers/utils';
 } from '../helpers/utils';
 import { API } from '../helpers/api';
 import { API } from '../helpers/api';
+import axios from "axios";
 
 
 const SystemSetting = () => {
 const SystemSetting = () => {
   let [inputs, setInputs] = useState({
   let [inputs, setInputs] = useState({
@@ -374,7 +375,7 @@ const SystemSetting = () => {
   };
   };
 
 
   const submitOIDCSettings = async () => {
   const submitOIDCSettings = async () => {
-    if (inputs['oidc.well_known'] !== '') {
+    if (inputs['oidc.well_known'] && inputs['oidc.well_known'] !== '') {
       if (
       if (
         !inputs['oidc.well_known'].startsWith('http://') &&
         !inputs['oidc.well_known'].startsWith('http://') &&
         !inputs['oidc.well_known'].startsWith('https://')
         !inputs['oidc.well_known'].startsWith('https://')
@@ -383,7 +384,7 @@ const SystemSetting = () => {
         return;
         return;
       }
       }
       try {
       try {
-        const res = await API.get(inputs['oidc.well_known']);
+        const res = await axios.create().get(inputs['oidc.well_known']);
         inputs['oidc.authorization_endpoint'] =
         inputs['oidc.authorization_endpoint'] =
           res.data['authorization_endpoint'];
           res.data['authorization_endpoint'];
         inputs['oidc.token_endpoint'] = res.data['token_endpoint'];
         inputs['oidc.token_endpoint'] = res.data['token_endpoint'];