feat(*): go 后端项目脚手架
This commit is contained in:
14
internal/service/cateage.go
Normal file
14
internal/service/cateage.go
Normal file
@@ -0,0 +1,14 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"github.com/pkg/errors"
|
||||
"github.com/zhilv666/navsite/internal/model"
|
||||
)
|
||||
|
||||
func GetAllCateageWithSites() ([]model.Cateage, error) {
|
||||
var cateagies []model.Cateage
|
||||
if err := DB().Preload("Sites").Find(&cateagies).Error; err != nil {
|
||||
return nil, errors.Wrap(err, "failed get cateagies")
|
||||
}
|
||||
return cateagies, nil
|
||||
}
|
||||
18
internal/service/service.go
Normal file
18
internal/service/service.go
Normal file
@@ -0,0 +1,18 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"github.com/zhilv666/navsite/pkg/config"
|
||||
"github.com/zhilv666/navsite/pkg/db"
|
||||
"github.com/zhilv666/navsite/pkg/logger"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func DB() *gorm.DB {
|
||||
_db := db.GetDB()
|
||||
if _db == nil {
|
||||
db.InitDB(config.GetConfig().Database, logger.GetLogger())
|
||||
return db.GetDB()
|
||||
}
|
||||
|
||||
return _db
|
||||
}
|
||||
46
internal/service/user.go
Normal file
46
internal/service/user.go
Normal file
@@ -0,0 +1,46 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"github.com/pkg/errors"
|
||||
|
||||
"github.com/zhilv666/navsite/internal/model"
|
||||
)
|
||||
|
||||
func GetUserByID(id uint) (*model.User, error) {
|
||||
var user model.User
|
||||
if err := DB().First(&user, id).Error; err != nil {
|
||||
return nil, errors.Wrapf(err, "failed get old user")
|
||||
}
|
||||
return &user, nil
|
||||
}
|
||||
|
||||
func GetUserByName(username string) (*model.User, error) {
|
||||
user := model.User{Username: username}
|
||||
if err := DB().Where(user).First(&user).Error; err != nil {
|
||||
return nil, errors.Wrapf(err, "failed get old user")
|
||||
}
|
||||
return &user, nil
|
||||
}
|
||||
|
||||
func GetUsers(pageIndex, pageSize int) (users []*model.User, count int64, err error) {
|
||||
userDB := DB().Model(&model.User{})
|
||||
if err := userDB.Count(&count).Error; err != nil {
|
||||
return nil, 0, errors.Wrapf(err, "failed get counts")
|
||||
}
|
||||
if err := userDB.Order(columnName("id")).Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&users).Error; err != nil {
|
||||
return nil, 0, errors.Wrapf(err, "failed get users")
|
||||
}
|
||||
return users, count, nil
|
||||
}
|
||||
|
||||
func AddUser(user *model.User) error {
|
||||
return errors.WithStack(DB().Create(&user).Error)
|
||||
}
|
||||
|
||||
func UpdateUser(user *model.User) error {
|
||||
return errors.WithStack(DB().Save(&user).Error)
|
||||
}
|
||||
|
||||
func DeleteUser(id uint) error {
|
||||
return errors.WithStack(DB().Delete(&model.User{}, id).Error)
|
||||
}
|
||||
19
internal/service/utils.go
Normal file
19
internal/service/utils.go
Normal file
@@ -0,0 +1,19 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/zhilv666/navsite/pkg/config"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func columnName(name string) string {
|
||||
if config.GetConfig().Database.Driver == "postgres" {
|
||||
return fmt.Sprintf(`"%s"`, name)
|
||||
}
|
||||
return fmt.Sprintf("`%s`", name)
|
||||
}
|
||||
|
||||
func addStorageOrder(db *gorm.DB) *gorm.DB {
|
||||
return DB().Order(fmt.Sprintf("%s, %s", columnName("order"), columnName("id")))
|
||||
}
|
||||
Reference in New Issue
Block a user