//编辑 func (this *ArticleController) Edit() { var ( list []*models.Tag tag models.Tag ) id, _ := this.GetInt64("id") post := models.Article{Id: id} if post.Read() != nil { this.Abort("404") } tag.Query().OrderBy("-count").All(&list) fmt.Println(list) this.Data["list"] = list this.Data["post"] = post this.display() }
func (this *ArticleController) Destroy() { var ( id int64 article models.Article ) id, _ = this.GetInt64("id") article.Id = id if err := article.Read(); err != nil { fmt.Println(err) } article.Delete() this.Redirect(this.Ctx.Request.Referer(), 302) }
//delete func (this *ArticleController) Delete() { var ( id int64 article models.Article ) id, _ = this.GetInt64("id") article.Id = id if err := article.Read(); err == nil { fmt.Println(err) } article.Status = 2 article.Update("status") tag := models.Tag{Name: article.Tag} tag.Read("Name") tag.Count-- tag.Update("count") this.Redirect(this.Ctx.Request.Referer(), 302) }
//批处理 func (this *ArticleController) Batch() { ids := this.GetStrings("ids[]") op := this.GetString("op") if len(ids) == 0 { this.Redirect(this.Ctx.Request.Referer(), 302) this.StopRun() } idarr := make([]int64, 0) for _, v := range ids { if id, _ := strconv.ParseInt(v, 10, 64); id > 0 { idarr = append(idarr, id) } } var post models.Article var articleList []*models.Article switch op { case "topub": //移到已发布 post.Query().Filter("id__in", idarr).All(&articleList) for _, v := range articleList { if v.Status == 2 { tag := models.Tag{Name: v.Tag} tag.Read("name") tag.Count++ tag.Update("count") } } post.Query().Filter("id__in", idarr).Update(orm.Params{"status": 0}) case "todrafts": //移到草稿箱 post.Query().Filter("id__in", idarr).All(&articleList) for _, v := range articleList { if v.Status == 2 { tag := models.Tag{Name: v.Tag} tag.Read("name") tag.Count++ tag.Update("count") } } post.Query().Filter("id__in", idarr).Update(orm.Params{"status": 1}) case "totrash": //移到回收站 post.Query().Filter("id__in", idarr).All(&articleList) for _, v := range articleList { if v.Status != 2 { tag := models.Tag{Name: v.Tag} tag.Read("name") tag.Count-- tag.Update("count") } } post.Query().Filter("id__in", idarr).Update(orm.Params{"status": 2}) case "todestroy": post.Query().Filter("id__in", idarr).Delete() } this.Redirect(this.Ctx.Request.Referer(), 302) }
//保存 func (this *ArticleController) Save() { var ( id int64 = 0 title string = strings.TrimSpace(this.GetString("title")) content string = this.GetString("content") status int = 0 happenMonth string = strings.TrimSpace(this.GetString("happenMonth")) happenDay string = strings.TrimSpace(this.GetString("happenDay")) article models.Article tag models.Tag ) if title == "" { this.showmsg("标题不能为空!") } id, _ = this.GetInt64("id") status, _ = this.GetInt("status") tagName := this.GetString("tag") fmt.Println(tagName) tag.Name = tagName tag.Read("name") if status != 1 { status = 0 } if id < 1 { article.AuthorId = this.userid article.AuthorName = this.username article.Tag = tagName err := article.Insert() if err != nil { fmt.Println(err) } tag.Count = tag.Count + 1 tag.Update() } else { article.Id = id if article.Read() != nil { goto RD } } if article.Tag != tagName { desTag := models.Tag{Name: article.Tag} desTag.Read("name") desTag.Count-- desTag.Update("count") tag.Count = tag.Count + 1 tag.Update() article.Tag = tagName } article.Status = status article.Title = title article.Content = content article.HappenMonth = happenMonth article.HappenDay = happenDay article.Update("tag", "status", "title", "content", "happen_month", "happen_day") RD: url := "/admin/article/list?t=date&m=" + happenMonth + "&d=" + happenDay this.Redirect(url, 302) }