Browse Source

3.0 start

layui
yirenyishi 5 years ago
parent
commit
5269a43158
  1. 16
      conf/app.conf
  2. 44
      controllers/BlogController.go
  3. 19
      controllers/CommentController.go
  4. 11
      controllers/FileController.go
  5. 9
      controllers/IndexController.go
  6. 12
      controllers/LikeController.go
  7. 30
      controllers/NoteController.go
  8. 16
      controllers/PageController.go
  9. 44
      controllers/UserController.go
  10. 56
      mcontrollers/MBlogController.go
  11. 36
      service/BlogService.go
  12. 5
      service/CategoryService.go
  13. 11
      service/CommentService.go
  14. 15
      service/LikeService.go
  15. 20
      service/NoteService.go
  16. 18
      service/UserService.go
  17. 0
      static/css/sui.min.css
  18. 7
      views/T.header.tpl
  19. 3
      views/note.html

16
conf/app.conf

@ -1,14 +1,22 @@
appname = beeblog
httpport = 8082
runmode = prod
runmode = dev
sessionon = true
sessiongcmaxlifetime = 36000
EnableGzip = true
EnableDocs = true
host = aiprose.com
[dev]
[prod]
httpport = 8082
uploadDir = "static/upload/"
imgUrlPrefix = "http://localhost:8082/static/upload/"
dburl = "booszy@tcp(47.98.109.5:3306)"
[prod]
httpport = 8082
uploadDir = "/root/oss/aiprose/"
imgUrlPrefix = "https://oss.aiprose.com/aiprose/"
dburl = "booszy@tcp(localhost:3306)"

44
controllers/BlogController.go

@ -13,6 +13,7 @@ type BlogController struct {
}
func (this *BlogController) EditPage() {
blogService := service.BlogService{}
uid := this.GetSession("userid")
if uid == nil {
this.Redirect("/login", 302)
@ -20,7 +21,7 @@ func (this *BlogController) EditPage() {
}
idStr := this.Ctx.Input.Param(":id")
id, _ := strconv.ParseInt(idStr, 10, 64)
blog, err := service.GetBlog(id)
blog, err := blogService.GetBlog(id)
if err != nil {
this.Redirect("/404", 302)
return
@ -34,6 +35,8 @@ func (this *BlogController) EditPage() {
}
func (this *BlogController) Save() {
blogService := service.BlogService{}
userService := service.UserService{}
uid := this.GetSession("userid")
if uid == nil {
this.Data["json"] = models.ReurnError(401, "")
@ -46,18 +49,20 @@ func (this *BlogController) Save() {
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)
err := blogService.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))
userService.CountBlog(uid.(int64))
return
}
func (this *BlogController) Edit() {
blogService := service.BlogService{}
userService := service.UserService{}
uid := this.GetSession("userid")
if uid == nil {
this.Data["json"] = models.ReurnError(401, "")
@ -70,7 +75,7 @@ func (this *BlogController) Edit() {
catory := this.GetString("catory")
catoryId, _ := strconv.ParseInt(catory, 10, 64)
labels := this.GetStrings("labels[]")
blog,err :=service.GetBlog(id)
blog,err :=blogService.GetBlog(id)
if err != nil {
this.Data["json"] = models.ReurnError(500, "保存失败")
this.ServeJSON()
@ -80,21 +85,24 @@ func (this *BlogController) Edit() {
blog.BlogHtml = blogHtml
blog.CategoryId = catoryId
blog.Utime = time.Now()
err = service.EditBlog(blog, labels)
err = blogService.EditBlog(blog, labels)
if err == nil {
this.Data["json"] = models.ReurnSuccess("")
} else {
this.Data["json"] = models.ReurnError(500, "保存失败")
}
this.ServeJSON()
service.CountBlog(uid.(int64))
userService.CountBlog(uid.(int64))
return
}
func (this *BlogController) Get() {
blogService := service.BlogService{}
likeService := service.LikeService{}
userService := service.UserService{}
idStr := this.Ctx.Input.Param(":id")
id, _ := strconv.ParseInt(idStr, 10, 64)
blog, err := service.GetBlog(id)
blog, err := blogService.GetBlog(id)
if err != nil {
this.Redirect("/404", 302)
return
@ -103,11 +111,11 @@ func (this *BlogController) Get() {
if blog.UserId == uid.(int64) {
this.Data["IsAuthor"] = true
}
if flag, err := service.IsLike(id, uid.(int64)); err == nil {
if flag, err := likeService.IsLike(id, uid.(int64)); err == nil {
this.Data["IsLike"] = flag
}
}
if blogs, err := service.TopBlogByUser(blog.UserId); err == nil {
if blogs, err := blogService.TopBlogByUser(blog.UserId); err == nil {
this.Data["Top"] = blogs
}
this.Data["Blog"] = blog
@ -118,13 +126,15 @@ func (this *BlogController) Get() {
this.Data["IsDDesc"] = true
this.TplName = "blog.html"
if this.Ctx.Input.GetData("refresh") != true {
service.CountBrows(blog.UserId)
service.EditBlogBrows(id)
userService.CountBrows(blog.UserId)
blogService.EditBlogBrows(id)
}
return
}
func (this *BlogController) Del() {
blogService := service.BlogService{}
userService := service.UserService{}
uid := this.GetSession("userid")
if uid == nil {
this.Data["json"] = models.ReurnError(401, "")
@ -133,7 +143,7 @@ func (this *BlogController) Del() {
}
idStr := this.Ctx.Input.Param(":id")
id, _ := strconv.ParseInt(idStr, 10, 64)
blog, err := service.GetBlog(id)
blog, err := blogService.GetBlog(id)
if err != nil {
this.Data["json"] = models.ReurnError(500, "")
this.ServeJSON()
@ -145,7 +155,7 @@ func (this *BlogController) Del() {
return
}
blog.Delflag = 1
err = service.DelBlog(blog)
err = blogService.DelBlog(blog)
if err != nil {
this.Data["json"] = models.ReurnError(500, "")
this.ServeJSON()
@ -153,7 +163,7 @@ func (this *BlogController) Del() {
}
this.Data["json"] = models.ReurnSuccess("")
this.ServeJSON()
service.CountBlog(uid.(int64))
userService.CountBlog(uid.(int64))
return
}
@ -167,7 +177,9 @@ func (this *BlogController) New() {
}
func (this *BlogController) BlogsPage() {
cats, errcat := service.GetCats()
catService := service.CategoryService{}
blogService := service.BlogService{}
cats, errcat := catService.GetCats()
if errcat != nil {
this.Redirect("/404", 302)
return
@ -185,7 +197,7 @@ func (this *BlogController) BlogsPage() {
if cat <= 0 {
cat = -1
}
pages, err := service.FindBlogs(num, size, cat, flag)
pages, err := blogService.FindBlogs(num, size, cat, flag)
if err != nil {
this.Redirect("/404", 302)
return

19
controllers/CommentController.go

@ -12,6 +12,9 @@ type CommentController struct {
}
func (this *CommentController) Save() {
commentService := service.CommentService{}
blogService := service.BlogService{}
userService := service.UserService{}
uid := this.GetSession("userid")
if uid == nil {
this.Data["json"] = models.ReurnError(401, "")
@ -25,7 +28,7 @@ func (this *CommentController) Save() {
return
}
commVal := this.GetString("commval")
blog, err := service.ReadBlog(blogId)
blog, err := blogService.ReadBlog(blogId)
if err != nil {
this.Data["json"] = models.ReurnError(403, "")
this.ServeJSON()
@ -34,23 +37,25 @@ func (this *CommentController) Save() {
comm := &models.Comment{BlogId: blogId, CuserId: uid.(int64), BuserId: blog.UserId, ComVal: commVal}
if pid, _ := this.GetInt64("pid"); pid != 0 {
parent := &models.Comment{Id: pid}
if err := service.ReadComment(parent); err == nil {
if err := commentService.ReadComment(parent); err == nil {
comm.BuserId = parent.CuserId
}
comm.Pid = pid
}
err = service.SaveComment(comm)
err = commentService.SaveComment(comm)
if err == nil {
this.Data["json"] = models.ReurnData("", comm)
} else {
this.Data["json"] = models.ReurnError(500, "保存失败")
}
this.ServeJSON()
service.CountComments(uid.(int64),blogId)
userService.CountComments(uid.(int64),blogId)
return
}
func (this *CommentController) Del() {
commentService := service.CommentService{}
userService := service.UserService{}
uid := this.GetSession("userid")
if uid == nil {
this.Data["json"] = models.ReurnError(401, "")
@ -60,7 +65,7 @@ func (this *CommentController) Del() {
idStr := this.Ctx.Input.Param(":id")
id, _ := strconv.ParseInt(idStr, 10, 64)
comm := &models.Comment{Id: id}
err := service.ReadComment(comm)
err := commentService.ReadComment(comm)
if err != nil {
this.Data["json"] = models.ReurnError(500, "")
this.ServeJSON()
@ -71,13 +76,13 @@ func (this *CommentController) Del() {
this.ServeJSON()
return
}
err = service.DelComment(id)
err = commentService.DelComment(id)
if err == nil {
this.Data["json"] = models.ReurnSuccess("")
} else {
this.Data["json"] = models.ReurnError(500, "保存失败")
}
this.ServeJSON()
service.CountComments(uid.(int64),id)
userService.CountComments(uid.(int64),id)
return
}

11
controllers/FileController.go

@ -41,7 +41,7 @@ func (this *FileController) Upload() {
}
//创建目录
urlDir := time.Now().Format("2006/01/02/")
uploadDir := "/opt/filetom/webapps/itstack/" + urlDir
uploadDir := beego.AppConfig.String("uploadDir") + urlDir
err := os.MkdirAll(uploadDir, 777)
if err != nil {
this.Data["json"] = models.ReurnError(500, "")
@ -63,7 +63,7 @@ func (this *FileController) Upload() {
this.ServeJSON()
return
}
urlDir = "https://aiprose.com/foss/" + urlDir
urlDir = beego.AppConfig.String("imgUrlPrefix") + urlDir
this.Data["json"] = models.ReurnData("", urlDir)
this.ServeJSON()
return
@ -102,7 +102,7 @@ func (this *FileController) HeadImgUpload() {
}
//创建目录
urlDir := time.Now().Format("2006/01/02/")
uploadDir := "/opt/filetom/webapps/itstack/" + urlDir
uploadDir := beego.AppConfig.String("uploadDir") + urlDir
err := os.MkdirAll(uploadDir, 777)
if err != nil {
this.Data["json"] = models.ReurnError(500, "")
@ -124,9 +124,10 @@ func (this *FileController) HeadImgUpload() {
this.ServeJSON()
return
}
urlDir = "https://aiprose.com/foss/" + urlDir
urlDir = beego.AppConfig.String("imgUrlPrefix") + urlDir
user := &models.User{Id: uid.(int64), Headimg: urlDir}
if _, err = service.EditHeadImg(user); err != nil {
userSerivce := service.UserService{}
if _, err = userSerivce.EditHeadImg(user); err != nil {
this.Data["json"] = models.ReurnError(500, "")
this.ServeJSON()
return

9
controllers/IndexController.go

@ -10,13 +10,14 @@ type IndexController struct {
}
func (this *IndexController) Get() {
timeBlog, _ := service.IndexBlogs(12, 0)
blogService := service.BlogService{}
timeBlog, _ := blogService.IndexBlogs(12, 0)
this.Data["TimeBlog"] = timeBlog
browsBlog, _ := service.IndexBlogs(12, 1)
browsBlog, _ := blogService.IndexBlogs(12, 1)
this.Data["BrowsBlog"] = browsBlog
likeBlog, _ := service.IndexBlogs(12, 2)
likeBlog, _ := blogService.IndexBlogs(12, 2)
this.Data["LikeBlog"] = likeBlog
commentBlog, _ := service.IndexBlogs(12, 3)
commentBlog, _ := blogService.IndexBlogs(12, 3)
this.Data["CommBlog"] = commentBlog
this.Data["UserId"] = this.GetSession("userid")

12
controllers/LikeController.go

@ -12,6 +12,8 @@ type LikeController struct {
}
func (this *LikeController) Save() {
likeService := service.LikeService{}
userService := service.UserService{}
uid := this.GetSession("userid")
if uid == nil {
this.Data["json"] = models.ReurnError(401, "")
@ -21,17 +23,19 @@ func (this *LikeController) Save() {
idStr := this.Ctx.Input.Param(":id")
id, _ := strconv.ParseInt(idStr, 10, 64)
like := &models.Like{BlogId: id, UserId: uid.(int64)}
if _, err := service.SaveLike(like); err != nil {
if _, err := likeService.SaveLike(like); err != nil {
this.Data["json"] = models.ReurnError(500, "保存失败")
}else{
this.Data["json"] = models.ReurnSuccess("")
}
this.ServeJSON()
service.CountLike(uid.(int64),id)
userService.CountLike(uid.(int64),id)
return
}
func (this *LikeController) Delete() {
likeService := service.LikeService{}
userService := service.UserService{}
uid := this.GetSession("userid")
if uid == nil {
this.Data["json"] = models.ReurnError(401, "")
@ -41,12 +45,12 @@ func (this *LikeController) Delete() {
idStr := this.Ctx.Input.Param(":id")
id, _ := strconv.ParseInt(idStr, 10, 64)
like := &models.Like{BlogId: id, UserId: uid.(int64)}
if _, err := service.DelLike(like); err != nil {
if _, err := likeService.DelLike(like); err != nil {
this.Data["json"] = models.ReurnError(500, "保存失败")
}else{
this.Data["json"] = models.ReurnSuccess("")
}
this.ServeJSON()
service.CountLike(uid.(int64),id)
userService.CountLike(uid.(int64),id)
return
}

30
controllers/NoteController.go

@ -12,6 +12,7 @@ type NoteController struct {
}
func (this *NoteController) Save() {
noteService := service.NoteService{}
pid, _ := this.GetInt64("pid")
title := this.GetString("title")
uid := this.GetSession("userid")
@ -21,7 +22,7 @@ func (this *NoteController) Save() {
return
}
note := &models.Note{Title: title, Pid: pid, UserId: uid.(int64)}
err := service.SaveNote(note)
err := noteService.SaveNote(note)
if err == nil {
this.Data["json"] = note
} else {
@ -31,6 +32,7 @@ func (this *NoteController) Save() {
return
}
func (this *NoteController) Edit() {
noteService := service.NoteService{}
idStr := this.Ctx.Input.Param(":id")
noteHtml := this.GetString("noteHtml")
id, _ := strconv.ParseInt(idStr, 10, 64)
@ -41,7 +43,7 @@ func (this *NoteController) Edit() {
return
}
note := &models.Note{Id: id}
err1 := service.GetNote(note)
err1 := noteService.GetNote(note)
if err1 != nil {
this.Data["json"] = models.ReurnError(500, "保存失败")
this.ServeJSON()
@ -53,7 +55,7 @@ func (this *NoteController) Edit() {
return
}
note.NoteHtml = noteHtml
err := service.EditNote(note)
err := noteService.EditNote(note)
if err == nil {
this.Data["json"] = models.ReurnSuccess("")
} else {
@ -64,6 +66,7 @@ func (this *NoteController) Edit() {
}
func (this *NoteController) SaveNoteColl() {
noteService := service.NoteService{}
title := this.GetString("title")
uid := this.GetSession("userid")
if uid == nil {
@ -72,7 +75,7 @@ func (this *NoteController) SaveNoteColl() {
return
}
note := &models.NoteColl{Title: title, UserId: uid.(int64)}
err := service.SaveNoteColl(note)
err := noteService.SaveNoteColl(note)
if err == nil {
this.Data["json"] = models.ReurnSuccess("")
} else {
@ -83,6 +86,7 @@ func (this *NoteController) SaveNoteColl() {
}
func (this *NoteController) EditNoteColl() {
noteService := service.NoteService{}
title := this.GetString("title")
id, _ := this.GetInt64("id")
uid := this.GetSession("userid")
@ -91,7 +95,7 @@ func (this *NoteController) EditNoteColl() {
this.ServeJSON()
return
}
err := service.EditNoteColl(title, id, uid.(int64))
err := noteService.EditNoteColl(title, id, uid.(int64))
if err == nil {
this.Data["json"] = models.ReurnSuccess("")
} else {
@ -102,6 +106,7 @@ func (this *NoteController) EditNoteColl() {
}
func (this *NoteController) Get() {
noteService := service.NoteService{}
uid := this.GetSession("userid")
if uid == nil {
this.Data["json"] = models.ReurnError(401, "")
@ -111,7 +116,7 @@ func (this *NoteController) Get() {
idStr := this.Ctx.Input.Param(":id")
id, _ := strconv.ParseInt(idStr, 10, 64)
note := &models.Note{Id: id}
err := service.GetNote(note)
err := noteService.GetNote(note)
if err == nil {
this.Data["json"] = note
}
@ -124,6 +129,7 @@ func (this *NoteController) Get() {
return
}
func (this *NoteController) DelNoteColl() {
noteService := service.NoteService{}
uid := this.GetSession("userid")
if uid == nil {
this.Data["json"] = models.ReurnError(401, "")
@ -132,7 +138,7 @@ func (this *NoteController) DelNoteColl() {
}
idStr := this.Ctx.Input.Param(":id")
id, _ := strconv.ParseInt(idStr, 10, 64)
err := service.DelNoteColl(id, uid.(int64))
err := noteService.DelNoteColl(id, uid.(int64))
if err != nil {
this.Data["json"] = models.ReurnError(500, "")
} else {
@ -143,6 +149,7 @@ func (this *NoteController) DelNoteColl() {
}
func (this *NoteController) Delete() {
noteService := service.NoteService{}
uid := this.GetSession("userid")
if uid == nil {
this.Data["json"] = models.ReurnError(401, "")
@ -152,7 +159,7 @@ func (this *NoteController) Delete() {
idStr := this.Ctx.Input.Param(":id")
id, _ := strconv.ParseInt(idStr, 10, 64)
note := &models.Note{Id: id}
err := service.GetNote(note)
err := noteService.GetNote(note)
if err != nil {
this.Data["json"] = models.ReurnError(500, "")
this.ServeJSON()
@ -163,7 +170,7 @@ func (this *NoteController) Delete() {
this.ServeJSON()
return
}
err = service.DelNote(note)
err = noteService.DelNote(note)
if err != nil {
this.Data["json"] = models.ReurnError(500, "")
this.ServeJSON()
@ -175,15 +182,16 @@ func (this *NoteController) Delete() {
}
func (this *NoteController) Note() {
noteService := service.NoteService{}
uid := this.GetSession("userid")
if uid == nil {
this.Redirect("/login", 302)
}
noteColls, err := service.GetNoteColl(uid.(int64))
noteColls, err := noteService.GetNoteColl(uid.(int64))
if err == nil {
if len(noteColls) > 0 {
for i := 0; i < len(noteColls); i++ {
notes, err1 := service.GetNoteByPid(noteColls[i].Id)
notes, err1 := noteService.GetNoteByPid(noteColls[i].Id)
if err1 == nil {
noteColls[i].Notes = notes
}

16
controllers/PageController.go

@ -10,9 +10,9 @@ type PageController struct {
beego.Controller
}
// @router /iframe/blog [get]
func (this *PageController) Blog() {
cats, err := service.GetCats()
catService := service.CategoryService{}
cats, err := catService.GetCats()
if err != nil {
this.Redirect("/404", 302)
return
@ -21,14 +21,14 @@ func (this *PageController) Blog() {
this.TplName = "iframe/blog.html"
}
// @router /iframe/user [get]
func (this *PageController) IframeUser() {
userService := service.UserService{}
uid := this.GetSession("userid")
if uid == nil {
this.Data["IsLogin"] = false
} else {
this.Data["IsLogin"] = true
if user, err := service.GetUser(uid.(int64)); err == nil {
if user, err := userService.GetUser(uid.(int64)); err == nil {
this.Data["User"] = user
} else {
this.Data["User"] = &models.User{Id: uid.(int64)}
@ -38,14 +38,14 @@ func (this *PageController) IframeUser() {
return
}
// @router /iframe/note [get]
func (this *PageController) IframeNote() {
noteService := service.NoteService{}
uid := this.GetSession("userid")
if uid == nil {
this.Data["IsLogin"] = false
}else {
this.Data["IsLogin"] = true
noteColls,err:=service.GetNoteColl(uid.(int64))
noteColls,err:=noteService.GetNoteColl(uid.(int64))
if err== nil {
this.Data["NoteColl"] = noteColls
}
@ -53,7 +53,6 @@ func (this *PageController) IframeNote() {
this.TplName = "iframe/note.html"
}
// @router /us
func (this *PageController) UsPage() {
this.Data["IsUs"] = true
this.Data["UserId"] = this.GetSession("userid")
@ -63,17 +62,14 @@ func (this *PageController) UsPage() {
this.TplName = "us.html"
}
// @router /404 [get]
func (this *PageController) PageNotFound() {
this.TplName = "404.html"
}
// @router /404 [get]
func (this *PageController) ServerError() {
this.TplName = "500.html"
}
// @router /403 [get]
func (this *PageController) ServerDemined() {
this.TplName = "403.html"
}

44
controllers/UserController.go

@ -23,9 +23,11 @@ func (u *UserController) RegistPage() {
}
func (this *UserController) UserInfo() {
userService := service.UserService{}
blogService := service.BlogService{}
idStr := this.Ctx.Input.Param(":id")
id, _ := strconv.ParseInt(idStr, 10, 64)
user, err := service.GetUser(id)
user, err := userService.GetUser(id)
if err != nil {
this.Redirect("/404", 302)
return
@ -36,7 +38,7 @@ func (this *UserController) UserInfo() {
num = 1
}
flag, _ := this.GetInt("flag")
if page, err := service.MeBlogs(num, size, flag, id); err == nil {
if page, err := blogService.MeBlogs(num, size, flag, id); err == nil {
this.Data["Page"] = page
}
this.Data["User"] = user
@ -50,6 +52,8 @@ func (this *UserController) UserInfo() {
}
func (this *UserController) PersonBlog() {
userService := service.UserService{}
blogService := service.BlogService{}
uid := this.GetSession("userid")
if uid == nil {
this.Redirect("/login", 302)
@ -61,12 +65,12 @@ func (this *UserController) PersonBlog() {
num = 1
}
flag, _ := this.GetInt("flag")
page, err := service.MeBlogs(num, size, flag, uid.(int64))
page, err := blogService.MeBlogs(num, size, flag, uid.(int64))
if err != nil {
this.Redirect("/404", 302)
return
}
user, uerr := service.GetUser(uid.(int64))
user, uerr := userService.GetUser(uid.(int64))
if uerr != nil {
this.Redirect("/404", 302)
return
@ -83,16 +87,18 @@ func (this *UserController) PersonBlog() {
}
func (this *UserController) PersonNote() {
userService := service.UserService{}
noteService := service.NoteService{}
uid := this.GetSession("userid")
if uid == nil {
this.Redirect("/login", 302)
return
}
notColl, err := service.GetNoteColl(uid.(int64))
notColl, err := noteService.GetNoteColl(uid.(int64))
if err == nil {
if len(notColl) > 0 {
for i := 0; i < len(notColl); i++ {
count, _ := service.CountNote(notColl[i].Id)
count, _ := noteService.CountNote(notColl[i].Id)
notColl[i].Count = count
}
}
@ -103,7 +109,7 @@ func (this *UserController) PersonNote() {
this.Redirect("/404", 302)
return
}
user, uerr := service.GetUser(uid.(int64))
user, uerr := userService.GetUser(uid.(int64))
if uerr != nil {
if uid == nil {
this.Redirect("/404", 302)
@ -121,6 +127,8 @@ func (this *UserController) PersonNote() {
}
func (this *UserController) PersonLike() {
userService := service.UserService{}
likeService := service.LikeService{}
uid := this.GetSession("userid")
if uid == nil {
this.Redirect("/login", 302)
@ -131,12 +139,12 @@ func (this *UserController) PersonLike() {
if num <= 0 {
num = 1
}
page, err := service.MeLikes(num, size, uid.(int64))
page, err := likeService.MeLikes(num, size, uid.(int64))
if err != nil {
this.Redirect("/404", 302)
return
}
user, uerr := service.GetUser(uid.(int64))
user, uerr := userService.GetUser(uid.(int64))
if uerr != nil {
if uid == nil {
this.Redirect("/404", 302)
@ -154,12 +162,13 @@ func (this *UserController) PersonLike() {
}
func (this *UserController) PersonInfo() {
userService := service.UserService{}
uid := this.GetSession("userid")
if uid == nil {
this.Redirect("/login", 302)
return
}
user, err := service.GetUser(uid.(int64))
user, err := userService.GetUser(uid.(int64))
if err != nil {
this.Redirect("/404", 302)
return
@ -174,13 +183,14 @@ func (this *UserController) PersonInfo() {
}
func (this *UserController) Edit() {
userService := service.UserService{}
uid := this.GetSession("userid")
if uid == nil {
models.ReurnError(401, "")
this.ServeJSON()
return
}
user, err := service.GetUser(uid.(int64))
user, err := userService.GetUser(uid.(int64))
if err != nil {
this.Data["json"] = models.ReurnError(500, "")
this.ServeJSON()
@ -199,7 +209,7 @@ func (this *UserController) Edit() {
user.QQ = this.GetString("qqnum")
user.Sex, _ = this.GetInt("catory")
user.DescInfo = this.GetString("mdesc")
if _, err := service.EditUser(user); err != nil {
if _, err := userService.EditUser(user); err != nil {
this.Data["json"] = models.ReurnError(500, "")
} else {
this.Data["json"] = models.ReurnSuccess("")
@ -209,6 +219,7 @@ func (this *UserController) Edit() {
}
func (this *UserController) Login() {
userService := service.UserService{}
username := this.GetString("username")
userpwd := this.GetString("userpwd")
if username == "" {
@ -231,7 +242,7 @@ func (this *UserController) Login() {
this.ServeJSON()
return
}
user, error := service.FindByUserName(username)
user, error := userService.FindByUserName(username)
if error == nil && user != nil {
h := md5.New()
h.Write([]byte(userpwd + user.Salt))
@ -252,6 +263,7 @@ func (this *UserController) Login() {
}
func (this *UserController) Regist() {
userService := service.UserService{}
username := this.GetString("username")
userpwd := this.GetString("userpwd")
username = strings.Replace(username, " ", "", -1)
@ -276,7 +288,7 @@ func (this *UserController) Regist() {
this.ServeJSON()
return
}
user, _ := service.FindByUserName(username)
user, _ := userService.FindByUserName(username)
if user != nil {
this.Data["json"] = models.ReurnError(1, "用户已经存在")
this.ServeJSON()
@ -289,8 +301,8 @@ func (this *UserController) Regist() {
h.Write([]byte(userpwd + salt))
userpwd = hex.EncodeToString(h.Sum(nil))
user = &models.User{UserName: username, NickName: username, UserPwd: userpwd, Salt: salt}
user.Headimg = "https://www.aiprose.com/foss/timg.jpg"
err := service.SaveUser(user)
user.Headimg = "https://oss.aiprose.com/aiprose/timg.jpg"
err := userService.SaveUser(user)
if err == nil {
this.Data["json"] = models.ReurnSuccess("")
} else {

56
mcontrollers/MBlogController.go

@ -14,34 +14,26 @@ type MBlogController struct {
func (this *MBlogController) Get() {
blogService := service.BlogService{}
userService := service.UserService{}
idStr := this.Ctx.Input.Param(":id")
id, _ := strconv.ParseInt(idStr, 10, 64)
blog, err := service.GetBlog(id)
blog, err := blogService.GetBlog(id)
if err != nil {
this.Data["json"] = models.ReurnServerError(500)
this.ServeJSON()
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["json"] = models.ReurnData("",blog)
this.ServeJSON()
service.CountBrows(blog.UserId)
service.EditBlogBrows(id)
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")
@ -55,7 +47,7 @@ func (this *MBlogController) BlogsPage() {
if cat <= 0 {
cat = -1
}
pages, err := service.FindBlogs(num, size, cat, flag)
pages, err := blogService.FindBlogs(num, size, cat, flag)
if err != nil {
this.Data["json"] = models.ReurnServerError(500)
this.ServeJSON()
@ -68,6 +60,7 @@ func (this *MBlogController) BlogsPage() {
func (this *MBlogController) EditPage() {
blogService := service.BlogService{}
uid := this.GetSession("userid")
if uid == nil {
this.Redirect("/login", 302)
@ -75,7 +68,7 @@ func (this *MBlogController) EditPage() {
}
idStr := this.Ctx.Input.Param(":id")
id, _ := strconv.ParseInt(idStr, 10, 64)
blog, err := service.GetBlog(id)
blog, err := blogService.GetBlog(id)
if err != nil {
this.Redirect("/404", 302)
return
@ -89,6 +82,8 @@ func (this *MBlogController) EditPage() {
}
func (this *MBlogController) Save() {
blogService := service.BlogService{}
userService := service.UserService{}
uid := this.GetSession("userid")
if uid == nil {
this.Data["json"] = models.ReurnError(401, "")
@ -101,18 +96,20 @@ func (this *MBlogController) Save() {
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)
err := blogService.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))
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, "")
@ -125,7 +122,7 @@ func (this *MBlogController) Edit() {
catory := this.GetString("catory")
catoryId, _ := strconv.ParseInt(catory, 10, 64)
labels := this.GetStrings("labels[]")
blog,err :=service.GetBlog(id)
blog,err :=blogService.GetBlog(id)
if err != nil {
this.Data["json"] = models.ReurnError(500, "保存失败")
this.ServeJSON()
@ -135,18 +132,20 @@ func (this *MBlogController) Edit() {
blog.BlogHtml = blogHtml
blog.CategoryId = catoryId
blog.Utime = time.Now()
err = service.EditBlog(blog, labels)
err = blogService.EditBlog(blog, labels)
if err == nil {
this.Data["json"] = models.ReurnSuccess("")
} else {
this.Data["json"] = models.ReurnError(500, "保存失败")
}
this.ServeJSON()
service.CountBlog(uid.(int64))
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, "")
@ -155,7 +154,7 @@ func (this *MBlogController) Del() {
}
idStr := this.Ctx.Input.Param(":id")
id, _ := strconv.ParseInt(idStr, 10, 64)
blog, err := service.GetBlog(id)
blog, err := blogService.GetBlog(id)
if err != nil {
this.Data["json"] = models.ReurnError(500, "")
this.ServeJSON()
@ -167,7 +166,7 @@ func (this *MBlogController) Del() {
return
}
blog.Delflag = 1
err = service.DelBlog(blog)
err = blogService.DelBlog(blog)
if err != nil {
this.Data["json"] = models.ReurnError(500, "")
this.ServeJSON()
@ -175,6 +174,15 @@ func (this *MBlogController) Del() {
}
this.Data["json"] = models.ReurnSuccess("")
this.ServeJSON()
service.CountBlog(uid.(int64))
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"
}

36
service/BlogService.go

@ -6,7 +6,10 @@ import (
"beeblog/utils"
)
func count(num int, size int, cat int64) (*utils.Page, error) {
type BlogService struct {
}
func (this *BlogService) count(num int, size int, cat int64) (*utils.Page, error) {
o := orm.NewOrm()
qs := o.QueryTable(&models.Blog{})
qs.Filter("Delflag", 0)
@ -20,7 +23,7 @@ func count(num int, size int, cat int64) (*utils.Page, error) {
return utils.PageUtil(totalCount, num, size), nil
}
func countByUser(num int, size int, uid int64) (*utils.Page, error) {
func (this *BlogService) countByUser(num int, size int, uid int64) (*utils.Page, error) {
o := orm.NewOrm()
qs := o.QueryTable(&models.Blog{})
totalCount, err := qs.Filter("Delflag", 0).Filter("UserId", uid).Count()
@ -30,7 +33,7 @@ func countByUser(num int, size int, uid int64) (*utils.Page, error) {
return utils.PageUtil(totalCount, num, size), nil
}
func EditBlogBrows(id int64) {
func (this *BlogService) EditBlogBrows(id int64) {
o := orm.NewOrm()
blog := &models.Blog{Id: id}
err := o.Read(blog)
@ -40,14 +43,14 @@ func EditBlogBrows(id int64) {
}
}
func TopBlogByUser(uid int64) ([]*models.Blog, error) {
func (this *BlogService) TopBlogByUser(uid int64) ([]*models.Blog, error) {
o := orm.NewOrm()
var blogs []*models.Blog
o.QueryTable(models.Blog{}).Filter("Delflag", 0).Filter("UserId", uid).Limit(12, 0).OrderBy("-Browses").All(&blogs)
return blogs, nil
}
func ReadBlog(id int64) (*models.Blog, error) {
func (this *BlogService) ReadBlog(id int64) (*models.Blog, error) {
o := orm.NewOrm()
blog := &models.Blog{Id: id}
if err := o.Read(blog); err != nil {
@ -56,7 +59,8 @@ func ReadBlog(id int64) (*models.Blog, error) {
return blog, nil
}
func GetBlog(id int64) (*models.Blog, error) {
func (this *BlogService) GetBlog(id int64) (*models.Blog, error) {
commentService := CommentService{}
o := orm.NewOrm()
blog := &models.Blog{Id: id}
err := o.Read(blog)
@ -74,21 +78,21 @@ func GetBlog(id int64) (*models.Blog, error) {
if err == nil {
blog.Lables = labels
}
comms, berr := FindCommentByBlog(id)
comms, berr := commentService.FindCommentByBlog(id)
if berr == nil {
blog.Comms = comms
}
return blog, nil
}
func DelBlog(blog *models.Blog) error {
func (this *BlogService) DelBlog(blog *models.Blog) error {
o := orm.NewOrm()
_, err := o.Update(blog, "Delflag")
return err
}
func FindBlogs(num int, size int, cat int64, flag int) (*utils.Page, error) {
page, err := count(num, size, cat)
func (this *BlogService) FindBlogs(num int, size int, cat int64, flag int) (*utils.Page, error) {
page, err := this.count(num, size, cat)
if err != nil {
return nil, err
}
@ -129,7 +133,7 @@ func FindBlogs(num int, size int, cat int64, flag int) (*utils.Page, error) {
return page, nil
}
func SaveBlog(blog *models.Blog, strs []string) error {
func (this *BlogService) SaveBlog(blog *models.Blog, strs []string) error {
o := orm.NewOrm()
o.Begin()
id, eror := o.Insert(blog)
@ -153,7 +157,7 @@ func SaveBlog(blog *models.Blog, strs []string) error {
return nil
}
func EditBlog(blog *models.Blog, strs []string) error {
func (this *BlogService) EditBlog(blog *models.Blog, strs []string) error {
o := orm.NewOrm()
o.Begin()
_, eror := o.Update(blog)
@ -177,8 +181,8 @@ func EditBlog(blog *models.Blog, strs []string) error {
return nil
}
func MeBlogs(num int, size int, flag int, uid int64) (*utils.Page, error) {
page, err := countByUser(num, size, uid)
func (this *BlogService) MeBlogs(num int, size int, flag int, uid int64) (*utils.Page, error) {
page, err := this.countByUser(num, size, uid)
if err != nil {
return nil, err
}
@ -201,7 +205,7 @@ func MeBlogs(num int, size int, flag int, uid int64) (*utils.Page, error) {
return page, nil
}
func IndexBlogs(size int, flag int) ([]*models.Blog, error) {
func (this *BlogService) IndexBlogs(size int, flag int) ([]*models.Blog, error) {
var blogs []*models.Blog
o := orm.NewOrm()
qs := o.QueryTable(&models.Blog{})
@ -221,7 +225,7 @@ func IndexBlogs(size int, flag int) ([]*models.Blog, error) {
return blogs, err
}
func GetNLabel(id int64) ([]*models.NLabel, error) {
func (this *BlogService) GetNLabel(id int64) ([]*models.NLabel, error) {
var labels []*models.NLabel
o := orm.NewOrm()
_, err := o.QueryTable(&models.NLabel{}).Filter("BlogId", id).All(&labels)

5
service/CategoryService.go

@ -5,7 +5,10 @@ import (
"beeblog/models"
)
func GetCats() ([]*models.Category, error) {
type CategoryService struct {
}
func (this *CategoryService) GetCats() ([]*models.Category, error) {
var notes []*models.Category
o := orm.NewOrm()
qs := o.QueryTable(models.Category{})

11
service/CommentService.go

@ -6,7 +6,10 @@ import (
"fmt"
)
func FindCommentByBlog(bid int64) ([]*models.Comment, error) {
type CommentService struct {
}
func (this *CommentService) FindCommentByBlog(bid int64) ([]*models.Comment, error) {
var comms []*models.Comment
o := orm.NewOrm()
_, err := o.QueryTable(&models.Comment{}).Filter("Pid", 0).Filter("BlogId",bid).OrderBy("-Ctime").All(&comms)
@ -38,7 +41,7 @@ func FindCommentByBlog(bid int64) ([]*models.Comment, error) {
return comms, nil
}
func SaveComment(comment *models.Comment) error {
func (this *CommentService) SaveComment(comment *models.Comment) error {
o := orm.NewOrm()
id, err := o.Insert(comment)
if err == nil {
@ -56,11 +59,11 @@ func SaveComment(comment *models.Comment) error {
return err
}
func ReadComment(comment *models.Comment) error {
func (this *CommentService) ReadComment(comment *models.Comment) error {
return orm.NewOrm().Read(comment)
}
func DelComment(id int64) error {
func (this *CommentService) DelComment(id int64) error {
comm := &models.Comment{Id: id}
o := orm.NewOrm()
err := o.Read(comm)

15
service/LikeService.go

@ -7,14 +7,17 @@ import (
"beeblog/utils"
)
func SaveLike(like *models.Like) (int64, error) {
type LikeService struct {
}
func (this *LikeService) SaveLike(like *models.Like) (int64, error) {
return orm.NewOrm().Insert(like)
}
func DelLike(like *models.Like) (int64, error) {
func (this *LikeService) DelLike(like *models.Like) (int64, error) {
return orm.NewOrm().QueryTable(models.Like{}).Filter("BlogId", like.BlogId).Filter("UserId", like.UserId).Delete()
}
func IsLike(bid int64, uid int64) (bool, error) {
func (this *LikeService) IsLike(bid int64, uid int64) (bool, error) {
totalCount, err := orm.NewOrm().QueryTable(&models.Like{}).Filter("BlogId", bid).Filter("UserId", uid).Count()
if err == nil {
fmt.Println(totalCount, "like count")
@ -29,8 +32,8 @@ func IsLike(bid int64, uid int64) (bool, error) {
}
}
func MeLikes(num int, size int, uid int64) (*utils.Page, error) {
page, err := countLike(num, size, uid)
func (this *LikeService) MeLikes(num int, size int, uid int64) (*utils.Page, error) {
page, err := this.countLike(num, size, uid)
if err != nil {
return nil, err
}
@ -54,7 +57,7 @@ func MeLikes(num int, size int, uid int64) (*utils.Page, error) {
return page, nil
}
func countLike(num int, size int, uid int64) (*utils.Page, error) {
func (this *LikeService) countLike(num int, size int, uid int64) (*utils.Page, error) {
o := orm.NewOrm()
qs := o.QueryTable(&models.Like{})
totalCount, err := qs.Filter("UserId", uid).Count()

20
service/NoteService.go

@ -9,7 +9,7 @@ import (
type NoteService struct {
}
func EditNote(note *models.Note) error {
func (this *NoteService) EditNote(note *models.Note) error {
o := orm.NewOrm()
id, err := o.Update(note)
if err == nil {
@ -18,7 +18,7 @@ func EditNote(note *models.Note) error {
return err
}
func SaveNote(note *models.Note) error {
func (this *NoteService) SaveNote(note *models.Note) error {
o := orm.NewOrm()
id, err := o.Insert(note)
if err == nil {
@ -27,18 +27,18 @@ func SaveNote(note *models.Note) error {
return err
}
func GetNote(note *models.Note) error {
func (this *NoteService) GetNote(note *models.Note) error {
o := orm.NewOrm()
return o.Read(note)
}
func DelNote(note *models.Note) error {
func (this *NoteService) DelNote(note *models.Note) error {
o := orm.NewOrm()
_, err := o.Delete(note)
return err
}
func GetNoteByPid(pid int64) ([]*models.Note, error) {
func (this *NoteService) GetNoteByPid(pid int64) ([]*models.Note, error) {
var notes []*models.Note
o := orm.NewOrm()
qs := o.QueryTable(models.Note{})
@ -46,7 +46,7 @@ func GetNoteByPid(pid int64) ([]*models.Note, error) {
return notes, err
}
func CountNote(pid int64) (int64, error) {
func (this *NoteService) CountNote(pid int64) (int64, error) {
o := orm.NewOrm()
totalCount, err := o.QueryTable(&models.Note{}).Filter("Pid", pid).Count()
if err != nil {
@ -55,7 +55,7 @@ func CountNote(pid int64) (int64, error) {
return totalCount, nil
}
func SaveNoteColl(note *models.NoteColl) error {
func (this *NoteService) SaveNoteColl(note *models.NoteColl) error {
o := orm.NewOrm()
id, err := o.Insert(note)
if err == nil {
@ -64,7 +64,7 @@ func SaveNoteColl(note *models.NoteColl) error {
return err
}
func EditNoteColl(title string, id int64, uid int64) error {
func (this *NoteService) EditNoteColl(title string, id int64, uid int64) error {
o := orm.NewOrm()
noteColl := &models.NoteColl{Id: id}
@ -79,7 +79,7 @@ func EditNoteColl(title string, id int64, uid int64) error {
return err
}
func GetNoteColl(uid int64) ([]*models.NoteColl, error) {
func (this *NoteService) GetNoteColl(uid int64) ([]*models.NoteColl, error) {
var notes []*models.NoteColl
o := orm.NewOrm()
qs := o.QueryTable(models.NoteColl{})
@ -87,7 +87,7 @@ func GetNoteColl(uid int64) ([]*models.NoteColl, error) {
return notes, err
}
func DelNoteColl(id int64, uid int64) error {
func (this *NoteService) DelNoteColl(id int64, uid int64) error {
o := orm.NewOrm()
noteColl := &models.NoteColl{Id: id}

18
service/UserService.go

@ -8,14 +8,14 @@ import (
type UserService struct {
}
func GetUser(id int64) (*models.User, error) {
func (this *UserService) GetUser(id int64) (*models.User, error) {
o := orm.NewOrm()
user := &models.User{Id: id}
err := o.Read(user)
return user, err
}
func FindByUserName(username string) (*models.User, error) {
func (this *UserService) FindByUserName(username string) (*models.User, error) {
o := orm.NewOrm()
qs := o.QueryTable(&models.User{})
var users []*models.User
@ -29,7 +29,7 @@ func FindByUserName(username string) (*models.User, error) {
return nil, nil
}
func SaveUser(user *models.User) error {
func (this *UserService) SaveUser(user *models.User) error {
o := orm.NewOrm()
id, eror := o.Insert(user)
if eror != nil {
@ -41,26 +41,26 @@ func SaveUser(user *models.User) error {
return nil
}
func CountBlog(uid int64) {
func (this *UserService) CountBlog(uid int64) {
o := orm.NewOrm()
browses := 0
o.Raw("UPDATE `auth_user` SET `blog_count` = (SELECT count(id) num FROM blog where delflag = 0 and user_id =? ) WHERE `id` = ? ", uid, uid).QueryRow(&browses)
return
}
func CountBrows(uid int64) {
func (this *UserService) CountBrows(uid int64) {
o := orm.NewOrm()
browses := 0
o.Raw("UPDATE `auth_user` SET `blog_browes` = (select SUM(browses) browses from blog where user_id = ?) WHERE `id` = ? ", uid, uid).QueryRow(&browses) //获取总条数
return
}
func CountComments(uid int64,bid int64) {
func (this *UserService) CountComments(uid int64,bid int64) {
o := orm.NewOrm()
browses := 0
o.Raw("UPDATE `auth_user` SET `blog_comment` = (select count(id) num from comment where cuser_id = ?) WHERE `id` = ? ", uid, uid).QueryRow(&browses) //获取总条数
o.Raw("UPDATE `blog` SET `comments` = (select count(id) num from comment where blog_id = ?) WHERE `id` = ? ", bid, bid).QueryRow(&browses) //获取总条数
return
}
func CountLike(uid int64,bid int64) {
func (this *UserService) CountLike(uid int64,bid int64) {
o := orm.NewOrm()
browses := 0
o.Raw("UPDATE `auth_user` SET `blog_like` = (select count(id) num from tb_like where user_id = ?) WHERE `id` = ?", uid, uid).QueryRow(&browses)
@ -68,10 +68,10 @@ func CountLike(uid int64,bid int64) {
return
}
func EditUser(user *models.User) (int64, error) {
func (this *UserService) EditUser(user *models.User) (int64, error) {
return orm.NewOrm().Update(user)
}
func EditHeadImg(user *models.User) (int64, error) {
func (this *UserService) EditHeadImg(user *models.User) (int64, error) {
return orm.NewOrm().Update(user,"Headimg")
}

0
static/css/sui.css → static/css/sui.min.css

7
views/T.header.tpl

@ -8,11 +8,10 @@
{{else}}
<meta name="description" content="云悦,个人随笔是一个面向IT技术人员,提供个人平时工作总结和在线记录学习笔记,个人技术博客,在线云笔记,码农笔录,最新的技术博客,www.aiprose.com">
{{end}}
<link rel="stylesheet" href="//g.alicdn.com/sui/sui3/0.0.18/css/sui.min.css">
<link rel="stylesheet" href="//oss.aiprose.com/ali/sui/css/sui.min.css">
<script type="text/javascript" src="/static/js/checkm.js"></script>
<script type="text/javascript" src="//g.alicdn.com/sj/lib/jquery/dist/jquery.min.js"></script>
{{/*<script type="text/javascript" src="//g.alicdn.com/sui/sui3/0.0.18/js/sui.min.js"></script>*/}}
<script type="text/javascript" src="/static/js/layer.js"></script>
<script type="text/javascript" src="//oss.aiprose.com/ali/jquery/jquery.min.js"></script>
<script type="text/javascript" src="//oss.aiprose.com/ali/sui/js/sui.min.js"></script>
<script type="text/javascript" src="/static/js/layer.js"></script>
<link type="text/css" rel="styleSheet" href="/static/css/common.css"/>
{{end}}

3
views/note.html

@ -6,7 +6,8 @@
<meta name="description" content="云悦,个人随笔是一个面向IT技术人员,提供个人平时工作总结和在线记录学习笔记,个人技术博客,在线云笔记,码农笔录,最新的技术博客,www.aiprose.com">
<meta name="keywords"
content="云悦,个人随笔,博客,个人博客,个人笔记,技术博客,免费云笔记,云笔记,随笔,IT博客,谷歌地图,码农笔录,aiprose">
<link rel="stylesheet" href="//g.alicdn.com/sui/sui3/0.0.18/css/sui.min.css">
{{/*<link rel="stylesheet" href="//g.alicdn.com/sui/sui3/0.0.18/css/sui.min.css">*/}}
<link rel="stylesheet" href="//oss.aiprose.com/ali/sui/css/sui.min.css">
{{/*<script type="text/javascript" src="//g.alicdn.com/sj/lib/jquery/dist/jquery.min.js"></script>*/}}
<title>我的笔记 - 云悦</title>
<script type="text/javascript" src="/static/js/checkm.js"></script>

Loading…
Cancel
Save