micro-document/internel/logic/annualReports.go
2025-10-10 15:35:20 +08:00

83 lines
2.3 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 annualReportsLogic struct{}
var AnnualReportsLogic = new(annualReportsLogic)
func (annualReportsLogic) List(req *reports.GetAnnualReportListReq) (result *reports.GetAnnualReportListResp, err error) {
result = &reports.GetAnnualReportListResp{
Page: req.Page,
PageSize: req.PageSize,
}
data, total, err := dao.AnnualReportsDao.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 (annualReportsLogic) Add(req *reports.AddAnnualReportReq) (result *reports.AddAnnualReportResp, err error) {
result = &reports.AddAnnualReportResp{}
err = dao.AnnualReportsDao.Add(req)
if err != nil {
return nil, err
}
result.Msg = "新增年度报告成功"
return result, nil
}
func (annualReportsLogic) Edit(req *reports.EditAnnualReportReq) (result *reports.EditAnnualReportResp, err error) {
result = &reports.EditAnnualReportResp{}
err = dao.AnnualReportsDao.Edit(req)
if err != nil {
return nil, err
}
result.Msg = "编辑年度报告成功"
return result, nil
}
func (annualReportsLogic) Delete(req *reports.DeleteAnnualReportReq) (result *reports.DeleteAnnualReportResp, err error) {
result = &reports.DeleteAnnualReportResp{}
err = dao.AnnualReportsDao.Delete(req)
if err != nil {
return nil, err
}
result.Msg = "删除年度报告成功"
return result, nil
}
func (annualReportsLogic) Display(req *reports.DisplayAnnualReportReq) (result *reports.DisplayAnnualReportResp, err error) {
result = &reports.DisplayAnnualReportResp{
Page: req.Page,
PageSize: req.PageSize,
}
data, total, err := dao.AnnualReportsDao.Display(req)
if err != nil {
return nil, err
}
result.Total = int32(total)
result.Item = lo.Map(data, func(m model.AnnualReport, i int) *reports.DisplayAnnualReportItem {
return &reports.DisplayAnnualReportItem{
FileName: m.FileName,
Date: m.Date,
FileUrl: m.FileUrl,
}
})
return result, nil
}