75 lines
2.5 KiB
Go
75 lines
2.5 KiB
Go
// Package mapper 数据访问层
|
|
package mapper
|
|
|
|
import (
|
|
"server/config"
|
|
"server/modules/yx/entity"
|
|
|
|
"gorm.io/gorm/clause"
|
|
)
|
|
|
|
type YxCalculationMajorMapper struct{}
|
|
|
|
func NewYxCalculationMajorMapper() *YxCalculationMajorMapper {
|
|
return &YxCalculationMajorMapper{}
|
|
}
|
|
|
|
func (m *YxCalculationMajorMapper) FindAll(page, size int) ([]entity.YxCalculationMajor, int64, error) {
|
|
var items []entity.YxCalculationMajor
|
|
var total int64
|
|
config.DB.Model(&entity.YxCalculationMajor{}).Count(&total)
|
|
err := config.DB.Offset((page - 1) * size).Limit(size).Find(&items).Error
|
|
return items, total, err
|
|
}
|
|
|
|
func (m *YxCalculationMajorMapper) FindByID(id string) (*entity.YxCalculationMajor, error) {
|
|
var item entity.YxCalculationMajor
|
|
err := config.DB.First(&item, "id = ?", id).Error
|
|
return &item, err
|
|
}
|
|
|
|
func (m *YxCalculationMajorMapper) Create(item *entity.YxCalculationMajor) error {
|
|
return config.DB.Create(item).Error
|
|
}
|
|
|
|
func (m *YxCalculationMajorMapper) Update(item *entity.YxCalculationMajor) error {
|
|
return config.DB.Save(item).Error
|
|
}
|
|
|
|
func (m *YxCalculationMajorMapper) UpdateFields(id string, fields map[string]interface{}) error {
|
|
return config.DB.Model(&entity.YxCalculationMajor{}).Where("id = ?", id).Updates(fields).Error
|
|
}
|
|
|
|
func (m *YxCalculationMajorMapper) Delete(id string) error {
|
|
return config.DB.Delete(&entity.YxCalculationMajor{}, "id = ?", id).Error
|
|
}
|
|
|
|
func (m *YxCalculationMajorMapper) FindByScoreID(scoreID string) ([]entity.YxCalculationMajor, error) {
|
|
var items []entity.YxCalculationMajor
|
|
err := config.DB.Where("score_id = ?", scoreID).Find(&items).Error
|
|
return items, err
|
|
}
|
|
|
|
func (m *YxCalculationMajorMapper) BatchCreate(items []entity.YxCalculationMajor, batchSize int) error {
|
|
return config.DB.CreateInBatches(items, batchSize).Error
|
|
}
|
|
|
|
func (m *YxCalculationMajorMapper) BatchUpdate(items []entity.YxCalculationMajor) error {
|
|
return config.DB.Save(items).Error
|
|
}
|
|
|
|
func (m *YxCalculationMajorMapper) BatchUpsert(items []entity.YxCalculationMajor, updateColumns []string) error {
|
|
return config.DB.Clauses(clause.OnConflict{
|
|
Columns: []clause.Column{{Name: "id"}},
|
|
DoUpdates: clause.AssignmentColumns(updateColumns),
|
|
}).CreateInBatches(items, 100).Error
|
|
}
|
|
|
|
func (m *YxCalculationMajorMapper) BatchDelete(ids []string) error {
|
|
return config.DB.Delete(&entity.YxCalculationMajor{}, "id IN ?", ids).Error
|
|
}
|
|
|
|
func (m *YxCalculationMajorMapper) DeleteByScoreID(scoreID string) error {
|
|
return config.DB.Delete(&entity.YxCalculationMajor{}, "score_id = ?", scoreID).Error
|
|
}
|