//更改contest状态 //@URL:/admin/contests/(\d+)/status/ @method:POST func (cc *AdminContest) Status(Cid string) { restweb.Logger.Debug("Admin Contest Status") cid, err := strconv.Atoi(Cid) if err != nil { cc.Error("args error", 400) return } contestModel := model.ContestModel{} one, _ := contestModel.Detail(cid) if one.Creator != cc.Uid { cc.Error("privilege error", 400) return } var status int switch one.Status { case config.StatusAvailable: status = config.StatusReverse default: status = config.StatusAvailable } err = contestModel.Status(cid, status) if err != nil { cc.Error(err.Error(), 500) return } cc.Redirect("/admin/contests", http.StatusFound) //重定向到竞赛列表页 }
//更改contest状态 url:/admin/contest/status/ func (this *ContestController) Status(w http.ResponseWriter, r *http.Request) { class.Logger.Debug("Admin Contest Status") if r.Method != "POST" { this.Err400(w, r, "Error", "Error Method to Change contest status") return } this.Init(w, r) args := this.ParseURL(r.URL.String()) cid, err := strconv.Atoi(args["cid"]) if err != nil { http.Error(w, "args error", 400) return } contestModel := model.ContestModel{} one, err := contestModel.Detail(cid) Type := one.Type var status int switch one.Status { case config.StatusAvailable: status = config.StatusReverse default: status = config.StatusAvailable } err = contestModel.Status(cid, status) if err != nil { http.Error(w, err.Error(), 500) return } http.Redirect(w, r, "/admin/contest?list/type?"+strings.Title(Type), http.StatusFound) //重定向到竞赛列表页 }