Files
jx-print/dao/print_notice.go
邹宗楠 5e7533cc67 1
2022-12-16 12:44:58 +08:00

67 lines
1.8 KiB
Go

package dao
import (
"git.rosy.net.cn/jx-print/globals"
editionModel "git.rosy.net.cn/jx-print/model/app_model"
"time"
)
type PrintNotice struct {
}
var PrintNoticeDao = new(PrintNotice)
// AddNotice 添加版本控制
func (p PrintNotice) AddNotice(param *editionModel.AddOrUpdatePrintNotice) error {
if err := Insert(globals.GetDB(), editionModel.PrintNotice{
CreatedAt: time.Now(),
UpdatedAt: time.Now(),
NoticeType: param.NoticeType,
Msg: param.Msg,
Link: param.Link,
}); err != nil {
return err
}
return nil
}
// UpdateNotice 修改版本控制
func (p PrintNotice) UpdateNotice(param *editionModel.AddOrUpdatePrintNotice) error {
if err := Update(globals.GetDB(), editionModel.PrintNotice{
ID: param.Id,
UpdatedAt: time.Now(),
NoticeType: param.NoticeType,
Msg: param.Msg,
Link: param.Link,
}, []string{"updated_at", "notice_type", "msg", "link"}...); err != nil {
return err
}
return nil
}
// DeletePrintNotice 删除
func (p PrintNotice) DeletePrintNotice(id int) error {
sql := `DELETE FROM print_notice WHERE id = ?`
_, err := globals.GetDB().Exec(sql, []interface{}{id}...)
return err
}
func (p PrintNotice) SelectPrintNotice(param *editionModel.QueryPrintNotice) ([]*editionModel.PrintNotice, int, error) {
var result []*editionModel.PrintNotice
sql := `SELECT SQL_CALC_FOUND_ROWS * FROM print_notice WHERE notice_type = ? ORDER BY created_at DESC LIMIT ? OFFSET ? `
txDb := globals.GetTxDb()
if err := txDb.Select(&result, sql, []interface{}{param.NoticeType, param.PageSize, (param.PageNumber - 1) * param.PageSize}...); err != nil {
txDb.Rollback()
return nil, 0, err
}
var countInfo []*editionModel.Count
err := txDb.Select(&countInfo, "SELECT FOUND_ROWS() ct")
if err != nil {
txDb.Rollback()
return nil, 0, err
}
defer txDb.Commit()
return result, countInfo[0].Ct, nil
}