micro-document/internel/dao/press_releases.go

100 lines
3.1 KiB
Go
Raw Normal View History

2025-06-11 05:54:38 +00:00
package dao
import (
"micro-document/api/pressreleases"
"micro-document/internel/model"
"micro-document/pkg/db"
"time"
"gorm.io/gorm"
"gorm.io/gorm/clause"
)
type pressReleasesDao struct{}
var PressReleaseDao = new(pressReleasesDao)
func (pressReleasesDao) List(req *pressreleases.ListReq) (data []model.PressReleases, total int64, err error) {
session := db.DocDB.Model(&model.PressReleases{})
if req.Title != "" {
session = session.Where("title like ?", "%"+req.Title+"%")
}
if req.StartTime != 0 {
2025-06-11 07:41:57 +00:00
session = session.Where("created_at >= ?", time.UnixMilli(int64(req.StartTime)))
2025-06-11 05:54:38 +00:00
}
if req.EndTime != 0 {
2025-06-11 07:41:57 +00:00
session = session.Where("created_at <= ?", time.UnixMilli(int64(req.EndTime)))
2025-06-11 05:54:38 +00:00
}
if req.Display != 0 {
session = session.Where("display = ?", req.Display)
}
if req.Status != 0 {
session = session.Where("status = ?", req.Status)
}
2025-06-11 10:30:49 +00:00
err = session.Order("updated_at desc").Offset((int(req.Page-1) * int(req.PageSize))).Limit(int(req.PageSize)).Count(&total).Find(&data).Error
2025-06-11 05:54:38 +00:00
return
}
func (pressReleasesDao) Display(req *pressreleases.DisplayReq) (data []model.PressReleases, err error) {
2025-06-12 06:35:00 +00:00
session := db.DocDB.Model(&model.PressReleases{}).Where(&model.PressReleases{Display: 2, Status: 2})
if req.Query != "" {
2025-06-12 06:45:07 +00:00
session = session.Where("title like ?", "%"+req.Query+"%")
2025-06-12 06:35:00 +00:00
}
err = session.Offset(int(req.Page-1) * int(req.PageSize)).Limit(int(req.PageSize)).Order(clause.OrderBy{Columns: []clause.OrderByColumn{
2025-06-11 05:54:38 +00:00
{Column: clause.Column{Name: "sort"}, Desc: false},
{Column: clause.Column{Name: "updated_at"}, Desc: true},
}}).Find(&data).Error
return
}
func (pressReleasesDao) Edit(req *pressreleases.EditReq) (err error) {
return db.DocDB.Model(&model.PressReleases{}).Where("id = ?", req.Id).UpdateColumns(&model.PressReleases{
2025-06-11 07:16:34 +00:00
Sort: uint(req.Sort),
Status: int(req.Status),
Title: req.Title,
Attachment: req.Attachment,
AttachmentName: req.AttachmentName,
Operator: req.Operator,
2025-06-12 06:49:39 +00:00
Summary: req.Summary,
2025-06-11 08:17:27 +00:00
OperatorID: uint(req.OperatorId),
2025-06-11 10:36:00 +00:00
Content: req.Content,
2025-06-11 08:17:27 +00:00
Display: int(req.Display),
2025-06-11 05:54:38 +00:00
Model: gorm.Model{
2025-06-11 07:41:57 +00:00
CreatedAt: time.UnixMilli(int64(req.CreatedAt)),
2025-06-11 07:31:30 +00:00
UpdatedAt: time.Now(),
2025-06-11 05:54:38 +00:00
},
}).Error
}
func (pressReleasesDao) Create(req *pressreleases.CreateReq) (err error) {
return db.DocDB.Model(&model.PressReleases{}).Create(&model.PressReleases{
2025-06-11 07:16:34 +00:00
Sort: uint(req.Sort),
Status: int(req.Status),
Title: req.Title,
Attachment: req.Attachment,
AttachmentName: req.AttachmentName,
Operator: req.Operator,
2025-06-11 08:17:27 +00:00
OperatorID: uint(req.OperatorId),
2025-06-12 07:13:09 +00:00
Content: req.Content,
2025-06-12 06:49:39 +00:00
Summary: req.Summary,
2025-06-11 08:17:27 +00:00
Display: int(req.Display),
2025-06-11 05:54:38 +00:00
Model: gorm.Model{
2025-06-11 07:41:57 +00:00
CreatedAt: time.UnixMilli(int64(req.CreatedAt)),
2025-06-11 07:31:30 +00:00
UpdatedAt: time.Now(),
2025-06-11 05:54:38 +00:00
},
}).Error
}
func (pressReleasesDao) Delete(req *pressreleases.DeleteReq) (err error) {
return db.DocDB.Delete(&model.PressReleases{
Model: gorm.Model{
ID: uint(req.Id),
},
}).Error
}
func (pressReleasesDao) GetById(id int) (data model.PressReleases, err error) {
err = db.DocDB.Model(&model.PressReleases{}).Where("id = ?", id).First(&data).Error
return
}