邹方成 45815bfb7d chore: 清理无用文件与优化代码结构
refactor(utils): 修复密码哈希比较逻辑错误
feat(user): 新增按状态筛选优惠券接口
docs: 添加虚拟发货与任务中心相关文档
fix(wechat): 修正Code2Session上下文传递问题
test: 补充订单折扣与积分转换测试用例
build: 更新配置文件与构建脚本
style: 清理多余的空行与注释
2025-12-18 17:35:55 +08:00

55 lines
1.7 KiB
Go

package activity
import (
"context"
"time"
)
// ModifyActivity 修改活动
// 参数: id 活动ID, in 修改输入
// 返回: 错误信息
func (s *service) ModifyActivity(ctx context.Context, id int64, in ModifyActivityInput) error {
updates := map[string]any{s.writeDB.Activities.UpdatedAt.ColumnName().String(): time.Now()}
if in.Name != "" {
updates[s.writeDB.Activities.Name.ColumnName().String()] = in.Name
}
if in.Banner != "" {
updates[s.writeDB.Activities.Banner.ColumnName().String()] = in.Banner
}
if in.Image != "" {
updates[s.writeDB.Activities.Image.ColumnName().String()] = in.Image
}
if in.GameplayIntro != "" {
updates[s.writeDB.Activities.GameplayIntro.ColumnName().String()] = sanitizeHTML(in.GameplayIntro)
}
if in.ActivityCategoryID != 0 {
updates[s.writeDB.Activities.ActivityCategoryID.ColumnName().String()] = in.ActivityCategoryID
}
if in.Status != 0 {
updates[s.writeDB.Activities.Status.ColumnName().String()] = in.Status
}
if in.PriceDraw != 0 {
updates[s.writeDB.Activities.PriceDraw.ColumnName().String()] = in.PriceDraw
}
if in.IsBoss != 0 {
updates[s.writeDB.Activities.IsBoss.ColumnName().String()] = in.IsBoss
}
if in.StartTime != nil {
updates[s.writeDB.Activities.StartTime.ColumnName().String()] = *in.StartTime
}
if in.EndTime != nil {
updates[s.writeDB.Activities.EndTime.ColumnName().String()] = *in.EndTime
}
if in.AllowItemCards != nil {
updates["allow_item_cards"] = (*in.AllowItemCards != 0)
}
if in.AllowCoupons != nil {
updates["allow_coupons"] = (*in.AllowCoupons != 0)
}
if len(updates) == 1 {
return nil
}
_, err := s.writeDB.Activities.WithContext(ctx).Where(s.writeDB.Activities.ID.Eq(id)).Updates(updates)
return err
}