mail_yanpeng@163.com пре 6 година
родитељ
комит
868c10ef6a
  1. 8
      controllers/BlogController.go
  2. 2
      controllers/PageController.go
  3. 64
      controllers/UserController.go
  4. BIN
      data/beeblog.db
  5. 36
      service/BlogService.go
  6. 7
      service/UserService.go
  7. 9
      static/css/me.css
  8. 1
      utils/PageUtil.go
  9. 3
      views/T.nav.tpl
  10. 41
      views/ublogs.html

8
controllers/BlogController.go

@ -41,7 +41,7 @@ func (this *BlogController) Get() {
id, _ := strconv.ParseInt(idStr, 10, 64) id, _ := strconv.ParseInt(idStr, 10, 64)
blog, err := service.GetBlog(id) blog, err := service.GetBlog(id)
if err != nil { if err != nil {
this.Redirect("/500.html",302) this.Redirect("/500",302)
return return
} }
this.Data["Blog"] = blog this.Data["Blog"] = blog
@ -56,7 +56,7 @@ func (this *BlogController) Get() {
func (this *BlogController) New() { func (this *BlogController) New() {
uid := this.GetSession("userid") uid := this.GetSession("userid")
if uid == nil { if uid == nil {
this.Redirect("/login.html", 302) this.Redirect("login.html", 302)
return return
} }
this.TplName = "newblog.html" this.TplName = "newblog.html"
@ -68,7 +68,7 @@ func (this *BlogController) Blog1() {
func (this *BlogController) BlogsPage() { func (this *BlogController) BlogsPage() {
cats, errcat := service.GetCats() cats, errcat := service.GetCats()
if errcat != nil { if errcat != nil {
this.Redirect("500.html", 302) this.Redirect("/500", 302)
return return
} }
num, _ := this.GetInt("num") num, _ := this.GetInt("num")
@ -87,7 +87,7 @@ func (this *BlogController) BlogsPage() {
fmt.Println("nelson page", num, size, cat) fmt.Println("nelson page", num, size, cat)
pages, err := service.FindBlogs(num, size, cat, flag) pages, err := service.FindBlogs(num, size, cat, flag)
if err != nil { if err != nil {
this.Redirect("500.html", 302) this.Redirect("/500", 302)
return return
} }

2
controllers/PageController.go

@ -13,7 +13,7 @@ type PageController struct {
func (this *PageController) Blog() { func (this *PageController) Blog() {
cats, err := service.GetCats() cats, err := service.GetCats()
if err != nil { if err != nil {
this.Redirect("500.html", 302) this.Redirect("/500", 302)
return return
} }
this.Data["Cats"] = cats this.Data["Cats"] = cats

64
controllers/UserController.go

@ -9,7 +9,6 @@ import (
"time" "time"
"strconv" "strconv"
"encoding/hex" "encoding/hex"
"fmt"
) )
type UserController struct { type UserController struct {
@ -23,30 +22,58 @@ func (u *UserController) RegistPage() {
u.TplName = "regist.html" u.TplName = "regist.html"
} }
func (u *UserController) PersonBlog() { func (this *UserController) PersonBlog() {
u.TplName = "ublogs.html" uid := this.GetSession("userid")
if uid == nil {
this.Redirect("/login", 302)
return
}
size := 15
num, _ := this.GetInt("num")
if num <= 0 {
num = 1
}
flag, _ := this.GetInt("flag")
page, err := service.MeBlogs(num, size, flag, uid.(int64))
if err != nil {
if uid == nil {
this.Redirect("/500", 302)
return
}
}
user, uerr := service.GetUser(uid.(int64))
if uerr != nil {
if uid == nil {
this.Redirect("/500", 302)
return
}
}
this.Data["Page"] = page
this.Data["Flag"] = 0
this.Data["User"] = user
this.TplName = "ublogs.html"
} }
func (this *UserController) Login() { func (this *UserController) Login() {
username := this.GetString("username") username := this.GetString("username")
userpwd := this.GetString("userpwd") userpwd := this.GetString("userpwd")
if username == "" { if username == "" {
this.Data["json"] = models.ReurnError(1,"用户名为空") this.Data["json"] = models.ReurnError(1, "用户名为空")
this.ServeJSON() this.ServeJSON()
return return
} }
if len(username) < 4 { if len(username) < 4 {
this.Data["json"] = models.ReurnError(1,"用户名最低4位") this.Data["json"] = models.ReurnError(1, "用户名最低4位")
this.ServeJSON() this.ServeJSON()
return return
} }
if userpwd == "" { if userpwd == "" {
this.Data["json"] = models.ReurnError(1,"密码为空") this.Data["json"] = models.ReurnError(1, "密码为空")
this.ServeJSON() this.ServeJSON()
return return
} }
if len(userpwd) < 6 { if len(userpwd) < 6 {
this.Data["json"] = models.ReurnError(1,"密码最低6位") this.Data["json"] = models.ReurnError(1, "密码最低6位")
this.ServeJSON() this.ServeJSON()
return return
} }
@ -59,12 +86,11 @@ func (this *UserController) Login() {
this.Data["json"] = models.ReurnSuccess("") this.Data["json"] = models.ReurnSuccess("")
this.SetSession("userid", user.Id) this.SetSession("userid", user.Id)
this.SetSession("nickname", user.NickName) this.SetSession("nickname", user.NickName)
fmt.Println(this.CruSession)
} else { } else {
this.Data["json"] = models.ReurnError(1,"用户名或密码错误") this.Data["json"] = models.ReurnError(1, "用户名或密码错误")
} }
} else { } else {
this.Data["json"] = models.ReurnError(1,"用户名不存在") this.Data["json"] = models.ReurnError(1, "用户名不存在")
} }
this.ServeJSON() this.ServeJSON()
return return
@ -76,28 +102,28 @@ func (this *UserController) Regist() {
username = strings.Replace(username, " ", "", -1) username = strings.Replace(username, " ", "", -1)
userpwd = strings.Replace(userpwd, " ", "", -1) userpwd = strings.Replace(userpwd, " ", "", -1)
if username == "" { if username == "" {
this.Data["json"] = models.ReurnError(1,"用户名为空") this.Data["json"] = models.ReurnError(1, "用户名为空")
this.ServeJSON() this.ServeJSON()
return return
} }
if len(username) < 4 { if len(username) < 4 {
this.Data["json"] = models.ReurnError(1,"用户名最低4位") this.Data["json"] = models.ReurnError(1, "用户名最低4位")
this.ServeJSON() this.ServeJSON()
return return
} }
if userpwd == "" { if userpwd == "" {
this.Data["json"] = models.ReurnError(1,"密码为空") this.Data["json"] = models.ReurnError(1, "密码为空")
this.ServeJSON() this.ServeJSON()
return return
} }
if len(userpwd) < 6 { if len(userpwd) < 6 {
this.Data["json"] = models.ReurnError(1,"密码最低6位") this.Data["json"] = models.ReurnError(1, "密码最低6位")
this.ServeJSON() this.ServeJSON()
return return
} }
user, _ := service.FindByUserName(username) user, _ := service.FindByUserName(username)
if user != nil { if user != nil {
this.Data["json"] = models.ReurnError(1,"用户已经存在") this.Data["json"] = models.ReurnError(1, "用户已经存在")
this.ServeJSON() this.ServeJSON()
return return
} }
@ -107,12 +133,12 @@ func (this *UserController) Regist() {
h = md5.New() h = md5.New()
h.Write([]byte(userpwd + salt)) h.Write([]byte(userpwd + salt))
userpwd = hex.EncodeToString(h.Sum(nil)) userpwd = hex.EncodeToString(h.Sum(nil))
user = &models.User{UserName: username,NickName:username, UserPwd: userpwd, Salt: salt} user = &models.User{UserName: username, NickName: username, UserPwd: userpwd, Salt: salt}
err := service.SaveUser(user) err := service.SaveUser(user)
if err == nil { if err == nil {
this.Data["json"] = models.ReurnSuccess("") this.Data["json"] = models.ReurnSuccess("")
} else { } else {
this.Data["json"] = models.ReurnError(1,"注册失败") this.Data["json"] = models.ReurnError(1, "注册失败")
} }
this.ServeJSON() this.ServeJSON()
return return
@ -121,6 +147,6 @@ func (this *UserController) Regist() {
func (this *UserController) Logout() { func (this *UserController) Logout() {
this.DelSession("userid") this.DelSession("userid")
this.DelSession("nickname") this.DelSession("nickname")
this.Redirect("/",302) this.Redirect("/", 302)
return return
} }

BIN
data/beeblog.db

Binary file not shown.

36
service/BlogService.go

@ -23,6 +23,16 @@ func count(num int, size int, cat int64) (*utils.Page, error) {
return utils.PageUtil(totalCount, num, size), nil return utils.PageUtil(totalCount, num, size), nil
} }
func 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()
if err != nil {
return nil, err
}
return utils.PageUtil(totalCount, num, size), nil
}
func EditBlogBrows(id int64) { func EditBlogBrows(id int64) {
o := orm.NewOrm() o := orm.NewOrm()
blog := &models.Blog{Id: id} blog := &models.Blog{Id: id}
@ -47,7 +57,7 @@ func GetBlog(id int64) (*models.Blog, error) {
} }
var labels []*models.NLabel var labels []*models.NLabel
qs := o.QueryTable(&models.NLabel{}) qs := o.QueryTable(&models.NLabel{})
_,err = qs.Filter("BlogId",id).All(&labels) _, err = qs.Filter("BlogId", id).All(&labels)
if err == nil { if err == nil {
blog.Lables = labels blog.Lables = labels
} }
@ -119,3 +129,27 @@ func SaveBlog(blog *models.Blog, strs []string) error {
} }
return nil return nil
} }
func MeBlogs(num int, size int, flag int, uid int64) (*utils.Page, error) {
page, err := countByUser(num, size, uid)
if err != nil {
return nil, err
}
var blogs []*models.Blog
o := orm.NewOrm()
qs := o.QueryTable(&models.Blog{})
qs = qs.Filter("Delflag", 0)
qs = qs.Filter("UserId", uid)
if flag == 0 {
qs = qs.OrderBy("-Ctime")
} else {
qs = qs.OrderBy("-Browses")
}
qs = qs.Limit(size, (page.PageNo-1)*size)
_, err = qs.All(&blogs)
if err != nil {
return nil, err
}
page.List = blogs
return page, nil
}

7
service/UserService.go

@ -8,6 +8,13 @@ import (
type UserService struct { type UserService struct {
} }
func 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 FindByUserName(username string) (*models.User, error) {
o := orm.NewOrm() o := orm.NewOrm()
qs := o.QueryTable(&models.User{}) qs := o.QueryTable(&models.User{})

9
static/css/me.css

@ -9,9 +9,16 @@
.me-blog-root{ .me-blog-root{
height: 100%; height: 100%;
margin: 50px 4% 0 4%; margin: 50px 4% 0 0;
} }
.me-blog-list{ .me-blog-list{
margin-left: 300px; margin-left: 300px;
} }
.me-blog-list p{
height: 30px;
line-height: 30px;
margin: 0;
font-size: 15px;
}

1
utils/PageUtil.go

@ -16,6 +16,7 @@ type Page struct {
} }
func PageUtil(count64 int64, pageNo int, pageSize int) *Page { func PageUtil(count64 int64, pageNo int, pageSize int) *Page {
fmt.Println("count",count64,"paheNo",pageNo,"pageSize",pageSize)
string := strconv.FormatInt(count64, 10) string := strconv.FormatInt(count64, 10)
count, _ := strconv.Atoi(string) count, _ := strconv.Atoi(string)
tp := count / pageSize tp := count / pageSize

3
views/T.nav.tpl

@ -28,8 +28,7 @@
{{/*</form>*/}} {{/*</form>*/}}
<ul class="nav navbar-nav navbar-right"> <ul class="nav navbar-nav navbar-right">
{{if .IsLogin }} {{if .IsLogin }}
{{/*<li><a href="#"></a></li>*/}} <li><a href="/me/blog" style="padding: 0;"><img src="/static/img/2.png" alt="头像" class="img-circle"></a></li>
<li><a href="/" style="padding: 0;"><img src="/static/img/2.png" alt="头像" class="img-circle"></a></li>
{{else}} {{else}}
<li><a href="/login">登录</a></li> <li><a href="/login">登录</a></li>
<li><a href="/regist">注册</a></li> <li><a href="/regist">注册</a></li>

41
views/ublogs.html

@ -8,34 +8,63 @@
<div class="me-menu"> <div class="me-menu">
<div style="height: 50px;line-height: 50px"> <div style="height: 50px;line-height: 50px">
<a href=""><img src="/static/img/2.png" alt="头像" class="img-circle"></a> <a href=""><img src="/static/img/2.png" alt="头像" class="img-circle"></a>
<a href="" style="margin-left: 15px;font-size: 18px;text-decoration: none">{{.Blog.User.NickName}}</a> <a href="" style="margin-left: 15px;font-size: 18px;text-decoration: none">{{.User.NickName}}</a>
</div> </div>
<hr style="height:1px;border:none;border-top:1px solid #EEE;margin: 6px;"/> <hr style="height:1px;border:none;border-top:1px solid #EEE;margin: 6px;"/>
<div style="display: flex;height: 30px;line-height: 30px;"> <div style="display: flex;height: 30px;line-height: 30px;">
<div style="display: inline-block;width: 100px"> <div style="display: inline-block;width: 100px">
<span>文章: </span> <span>文章: </span>
<span>{{.Blog.User.BlogCount}}</span> <span>{{.User.BlogCount}}</span>
</div> </div>
<div style="display: inline-block;flex: 1"> <div style="display: inline-block;flex: 1">
<span>访问: </span> <span>访问: </span>
<span>{{.Blog.User.BlogBrowes}}</span> <span>{{.User.BlogBrowes}}</span>
</div> </div>
</div> </div>
<div style="display: flex;height: 30px;line-height: 30px;"> <div style="display: flex;height: 30px;line-height: 30px;">
<div style="display: inline-block;width: 100px"> <div style="display: inline-block;width: 100px">
<span>评论: </span> <span>评论: </span>
<span>{{.Blog.User.BlogComment}}</span> <span>{{.User.BlogComment}}</span>
</div> </div>
<div style="display: inline-block;flex: 1"> <div style="display: inline-block;flex: 1">
<span>喜欢: </span> <span>喜欢: </span>
<span>{{.Blog.User.BlogLike}}</span> <span>{{.User.BlogLike}}</span>
</div> </div>
</div> </div>
<hr style="height:1px;border:none;border-top:1px solid #EEE;margin: 6px;"/> <hr style="height:1px;border:none;border-top:1px solid #EEE;margin: 6px;"/>
</div> </div>
<div class="me-blog-root"> <div class="me-blog-root">
<div class="me-blog-list"> <div class="me-blog-list">
<p>vue webpack方式调用amap高德地图及其UI组件</p> {{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="">删除</a></span>
</div>
<hr style="height:1px;border:none;border-top:1px solid #EEE;margin: 6px;"/>
{{end}}
<div style="text-align: center">
<nav>
<div class="pagination pagination-lg">
<ul>
{{if .Page.FirstPage}}
{{else}}
<li class="prev">
<a href="/me/blog?num={{ .Page.PageNo | NAdd -1}}&flag={{.Flag}}">&laquo;</a>
</li>
{{end}}
<li class="active"><a href="javascript:void(0)">{{.Page.PageNo}}</a></li>
{{if .Page.LastPage}}
{{else}}
<li class="next">
<a href="/me/blog?num={{ .Page.PageNo | NAdd +1}}&flag={{.Flag}}">&raquo;</a>
</li>
{{end}}
</ul>
</div>
</nav>
</div>
</div> </div>
{{template "footer"}} {{template "footer"}}
</div> </div>

Loading…
Откажи
Сачувај