package archiveapi import ( "time" "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 ArchiveApiHandle struct{} func (a *ArchiveApiHandle) Index(c *gin.Context) { outPut := commonus.MapOut() response.Result(0, outPut, "获取成功", c) } //栏目列表 func (a *ArchiveApiHandle) ArchiveTypeList(c *gin.Context) { var requestData archiveTypeListStruct err := c.ShouldBindJSON(&requestData) if err != nil { response.Result(101, err, "参数错误!请重新提交!", c) return } if requestData.PageSize == 0 { requestData.PageSize = 20 } if requestData.Page <= 0 { requestData.Page = 1 } // psge := (requestData.Page - 1) * requestData.PageSize psge := commonus.CalculatePages(requestData.Page, requestData.PageSize) var archiveList []archivesmodel.ArchivesType //条件 whereMap := commonus.MapOut() if requestData.ParentId != 0 { whereMap["at_parent_id"] = requestData.ParentId } else { whereMap["at_parent_id"] = 0 } listErr := global.GVA_DB_Master.Where(whereMap).Where("`at_stater` IN ?", []int{1, 2}).Order("`at_sort` ASC,`at_id` DESC").Limit(requestData.PageSize).Offset(psge).Find(&archiveList).Error if listErr != nil { response.Result(102, err, "未获取到数据!", c) return } var outPutList []archiveTypeOutPut for _, listVal := range archiveList { var listCont archiveTypeOutPut listCont.Id = listVal.Id listCont.ColumnrName = listVal.Title listCont.Sort = listVal.Sort if listVal.Stater == 1 { listCont.State = true } else { listCont.State = false } outPutList = append(outPutList, listCont) } var total int64 //获取所有数据 counrErr := global.GVA_DB_Master.Model(&archiveList).Where(whereMap).Where("`at_stater` IN ?", []int{1, 2}).Count(&total).Error if counrErr != nil { total = 0 } countSum := len(outPutList) printData := commonus.OutPutList(total, int64(countSum), requestData.Page, requestData.PageSize, outPutList) // fmt.Printf("%v\n", printData) response.Result(0, printData, "查询成功!", c) } //添加栏目 func (a *ArchiveApiHandle) AddArchive(c *gin.Context) { var arrData appArchiveType err := c.ShouldBindJSON(&arrData) if err != nil { response.Result(101, err, "参数错误!请重新提交!", c) return } if arrData.UID == 0 { response.Result(102, err, "参数错误!请重新提交!", c) return } if arrData.Title == "" { response.Result(103, err, "请输入栏目名称!", c) return } if arrData.Sort == 0 { arrData.Sort = 50 } // if var archiveInfo archivesmodel.ArchivesType archiveInfo.Id = commonus.GetFileNumberEs() archiveInfo.ParentId = arrData.ParentId archiveInfo.Stater = 1 archiveInfo.UID = arrData.UID archiveInfo.Sort = arrData.Sort archiveInfo.Time = time.Now().Unix() archiveInfo.Title = arrData.Title addArchiveErr := global.GVA_DB_Master.Create(&archiveInfo).Error if addArchiveErr != nil { response.Result(104, archiveInfo, "数据写入失败!", c) } else { response.Result(0, addArchiveErr, "数据写入成功!", c) } } //获取单个信息栏目 func (a *ArchiveApiHandle) GetArchiveInfo(c *gin.Context) { var arrData commonus.SetId err := c.ShouldBindJSON(&arrData) if err != nil { response.Result(101, err, "参数错误!请重新提交!", c) return } if arrData.Id == 0 { response.Result(102, arrData, "参数错误!请重新提交!", c) return } var archiveInfo archivesmodel.ArchivesType archiveInfoErr := global.GVA_DB_Master.Where("at_id = ?", arrData.Id).First(&archiveInfo).Error if archiveInfoErr != nil { response.Result(103, archiveInfoErr, "该栏目不存在!", c) return } response.Result(0, archiveInfo, "获取成功!", c) } //改变栏目状态 func (a *ArchiveApiHandle) EiteArchiveState(c *gin.Context) { var arrData archiveState err := c.ShouldBindJSON(&arrData) if err != nil { response.Result(101, err, "参数错误!请重新提交!", c) return } if arrData.Id == 0 { response.Result(102, arrData, "参数错误!请重新提交!", c) return } if arrData.State == 0 { arrData.State = 1 } var archiveInfo archivesmodel.ArchivesType if arrData.IsDel != 1 { isTrue, saveErr := archiveStateSet(archiveInfo, arrData) if isTrue != true { response.Result(103, saveErr, "修改失败!", c) return } response.Result(0, arrData, "修改成功!", c) } else { if arrData.State == 3 { archiveInfoErr := global.GVA_DB_Master.Where("at_id = ?", arrData.Id).Delete(&archiveInfo).Error if archiveInfoErr != nil { response.Result(104, arrData, "删除失败!", c) return } response.Result(0, arrData, "删除成功!", c) } else { isTrue, saveErr := archiveStateSet(archiveInfo, arrData) if isTrue != true { response.Result(105, saveErr, "修改失败!", c) return } response.Result(0, arrData, "修改成功!", c) } } } //状态软操作 func archiveStateSet(archiveInfo archivesmodel.ArchivesType, arrData archiveState) (isTrue bool, archiveInfoErr error) { isTrue = false //软处理 saveData := commonus.MapOut() saveData["at_stater"] = arrData.State saveData["at_time"] = time.Now().Unix() archiveInfoErr = global.GVA_DB_Master.Model(&archiveInfo).Where("at_id = ?", arrData.Id).Updates(saveData).Error if archiveInfoErr != nil { return } isTrue = true return } //修改栏目信息 func (a *ArchiveApiHandle) EiteArchiveInfo(c *gin.Context) { var arrData eiteArchiveCont err := c.ShouldBindJSON(&arrData) if err != nil { response.Result(101, err, "参数错误!请重新提交!", c) return } if arrData.Id == 0 { response.Result(102, arrData, "参数错误!请重新提交!", c) return } if arrData.Title == "" { response.Result(103, err, "请输入栏目名称!", c) return } if arrData.Sort == 0 { arrData.Sort = 50 } var archiveInfo archivesmodel.ArchivesType saveData := commonus.MapOut() saveData["at_title"] = arrData.Title saveData["at_sort"] = arrData.Sort saveData["at_time"] = time.Now().Unix() archiveInfoErr := global.GVA_DB_Master.Model(&archiveInfo).Where("at_id = ?", arrData.Id).Updates(saveData).Error if archiveInfoErr != nil { response.Result(104, err, "修改失败!", c) return } response.Result(0, err, "修改成功!", c) } //批量修改栏目 func (a *ArchiveApiHandle) BatchEiteArchiveState(c *gin.Context) { var arrData batchArchiveState err := c.ShouldBindJSON(&arrData) if err != nil { response.Result(101, err, "参数错误!请重新提交!", c) return } if len(arrData.Id) < 1 { response.Result(102, arrData, "参数错误!请重新提交!", c) return } if arrData.State == 0 { arrData.State = 1 } var archiveInfo archivesmodel.ArchivesType if arrData.IsDel != 1 { isTrue, saveErr := batchArchiveStateSet(archiveInfo, arrData) if isTrue != true { response.Result(103, saveErr, "修改失败!", c) return } response.Result(0, arrData, "修改成功!", c) } else { if arrData.State == 3 { archiveInfoErr := global.GVA_DB_Master.Where("at_id IN ?", arrData.Id).Delete(&archiveInfo).Error if archiveInfoErr != nil { response.Result(104, arrData, "删除失败!", c) return } response.Result(0, arrData, "删除成功!", c) } else { isTrue, saveErr := batchArchiveStateSet(archiveInfo, arrData) if isTrue != true { response.Result(105, saveErr, "修改失败!", c) return } response.Result(0, arrData, "修改成功!", c) } } } //批量状态软操作 func batchArchiveStateSet(archiveInfo archivesmodel.ArchivesType, arrData batchArchiveState) (isTrue bool, archiveInfoErr error) { isTrue = false //软处理 saveData := commonus.MapOut() saveData["at_stater"] = arrData.State saveData["at_time"] = time.Now().Unix() archiveInfoErr = global.GVA_DB_Master.Model(&archiveInfo).Where("at_id IN ?", arrData.Id).Updates(saveData).Error if archiveInfoErr != nil { return } isTrue = true return }