package archiveapi
import (
"strconv"
"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 . OutId = strconv . FormatInt ( listVal . Id , 10 )
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
}
if arrData . OutId != "" {
outIdVal , outIdErr := strconv . ParseInt ( arrData . OutId , 10 , 64 )
if outIdErr != nil {
response . Result ( 1022 , arrData , "参数错误!请重新提交!" , c )
return
}
arrData . Id = outIdVal
// response.Result(1022, outIdVal, "参数错误!请重新提交!", c)
// return
// // arrData.Id = outIdVal
}
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
}
outPutInfo := commonus . MapOut ( )
// outIdset, outIdsetErr := strconv.ParseInt(archiveInfo.Id, 10, 64)
outIdset := strconv . FormatInt ( archiveInfo . Id , 10 )
outPutInfo [ "id" ] = outIdset
outPutInfo [ "id" ] = archiveInfo . Id
outPutInfo [ "title" ] = archiveInfo . Title
outPutInfo [ "stater" ] = archiveInfo . Stater
outPutInfo [ "parentId" ] = archiveInfo . ParentId
outPutInfo [ "time" ] = archiveInfo . Time
outPutInfo [ "uid" ] = archiveInfo . UID
outPutInfo [ "sort" ] = archiveInfo . Sort
response . Result ( 0 , outPutInfo , "获取成功!" , 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 && arrData . OutId == "" {
response . Result ( 102 , arrData , "参数错误!请重新提交!" , c )
return
}
if arrData . OutId != "" {
outIdVal , outIdErr := strconv . ParseInt ( arrData . OutId , 10 , 64 )
if outIdErr != nil {
response . Result ( 102 , arrData , "参数错误!请重新提交!" , c )
return
}
arrData . Id = outIdVal
}
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 . OutId != "" {
outIdVal , outIdErr := strconv . ParseInt ( arrData . OutId , 10 , 64 )
if outIdErr != nil {
response . Result ( 102 , arrData , "参数错误!请重新提交!" , c )
return
}
arrData . Id = outIdVal
}
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
}