92 lines
1.8 KiB
Go
92 lines
1.8 KiB
Go
package cli
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"log"
|
|
"opencatd-open/internal/model"
|
|
"opencatd-open/pkg/store"
|
|
"os"
|
|
"strings"
|
|
|
|
"github.com/duke-git/lancet/v2/fileutil"
|
|
|
|
"github.com/google/uuid"
|
|
"github.com/spf13/cobra"
|
|
)
|
|
|
|
var LoadCmd = &cobra.Command{
|
|
Use: "load",
|
|
Short: "import user.json -> db",
|
|
Long: "\nimport user.json -> db",
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
db := store.GetDB()
|
|
var cont int64
|
|
if err := db.Model(model.User{}).Count(&cont).Error; err != nil {
|
|
fmt.Println(err)
|
|
return
|
|
}
|
|
if cont == 0 {
|
|
fmt.Println("创建管理员之后再操作")
|
|
}
|
|
if !fileutil.IsExist("./db/user.json") {
|
|
log.Fatalln("404! user.json is not found.")
|
|
return
|
|
}
|
|
file, err := os.Open("./db/user.json")
|
|
if err != nil {
|
|
fmt.Println("Error opening file:", err)
|
|
return
|
|
}
|
|
defer file.Close()
|
|
|
|
var usermap []map[string]string
|
|
|
|
if err := json.NewDecoder(file).Decode(&usermap); err != nil {
|
|
fmt.Println("解析文件失败:", err)
|
|
return
|
|
}
|
|
for _, um := range usermap {
|
|
var name string
|
|
if um["username"] != "" {
|
|
name = um["name"]
|
|
} else if um["name"] == "" {
|
|
name = um["username"]
|
|
} else {
|
|
fmt.Println("获取不到数据")
|
|
continue
|
|
}
|
|
var user = model.User{
|
|
Username: name,
|
|
Name: name,
|
|
Tokens: []model.Token{
|
|
{
|
|
Name: "default",
|
|
Key: "sk-team-" + strings.ReplaceAll(uuid.New().String(), "-", ""),
|
|
},
|
|
{
|
|
Name: name,
|
|
Key: um["token"],
|
|
},
|
|
},
|
|
}
|
|
if err := db.Create(&user).Error; err != nil {
|
|
fmt.Printf("\nCreate User %s Error:%s", user.Username, err)
|
|
}
|
|
}
|
|
|
|
},
|
|
}
|
|
|
|
var SaveCmd = &cobra.Command{
|
|
Use: "save",
|
|
Short: "backup user info -> user.json",
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
|
|
},
|
|
}
|
|
|
|
func init() {
|
|
// SaveCmd.Flags().StringP("user", "u", "", "Save User")
|
|
}
|