JustSong 2 лет назад
Родитель
Сommit
d29c273073
4 измененных файлов с 19 добавлено и 2 удалено
  1. 4 0
      controller/user.go
  2. 2 0
      model/log.go
  3. 9 2
      model/user.go
  4. 4 0
      web/src/components/LogsTable.js

+ 4 - 0
controller/user.go

@@ -2,6 +2,7 @@ package controller
 
 
 import (
 import (
 	"encoding/json"
 	"encoding/json"
+	"fmt"
 	"github.com/gin-contrib/sessions"
 	"github.com/gin-contrib/sessions"
 	"github.com/gin-gonic/gin"
 	"github.com/gin-gonic/gin"
 	"net/http"
 	"net/http"
@@ -351,6 +352,9 @@ func UpdateUser(c *gin.Context) {
 		})
 		})
 		return
 		return
 	}
 	}
+	if originUser.Quota != updatedUser.Quota {
+		model.RecordLog(originUser.Id, model.LogTypeManage, fmt.Sprintf("管理员将用户额度从 %d 点修改为 %d 点", originUser.Quota, updatedUser.Quota))
+	}
 	c.JSON(http.StatusOK, gin.H{
 	c.JSON(http.StatusOK, gin.H{
 		"success": true,
 		"success": true,
 		"message": "",
 		"message": "",

+ 2 - 0
model/log.go

@@ -17,6 +17,8 @@ const (
 	LogTypeUnknown = iota
 	LogTypeUnknown = iota
 	LogTypeTopup
 	LogTypeTopup
 	LogTypeConsume
 	LogTypeConsume
+	LogTypeManage
+	LogTypeSystem
 )
 )
 
 
 func RecordLog(userId int, logType int, content string) {
 func RecordLog(userId int, logType int, content string) {

+ 9 - 2
model/user.go

@@ -2,6 +2,7 @@ package model
 
 
 import (
 import (
 	"errors"
 	"errors"
+	"fmt"
 	"gorm.io/gorm"
 	"gorm.io/gorm"
 	"one-api/common"
 	"one-api/common"
 	"strings"
 	"strings"
@@ -73,8 +74,14 @@ func (user *User) Insert() error {
 	}
 	}
 	user.Quota = common.QuotaForNewUser
 	user.Quota = common.QuotaForNewUser
 	user.AccessToken = common.GetUUID()
 	user.AccessToken = common.GetUUID()
-	err = DB.Create(user).Error
-	return err
+	result := DB.Create(user)
+	if result.Error != nil {
+		return result.Error
+	}
+	if common.QuotaForNewUser > 0 {
+		RecordLog(user.Id, LogTypeSystem, fmt.Sprintf("新用户注册赠送 %d 点额度", common.QuotaForNewUser))
+	}
+	return nil
 }
 }
 
 
 func (user *User) Update(updatePassword bool) error {
 func (user *User) Update(updatePassword bool) error {

+ 4 - 0
web/src/components/LogsTable.js

@@ -18,6 +18,10 @@ function renderType(type) {
       return <Label basic color='green'> 充值 </Label>;
       return <Label basic color='green'> 充值 </Label>;
     case 2:
     case 2:
       return <Label basic color='olive'> 消费 </Label>;
       return <Label basic color='olive'> 消费 </Label>;
+    case 3:
+      return <Label basic color='orange'> 管理 </Label>;
+    case 4:
+      return <Label basic color='red'> 系统 </Label>;
     default:
     default:
       return <Label basic color='black'> 未知 </Label>;
       return <Label basic color='black'> 未知 </Label>;
   }
   }