// @title 删除文章 // @description 删除文章及 postMate中的信息 // @router /del/:id [get] func (c *PostController) Del() { res := &common.Response{} defer func() { c.Data["json"] = res c.ServeJSON() }() id, err := strconv.ParseInt(c.Ctx.Input.Param(":id"), 10, 64) if err != nil { res.Code = 1 res.Msg = "del post id not valid" return } var post models.Post post.Id = id if post.Read() != nil { res.Code = 2 res.Msg = "post not exist" return } if post.Del() != nil { res.Code = 3 res.Msg = "del post failed" return } // sync postMate o := orm.NewOrm() var tagList []orm.Params num, err := o.QueryTable("postmeta").Filter("postid", id).Values(&tagList) if err != nil { fmt.Printf("del post id %v in postmeta failed!", id) for _, tag := range tagList { //metaId, _ := strconv.ParseInt(tag["MetaId"].(string), 10, 64) meta := models.Meta{Id: tag["MetaId"].(int64)} if meta.Read("Id") == nil { meta.Count -= 1 meta.Update("Count") } //postMetaId, _ := strconv.ParseInt(tag["Id"].(string), 10, 64) postMeta := models.Postmeta{Id: tag["Id"].(int64)} if err := postMeta.Del(); err == nil { fmt.Println("delete post meta success") } else { fmt.Println("delete post meta error", err) } } } fmt.Printf("del post id %v in postmeta affected num is %v", id, num) return }