package archiveapi import ( "github.com/flipped-aurora/gin-vue-admin/server/commonus" "github.com/flipped-aurora/gin-vue-admin/server/global" "github.com/flipped-aurora/gin-vue-admin/server/model/archivesmodel" "github.com/flipped-aurora/gin-vue-admin/server/model/common/response" "github.com/gin-gonic/gin" ) //图文信息模块 type GraphicInformation struct{} //文档列表 func (g *GraphicInformation) ArchiveFileList(c *gin.Context) { var requestData fileList err := c.ShouldBindJSON(&requestData) if err != nil { response.Result(101, err, "参数错误!请重新提交!", c) return } if requestData.ParentId == 0 { response.Result(102, err, "参数错误!请重新提交!", c) return } //查询条件 whereMap := commonus.MapOut() whereMap["g_parent"] = requestData.ParentId //判断集团 if requestData.Group != 0 { whereMap["g_write_group"] = requestData.Group } //判断分厂 if requestData.Factory != 0 { whereMap["g_write_bfid"] = requestData.Factory } //判断工段 if requestData.Position != 0 { whereMap["g_ws_id"] = requestData.Position } //判断班组 if requestData.Team != 0 { whereMap["g_team"] = requestData.Team } //判断所属栏目 if requestData.ColumnId != 0 { whereMap["g_parent_sun"] = requestData.ColumnId } if requestData.PageSize == 0 { requestData.PageSize = 20 } if requestData.Page <= 0 { requestData.Page = 1 } // psge := (requestData.Page - 1) * requestData.PageSize appointPages := commonus.CalculatePages(requestData.Page, requestData.PageSize) var fileList []archivesmodel.ArchiveFile var total int64 //获取所有数据 if requestData.Title != "" { listTitleErr := global.GVA_DB_BooImgkDate.Where(whereMap).Where("`g_title` LIKE %?% AND `g_state` IN ?", requestData.Title, []int{1, 2, 3}).Order("`g_id` DESC").Limit(requestData.PageSize).Offset(appointPages).Find(&fileList).Error if listTitleErr != nil { response.Result(103, listTitleErr, "数据获取失败!", c) return } counrErr := global.GVA_DB_BooImgkDate.Model(&fileList).Where(whereMap).Where("`g_title` LIKE %?% AND `g_state` IN ?", requestData.Title, []int{1, 2, 3}).Count(&total).Error if counrErr != nil { total = 0 } } else { listErr := global.GVA_DB_BooImgkDate.Where(whereMap).Where("`g_state` IN ?", []int{1, 2, 3}).Order("`g_id` DESC").Limit(requestData.PageSize).Offset(appointPages).Find(&fileList).Error if listErr != nil { response.Result(104, listErr, "数据获取失败!", c) return } counrErr := global.GVA_DB_BooImgkDate.Model(&fileList).Where(whereMap).Where("`g_state` IN ?", []int{1, 2, 3}).Count(&total).Error if counrErr != nil { total = 0 } } var fileListAry []callBackFilesList for _, fileCont := range fileList { var archiveTypeCont archivesmodel.ArchivesType var fileListInfo callBackFilesList fileListInfo.Id = fileCont.Id fileListInfo.Title = fileCont.Title fileListInfo.ColumnId = fileCont.ParentSun archiveTypeCont.Id = fileCont.ParentSun arcTypeErr := archiveTypeCont.GetArchiveTypeInfo() // fmt.Printf("%v========>%v------->%v\n", arcTypeErr, archiveTypeCont, archiveTypeCont.Title) if arcTypeErr == nil { fileListInfo.ColumnTitle = archiveTypeCont.Title } else { fileListInfo.ColumnTitle = "" } reading, comment, collect, likes, tread, score := getBookArrter(fileCont.Id) //计算文章属性 fileListInfo.Reading = reading fileListInfo.Comment = comment fileListInfo.Collect = collect fileListInfo.Likes = likes fileListInfo.Tread = tread fileListInfo.Score = score fileListInfo.Scope = fileCont.VisitStrat if fileCont.State == 2 { fileListInfo.State = true } else { fileListInfo.State = false } fileListAry = append(fileListAry, fileListInfo) } countSum := len(fileListAry) printData := commonus.OutPutList(total, int64(countSum), requestData.Page, requestData.PageSize, fileListAry) // fmt.Printf("%v\n", printData) response.Result(0, printData, "查询成功!", c) } //获取文档属性 global.GVA_DB_BookDate func getBookArrter(id int64) (Reading, Comment, Collect, Likes, Tread, Score int64) { var bookAttr archivesmodel.BookAttribute readingErr := global.GVA_DB_BookDate.Model(&bookAttr).Where("`b_file_id` = ? AND `b_stater` = ? AND `b_type` = ?", id, 1, 1).Count(&Reading).Error if readingErr != nil { Reading = 0 } collectErr := global.GVA_DB_BookDate.Model(&bookAttr).Where("`b_file_id` = ? AND `b_stater` = ? AND `b_type` = ?", id, 1, 2).Count(&Collect).Error if collectErr != nil { Collect = 0 } likesErr := global.GVA_DB_BookDate.Model(&bookAttr).Where("`b_file_id` = ? AND `b_stater` = ? AND `b_type` = ?", id, 1, 3).Count(&Likes).Error if likesErr != nil { Likes = 0 } treadErr := global.GVA_DB_BookDate.Model(&bookAttr).Where("`b_file_id` = ? AND `b_stater` = ? AND `b_type` = ?", id, 1, 3).Count(&Tread).Error if treadErr != nil { Tread = 0 } var siscussMsg archivesmodel.DiscussMsg commentErr := global.GVA_DB_BookDate.Model(&siscussMsg).Where("dis_file_id = ? AND dis_stater = ?", id, 2).Count(&Comment).Error if commentErr != nil { Comment = 0 } return }