func (this *TagController) Delete() { var tagId, _ = this.GetInt64("id") var tag = models.Tag{Id: tagId} tag.Read() var deleteTagName = tag.Name if deleteTagName == "未分组" { this.StopRun() } tag.Delete() o := orm.NewOrm() o.Raw("UPDATE tbl_article SET tag = ? WHERE tag = ?", "未分组", deleteTagName).Exec() var count int64 = 0 orm.NewOrm().Raw("SELECT COUNT(*) FROM tbl_article WHERE tag = ?", "未分组").QueryRow(&count) noGroupTag := models.Tag{Name: "未分组"} noGroupTag.Read("name") noGroupTag.Count = count noGroupTag.Update("count") this.Redirect("/admin/tag/list", 301) }
//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) }