Browse Source

首页

layui
mail_yanpeng@163.com 6 years ago
parent
commit
d12fea9949
  1. 5
      conf/app.conf
  2. 1
      controllers/BlogController.go
  3. 17
      controllers/IndexController.go
  4. 14
      models/Blog.go
  5. 3
      models/DataInit.go
  6. 28
      service/BlogService.go
  7. 50
      static/css/blogs.css
  8. 53
      static/css/index.css
  9. 2
      views/blogs.html
  10. 50
      views/index.html

5
conf/app.conf

@ -1,6 +1,6 @@
appname = beeblog
httpport = 8082
runmode = prod
runmode = dev
sessionon = true
sessiongcmaxlifetime = 36000
@ -9,3 +9,6 @@ EnableGzip = true
EnableDocs = true
host = aiprose.com
[dev]
[prod]

1
controllers/BlogController.go

@ -199,3 +199,4 @@ func (this *BlogController) BlogsPage() {
this.Data["IsBlog"] = true
this.TplName = "blogs.html"
}

17
controllers/IndexController.go

@ -2,6 +2,7 @@ package controllers
import (
"github.com/astaxie/beego"
"beeblog/service"
)
type IndexController struct {
@ -9,6 +10,20 @@ type IndexController struct {
}
func (this *IndexController) Get() {
this.Redirect("blogs",302)
timeBlog, _ := service.IndexBlogs(12, 0)
this.Data["TimeBlog"] = timeBlog
browsBlog, _ := service.IndexBlogs(12, 1)
this.Data["BrowsBlog"] = browsBlog
likeBlog, _ := service.IndexBlogs(12, 2)
this.Data["LikeBlog"] = likeBlog
commentBlog, _ := service.IndexBlogs(12, 3)
this.Data["CommBlog"] = commentBlog
this.Data["UserId"] = this.GetSession("userid")
this.Data["HeadImg"] = this.GetSession("headimg")
this.Data["NickName"] = this.GetSession("nickname")
this.Data["IsLogin"] = this.GetSession("nickname") != nil
this.Data["IsHome"] = true
this.TplName = "index.html"
return
}

14
models/Blog.go

@ -13,6 +13,8 @@ type Blog struct {
Ctime time.Time `orm:"auto_now_add;type(datetime)"`
Utime time.Time `orm:"auto_now_add;type(datetime)"`
Browses int64 `orm:"default(0)"`
Likes int64 `orm:"default(0)"`
Comments int64 `orm:"default(0)"`
Top int `orm:"default(0)"`
Hot int `orm:"default(0)"`
Ttime time.Time `orm:"null;type(date)"`
@ -20,10 +22,10 @@ type Blog struct {
Delflag int `orm:"default(0)"`
CategoryId int64
User *User `orm:"-"`
UserName string `orm:"-"`
HeadImg string `orm:"-"`
CateName string `orm:"-"`
Lables []*NLabel `orm:"-"`
Comms []*Comment `orm:"-"`
User *User `orm:"-"`
UserName string `orm:"-"`
HeadImg string `orm:"-"`
CateName string `orm:"-"`
Lables []*NLabel `orm:"-"`
Comms []*Comment `orm:"-"`
}

3
models/DataInit.go

@ -24,5 +24,6 @@ func RegistDB() {
//orm.RegisterDataBase("default",_SQLITE3_DRIVER,_DB_NAME,10)
orm.RegisterModel(new(Attachment),new(User),new(Blog),new(NLabel),new(Note),new(NoteColl),new(Category),new(Like),new(Comment))
orm.RegisterDataBase("default", "mysql", "root:booszy@tcp(127.0.0.1:3306)/beeblog?charset=utf8&loc=Local", 30)
//orm.RegisterDataBase("default", "mysql", "root:booszy@tcp(127.0.0.1:3306)/beeblog?charset=utf8&loc=Local", 30)
orm.RegisterDataBase("default", "mysql", "root:booszy@tcp(47.98.109.5:3306)/beeblog?charset=utf8&loc=Local", 30)
}

28
service/BlogService.go

@ -50,7 +50,7 @@ func TopBlogByUser(uid int64) ([]*models.Blog, error) {
func ReadBlog(id int64) (*models.Blog, error) {
o := orm.NewOrm()
blog := &models.Blog{Id: id}
if err := o.Read(blog);err != nil {
if err := o.Read(blog); err != nil {
return nil, err
}
return blog, nil
@ -74,8 +74,8 @@ func GetBlog(id int64) (*models.Blog, error) {
if err == nil {
blog.Lables = labels
}
comms , berr:= FindCommentByBlog(id)
if berr == nil{
comms, berr := FindCommentByBlog(id)
if berr == nil {
blog.Comms = comms
}
return blog, nil
@ -161,7 +161,7 @@ func EditBlog(blog *models.Blog, strs []string) error {
o.Rollback()
return eror
} else {
o.QueryTable(models.NLabel{}).Filter("BlogId",blog.Id).Delete()
o.QueryTable(models.NLabel{}).Filter("BlogId", blog.Id).Delete()
if strs != nil && len(strs) > 0 {
nlabels := make([]*models.NLabel, len(strs))
for i := 0; i < len(strs); i++ {
@ -201,6 +201,26 @@ 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) {
var blogs []*models.Blog
o := orm.NewOrm()
qs := o.QueryTable(&models.Blog{})
qs = qs.Filter("Delflag", 0)
switch flag {
case 0:
qs = qs.OrderBy("-Ctime") //最新
case 1:
qs = qs.OrderBy("-Browses") //浏览量
case 2:
qs = qs.OrderBy("-Likes") // 收藏量
case 3:
qs = qs.OrderBy("-Comments") // 评论量
}
qs = qs.Limit(size, 0)
_, err := qs.All(&blogs)
return blogs, err
}
func GetNLabel(id int64) ([]*models.NLabel, error) {
var labels []*models.NLabel
o := orm.NewOrm()

50
static/css/blogs.css

@ -0,0 +1,50 @@
.home-container{
height: 100%;
margin: 50px 4% 0 4%;
}
.home-container hr{
margin: 0;
}
.home-hearder {
margin: 10px 0;
display: flex;
height: 30px;
line-height: 30px;
}
.nelson-btn{
color: #ec6149 !important;
border-radius: 15px;
border: 1px solid #bbb !important;
}
.nelson-btn:hover{
background: #fff !important;
color: #ec6149 !important;
border-radius: 15px;
border: 1px solid #ec6149 !important;
}
.home-content{
display: flex;
min-height: 50px;
line-height: 50px;
}
.home-content-title{
display: inline-block;
font-size: 16px;
/*width: 65%;*/
flex: 1;
}
.home-content-desc{
display: flex
}
.home-content-desc span{
display: inline-block;
text-align: center
}

53
static/css/index.css

@ -1,50 +1,7 @@
.home-container{
height: 100%;
margin: 50px 4% 0 4%;
}
.home-container hr{
margin: 0;
}
.home-hearder {
margin: 10px 0;
display: flex;
height: 30px;
line-height: 30px;
}
.nelson-btn{
color: #ec6149 !important;
border-radius: 15px;
border: 1px solid #bbb !important;
}
.nelson-btn:hover{
background: #fff !important;
color: #ec6149 !important;
border-radius: 15px;
border: 1px solid #ec6149 !important;
}
.home-content{
display: flex;
min-height: 50px;
line-height: 50px;
}
.home-content-title{
display: inline-block;
font-size: 16px;
/*width: 65%;*/
flex: 1;
}
.home-content-desc{
display: flex
}
.home-content-desc span{
display: inline-block;
text-align: center
.blog-root h5{
color: #888;
}
.blog-root a {
text-decoration: none;
}

2
views/blogs.html

@ -1,7 +1,7 @@
{{template "header"}}
<meta name="keywords" content="个人随笔,博客,个人博客,个人笔记,技术博客,免费云笔记,云笔记,随笔,IT博客,谷歌地图,码农笔录,www.aiprose.com,aiprose.com,aiprose">
<title>博客列表 - 个人随笔</title>
<link type="text/css" rel="styleSheet" href="/static/css/index.css"/>
<link type="text/css" rel="styleSheet" href="/static/css/blogs.css"/>
</head>
<body>
<div class="root-container">

50
views/index.html

@ -0,0 +1,50 @@
{{template "header"}}
<meta name="keywords" content="个人随笔,博客,个人博客,个人笔记,技术博客,免费云笔记,云笔记,随笔,IT博客,谷歌地图,码农笔录,www.aiprose.com,aiprose.com,aiprose">
<title>首页 - 个人随笔</title>
<link type="text/css" rel="styleSheet" href="/static/css/index.css"/>
</head>
<body>
{{template "nav" .}}
<div class="jumbotron" style="margin-top: 41px;padding-left: 50px;margin-bottom: 10px">
<h1>Hello, world!</h1>
<p>个人随笔2.0(golang)版本正式上线</p>
<p><a class="btn btn-primary btn-lg" href="" role="button">Learn more</a></p>
</div>
<div style="margin: 0 5%" class="blog-root">
<div style="display: flex">
<div style="flex: 1">
<h5>最新发布</h5>
{{range .TimeBlog}}
<p><a href="/blog/{{.Id}}">{{.Title}}</a></p>
{{end}}
</div>
<div style="flex: 1">
<h5>流量王者</h5>
{{range .BrowsBlog}}
<p><a href="/blog/{{.Id}}">{{.Title}}</a></p>
{{end}}
</div>
</div>
<div style="display: flex">
<div style="flex: 1">
<h5>收藏排行</h5>
{{range .LikeBlog}}
<p><a href="/blog/{{.Id}}">{{.Title}}</a></p>
{{end}}
</div>
<div style="flex: 1">
<h5>人气最旺</h5>
{{range .CommBlog}}
<p><a href="/blog/{{.Id}}">{{.Title}}</a></p>
{{end}}
</div>
</div>
</div>
<div>
</div>
<div style="margin-top: 30px">
{{template "footer"}}
</div>
</body>
</html>
Loading…
Cancel
Save