|
|
|
@@ -54,10 +54,10 @@ type TaskConfig struct { |
|
|
|
} |
|
|
|
|
|
|
|
type TaskConfigWithLimit struct { |
|
|
|
TaskCode string |
|
|
|
TaskCode string `binding:"Required;MaxSize(256)"` |
|
|
|
Tittle string |
|
|
|
AwardType string |
|
|
|
AwardAmount int64 |
|
|
|
AwardAmount int64 `binding:"Required;MaxSize(256)"` |
|
|
|
Creator string |
|
|
|
CreatedUnix timeutil.TimeStamp |
|
|
|
Limiters []LimitConfigVO |
|
|
|
@@ -90,3 +90,68 @@ func GetTaskConfigList() ([]*TaskConfig, error) { |
|
|
|
} |
|
|
|
return r, nil |
|
|
|
} |
|
|
|
|
|
|
|
func AddTaskConfig(config TaskConfigWithLimit, doer *User) error { |
|
|
|
sess := x.NewSession() |
|
|
|
defer sess.Close() |
|
|
|
|
|
|
|
//delete old task config |
|
|
|
p := &TaskConfig{ |
|
|
|
TaskCode: config.TaskCode, |
|
|
|
} |
|
|
|
_, err := sess.Delete(p) |
|
|
|
if err != nil { |
|
|
|
sess.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
|
|
|
|
//add new config |
|
|
|
t := &TaskConfig{ |
|
|
|
TaskCode: config.TaskCode, |
|
|
|
Tittle: config.Tittle, |
|
|
|
AwardType: config.AwardType, |
|
|
|
AwardAmount: config.AwardAmount, |
|
|
|
CreatorId: doer.ID, |
|
|
|
CreatorName: doer.Name, |
|
|
|
} |
|
|
|
_, err = sess.Insert(t) |
|
|
|
if err != nil { |
|
|
|
sess.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
|
|
|
|
//delete old limiter config |
|
|
|
lp := &LimitConfig{ |
|
|
|
LimitType: LimitTypeTask.Name(), |
|
|
|
LimitCode: config.TaskCode, |
|
|
|
} |
|
|
|
_, err = sess.Delete(lp) |
|
|
|
if err != nil { |
|
|
|
sess.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
|
|
|
|
//add new limiter config |
|
|
|
if config.Limiters != nil && len(config.Limiters) > 0 { |
|
|
|
for _, v := range config.Limiters { |
|
|
|
//add new config |
|
|
|
l := &LimitConfig{ |
|
|
|
Tittle: v.Tittle, |
|
|
|
RefreshRate: v.RefreshRate, |
|
|
|
Scope: v.Scope, |
|
|
|
LimitNum: v.LimitNum, |
|
|
|
LimitCode: config.TaskCode, |
|
|
|
LimitType: LimitTypeTask.Name(), |
|
|
|
CreatorId: doer.ID, |
|
|
|
CreatorName: doer.Name, |
|
|
|
} |
|
|
|
_, err = sess.Insert(l) |
|
|
|
if err != nil { |
|
|
|
sess.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
sess.Commit() |
|
|
|
return nil |
|
|
|
} |