package mcontrollers import ( "beeblog/models" "beeblog/service" beego "github.com/beego/beego/v2/server/web" "strconv" "time" ) type MBlogController struct { beego.Controller } func (this *MBlogController) Get() { blogService := service.BlogService{} userService := service.UserService{} idStr := this.Ctx.Input.Param(":id") id, _ := strconv.ParseInt(idStr, 10, 64) blog, err := blogService.GetBlog(id) if err != nil { this.Data["json"] = models.ReurnServerError(500) this.ServeJSON() return } this.Data["json"] = models.ReurnData("", blog) this.ServeJSON() userService.CountBrows(blog.UserId) blogService.EditBlogBrows(id) return } func (this *MBlogController) BlogsPage() { blogService := service.BlogService{} num, _ := this.GetInt("num") size, _ := this.GetInt("size") cat, _ := this.GetInt64("cat") flag, _ := this.GetInt("flag") if num <= 0 { num = 1 } if size < 15 { size = 15 } if cat <= 0 { cat = -1 } pages, err := blogService.FindBlogs(num, size, cat, flag) if err != nil { this.Data["json"] = models.ReurnServerError(500) this.ServeJSON() return } this.Data["json"] = models.ReurnData("", pages) this.ServeJSON() return } func (this *MBlogController) EditPage() { blogService := service.BlogService{} uid := this.GetSession("userid") if uid == nil { this.Redirect("/login", 302) return } idStr := this.Ctx.Input.Param(":id") id, _ := strconv.ParseInt(idStr, 10, 64) blog, err := blogService.GetBlog(id) if err != nil { this.Redirect("/404", 302) return } if blog.UserId != uid.(int64) { this.Redirect("/403", 302) return } this.Data["Blog"] = blog this.TplName = "editblog.html" } func (this *MBlogController) Save() { blogService := service.BlogService{} userService := service.UserService{} uid := this.GetSession("userid") if uid == nil { this.Data["json"] = models.ReurnError(401, "") this.ServeJSON() return } title := this.GetString("title") blogHtml := this.GetString("blogHtml") catory := this.GetString("catory") catoryId, _ := strconv.ParseInt(catory, 10, 64) labels := this.GetStrings("labels[]") blog := &models.Blog{Title: title, BlogHtml: blogHtml, CategoryId: catoryId, UserId: uid.(int64)} err := blogService.SaveBlog(blog, labels) if err == nil { this.Data["json"] = models.ReurnData("", blog.Id) } else { this.Data["json"] = models.ReurnError(500, "保存失败") } this.ServeJSON() userService.CountBlog(uid.(int64)) return } func (this *MBlogController) Edit() { userService := service.UserService{} blogService := service.BlogService{} uid := this.GetSession("userid") if uid == nil { this.Data["json"] = models.ReurnError(401, "") this.ServeJSON() return } id, _ := this.GetInt64("id") title := this.GetString("title") blogHtml := this.GetString("blogHtml") catory := this.GetString("catory") catoryId, _ := strconv.ParseInt(catory, 10, 64) labels := this.GetStrings("labels[]") blog, err := blogService.GetBlog(id) if err != nil { this.Data["json"] = models.ReurnError(500, "保存失败") this.ServeJSON() return } blog.Title = title blog.BlogHtml = blogHtml blog.CategoryId = catoryId blog.Utime = time.Now() err = blogService.EditBlog(blog, labels) if err == nil { this.Data["json"] = models.ReurnSuccess("") } else { this.Data["json"] = models.ReurnError(500, "保存失败") } this.ServeJSON() userService.CountBlog(uid.(int64)) return } func (this *MBlogController) Del() { blogService := service.BlogService{} userService := service.UserService{} uid := this.GetSession("userid") if uid == nil { this.Data["json"] = models.ReurnError(401, "") this.ServeJSON() return } idStr := this.Ctx.Input.Param(":id") id, _ := strconv.ParseInt(idStr, 10, 64) blog, err := blogService.GetBlog(id) if err != nil { this.Data["json"] = models.ReurnError(500, "") this.ServeJSON() return } if blog.UserId != uid.(int64) { this.Data["json"] = models.ReurnError(503, "") this.ServeJSON() return } blog.Delflag = 1 err = blogService.DelBlog(blog) if err != nil { this.Data["json"] = models.ReurnError(500, "") this.ServeJSON() return } this.Data["json"] = models.ReurnSuccess("") this.ServeJSON() userService.CountBlog(uid.(int64)) return } func (this *MBlogController) New() { uid := this.GetSession("userid") if uid == nil { this.Redirect("/login", 302) return } this.TplName = "newblog.html" }