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`,`g_thumbnail`") if requestData.Types == 5 { gormDb = gormDb.Where("`g_recommend` = 1") } if requestData.GroupId != "" { gormDb = gormDb.Where("`g_parent` = ?", requestData.GroupId) } if requestData.SunGroupId != "" { gormDb = gormDb.Where("`g_parent_sun` = ?", requestData.SunGroupId) } 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"` sendCont.Thumbnail = v.Thumbnail sendCont.Describe = v.Describe sendList = append(sendList, sendCont) } publicmethod.ResultList(0, requestData.Page, requestData.PageSize, total, int64(len(sendList)), sendList, c) } /* * @ 作者: 秦东 @ 时间: 2024-11-08 11:29:11 @ 功能: 录播图 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) HomeCarouselImage(c *gin.Context) { var requestData CarouselImage err := c.ShouldBindJSON(&requestData) if err != nil { publicmethod.Result(10001, err, c) return } if requestData.Num == 0 { requestData.Num = 1 } var list []modelbookimg.GraphicForm overall.CONSTANT_DB_IMAGES_TEST.Model(&modelbookimg.GraphicForm{}).Select("`g_id`,`g_title`,`g_thumbnail`").Where("`g_state` = 2 AND `g_thumbnail` <> '' ").Limit(requestData.Num).Order("`g_add_time` DESC").Find(&list) var sendData []SendCarouselImage for _, v := range list { var sendInfo SendCarouselImage sendInfo.Id = strconv.FormatInt(v.Id, 10) sendInfo.Title = v.Title sendInfo.Img = v.Thumbnail sendData = append(sendData, sendInfo) } publicmethod.Result(0, sendData, c) } /* * @ 作者: 秦东 @ 时间: 2024-11-11 08:41:54 @ 功能: 按分类获取新闻信息 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) GetHomenNews(c *gin.Context) { var requestData NewsClassInfo c.ShouldBindJSON(&requestData) //获取当前登录人信息 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 schoolId []int64 var list []SendNewsInfo gormDb := overall.CONSTANT_DB_IMAGES_TEST.Model(&modelbookimg.GraphicForm{}).Where("`g_state` = 2") if requestData.GroupId != "" { gormDb = gormDb.Where("`g_parent` = ?", requestData.GroupId) } if requestData.SunGroupId != "" { gormDb = gormDb.Where("`g_parent_sun` = ?", requestData.SunGroupId) } switch requestData.Types { case 1: gormDb = gormDb.Where("`g_recommend` = 1") gormDb = gormDb.Order("`g_add_time` DESC") case 2: //不推荐 gormDb = gormDb.Where("`g_recommend` <> 1") gormDb = gormDb.Order("`g_add_time` DESC") case 3: //热门 gormDb = gormDb.Order("`g_read` DESC") gormDb = gormDb.Order("`g_com_sum` DESC") case 4: //收藏 gormDb = gormDb.Where("`g_collection_sum` > 0") gormDb = gormDb.Order("`g_collection_sum` DESC") case 5: //点赞 gormDb = gormDb.Where("`g_likes` > 0") gormDb = gormDb.Order("`g_likes` DESC") case 6: //评论 gormDb = gormDb.Where("`g_com_sum` > 0") gormDb = gormDb.Order("`g_com_sum` DESC") case 7: //阅读量 gormDb = gormDb.Order("`g_read` DESC") default: gormDb = gormDb.Order("`g_add_time` DESC") } // 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) if requestData.Limit < 1 { requestData.Limit = 1 } err := gormDb.Limit(requestData.Limit).Find(&list).Error if err != nil && len(list) < 1 { publicmethod.Result(0, err, c) return } for i, v := range list { list[i].IdStr = strconv.FormatInt(v.Id, 10) list[i].CreationTime = publicmethod.UnixTimeToDay(v.AddTime, 4) } publicmethod.Result(0, list, c) } /* * @ 作者: 秦东 @ 时间: 2024-11-11 15:23:15 @ 功能: 获取新闻类型分类 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) GetNewType(c *gin.Context) { var requestData publicmethod.PublicId err := c.ShouldBindJSON(&requestData) if err != nil { publicmethod.Result(100, err, c) return } if requestData.Id == "" { publicmethod.Result(1, err, c, "未知参数!") return } var list []SendMsgArchives err = overall.CONSTANT_DB_Master.Where("`at_stater` = 1 AND `at_parent_id` = ?", requestData.Id).Order("`at_sort` ASC").Find(&list).Error if err != nil || len(list) < 1 { publicmethod.Result(0, list, c) return } for i, v := range list { list[i].IdStr = strconv.FormatInt(v.Id, 10) } publicmethod.Result(0, list, c) } /* * @ 作者: 秦东 @ 时间: 2024-11-12 10:05:02 @ 功能: 新闻列表资讯 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) NewHotNews(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 []SendNewsInfo gormDb := overall.CONSTANT_DB_IMAGES_TEST.Model(&modelbookimg.GraphicForm{}).Where("`g_state` = 2") if requestData.Types == 5 { gormDb = gormDb.Where("`g_recommend` = 1") } if requestData.GroupId != "" { gormDb = gormDb.Where("`g_parent` = ?", requestData.GroupId) } if requestData.SunGroupId != "" { gormDb = gormDb.Where("`g_parent_sun` = ?", requestData.SunGroupId) } 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"` // sendCont.Thumbnail = v.Thumbnail // sendCont.Describe = v.Describe // sendList = append(sendList, sendCont) // } for i, v := range list { list[i].IdStr = strconv.FormatInt(v.Id, 10) list[i].CreationTime = publicmethod.UnixTimeToDay(v.AddTime, 4) } publicmethod.ResultList(0, requestData.Page, requestData.PageSize, total, int64(len(list)), list, c) }