refactor(utils): 修复密码哈希比较逻辑错误 feat(user): 新增按状态筛选优惠券接口 docs: 添加虚拟发货与任务中心相关文档 fix(wechat): 修正Code2Session上下文传递问题 test: 补充订单折扣与积分转换测试用例 build: 更新配置文件与构建脚本 style: 清理多余的空行与注释
55 lines
1.7 KiB
Go
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
|
|
}
|