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.
321 lines
9.2 KiB
321 lines
9.2 KiB
package archiveapi
|
|
|
|
import (
|
|
"strconv"
|
|
"time"
|
|
|
|
"gin_server_admin/commonus"
|
|
"gin_server_admin/global"
|
|
"gin_server_admin/model/archivesmodel"
|
|
"gin_server_admin/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
|
|
}
|
|
|