Commit db6cbe19 authored by shajiaiming's avatar shajiaiming

优化快讯

parent 19739590
......@@ -37,19 +37,39 @@ func ExistNewsById(id int) (bool, error) {
func GetNewsTotal(maps interface{}) (int, error) {
var count int
//if tmpmap, ok := maps.(map[string]interface{}); ok {
// _, ok = tmpmap["search_type"]
// if ok {
//
// }
//}
if _, ok := maps.(map[string]interface{})["search_type"]; ok {
if err := db.Model(&News{}).Where("platform_id in (?)", maps.(map[string]interface{})["search_type"]).Count(&count).Error; err != nil {
return 0, err
}
} else {
if err := db.Model(&News{}).Where(maps).Count(&count).Error; err != nil {
return 0, err
}
}
return count, nil
}
func GetNews(pageNum, pageSize int, maps interface{}) ([]*News, error) {
var news []*News
err := db.Where(maps).Offset(pageNum).Limit(pageSize).Find(&news).Error
if _, ok := maps.(map[string]interface{})["search_type"]; ok {
err := db.Where("platform_id in (?)", maps.(map[string]interface{})["search_type"]).Order("create_time desc").Offset(pageNum).Limit(pageSize).Find(&news).Error
if err != nil && err != gorm.ErrRecordNotFound {
return nil, err
}
} else {
err := db.Where(maps).Order("create_time desc").Offset(pageNum).Limit(pageSize).Find(&news).Error
if err != nil && err != gorm.ErrRecordNotFound {
return nil, err
}
}
return news, nil
}
......
......@@ -7,6 +7,7 @@ import (
"bwallet/pkg/util"
"bwallet/service/news_service"
"fmt"
"github.com/astaxie/beego/validation"
"github.com/gin-gonic/gin"
"strconv"
)
......@@ -22,9 +23,15 @@ func GetOneNews(c *gin.Context) {
func GetNews(c *gin.Context) {
platform_id, _ := strconv.Atoi(c.Request.Header.Get("FZM-PLATFORM-ID"))
valid := validation.Validation{}
valid.Min(platform_id, 1, "platform_id").Message("平台Id不能为空")
if valid.HasErrors() {
handler.SendResponse(c, valid.Errors[0], nil)
return
}
newsService := news_service.News{
PlatformId: platform_id,
SearchType: -1,
PageNum: util.GetPage(c),
PageSize: util.GetLimit(c),
}
......
......@@ -13,6 +13,7 @@ type News struct {
Highlight uint8
Status uint8
PlatformId int
SearchType int
PageNum int
PageSize int
......@@ -95,5 +96,10 @@ func (n *News) getMaps() (map[string]interface{}) {
maps["platform_id"] = n.PlatformId
}
if n.SearchType != 0 {
platform_id := [] int{n.PlatformId, n.SearchType}
maps["search_type"] = platform_id
}
return maps
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment