Browse Source

个人中心博客管理&笔记管理

layui
yirenyishi 6 years ago
parent
commit
713b747eb8
  1. 35
      controllers/BlogController.go
  2. 66
      controllers/NoteController.go
  3. 4
      controllers/UserController.go
  4. BIN
      data/beeblog.db
  5. 1
      routers/BlogRouter.go
  6. 2
      routers/NoteRouter.go
  7. 6
      service/BlogService.go
  8. 38
      service/NoteService.go
  9. 2
      static/css/me.css
  10. 2
      views/T.me.tpl
  11. 27
      views/note.html
  12. 36
      views/ublogs.html
  13. 81
      views/unote.html

35
controllers/BlogController.go

@ -41,7 +41,7 @@ func (this *BlogController) Get() {
id, _ := strconv.ParseInt(idStr, 10, 64)
blog, err := service.GetBlog(id)
if err != nil {
this.Redirect("/500",302)
this.Redirect("/500", 302)
return
}
this.Data["Blog"] = blog
@ -53,6 +53,39 @@ func (this *BlogController) Get() {
return
}
func (this *BlogController) 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 *BlogController) New() {
uid := this.GetSession("userid")
if uid == nil {

66
controllers/NoteController.go

@ -16,7 +16,7 @@ func (this *NoteController) Save() {
title := this.GetString("title")
uid := this.GetSession("userid")
if uid == nil {
this.Data["json"] = models.ReurnError(401,"保存失败")
this.Data["json"] = models.ReurnError(401, "保存失败")
this.ServeJSON()
return
}
@ -25,7 +25,7 @@ func (this *NoteController) Save() {
if err == nil {
this.Data["json"] = note
} else {
this.Data["json"] = models.ReurnError(500,"保存失败")
this.Data["json"] = models.ReurnError(500, "保存失败")
}
this.ServeJSON()
return
@ -35,20 +35,20 @@ func (this *NoteController) Edit() {
noteHtml := this.GetString("noteHtml")
id, _ := strconv.ParseInt(idStr, 10, 64)
uid := this.GetSession("userid")
if uid == nil{
if uid == nil {
this.Data["json"] = models.ReurnError(401, "")
this.ServeJSON()
return
}
note := &models.Note{Id:id}
note := &models.Note{Id: id}
err1 := service.GetNote(note)
if err1 != nil {
this.Data["json"] = models.ReurnError(500,"保存失败")
this.Data["json"] = models.ReurnError(500, "保存失败")
this.ServeJSON()
return
}
if uid != note.UserId {
this.Data["json"] = models.ReurnError(403,"")
this.Data["json"] = models.ReurnError(403, "")
this.ServeJSON()
return
}
@ -57,7 +57,7 @@ func (this *NoteController) Edit() {
if err == nil {
this.Data["json"] = models.ReurnSuccess("")
} else {
this.Data["json"] = models.ReurnError(500,"保存失败")
this.Data["json"] = models.ReurnError(500, "保存失败")
}
this.ServeJSON()
return
@ -66,7 +66,7 @@ func (this *NoteController) Edit() {
func (this *NoteController) SaveNoteColl() {
title := this.GetString("title")
uid := this.GetSession("userid")
if uid == nil{
if uid == nil {
this.Data["json"] = models.ReurnError(401, "")
this.ServeJSON()
return
@ -74,9 +74,28 @@ func (this *NoteController) SaveNoteColl() {
note := &models.NoteColl{Title: title, UserId: uid.(int64)}
err := service.SaveNoteColl(note)
if err == nil {
this.Data["json"] = note
this.Data["json"] = models.ReurnSuccess("")
} else {
this.Data["json"] = models.ReurnError(500,"保存失败")
this.Data["json"] = models.ReurnError(500, "保存失败")
}
this.ServeJSON()
return
}
func (this *NoteController) EditNoteColl() {
title := this.GetString("title")
id, _ := this.GetInt64("id")
uid := this.GetSession("userid")
if uid == nil {
this.Data["json"] = models.ReurnError(401, "")
this.ServeJSON()
return
}
err := service.EditNoteColl(title, id, uid.(int64))
if err == nil {
this.Data["json"] = models.ReurnSuccess("")
} else {
this.Data["json"] = models.ReurnError(500, "保存失败")
}
this.ServeJSON()
return
@ -84,7 +103,7 @@ func (this *NoteController) SaveNoteColl() {
func (this *NoteController) Get() {
uid := this.GetSession("userid")
if uid == nil{
if uid == nil {
this.Data["json"] = models.ReurnError(401, "")
this.ServeJSON()
return
@ -104,9 +123,28 @@ func (this *NoteController) Get() {
this.ServeJSON()
return
}
func (this *NoteController) DelNoteColl() {
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)
err := service.DelNoteColl(id, uid.(int64))
if err != nil {
this.Data["json"] = models.ReurnError(500, "")
} else {
this.Data["json"] = models.ReurnSuccess("")
}
this.ServeJSON()
return
}
func (this *NoteController) Delete() {
uid := this.GetSession("userid")
if uid == nil{
if uid == nil {
this.Data["json"] = models.ReurnError(401, "")
this.ServeJSON()
return
@ -116,7 +154,7 @@ func (this *NoteController) Delete() {
note := &models.Note{Id: id}
err := service.GetNote(note)
if err != nil {
this.Data["json"] = models.ReurnError(500,"")
this.Data["json"] = models.ReurnError(500, "")
this.ServeJSON()
return
}
@ -127,7 +165,7 @@ func (this *NoteController) Delete() {
}
err = service.DelNote(note)
if err != nil {
this.Data["json"] = models.ReurnError(500,"")
this.Data["json"] = models.ReurnError(500, "")
this.ServeJSON()
return
}

4
controllers/UserController.go

@ -48,6 +48,8 @@ func (this *UserController) PersonBlog() {
return
}
}
this.Data["NickName"] = this.GetSession("nickname")
this.Data["IsLogin"] = this.GetSession("nickname") != nil
this.Data["Page"] = page
this.Data["IsMeBlog"] = true
this.Data["Flag"] = 0
@ -85,6 +87,8 @@ func (this *UserController) PersonNote() {
return
}
}
this.Data["NickName"] = this.GetSession("nickname")
this.Data["IsLogin"] = this.GetSession("nickname") != nil
this.Data["Note"] = notColl
this.Data["IsMeNote"] = true
this.Data["User"] = user

BIN
data/beeblog.db

Binary file not shown.

1
routers/BlogRouter.go

@ -8,6 +8,7 @@ import (
func init() {
beego.Router("/blog/new", &controllers.BlogController{}, "post:Save")
beego.Router("/blog/:id([0-9]+)", &controllers.BlogController{}, "get:Get")
beego.Router("/blog/del/:id([0-9]+)", &controllers.BlogController{}, "post:Del")
beego.Router("/blogs", &controllers.BlogController{}, "get:BlogsPage")
beego.Router("/blog/new", &controllers.BlogController{}, "get:New")
beego.Router("/blog1", &controllers.BlogController{}, "get:Blog1")

2
routers/NoteRouter.go

@ -9,7 +9,9 @@ func init() {
beego.Router("/note/:id([0-9]+)", &controllers.NoteController{}, "get:Get")
beego.Router("/note", &controllers.NoteController{}, "get:Note")
beego.Router("/notecoll/save", &controllers.NoteController{}, "post:SaveNoteColl")
beego.Router("/notecoll/edit", &controllers.NoteController{}, "post:EditNoteColl")
beego.Router("/note/save", &controllers.NoteController{}, "post:Save")
beego.Router("/note/edit/:id([0-9]+)", &controllers.NoteController{}, "post:Edit")
beego.Router("/note/del/:id([0-9]+)", &controllers.NoteController{}, "post:Delete")
beego.Router("/notecol/del/:id([0-9]+)", &controllers.NoteController{}, "post:DelNoteColl")
}

6
service/BlogService.go

@ -64,6 +64,12 @@ func GetBlog(id int64) (*models.Blog, error) {
return blog, nil
}
func 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)
if err != nil {

38
service/NoteService.go

@ -3,6 +3,8 @@ package service
import (
"beeblog/models"
"github.com/astaxie/beego/orm"
"errors"
"fmt"
)
type NoteService struct {
@ -49,7 +51,7 @@ func CountNote(pid int64) (int64, error) {
o := orm.NewOrm()
totalCount, err := o.QueryTable(&models.Note{}).Filter("Pid", pid).Count()
if err != nil {
return 0,err
return 0, err
}
return totalCount, nil
}
@ -63,6 +65,21 @@ func SaveNoteColl(note *models.NoteColl) error {
return err
}
func EditNoteColl(title string, id int64, uid int64) error {
o := orm.NewOrm()
noteColl := &models.NoteColl{Id: id}
if err := o.Read(noteColl); err != nil {
return err
}
if noteColl.UserId != uid {
return errors.New("403")
}
noteColl.Title = title
_, err := o.Update(noteColl, "Title")
return err
}
func GetNoteColl(uid int64) ([]*models.NoteColl, error) {
var notes []*models.NoteColl
o := orm.NewOrm()
@ -70,3 +87,22 @@ func GetNoteColl(uid int64) ([]*models.NoteColl, error) {
_, err := qs.Filter("UserId", uid).All(&notes)
return notes, err
}
func DelNoteColl(id int64, uid int64) error {
o := orm.NewOrm()
noteColl := &models.NoteColl{Id: id}
if err := o.Read(noteColl); err != nil {
fmt.Println(err)
return err
}
if uid != noteColl.UserId {
return errors.New("403")
}
_, err := o.QueryTable(models.Note{}).Filter("Pid", id).Delete()
fmt.Println(err)
if err == nil {
_, err = o.Delete(noteColl)
}
return err
}

2
static/css/me.css

@ -9,7 +9,7 @@
.me-menu p {
cursor: pointer;
font-size: 18px;
font-size: 15px;
color: #555;
margin: 0;
height: 32px;

2
views/T.me.tpl

@ -27,7 +27,7 @@
</div>
<hr style="height:1px;border:none;border-top:1px solid #EEE;margin: 6px;"/>
<p {{if .IsMeBlog}}class="active"{{end}}><span></span><a href="/me/blog">我的博客</a></p>
<p {{if .IsMeNote}}class="active"{{end}}><span></span><a href="/me/note">我的笔记</a></p>
<p {{if .IsMeNote}}class="active"{{end}}><span></span><a href="/me/note">笔记文件夹</a></p>
<p {{if .IsMeLike}}class="active"{{end}}><span></span><a href="/me/like">我的收藏</a></p>
<p {{if .IsMeInfo}}class="active"{{end}}><span></span><a href="/me/info">我的资料</a></p>
</div>

27
views/note.html

@ -48,7 +48,7 @@
<nav>
<a href="/" target="_blank">首页</a>
<a href="javascript:void(0)" id="newNote">新增笔记</a>
<a href="javascript:void(0)" id="newNoteColl">管理文件夹</a>
<a href="/me/note" id="newNoteColl">管理文件夹</a>
<a href="javascript:void(0)" id="delNote">删除笔记</a>
<a href="javascript:void(0)">个人中心</a>
</nav>
@ -216,31 +216,6 @@
});
})
$("#newNoteColl").click(function () {
layer.prompt({title: '请输入文件夹名称'}, function (val, index) {
if (val.trim().length < 3) {
layer.msg('文件夹名称最低三个字哦', function () {
});
layer.close(index);
return
}
$.post('/notecoll/save', {
title: val.trim()
},
function (data) {
if (!data.Status) {
parent.layer.msg("保存成功", {icon: 6});
var child = '<li class="item-has-children">\n' +
' <a href="javascript:void(0)">' + data.Titled + '</a>\n' +
' <ul class="sub-menu" value="' + data.Id + '"></ul>\n' +
' </li> '
$(".cd-navigation").append(child)
layer.close(index);
}
}, 'json')
});
})
})
</script>
</html>

36
views/ublogs.html

@ -15,12 +15,15 @@
<li class="active">管理博客</li>
</ol>
{{range .Page.List}}
<p><a href="/blog/{{.Id}}">{{.Title}}</a></p>
<div>
<em>发布时间:{{.Ctime.Format "2006/01/02"}}</em>
<em>浏览量:{{.Browses}}</em>
<span style="width: 35px;margin-left: 30px;"><a href="" style="color: #F84822">删除</a></span>
<span style="width: 35px;margin-left: 10px;"><a href="" style="color: #F84822">编辑</a></span>
<p><a href="/blog/{{.Id}}">{{.Title}}</a></p>
<div>
<em>发布时间:{{.Ctime.Format "2006/01/02"}}</em>
<em>浏览量:{{.Browses}}</em>
<span style="width: 35px;margin-left: 30px;"><a href="javascript:void(0)" style="color: #F84822"
onclick="del(this,{{.Id}})">删除</a></span>
<span style="width: 35px;margin-left: 10px;"><a href="" style="color: #F84822">编辑</a></span>
</div>
</div>
<hr style="height:1px;border:none;border-top:1px solid #EEE;margin: 6px;"/>
{{end}}
@ -51,4 +54,27 @@
</div>
</div>
</body>
<script>
function del(obj, id) {
layer.confirm('删除后将无法恢复', {
btn: ['确认', '手滑了'] //按钮
}, function () {
$.post('/blog/del/' + id,
function (data) {
if (data.Status == 0) {
$(obj).parent().parent().parent().remove()
layer.msg("删除成功", {icon: 6});
} else if (data.Status == 401) {
window.location.href = "/login"
} else if (data.Status == 403) {
layer.msg("暂无权限", {icon: 5});
} else {
layer.msg("服务器异常", {icon: 5});
}
}, 'json')
}, function () {
});
}
</script>
</html>

81
views/unote.html

@ -13,6 +13,7 @@
<li>个人中心</li>
<li>笔记文件夹</li>
<li class="active">管理文件夹</li>
<button type="button" class="btn btn-primary" style="margin-left: 30px" id="newBtn">新增</button>
</ol>
</div>
@ -20,8 +21,10 @@
<div class="me-blog-list">
<div style="display: flex">
<p style="flex:1">{{.Title}}<span class="badge" style="margin-left: 3px">{{.Count}}</span></p>
<span style="width: 35px;"><a href="" style="color: #F84822">删除</a></span>
<span style="width: 35px;margin-left: 10px;"><a href="" style="color: #F84822">编辑</a></span>
<span style="width: 35px;"><a href="javascript:void(0)" style="color: #F84822"
onclick="del(this,{{.Id}})">删除</a></span>
<span style="width: 42px;margin-left: 10px;"><a href="javascript:void(0)" style="color: #F84822"
onclick="rename(this,{{.Id}},{{.Title}})">重命名</a></span>
</div>
<hr style="height:1px;border:none;border-top:1px solid #EEE;margin: 6px;"/>
</div>
@ -34,4 +37,78 @@
</div>
</div>
</body>
<script>
function rename(obj, id, name) {
layer.prompt({title: '请输入文件夹名称',value: name}, function (val, index) {
if (val.trim().length < 3) {
layer.msg('文件夹名称最低三个字哦', function () {
});
layer.close(index);
return
}
$.post('/notecoll/edit', {
title: val.trim(),
id: id
},
function (data) {
if (data.Status == 0) {
layer.close(index);
layer.msg("修改成功", {icon: 6});
window.location.href=window.location.href
} else if (data.Status == 401) {
window.location.href = "/login"
} else if (data.Status == 403) {
layer.msg("暂无权限", {icon: 5});
} else {
layer.msg("服务器异常", {icon: 5});
}
}, 'json')
});
}
function del(obj, id) {
layer.confirm('文件夹下的所有笔记都将会删除', {
btn: ['确认', '手滑了'] //按钮
}, function () {
$.post('/notecol/del/' + id,
function (data) {
if (data.Status == 0) {
$(obj).parent().parent().remove()
layer.msg("删除成功", {icon: 6});
} else if (data.Status == 401) {
window.location.href = "/login"
} else if (data.Status == 403) {
layer.msg("暂无权限", {icon: 5});
} else {
layer.msg("服务器异常", {icon: 5});
}
}, 'json')
}, function () {
});
}
$(function () {
$("#newBtn").click(function () {
layer.prompt({title: '请输入文件夹名称'}, function (val, index) {
if (val.trim().length < 3) {
layer.msg('文件夹名称最低三个字哦', function () {
});
layer.close(index);
return
}
$.post('/notecoll/save', {
title: val.trim()
},
function (data) {
if (data.Status == 0) {
layer.close(index);
parent.layer.msg("保存成功", {icon: 6});
window.location.href=window.location.href
}
}, 'json')
});
})
})
</script>
</html>
Loading…
Cancel
Save