设计
This commit is contained in:
86
server/internal/models/sample_demo.go
Normal file
86
server/internal/models/sample_demo.go
Normal file
@@ -0,0 +1,86 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"git.apinb.com/bsm-sdk/core/database"
|
||||
"git.apinb.com/bsm-sdk/core/errcode"
|
||||
"git.apinb.com/bsm-sdk/core/types"
|
||||
"git.apinb.com/ops/sample/internal/impl"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
/*
|
||||
* SampleDemo
|
||||
* Comment: 示例数据表
|
||||
* Version: 10
|
||||
* Created: 2022-04-12 10:44:51 , Updated:0001-01-01 00:00:00
|
||||
*/
|
||||
type SampleDemo struct {
|
||||
types.Std_IICUDS
|
||||
Name string `gorm:"column:name;type:varchar(255);default:'';" json:"name"` // 名称
|
||||
Age int `gorm:"column:age;type:int;default:0;" json:"age"` // 年龄
|
||||
}
|
||||
|
||||
func init() {
|
||||
database.AppendMigrate(&SampleDemo{})
|
||||
}
|
||||
|
||||
// TableName .
|
||||
func (table *SampleDemo) TableName() string {
|
||||
return "sample_demo" //对应数据库表名
|
||||
}
|
||||
|
||||
// GetSampleDemoByField 根据特定字段值获取 SampleDemo 对象
|
||||
func GetSampleDemoByField(field string, value any) (*SampleDemo, error) {
|
||||
var (
|
||||
data SampleDemo
|
||||
condition = map[string]any{field: value}
|
||||
)
|
||||
err := impl.DBService.Where(condition).First(&data).Error
|
||||
if err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
return nil, errcode.ErrRecordNotFound
|
||||
}
|
||||
return nil, errcode.ErrDB
|
||||
}
|
||||
|
||||
return &data, nil
|
||||
}
|
||||
|
||||
func CreateSampleDemo(data *SampleDemo) error {
|
||||
if err := impl.DBService.Create(data).Error; err != nil {
|
||||
return errcode.ErrDB
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func ListSampleDemos(page, size int) ([]SampleDemo, int64, error) {
|
||||
var (
|
||||
list []SampleDemo
|
||||
total int64
|
||||
)
|
||||
db := impl.DBService.Model(&SampleDemo{})
|
||||
if err := db.Count(&total).Error; err != nil {
|
||||
return nil, 0, errcode.ErrDB
|
||||
}
|
||||
offset := (page - 1) * size
|
||||
if err := db.Order("id desc").Offset(offset).Limit(size).Find(&list).Error; err != nil {
|
||||
return nil, 0, errcode.ErrDB
|
||||
}
|
||||
return list, total, nil
|
||||
}
|
||||
|
||||
func UpdateSampleDemo(data *SampleDemo) error {
|
||||
if err := impl.DBService.Save(data).Error; err != nil {
|
||||
return errcode.ErrDB
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func DeleteSampleDemo(data *SampleDemo) error {
|
||||
if err := impl.DBService.Delete(data).Error; err != nil {
|
||||
return errcode.ErrDB
|
||||
}
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user