case-admin-api/api/dao/Platform.go
2025-03-07 17:23:50 +08:00

170 lines
4.2 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package dao
import (
"case-admin-api/api/model"
"case-admin-api/api/requests"
"case-admin-api/global"
"gorm.io/gorm"
"gorm.io/gorm/clause"
)
type PlatformDao struct {
}
// GetPlatformById 获取数据-id
func (r *PlatformDao) GetPlatformById(platformId int64) (m *model.Platform, err error) {
err = global.Db.First(&m, platformId).Error
if err != nil {
return nil, err
}
return m, nil
}
// GetPlatformPreloadById 获取数据-加载全部关联-id
func (r *PlatformDao) GetPlatformPreloadById(platformId int64) (m *model.Platform, err error) {
err = global.Db.Preload(clause.Associations).First(&m, platformId).Error
if err != nil {
return nil, err
}
return m, nil
}
// DeletePlatform 删除
func (r *PlatformDao) DeletePlatform(tx *gorm.DB, maps interface{}) error {
err := tx.Where(maps).Delete(&model.Platform{}).Error
if err != nil {
return err
}
return nil
}
// DeletePlatformById 删除-id
func (r *PlatformDao) DeletePlatformById(tx *gorm.DB, platformId int64) error {
if err := tx.Delete(&model.Platform{}, platformId).Error; err != nil {
return err
}
return nil
}
// EditPlatform 修改
func (r *PlatformDao) EditPlatform(tx *gorm.DB, maps interface{}, data interface{}) error {
err := tx.Model(&model.Platform{}).Where(maps).Updates(data).Error
if err != nil {
return err
}
return nil
}
// EditPlatformById 修改-id
func (r *PlatformDao) EditPlatformById(tx *gorm.DB, platformId int64, data interface{}) error {
err := tx.Model(&model.Platform{}).Where("platform_id = ?", platformId).Updates(data).Error
if err != nil {
return err
}
return nil
}
// GetPlatformList 获取列表
func (r *PlatformDao) GetPlatformList(maps interface{}) (m []*model.Platform, err error) {
err = global.Db.Where(maps).Find(&m).Error
if err != nil {
return nil, err
}
return m, nil
}
// GetPlatformCount 获取数量
func (r *PlatformDao) GetPlatformCount(maps interface{}) (total int64, err error) {
err = global.Db.Model(&model.Platform{}).Where(maps).Count(&total).Error
if err != nil {
return 0, err
}
return total, nil
}
// GetPlatformListRand 获取列表-随机
func (r *PlatformDao) GetPlatformListRand(maps interface{}, limit int) (m []*model.Platform, err error) {
err = global.Db.Where(maps).Order("rand()").Limit(limit).Find(&m).Error
if err != nil {
return nil, err
}
return m, nil
}
// AddPlatform 新增
func (r *PlatformDao) AddPlatform(tx *gorm.DB, model *model.Platform) (*model.Platform, error) {
if err := tx.Create(model).Error; err != nil {
return nil, err
}
return model, nil
}
// GetPlatform 获取
func (r *PlatformDao) GetPlatform(maps interface{}) (m *model.Platform, err error) {
err = global.Db.Where(maps).First(&m).Error
if err != nil {
return nil, err
}
return m, nil
}
// GetPlatformPageSearch 获取列表-分页
func (r *PlatformDao) GetPlatformPageSearch(req requests.GetPlatformPage, page, pageSize int) (m []*model.Platform, total int64, err error) {
var totalRecords int64
// 构建查询条件
query := global.Db.Model(&model.Platform{})
// 平台状态1:正常 2:禁用)
if req.PlatformStatus != nil {
query = query.Where("platform_status = ?", req.PlatformStatus)
}
// 平台名称
if req.PlatformName != "" {
query = query.Where("platform_name LIKE ?", "%"+req.PlatformName+"%")
}
// 排序
query = query.Order("created_at desc")
// 查询总数量
if err := query.Count(&totalRecords).Error; err != nil {
return nil, 0, err
}
err = query.Scopes(model.Paginate(page, pageSize)).Find(&m).Error
if err != nil {
return nil, 0, err
}
return m, totalRecords, nil
}
// GetPlatformListSearch 获取列表
func (r *PlatformDao) GetPlatformListSearch(req requests.GetPlatformList) (m []*model.Platform, err error) {
// 构建查询条件
query := global.Db.Model(&model.Platform{})
// 平台状态1:正常 2:禁用)
if req.PlatformStatus != nil {
query = query.Where("platform_status = ?", req.PlatformStatus)
}
// 平台名称
if req.PlatformName != "" {
query = query.Where("platform_name LIKE ?", "%"+req.PlatformName+"%")
}
// 排序
query = query.Order("created_at desc")
err = query.Scopes(model.Paginate(1, 10)).Find(&m).Error
if err != nil {
return nil, err
}
if err != nil {
return nil, err
}
return m, nil
}