예제 #1
0
파일: tag.go 프로젝트: gezhixin/goBlog
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)
}
예제 #2
0
파일: article.go 프로젝트: gezhixin/goBlog
//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)
}
예제 #3
0
파일: article.go 프로젝트: gezhixin/goBlog
//批处理
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)
}
예제 #4
0
파일: article.go 프로젝트: gezhixin/goBlog
//保存
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)
}