micro-document/internel/logic/quarterlyReports.go

85 lines
2.5 KiB
Go

package logic
import (
"errors"
"micro-document/api/reports"
"micro-document/internel/dao"
"micro-document/internel/model"
util "micro-document/pkg/utils"
"github.com/jinzhu/copier"
"github.com/samber/lo"
)
type quarterlyReportsLogic struct{}
var QuarterlyReportsLogic = new(quarterlyReportsLogic)
// 获取季度报告列表
func (quarterlyReportsLogic) List(req *reports.GetQuarterlyReportListReq) (result *reports.GetQuarterlyReportListResp, err error) {
result = &reports.GetQuarterlyReportListResp{
Page: req.Page,
PageSize: req.PageSize,
}
data, total, err := dao.QuarterlyReportsDao.List(req)
if err != nil {
return nil, errors.New("查询季度报告失败")
}
result.Total = int32(total)
if err = copier.CopyWithOption(&result.Data, &data, util.CopierProtoOptions); err != nil {
return nil, errors.New("复制季度报告失败")
}
return result, nil
}
// 增加季度报告
func (quarterlyReportsLogic) Add(req *reports.AddQuarterlyReportReq) (result *reports.AddQuarterlyReportResp, err error) {
result = &reports.AddQuarterlyReportResp{}
err = dao.QuarterlyReportsDao.Add(req)
if err != nil {
return nil, err
}
result.Msg = "新增季度报告成功"
return result, nil
}
// 编辑季度报告
func (quarterlyReportsLogic) Edit(req *reports.EditQuarterlyReportReq) (result *reports.EditQuarterlyReportResp, err error) {
result = &reports.EditQuarterlyReportResp{}
err = dao.QuarterlyReportsDao.Edit(req)
if err != nil {
return nil, err
}
result.Msg = "编辑季度报告成功"
return result, nil
}
// 删除季度报告
func (quarterlyReportsLogic) Delete(req *reports.DeleteQuarterlyReportReq) (result *reports.DeleteQuarterlyReportResp, err error) {
result = &reports.DeleteQuarterlyReportResp{}
err = dao.QuarterlyReportsDao.Delete(req)
if err != nil {
return nil, err
}
result.Msg = "删除季度报告成功"
return result, nil
}
// 季度报告展示列表
func (quarterlyReportsLogic) Display(req *reports.DisplayQuarterlyReportReq) (result *reports.DisplayQuarterlyReportResp, err error) {
result = &reports.DisplayQuarterlyReportResp{}
data, err := dao.QuarterlyReportsDao.Display()
if err != nil {
return nil, err
}
result.Item = lo.Map(data, func(m model.QuarterlyReport, i int) *reports.DisplayQuarterlyReportItem {
return &reports.DisplayQuarterlyReportItem{
FileName: m.FileName,
FileIntroduce: m.FileIntroduce,
Attachment: m.Attachment,
AttachmentName: m.AttachmentName,
}
})
return result, nil
}