61 lines
2.1 KiB
Go
61 lines
2.1 KiB
Go
package models
|
||
|
||
import (
|
||
"errors"
|
||
|
||
"git.apinb.com/bsm-sdk/core/database"
|
||
"git.apinb.com/bsm-sdk/core/errcode"
|
||
"git.apinb.com/heqiapp/platforms/backend/api/internal/impl"
|
||
"gorm.io/gorm"
|
||
)
|
||
|
||
// OrgGasStation 对应 org_gas_station,表示可燃气体站经营主体。
|
||
type OrgGasStation struct {
|
||
Entity
|
||
StationCode string `gorm:"column:station_code;type:varchar(32);uniqueIndex;not null" json:"station_code"` // 气站编码
|
||
Name string `gorm:"column:name;type:varchar(128);not null" json:"name"` // 气站名称
|
||
Principal string `gorm:"column:principal;type:varchar(64);not null" json:"principal"` // 负责人
|
||
ServiceArea string `gorm:"column:service_area;type:varchar(128);not null" json:"service_area"` // 服务区域
|
||
}
|
||
|
||
func init() {
|
||
database.AppendMigrate(&OrgGasStation{})
|
||
}
|
||
|
||
// TableName 返回与模型、文件名一致的单数数据表名。
|
||
func (table *OrgGasStation) TableName() string { return "org_gas_station" }
|
||
|
||
// CreateOrgGasStation 创建待审核气站。
|
||
func CreateOrgGasStation(data *OrgGasStation) error {
|
||
if err := impl.DBService.Create(data).Error; err != nil {
|
||
return errcode.ErrDB
|
||
}
|
||
return nil
|
||
}
|
||
|
||
// ListOrgGasStation 按创建时间倒序查询气站。
|
||
func ListOrgGasStation(page, size int) ([]OrgGasStation, int64, error) {
|
||
var list []OrgGasStation
|
||
var total int64
|
||
databaseQuery := impl.DBService.Model(&OrgGasStation{})
|
||
if err := databaseQuery.Count(&total).Error; err != nil {
|
||
return nil, 0, errcode.ErrDB
|
||
}
|
||
if err := databaseQuery.Order("created_at desc").Offset((page - 1) * size).Limit(size).Find(&list).Error; err != nil {
|
||
return nil, 0, errcode.ErrDB
|
||
}
|
||
return list, total, nil
|
||
}
|
||
|
||
// GetOrgGasStationByIdentity 查询单个气站。
|
||
func GetOrgGasStationByIdentity(identity string) (*OrgGasStation, error) {
|
||
var data OrgGasStation
|
||
if err := impl.DBService.Where("identity = ?", identity).First(&data).Error; err != nil {
|
||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||
return nil, errcode.ErrRecordNotFound
|
||
}
|
||
return nil, errcode.ErrDB
|
||
}
|
||
return &data, nil
|
||
}
|