micro-document/internel/dao/quarterlyReports.go

86 lines
2.4 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 (
"errors"
"micro-document/api/reports"
"micro-document/internel/model"
"micro-document/pkg/db"
"time"
)
type quarterlyReportsDao struct{}
var QuarterlyReportsDao = new(quarterlyReportsDao)
func (quarterlyReportsDao) List(req *reports.GetQuarterlyReportListReq) (data []model.QuarterlyReport, total int64, err error) {
dbQuery := db.DocDB.Model(&model.QuarterlyReport{})
if req.Filtrate != nil {
if req.Filtrate.FileName != "" {
dbQuery = dbQuery.Where("file_name LIKE ?", "%"+req.Filtrate.FileName+"%")
}
if req.Filtrate.Status != 0 {
dbQuery = dbQuery.Where("status = ?", req.Filtrate.Status)
}
}
dbQuery.Count(&total)
err = dbQuery.Scopes(db.Pagination(req.Page, req.PageSize)).Find(&data).Error
if err != nil {
return
}
return
}
func (quarterlyReportsDao) Add(req *reports.AddQuarterlyReportReq) (err error) {
err = db.DocDB.Model(&model.QuarterlyReport{}).Create(&model.QuarterlyReport{
FileName: req.FileName,
FileIntroduce: req.FileIntroduce,
Attachment: req.Attachment,
AttachmentName: req.AttachmentName,
Operator: req.Operator,
OperatorId: req.OperatorId,
}).Error
if err != nil {
return errors.New("新增季度报告失败")
}
return
}
func (quarterlyReportsDao) Edit(req *reports.EditQuarterlyReportReq) (err error) {
err = db.DocDB.Model(&model.QuarterlyReport{}).Where("id = ?", req.Id).UpdateColumns(&model.QuarterlyReport{
FileName: req.FileName,
FileIntroduce: req.FileIntroduce,
Attachment: req.Attachment,
AttachmentName: req.AttachmentName,
Status: req.Status,
Sort: req.Sort,
Operator: req.Operator,
OperatorId: req.OperatorId,
UpdatedAt: time.Now(),
}).Error
if err != nil {
return errors.New("编辑季度报告失败")
}
return
}
func (quarterlyReportsDao) Delete(req *reports.DeleteQuarterlyReportReq) (err error) {
// 先查询记录是否存在且状态允许删除
var report model.QuarterlyReport
err = db.DocDB.Model(&model.QuarterlyReport{}).Where("id = ?", req.Id).First(&report).Error
if err != nil {
return errors.New("查询记录失败")
}
// 检查状态如果status=1则不允许删除
if report.Status == 1 {
return errors.New("该记录已上架,不允许删除")
}
// 执行删除操作
err = db.DocDB.Model(&model.QuarterlyReport{}).Where("id = ?", req.Id).Delete(&model.QuarterlyReport{}).Error
if err != nil {
return errors.New("删除季度报告失败")
}
return
}