83 lines
2.3 KiB
Go
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
|
|
}
|