yirenyishi
6 years ago
8 changed files with 228 additions and 16 deletions
@ -0,0 +1,191 @@ |
|||||
|
package mcontrollers |
||||
|
|
||||
|
import ( |
||||
|
"beeblog/models" |
||||
|
"beeblog/service" |
||||
|
"github.com/astaxie/beego" |
||||
|
"strconv" |
||||
|
"time" |
||||
|
) |
||||
|
|
||||
|
type MBlogController struct { |
||||
|
beego.Controller |
||||
|
} |
||||
|
|
||||
|
func (this *MBlogController) BlogsPage() { |
||||
|
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 := service.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() { |
||||
|
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 := service.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() { |
||||
|
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 := service.SaveBlog(blog, labels) |
||||
|
if err == nil { |
||||
|
this.Data["json"] = models.ReurnData("",blog.Id) |
||||
|
} else { |
||||
|
this.Data["json"] = models.ReurnError(500, "保存失败") |
||||
|
} |
||||
|
this.ServeJSON() |
||||
|
service.CountBlog(uid.(int64)) |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
func (this *MBlogController) Edit() { |
||||
|
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 :=service.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 = service.EditBlog(blog, labels) |
||||
|
if err == nil { |
||||
|
this.Data["json"] = models.ReurnSuccess("") |
||||
|
} else { |
||||
|
this.Data["json"] = models.ReurnError(500, "保存失败") |
||||
|
} |
||||
|
this.ServeJSON() |
||||
|
service.CountBlog(uid.(int64)) |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
func (this *MBlogController) Get() { |
||||
|
idStr := this.Ctx.Input.Param(":id") |
||||
|
id, _ := strconv.ParseInt(idStr, 10, 64) |
||||
|
blog, err := service.GetBlog(id) |
||||
|
if err != nil { |
||||
|
this.Redirect("/404", 302) |
||||
|
return |
||||
|
} |
||||
|
if uid := this.GetSession("userid"); uid != nil { |
||||
|
if blog.UserId == uid.(int64) { |
||||
|
this.Data["IsAuthor"] = true |
||||
|
} |
||||
|
if flag, err := service.IsLike(id, uid.(int64)); err == nil { |
||||
|
this.Data["IsLike"] = flag |
||||
|
} |
||||
|
} |
||||
|
if blogs, err := service.TopBlogByUser(blog.UserId); err == nil { |
||||
|
this.Data["Top"] = blogs |
||||
|
} |
||||
|
this.Data["Blog"] = blog |
||||
|
this.Data["UserId"] = this.GetSession("userid") |
||||
|
this.Data["HeadImg"] = this.GetSession("headimg") |
||||
|
this.Data["NickName"] = this.GetSession("nickname") |
||||
|
this.Data["UserId"] = this.GetSession("userid") |
||||
|
this.Data["IsLogin"] = this.GetSession("nickname") != nil |
||||
|
this.TplName = "blog.html" |
||||
|
service.CountBrows(blog.UserId) |
||||
|
service.EditBlogBrows(id) |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
func (this *MBlogController) Del() { |
||||
|
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 := service.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 = service.DelBlog(blog) |
||||
|
if err != nil { |
||||
|
this.Data["json"] = models.ReurnError(500, "") |
||||
|
this.ServeJSON() |
||||
|
return |
||||
|
} |
||||
|
this.Data["json"] = models.ReurnSuccess("") |
||||
|
this.ServeJSON() |
||||
|
service.CountBlog(uid.(int64)) |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
func (this *MBlogController) New() { |
||||
|
uid := this.GetSession("userid") |
||||
|
if uid == nil { |
||||
|
this.Redirect("/login", 302) |
||||
|
return |
||||
|
} |
||||
|
this.TplName = "newblog.html" |
||||
|
} |
@ -0,0 +1,10 @@ |
|||||
|
package routers |
||||
|
|
||||
|
import ( |
||||
|
"beeblog/mcontrollers" |
||||
|
"github.com/astaxie/beego" |
||||
|
) |
||||
|
|
||||
|
func init() { |
||||
|
beego.Router("/api/blogs", &mcontrollers.MBlogController{}, "get:BlogsPage") |
||||
|
} |
Loading…
Reference in new issue