bindbox-game/internal/service/activity/activity_create.go
邹方成 6ee627139c
Some checks failed
Build docker and publish / linux (1.24.5) (push) Failing after 40s
feat: 新增支付测试小程序与微信支付集成
feat(pay): 添加支付API基础结构
feat(miniapp): 创建支付测试小程序页面与配置
feat(wechatpay): 配置微信支付参数与证书
fix(guild): 修复成员列表查询条件
docs: 更新代码规范文档与需求文档
style: 统一前后端枚举显示与注释格式
refactor(admin): 重构用户奖励发放接口参数处理
test(title): 添加称号效果参数验证测试
2025-11-17 00:42:08 +08:00

42 lines
940 B
Go

package activity
import (
"context"
"bindbox-game/internal/repository/mysql/model"
)
// CreateActivity 创建活动
// 参数: in 活动创建输入
// 返回: 新建的活动记录与错误
func (s *service) CreateActivity(ctx context.Context, in CreateActivityInput) (*model.Activities, error) {
item := &model.Activities{
Name: in.Name,
Banner: in.Banner,
ActivityCategoryID: in.ActivityCategoryID,
Status: in.Status,
PriceDraw: in.PriceDraw,
IsBoss: in.IsBoss,
}
if in.StartTime != nil {
item.StartTime = *in.StartTime
}
if in.EndTime != nil {
item.EndTime = *in.EndTime
}
do := s.writeDB.Activities.WithContext(ctx)
if in.StartTime == nil {
do = do.Omit(s.writeDB.Activities.StartTime)
}
if in.EndTime == nil {
do = do.Omit(s.writeDB.Activities.EndTime)
}
err := do.Create(item)
if err != nil {
return nil, err
}
return item, nil
}