156 lines
4.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 sys
// @Link https://github.com/bufanyun/hotgo
// @Copyright Copyright (c) 2025 HotGo CLI
// @Author Ms <133814250@qq.com>
// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE
// @AutoGenerate Version 2.17.8
package sys
import (
"context"
"fmt"
"hotgo/internal/dao"
"hotgo/internal/library/contexts"
"hotgo/internal/library/hgorm/handler"
"hotgo/internal/model/input/form"
"hotgo/internal/model/input/sysin"
"hotgo/internal/service"
"hotgo/utility/convert"
"hotgo/utility/excel"
"github.com/gogf/gf/v2/database/gdb"
"github.com/gogf/gf/v2/errors/gerror"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/os/gctx"
"github.com/gogf/gf/v2/util/gconv"
)
type sSysActivity struct{}
func NewSysActivity() *sSysActivity {
return &sSysActivity{}
}
func init() {
service.RegisterSysActivity(NewSysActivity())
}
// Model 活动管理ORM模型
func (s *sSysActivity) Model(ctx context.Context, option ...*handler.Option) *gdb.Model {
return handler.Model(dao.Activity.Ctx(ctx), option...)
}
// List 获取活动管理列表
func (s *sSysActivity) List(ctx context.Context, in *sysin.ActivityListInp) (list []*sysin.ActivityListModel, totalCount int, err error) {
mod := s.Model(ctx)
// 字段过滤
mod = mod.Fields(sysin.ActivityListModel{})
// 查询id
if in.Id > 0 {
mod = mod.Where(dao.Activity.Columns().Id, in.Id)
}
// 查询活动状态
if in.Status > 0 {
mod = mod.Where(dao.Activity.Columns().Status, in.Status)
}
// 分页
mod = mod.Page(in.Page, in.PerPage)
// 排序
mod = mod.OrderDesc(dao.Activity.Columns().Id)
// 查询数据
if err = mod.ScanAndCount(&list, &totalCount, false); err != nil {
err = gerror.Wrap(err, "获取活动管理列表失败,请稍后重试!")
return
}
return
}
// Export 导出活动管理
func (s *sSysActivity) Export(ctx context.Context, in *sysin.ActivityListInp) (err error) {
list, totalCount, err := s.List(ctx, in)
if err != nil {
return
}
// 字段的排序是依据tags的字段顺序如果你不想使用默认的排序方式可以直接定义 tags = []string{"字段名称", "字段名称2", ...}
tags, err := convert.GetEntityDescTags(sysin.ActivityExportModel{})
if err != nil {
return
}
var (
fileName = "导出活动管理-" + gctx.CtxId(ctx)
sheetName = fmt.Sprintf("索引条件共%v行,共%v页,当前导出是第%v页,本页共%v行", totalCount, form.CalPageCount(totalCount, in.PerPage), in.Page, len(list))
exports []sysin.ActivityExportModel
)
if err = gconv.Scan(list, &exports); err != nil {
return
}
err = excel.ExportByStructs(ctx, tags, exports, fileName, sheetName)
return
}
// Edit 修改/新增活动管理
func (s *sSysActivity) Edit(ctx context.Context, in *sysin.ActivityEditInp) (err error) {
return g.DB().Transaction(ctx, func(ctx context.Context, tx gdb.TX) (err error) {
// 修改
if in.Id > 0 {
in.UpdatedBy = contexts.GetUserId(ctx)
if _, err = s.Model(ctx).
Fields(sysin.ActivityUpdateFields{}).
WherePri(in.Id).Data(in).Update(); err != nil {
err = gerror.Wrap(err, "修改活动管理失败,请稍后重试!")
}
return
}
// 新增
in.CreatedBy = contexts.GetUserId(ctx)
if _, err = s.Model(ctx, &handler.Option{FilterAuth: false}).
Fields(sysin.ActivityInsertFields{}).
Data(in).OmitEmptyData().Insert(); err != nil {
err = gerror.Wrap(err, "新增活动管理失败,请稍后重试!")
}
return
})
}
// Delete 删除活动管理
func (s *sSysActivity) Delete(ctx context.Context, in *sysin.ActivityDeleteInp) (err error) {
if _, err = s.Model(ctx).WherePri(in.Id).Unscoped().Delete(); err != nil {
err = gerror.Wrap(err, "删除活动管理失败,请稍后重试!")
return
}
return
}
// View 获取活动管理指定信息
func (s *sSysActivity) View(ctx context.Context, in *sysin.ActivityViewInp) (res *sysin.ActivityViewModel, err error) {
if err = s.Model(ctx).WherePri(in.Id).Scan(&res); err != nil {
err = gerror.Wrap(err, "获取活动管理信息,请稍后重试!")
return
}
return
}
// Status 更新活动管理状态
func (s *sSysActivity) Status(ctx context.Context, in *sysin.ActivityStatusInp) (err error) {
if _, err = s.Model(ctx).WherePri(in.Id).Data(g.Map{
dao.Activity.Columns().Status: in.Status,
dao.Activity.Columns().UpdatedBy: contexts.GetUserId(ctx),
}).Update(); err != nil {
err = gerror.Wrap(err, "更新活动管理状态失败,请稍后重试!")
return
}
return
}