A:增加默认资料库写入

This commit is contained in:
jimmy committed 2025-06-15 22:44:48 +08:00
1 parent 592b01a89b
commit 76d747bbd9
6 files changed
+36 -13

No files matched your search

+1
View File
@@ -7,6 +7,7 @@ import (
func AutoMigrate() error { func AutoMigrate() error {
return DB.AutoMigrate( return DB.AutoMigrate(
&model.User{}, &model.User{},
&model.LibraryTable{},
// 在这里添加其他模型 // 在这里添加其他模型
) )
} }
+8 -5
View File
@@ -19,14 +19,17 @@ func HealthCheck(c *gin.Context) {
}) })
} }
// BasicResponse 健康检查
func BasicResponse(c *gin.Context) { func BasicResponse(c *gin.Context) {
c.JSON(http.StatusOK, model.Response{ c.JSON(http.StatusOK, model.Response{
Code: http.StatusOK, Code: http.StatusOK,
Message: "OK", Message: "OK",
Data: map[string]interface{}{ Data: "hi",
"timestamp": time.Now().Unix(), })
"version": "1.0.0", }
}, func BasicResponseV1(c *gin.Context) {
c.JSON(http.StatusOK, model.Response{
Code: http.StatusOK,
Message: "OK",
Data: "hi, this is v1",
}) })
} }
+20 -2
View File
@@ -1,7 +1,9 @@
package handler package handler
import ( import (
"bytes"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"io"
"log" "log"
"net/http" "net/http"
"rear/internal/container" "rear/internal/container"
@@ -38,14 +40,30 @@ func (h *Handler) GetLibrary(c *gin.Context) {
} }
func (h *Handler) AddLibrary(c *gin.Context) { func (h *Handler) AddLibrary(c *gin.Context) {
var path string // 定义请求体结构
if err := c.ShouldBindJSON(&path); err != nil { type AddLibraryRequest struct {
Path string `json:"path"`
}
var req AddLibraryRequest
// 读取原始JSON数据(用于调试)
rawData, _ := c.GetRawData()
// 重新设置请求体,因为GetRawData()会消耗掉body
c.Request.Body = io.NopCloser(bytes.NewBuffer(rawData))
// 绑定JSON到结构体
if err := c.ShouldBindJSON(&req); err != nil {
c.JSON(http.StatusBadRequest, model.Response{ c.JSON(http.StatusBadRequest, model.Response{
Code: http.StatusBadRequest, Code: http.StatusBadRequest,
Message: "Invalid request body", Message: "Invalid request body",
}) })
return return
} }
// 现在可以使用 req.Path
path := req.Path
library := &model.LibraryTable{ library := &model.LibraryTable{
ImgPath: path, ImgPath: path,
IsEnable: true, IsEnable: true,
+2 -2
View File
@@ -3,7 +3,7 @@ package model
type LibraryTable struct { type LibraryTable struct {
BaseModel BaseModel
// 照片存储库路径 // 照片存储库路径
ImgPath string `gorm:"not null;size:255" json:"imgPath"` ImgPath string `gorm:"not null;size:255" json:"img_path"`
// 是否开启 // 是否开启
IsEnable bool `gorm:"default:false;" json:"isEnable"` IsEnable bool `gorm:"default:false;" json:"is_enable"`
} }
@@ -14,14 +14,14 @@ func NewLibraryRepository() *LibraryRepository {
func (s *LibraryRepository) AddLibrary(lib *model.LibraryTable) error { func (s *LibraryRepository) AddLibrary(lib *model.LibraryTable) error {
var result model.LibraryTable var result model.LibraryTable
err := db.GetDB().Where("imgPath = ?", lib.ImgPath).FirstOrCreate(&result, lib).Error err := db.GetDB().Where("img_path = ?", lib.ImgPath).FirstOrCreate(&result, lib).Error
if err != nil { if err != nil {
return err return err
} }
return ExecuteWrite(func() error { return ExecuteWrite(func() error {
// 如果找到了已存在的记录,更新 IsEnable // 如果找到了已存在的记录,更新 IsEnable
if result.ID != 0 && result.ImgPath == lib.ImgPath { if result.ID != 0 && result.ImgPath == lib.ImgPath {
return db.GetDB().Model(&result).Update("isEnable", true).Error return db.GetDB().Model(&result).Update("is_enable", true).Error
} }
return nil return nil
@@ -33,13 +33,13 @@ func (s *LibraryRepository) AddLibrary(lib *model.LibraryTable) error {
func (s *LibraryRepository) DeleteLibrary(imgPath string) error { func (s *LibraryRepository) DeleteLibrary(imgPath string) error {
return ExecuteWrite(func() error { return ExecuteWrite(func() error {
return db.GetDB().Where("imgPath = ?", imgPath).Delete(&model.LibraryTable{}).Error return db.GetDB().Where("img_path = ?", imgPath).Delete(&model.LibraryTable{}).Error
}) })
} }
func (s *LibraryRepository) UpdateLibrary(oldImgPath string, newImgPath string) error { func (s *LibraryRepository) UpdateLibrary(oldImgPath string, newImgPath string) error {
return ExecuteWrite(func() error { return ExecuteWrite(func() error {
return db.GetDB().Where("imgPath = ?", oldImgPath). return db.GetDB().Where("img_path = ?", oldImgPath).
Updates(&model.LibraryTable{ImgPath: newImgPath}).Error Updates(&model.LibraryTable{ImgPath: newImgPath}).Error
}) })
} }
+1
View File
@@ -20,6 +20,7 @@ func SetupRoutes(r *gin.Engine, contain *container.Container) {
// API版本组 // API版本组
v1 := r.Group("/api/v1") v1 := r.Group("/api/v1")
{ {
v1.GET("", handler.BasicResponseV1)
// 用户相关路由 // 用户相关路由
users := v1.Group("/users") users := v1.Group("/users")
{ {