应用集成平台服务端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

126 lines
3.9 KiB

package newsclass
import (
"appPlatform/models/modelbookimg"
"appPlatform/models/modelshr"
"appPlatform/overall"
"appPlatform/overall/publicmethod"
"strconv"
"github.com/gin-gonic/gin"
)
/*
*
@ 作者: 秦东
@ 时间: 2023-11-09 10:18:58
@ 功能: 热门新闻
@ 参数
#
@ 返回值
#
@ 方法原型
#
*/
func (a *ApiMethod) HotNews(c *gin.Context) {
var requestData HosNewsParameter
err := c.ShouldBindJSON(&requestData)
if err != nil {
publicmethod.Result(10001, err, c)
return
}
if requestData.Page == 0 {
requestData.Page = 1
}
if requestData.PageSize == 0 {
requestData.PageSize = 7
}
if requestData.Types == 0 {
requestData.Types = 1
}
context, _ := c.Get(overall.MyContJwt)
var userCont modelshr.ManCont
userCont.GetLoginCont(context)
var sunOrg publicmethod.GetOrgAllParent
sunOrg.GetOrgSonAllId(userCont.MainDeparment)
sunOrg.Id = append(sunOrg.Id, userCont.MainDeparment)
var orgListInfo []modelshr.OrgContType
overall.CONSTANT_DB_HR.Select("`id`,`level`").Where("`id` IN ?", sunOrg.Id).Find(&orgListInfo)
var orgAry []int64
var workPost []int64
for i := 0; i < len(orgListInfo); i++ {
// var orgType modelshr.OrgContType
// orgType.GetCont(map[string]interface{}{"`id`": orgListInfo[i].OrganizationType}, "`level`")
if orgListInfo[i].Level >= 6 {
workPost = append(workPost, orgListInfo[i].Id)
} else {
orgAry = append(orgAry, orgListInfo[i].Id)
}
}
var list []modelbookimg.GraphicForm
gormDb := overall.CONSTANT_DB_IMAGES_TEST.Model(&modelbookimg.GraphicForm{}).Select("`g_id`,`g_title`,`g_content`,`g_text_name`,`g_test_url`,`g_physics_path`,`g_add_time`,`g_read`,`g_com_sum`,`g_collection_sum`,`g_likes`,`g_step_on`")
if requestData.Types == 5 {
gormDb = gormDb.Where("`g_recommend` = 1")
}
gormDb = gormDb.Where("`g_state` = 2")
gormDb = gormDb.Where("`g_visit_strat` = 1 OR (`g_visit_strat` = 2 AND `g_bf_id` IN ?) OR (`g_visit_strat` = 3 AND `g_ws_id` IN ?) OR (`g_visit_strat` = 4 AND FIND_IN_SET(?,`g_range`))", orgAry, workPost, userCont.Id)
var total int64
totalErr := gormDb.Count(&total).Error
if totalErr != nil {
total = 0
}
gormDb = publicmethod.PageTurningSettings(gormDb, requestData.Page, requestData.PageSize)
switch requestData.Types {
case 1:
gormDb = gormDb.Order("`g_read` DESC").Order("`g_add_time` DESC")
case 2:
gormDb = gormDb.Order("`g_com_sum` DESC").Order("`g_add_time` DESC")
case 3:
gormDb = gormDb.Order("`g_collection_sum` DESC").Order("`g_add_time` DESC")
case 4:
gormDb = gormDb.Order("`g_likes` DESC").Order("`g_add_time` DESC")
case 5:
gormDb = gormDb.Order("`g_recommend` DESC").Order("`g_add_time` DESC")
case 6:
gormDb = gormDb.Order("`g_step_on` DESC").Order("`g_add_time` DESC")
default:
gormDb = gormDb.Order("`g_add_time` DESC")
}
err = gormDb.Find(&list).Error
if err != nil && len(list) < 1 {
publicmethod.Result(0, err, c)
return
}
var sendList []SendHotNews
for _, v := range list {
var sendCont SendHotNews
sendCont.Id = strconv.FormatInt(v.Id, 10)
sendCont.Title = v.Title //"title"`
sendCont.PageInfo = v.Content //"pageInfo"`
sendCont.FileName = v.TextName //"fileName"`
sendCont.FileUrl = v.TestUrl //"fileUrl"`
sendCont.FilePath = v.PhysicsPath //"filePath"`
sendCont.PageType = 1 //"pagetype"`
if v.TestUrl != "" {
sendCont.PageType = 2
}
sendCont.Time = publicmethod.UnixTimeToDay(v.AddTime, 24) //"time"`
sendCont.ReadNumber = v.Read //readNumber"`
sendCont.CommentNumber = v.ComSum //commentNumber"`
sendCont.CollectNumber = v.CollectionSum //collectNumber"`
sendCont.LikeNumber = v.Likes //likeNumber"`
sendCont.CriticizeNumber = v.StepOn //criticizeNumber"`
sendList = append(sendList, sendCont)
}
publicmethod.ResultList(0, requestData.Page, requestData.PageSize, total, int64(len(sendList)), sendList, c)
}