96 lines
3.0 KiB
Go
Executable File
96 lines
3.0 KiB
Go
Executable File
package wt
|
|
|
|
import (
|
|
"encoding/json"
|
|
"goweb-gin-demo/global"
|
|
"goweb-gin-demo/model/common/request"
|
|
"goweb-gin-demo/model/wt"
|
|
wtReq "goweb-gin-demo/model/wt/request"
|
|
wtRes "goweb-gin-demo/model/wt/response"
|
|
)
|
|
|
|
type WtTemplateService struct {
|
|
}
|
|
|
|
// CreateWtTemplate 创建周报模板
|
|
func (wtTemplatesService *WtTemplateService) CreateWtTemplate(templateRes wtReq.WtTemplateRes) (err error) {
|
|
template := voToTemplate(templateRes)
|
|
err = global.GLOBAL_DB.Create(&template).Error
|
|
return err
|
|
}
|
|
|
|
|
|
// DeleteWtTemplateByIds 批量删除周报模板
|
|
func (wtTemplatesService *WtTemplateService) DeleteWtTemplateByIds(ids request.IdsReq) (err error) {
|
|
err = global.GLOBAL_DB.Delete(&[]wt.WtTemplate{}, "id in ?", ids.Ids).Error
|
|
return err
|
|
}
|
|
|
|
// UpdateWtTemplate 更新周报模板
|
|
func (wtTemplatesService *WtTemplateService) UpdateWtTemplate(templateRes wtReq.WtTemplateRes) (err error) {
|
|
template := voToTemplate(templateRes)
|
|
err = global.GLOBAL_DB.Updates(&template).Error
|
|
return err
|
|
}
|
|
|
|
// GetWtTemplate 根据id获取周报模板
|
|
func (wtTemplatesService *WtTemplateService) GetWtTemplate(id uint) (err error, templateResult wtRes.WtTemplateResult) {
|
|
var wtTemplates wt.WtTemplate
|
|
err = global.GLOBAL_DB.Where("id = ?", id).First(&wtTemplates).Error
|
|
result := templateToResult(wtTemplates)
|
|
return err, result
|
|
}
|
|
|
|
// GetWtTemplateInfoList 分页获取周报模板
|
|
func (wtTemplatesService *WtTemplateService) GetWtTemplateInfoList(info wtReq.WtTemplateSearch) (err error, list interface{}, total int64) {
|
|
limit := info.PageSize
|
|
offset := info.PageSize * (info.Page - 1)
|
|
// 创建db
|
|
db := global.GLOBAL_DB.Model(&wt.WtTemplate{})
|
|
var wtTemplatess []wt.WtTemplate
|
|
// 如果有条件搜索 下方会自动创建搜索语句
|
|
err = db.Count(&total).Error
|
|
if err != nil {
|
|
return
|
|
}
|
|
err = db.Limit(limit).Offset(offset).Find(&wtTemplatess).Error
|
|
|
|
templateVOList := templateToVOs(wtTemplatess)
|
|
|
|
return err, templateVOList, total
|
|
}
|
|
|
|
//数据转换一下, 需要把json数据转换为字符串
|
|
func voToTemplate(templateVO wtReq.WtTemplateRes) wt.WtTemplate {
|
|
contentJson, _ := json.Marshal(templateVO.Contents)
|
|
|
|
wtTemplate := wt.WtTemplate{
|
|
GLOBAL_MODEL: global.GLOBAL_MODEL{ID: templateVO.ID},
|
|
UserName: templateVO.UserName,
|
|
Header: templateVO.Header,
|
|
Contents: string(contentJson),
|
|
}
|
|
return wtTemplate
|
|
}
|
|
|
|
// 批量转换 数据转换, 把字符串转换为json
|
|
func templateToVOs(templates []wt.WtTemplate) []wtRes.WtTemplateResult {
|
|
var templateListResult []wtRes.WtTemplateResult
|
|
for _, template := range templates {
|
|
templateRes := templateToResult(template)
|
|
templateListResult = append(templateListResult, templateRes)
|
|
}
|
|
return templateListResult
|
|
}
|
|
|
|
//单个转换
|
|
func templateToResult(template wt.WtTemplate) wtRes.WtTemplateResult {
|
|
wtTemplateResult := wtRes.WtTemplateResult{}
|
|
wtTemplateResult.GLOBAL_MODEL = template.GLOBAL_MODEL
|
|
|
|
wtTemplateResult.UserName = template.UserName
|
|
wtTemplateResult.Header = template.Header
|
|
json.Unmarshal([]byte(template.Contents), &wtTemplateResult.Contents)
|
|
return wtTemplateResult
|
|
}
|