55 lines
1.7 KiB
Go
Executable File
55 lines
1.7 KiB
Go
Executable File
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
|
|
}
|