KPI绩效考核系统
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.

814 lines
28 KiB

package bookimg
import (
"fmt"
"key_performance_indicators/middleware/snowflake"
"key_performance_indicators/models/modelbookimg"
"key_performance_indicators/models/modelshr"
"key_performance_indicators/overall"
"key_performance_indicators/overall/publicmethod"
"strconv"
"sync"
"time"
"github.com/gin-gonic/gin"
)
// 用于删除图文信息评论的携程设置
var discusSyncSeting sync.WaitGroup
// 图文信息列表
func (a *ApiMethod) OutputListQuery(c *gin.Context) {
var requestData departListQuery
err := c.ShouldBindJSON(&requestData)
if err != nil {
publicmethod.Result(100, requestData, c)
return
}
fmt.Println(requestData)
var graphicformlist []modelbookimg.GraphicForm
var graphicform modelbookimg.GraphicForm
if requestData.Page == 0 {
requestData.Page = 1
}
if requestData.PageSize == 0 {
requestData.PageSize = 13
}
gormDb := overall.CONSTANT_DB_IMAGES_TEST.Model(&modelbookimg.GraphicForm{}).Table(fmt.Sprintf("%s g", graphicform.TableName()))
if requestData.Parent == 0 {
publicmethod.Result(101, requestData, c)
return
} else {
gormDb.Where("g.g_parent = ?", requestData.Parent)
}
if requestData.Attribution != "" {
gormDb.Joins("left join hengxingaoke_tes.archives_type at2 on g.g_parent_sun = at2.at_id").Where("at2.at_title like ?", "%"+requestData.Attribution+"%")
}
if requestData.BfId != 0 && requestData.WsId == 0 {
gormDb.Where(" g.g_bf_id = ?", requestData.BfId)
}
if requestData.BfId != 0 && requestData.WsId != 0 && requestData.Team == 0 {
gormDb.Where(" g.g_bf_id = ? and g.g_ws_id = ?", requestData.BfId, requestData.WsId)
}
if requestData.BfId != 0 && requestData.WsId != 0 && requestData.Team != 0 {
gormDb.Where(" g.g_bf_id = ? and g.g_ws_id = ? and g.g_team = ?", requestData.BfId, requestData.WsId, requestData.Team)
}
if requestData.Title != "" {
gormDb.Where("g.g_title like ?", "%"+requestData.Title+"%")
}
var total int64
totalErr := gormDb.Count(&total).Error
if totalErr != nil {
total = 0
}
gormDb = publicmethod.PageTurningSettings(gormDb, requestData.Page, requestData.PageSize)
err = gormDb.Select("g.*").Order("g.g_add_time DESC").Find(&graphicformlist).Error
if err != nil {
publicmethod.Result(105, err, c)
return
}
var output []outPutListQuery
for _, v := range graphicformlist {
var item outPutListQuery
item.Id = v.Id // id
item.Parent = v.Parent // 父级
item.Title = v.Title // 标题
item.State = v.State // 状态
item.VisitStrat = v.VisitStrat // 可见范围
item.ReadNum = v.Read // 阅读量
item.ComSum = v.ComSum // 评论量
item.LikesNum = v.Likes // 点赞量
item.StepOnNum = v.StepOn // 踩数量
item.CollectionSum = v.CollectionSum // 收藏数
item.Page = requestData.Page
item.PageSize = requestData.PageSize
var parentsun modelbookimg.ArchivesType
parentsun.GetCont(map[string]interface{}{"at_id": v.ParentSun})
item.Attribution = parentsun.Title
output = append(output, item)
}
publicmethod.ResultList(0, requestData.Page, requestData.PageSize, total, int64(len(output)), output, c)
}
// 编辑图文信息
func (a *ApiMethod) EditGraphicForm(c *gin.Context) {
var requestData editGraphicForm
err := c.ShouldBindJSON(&requestData)
if err != nil {
publicmethod.Result(100, requestData, c)
return
}
if requestData.Id == "" || requestData.Title == "" || requestData.Attribution == "" || requestData.Topid == 0 {
publicmethod.Result(101, requestData, c)
return
}
where := publicmethod.MapOut[string]()
where["g_id"] = requestData.Id
// 获取原信息
var graphicformOld modelbookimg.GraphicForm
err = graphicformOld.GetCont(where)
if err != nil {
publicmethod.Result(107, err, c)
return
}
// 要求改的内容
saveData := publicmethod.MapOut[string]()
if requestData.State != 0 && requestData.State != graphicformOld.State { // 状态
saveData["g_state"] = requestData.State
}
var archivesType modelbookimg.ArchivesType
err = archivesType.GetCont(map[string]interface{}{"at_parent_id": requestData.Topid, "at_title": requestData.Attribution})
if err != nil {
publicmethod.Result(107, err, c)
return
}
saveData["g_parent"] = requestData.Topid // 父级
saveData["g_parent_sun"] = archivesType.Id // 分类
if requestData.Title != "" && requestData.Title != graphicformOld.Title { // 标题
saveData["g_title"] = requestData.Title
var isRepeat modelbookimg.GraphicForm
err = isRepeat.GetCont(saveData, "g_id")
if err == nil {
publicmethod.Result(103, err, c)
return
}
}
// 访问权限设置 访问权限(1:公开;2:分厂;3:工段;4:自定义)
if requestData.VisitStrat != 0 && requestData.VisitStrat != graphicformOld.VisitStrat {
if requestData.VisitStrat == 1 {
saveData["g_visit_strat"] = requestData.VisitStrat
saveData["g_bf_id"] = 0
saveData["g_ws_id"] = 0
saveData["g_team"] = 0
saveData["g_range"] = ""
} else if requestData.VisitStrat == 2 {
if requestData.BfId == 0 {
publicmethod.Result(1, "厂区不能为空", c)
return
}
saveData["g_visit_strat"] = requestData.VisitStrat
saveData["g_bf_id"] = requestData.BfId
saveData["g_ws_id"] = 0
saveData["g_team"] = 0
saveData["g_range"] = ""
} else if requestData.VisitStrat == 3 {
if requestData.BfId == 0 || requestData.WsId == 0 {
publicmethod.Result(1, "厂区或工段不能为空", c)
return
}
saveData["g_visit_strat"] = requestData.VisitStrat
saveData["g_bf_id"] = requestData.BfId
saveData["g_ws_id"] = requestData.WsId
saveData["g_team"] = 0
saveData["g_range"] = ""
} else if requestData.VisitStrat == 4 {
saveData["g_visit_strat"] = requestData.VisitStrat
saveData["g_bf_id"] = 0
saveData["g_ws_id"] = 0
saveData["g_team"] = 0
saveData["g_range"] = requestData.Range
}
}
if requestData.Source != 0 && requestData.Source != graphicformOld.Source { // 文档来源(1:原创;2:转载)
if requestData.Source == 1 {
saveData["g_source"] = requestData.Source
saveData["g_source_url"] = ""
}
if requestData.Source == 2 && requestData.SourceUrl == "" {
publicmethod.Result(101, "转载地址为空!", c)
return
}
if requestData.Source == 2 && requestData.SourceUrl != "" {
saveData["g_source_url"] = requestData.SourceUrl
saveData["g_source"] = requestData.Source
}
}
if requestData.Thumbnail != graphicformOld.Thumbnail { // 缩略图
saveData["g_thumbnail"] = requestData.Thumbnail
}
if requestData.Comment != 0 && requestData.Comment != graphicformOld.Comment { // 评论设置
saveData["g_comment"] = requestData.Comment
}
if requestData.Context != graphicformOld.Content { // 图文详情
saveData["g_content"] = requestData.Context
}
if requestData.Describe != graphicformOld.Describe { // 文档描述
saveData["g_describe"] = requestData.Describe
}
if requestData.DownloadState != 0 && requestData.DownloadState != graphicformOld.DownLoadState { // 是否允许下载(1:允许;2:禁止)
saveData["g_download_state"] = requestData.DownloadState
}
if requestData.Key != graphicformOld.Key { // 文档标签
saveData["g_key"] = requestData.Key
}
if requestData.OuterLink != "" { // 外部链接
if requestData.OuterLink != graphicformOld.OuterLink {
if requestData.TestUrl != "" || requestData.TextName != "" {
publicmethod.Result(1, "请不要输入文档正文或上传正文文件", c)
return
} else {
saveData["g_outer_link"] = requestData.OuterLink
saveData["g_test_url"] = "" // 正文文档URL
saveData["g_text_name"] = "" // 正文文档名称
saveData["g_physics_path"] = "" // 物理地址
}
}
} else {
saveData["g_outer_link"] = ""
if requestData.TestUrl != graphicformOld.TestUrl { // 正文文档URL
saveData["g_test_url"] = requestData.TestUrl
}
if requestData.TextName != graphicformOld.TextName { // 正文文档名称
saveData["g_text_name"] = requestData.TextName
}
if requestData.PhysicsPath != graphicformOld.PhysicsPath { // 物理地址
saveData["g_physics_path"] = requestData.PhysicsPath
}
}
if requestData.Sort != 0 && requestData.Sort != graphicformOld.Sort { // 排序
saveData["g_sort"] = requestData.Sort
}
saveData["g_eite_time"] = time.Now().Unix() // 编辑时间
if requestData.UserKey != "" {
userKey, _ := strconv.ParseInt(requestData.UserKey, 10, 64)
saveData["g_user_key"] = userKey //归属人员"`
}
editErr := graphicformOld.EiteCont(where, saveData)
if editErr != nil {
publicmethod.Result(106, err, c)
} else {
publicmethod.Result(0, err, c)
}
}
// 添加图文信息
func (a *ApiMethod) AddGraphicForm(c *gin.Context) {
var requestData addGraphicForm
err := c.ShouldBindJSON(&requestData)
if err != nil {
publicmethod.Result(100, requestData, c)
return
}
if requestData.Title == "" || requestData.Attribution == "" || requestData.Topid == 0 {
publicmethod.Result(101, requestData, c)
return
}
if requestData.Source == 2 && requestData.SourceUrl == "" {
publicmethod.Result(101, requestData, c)
return
}
var uuId int64 = 0
snowflakeId, snowflakeErr := snowflake.NewWorker(1)
if snowflakeErr != nil {
uuId = publicmethod.TableNumber()
} else {
uuId = snowflakeId.GetId()
}
var graphicform modelbookimg.GraphicForm
graphicform.Id = uuId
graphicform.Title = requestData.Title // 标题
/*
addTime, _ := publicmethod.DateToTimeStamp(fmt.Sprintf("%v 12:00:00", requestData.AddTime))
eiteTime, _ := publicmethod.DateToTimeStamp(fmt.Sprintf("%v 12:00:00", requestData.EiteTime))
graphicform.AddTime = addTime // 添加时间
graphicform.EiteTime = eiteTime // 编辑时间
*/
graphicform.AddTime = time.Now().Unix() // 添加时间
graphicform.EiteTime = time.Now().Unix() // 编辑时间
graphicform.VisitStrat = requestData.VisitStrat // 访问权限(1:公开;2:分厂;3:工段;4:自定义)
if requestData.VisitStrat != 1 {
graphicform.BfId = requestData.BfId // 分厂
graphicform.WsId = requestData.WsId // 工段
graphicform.Team = requestData.Team // 班组
graphicform.Range = requestData.Range // 自定义可见范围
if requestData.VisitStrat == 2 && requestData.BfId == 0 {
publicmethod.Result(1, "分厂不能为空", c)
return
} else {
graphicform.BfId = requestData.BfId
graphicform.VisitStrat = requestData.VisitStrat
}
if requestData.VisitStrat == 3 && (requestData.BfId == 0 || requestData.WsId == 0) {
publicmethod.Result(1, "分厂或工段不能为空", c)
return
} else {
graphicform.BfId = requestData.BfId
graphicform.VisitStrat = requestData.VisitStrat
graphicform.WsId = requestData.WsId
}
if requestData.VisitStrat == 4 {
graphicform.VisitStrat = requestData.VisitStrat
graphicform.Range = requestData.Range
graphicform.BfId = 0
graphicform.VisitStrat = 0
graphicform.WsId = 0
}
}
if requestData.UserKey != "" {
userKey, _ := strconv.ParseInt(requestData.UserKey, 10, 64)
graphicform.UserKey = userKey //归属人员"`
}
if requestData.OuterLink != "" { // 外部链接
if requestData.TestUrl != "" || requestData.TextName != "" {
publicmethod.Result(1, "请不要输入文档正文或上传正文文件", c)
return
} else {
graphicform.OuterLink = requestData.OuterLink
graphicform.TestUrl = "" // 正文文档URL
graphicform.TextName = "" // 正文文档名称
graphicform.PhysicsPath = "" // 物理地址
}
} else {
graphicform.OuterLink = ""
graphicform.TestUrl = requestData.TestUrl // 正文文档url
graphicform.TextName = requestData.TextName // 正文文档名称
graphicform.PhysicsPath = requestData.PhysicsPath // 物理地址
}
if requestData.Source == 1 {
graphicform.Source = requestData.Source // 文档来源
graphicform.SourceUrl = "" // 转载地址
} else if requestData.Source == 2 && requestData.SourceUrl == "" {
publicmethod.Result(101, "转载地址不能为空", c)
return
} else if requestData.Source == 2 && requestData.SourceUrl != "" {
graphicform.Source = requestData.Source // 文档来源
graphicform.SourceUrl = requestData.SourceUrl // 转载地址
}
graphicform.Thumbnail = requestData.Thumbnail // 缩略图
graphicform.Comment = requestData.Comment // 评论设置
graphicform.Content = requestData.Context // 图文详情
graphicform.Describe = requestData.Describe // 文档描述
graphicform.DownLoadState = requestData.DownloadState // 是否允许下载
graphicform.Key = requestData.Key // 文档标签
graphicform.Sort = requestData.Sort // 排序
graphicform.Parent = requestData.Topid // 父级
var archivesType modelbookimg.ArchivesType
archivesType.GetCont(map[string]interface{}{"at_parent_id": requestData.Topid, "at_title": requestData.Attribution})
graphicform.ParentSun = archivesType.Id // 类别
addErr := overall.CONSTANT_DB_IMAGES_TEST.Create(&graphicform).Error
if addErr != nil {
publicmethod.Result(104, addErr, c)
} else {
publicmethod.Result(0, addErr, c)
}
}
// 删除图文信息(软删除)
func (a *ApiMethod) SoftDelGraphicForm(c *gin.Context) {
var requestData delGraphicForm
err := c.ShouldBindJSON(&requestData)
if err != nil {
publicmethod.Result(100, requestData, c)
return
}
if len(requestData.Ids) <= 0 {
publicmethod.Result(101, requestData, c)
return
}
where := publicmethod.MapOut[string]()
for _, v := range requestData.Ids {
var graphicform modelbookimg.GraphicForm
where["g_id"] = v
getErr := graphicform.GetCont(where)
if getErr != nil {
publicmethod.Result(107, requestData, c)
return
}
editErr := graphicform.EiteCont(where, map[string]interface{}{"g_state": 4})
if editErr != nil {
publicmethod.Result(108, requestData, c)
return
}
}
publicmethod.Result(0, "删除成功", c)
}
// 删除图文信息
func (a *ApiMethod) HardDelGraphicForm(c *gin.Context) {
var requestData delGraphicForm
err := c.ShouldBindJSON(&requestData)
if err != nil {
publicmethod.Result(100, requestData, c)
return
}
if len(requestData.Ids) < 1 {
publicmethod.Result(101, requestData, c)
return
}
where := publicmethod.MapOut[string]()
for _, v := range requestData.Ids {
where["g_id"] = v
var graphicform modelbookimg.GraphicForm
delErr := graphicform.DelCont(where)
if delErr != nil {
publicmethod.Result(108, requestData, c)
return
}
}
publicmethod.Result(0, "删除成功", c)
}
// 查看图文信息有关人员
func (a *ApiMethod) FindGraphicFormUser(c *gin.Context) {
var requestData aboutGraphicFormUserType
err := c.ShouldBindJSON(&requestData)
if err != nil {
publicmethod.Result(100, requestData, c)
return
}
if requestData.Id == "" || requestData.Type == 0 {
publicmethod.Result(101, requestData, c)
return
}
if requestData.Page == 0 {
requestData.Page = 1
}
if requestData.PageSize == 0 {
requestData.PageSize = 23
}
var bookattribute modelbookimg.BookAttribute
gormDb := overall.CONSTANT_DB_FILE_BOOK.Table(fmt.Sprintf("%s b", bookattribute.TableName())).Where("b.b_stater = 1 and b.b_file_id = ?", requestData.Id)
var bookattributes []modelbookimg.BookAttribute
var total int64
totalErr := gormDb.Count(&total).Error
if totalErr != nil {
total = 0
}
gormDb = publicmethod.PageTurningSettings(gormDb, requestData.Page, requestData.PageSize)
findErr := gormDb.Select("b.*").Where("b.b_type = ?", requestData.Type).Find(&bookattributes).Error
if findErr != nil {
publicmethod.Result(105, findErr, c)
return
}
var outList []aboutGraphicFormUser
for _, v := range bookattributes {
var item aboutGraphicFormUser // 待输出类型
time := publicmethod.UnixTimeToDay(v.Time, 11) // 时间戳转日期
item.Time = time // 时间
var user modelshr.PersonArchives
user.GetCont(map[string]interface{}{"key": v.UserId}) // 员工档案信息
item.Name = user.Name // 姓名
item.Number = user.Number // 工号
outList = append(outList, item)
}
publicmethod.ResultList(0, requestData.Page, requestData.PageSize, total, int64(len(outList)), outList, c)
}
// 图文信息评论列表
func (a *ApiMethod) OutDiscusMsgList(c *gin.Context) {
var requestData discusMsgPage
err := c.ShouldBindJSON(&requestData)
if err != nil {
publicmethod.Result(100, requestData, c)
return
}
if requestData.Page == 0 {
requestData.Page = 1
}
if requestData.PageSize == 0 {
requestData.PageSize = 13
}
var discusMsgQuery []discusMsgList
var discusmsg modelbookimg.DiscussMsg
gormDB := overall.CONSTANT_DB_FILE_BOOK.Model(&discusmsg).Table(fmt.Sprintf("%s d", discusmsg.TableName())).Where("d.dis_stater = 2")
var discusmsglist []modelbookimg.DiscussMsg
var total int64
totalErr := gormDB.Count(&total).Error
if totalErr != nil {
total = 0
}
gormDB = publicmethod.PageTurningSettings(gormDB, requestData.Page, requestData.PageSize)
findErr := gormDB.Select("d.*").Find(&discusmsglist).Error
if findErr != nil {
publicmethod.Result(107, findErr, c)
return
}
for _, v := range discusmsglist {
var item discusMsgList
time := publicmethod.UnixTimeToDay(v.Time, 11) // 时间戳转日期
item.Time = time // 时间
item.State = v.Stater // 状态
switch v.Source { // 类型
case 1:
item.Type = "文档类"
case 2:
item.Type = "文档类评论"
case 3:
item.Type = "问题"
case 4:
item.Type = "问题答案"
case 5:
item.Type = "问题答案评论"
}
var graphicform modelbookimg.GraphicForm
var user modelshr.PersonArchives
g_err := graphicform.GetCont(map[string]interface{}{"g_id": v.FileId}, "g_title")
if g_err != nil {
publicmethod.Result(107, g_err, c)
return
}
item.Con = graphicform.Title // 被评论内容
user.GetCont(map[string]interface{}{"key": v.UserId}) // 员工档案信息
item.Critics = user.Name // 评论人
item.Context = v.Cont // 评论内容
item.Id = v.Id // id
discusMsgQuery = append(discusMsgQuery, item)
}
publicmethod.ResultList(0, requestData.Page, requestData.PageSize, total, int64(len(discusMsgQuery)), discusMsgQuery, c)
}
// 图文信息评论编辑
func (a *ApiMethod) EditDiscusMsg(c *gin.Context) {
var requestData editDscusMsg
err := c.ShouldBindJSON(&requestData)
if err != nil {
publicmethod.Result(100, requestData, c)
return
}
if requestData.Id == "" {
publicmethod.Result(101, requestData, c)
return
}
var discusMsgOld modelbookimg.DiscussMsg
where := publicmethod.MapOut[string]()
where["dis_id"] = requestData.Id
getErr := discusMsgOld.GetCont(where)
if getErr != nil {
publicmethod.Result(107, getErr, c)
return
}
saveData := publicmethod.MapOut[string]()
if requestData.State != discusMsgOld.Stater {
saveData["dis_stater"] = requestData.State // 状态
}
saveData["dis_time"] = time.Now().Unix() // 编辑时间
editErr := discusMsgOld.EiteCont(where, saveData)
if editErr != nil {
publicmethod.Result(106, err, c)
} else {
publicmethod.Result(0, err, c)
}
}
// 图文信息评论删除(软删除)
func (a *ApiMethod) SoftDelDiscusMsg(c *gin.Context) {
var requestData delDiscusMsg
err := c.ShouldBindJSON(&requestData)
if err != nil {
publicmethod.Result(100, err, c)
return
}
if len(requestData.Ids) <= 0 {
publicmethod.Result(101, requestData, c)
return
}
where := publicmethod.MapOut[string]()
for _, v := range requestData.Ids {
where["dis_id"] = v
var discusmsg modelbookimg.DiscussMsg
getErr := discusmsg.GetCont(where)
if getErr != nil {
publicmethod.Result(107, requestData, c)
return
}
editErr := discusmsg.EiteCont(where, map[string]interface{}{"dis_stater": 4})
if editErr != nil {
publicmethod.Result(108, editErr, c)
return
}
}
publicmethod.Result(0, "删除成功", c)
}
// 图文信息评论删除
func (a *ApiMethod) HardDelDiscusMsg(c *gin.Context) {
var requestData delDiscusMsg
err := c.ShouldBindJSON(&requestData)
if err != nil {
publicmethod.Result(100, err, c)
return
}
if len(requestData.Ids) <= 0 {
publicmethod.Result(101, requestData, c)
return
}
where := publicmethod.MapOut[string]()
for _, v := range requestData.Ids {
where["dis_id"] = v
var discusmsg modelbookimg.DiscussMsg
getErr := discusmsg.GetCont(where)
if getErr != nil {
publicmethod.Result(107, requestData, c)
return
}
delErr := discusmsg.DelCont(where)
if delErr != nil {
publicmethod.Result(108, requestData, c)
return
}
}
publicmethod.Result(0, "删除成功", c)
}
// 图文信息栏目列表
func (a *ApiMethod) OutBookImgColumn(c *gin.Context) {
var requestData outBookImgColumn
err := c.ShouldBindJSON(&requestData)
if err != nil {
publicmethod.Result(100, err, c)
return
}
if requestData.Page == 0 {
requestData.Page = 1
}
if requestData.PageSize == 0 {
requestData.PageSize = 20
}
var archivesType modelbookimg.ArchivesType
gormDB := overall.CONSTANT_DB_Master.Model(&archivesType).Table(fmt.Sprintf("%s at2", archivesType.TableName())).Where("at2.at_parent_id = ? and at2.at_stater != 3", requestData.Parent)
var total int64
countErr := gormDB.Count(&total).Error
if countErr != nil {
total = 0
}
var archivesTypeList []modelbookimg.ArchivesType
findErr := gormDB.Find(&archivesTypeList).Error
if findErr != nil {
publicmethod.Result(107, findErr, c)
return
}
var outListQuery []outBookImgColumn
for _, v := range archivesTypeList {
var item outBookImgColumn
item.Title = v.Title // 栏目名称
item.Sort = v.Sort // 排序
item.State = v.Stater // 状态
item.Parent = v.ParentId // 父级
item.Id = v.Id // id
outListQuery = append(outListQuery, item)
}
publicmethod.ResultList(0, requestData.Page, requestData.PageSize, total, int64(len(outListQuery)), outListQuery, c)
}
// 图文信息栏目增加
func (a *ApiMethod) AddBookImgColumn(c *gin.Context) {
var requestData addBookImgColumn
err := c.ShouldBindJSON(&requestData)
if err != nil {
publicmethod.Result(100, err, c)
return
}
if requestData.Title == "" {
publicmethod.Result(101, requestData, c)
return
}
var archivesType modelbookimg.ArchivesType // 图文信息栏目信息
getErr := archivesType.GetCont(map[string]interface{}{"at_title": requestData.Title, "at_parent_id": requestData.Parent}, "at_id")
if getErr == nil {
publicmethod.Result(103, getErr, c)
return
}
var aid int64 = 0
snowflakeId, snowflakeErr := snowflake.NewWorker(1) // 雪花算法获取id
if snowflakeErr != nil {
aid = publicmethod.TableNumber()
} else {
aid = snowflakeId.GetId()
}
archivesType.Id = aid // id
archivesType.Title = requestData.Title // 栏目名称
archivesType.ParentId = requestData.Parent // 父级
archivesType.Sort = requestData.Sort // 排序
archivesType.Time = time.Now().Unix() // 添加时间
archivesType.Uid = requestData.Uid // 添加人员id
createErr := overall.CONSTANT_DB_Master.Create(&archivesType).Error
if createErr != nil {
publicmethod.Result(104, createErr, c)
return
}
publicmethod.Result(0, requestData, c)
}
// 图文信息栏目修改
func (a *ApiMethod) EditBookImgColumn(c *gin.Context) {
var requestData editBookImgColumn
err := c.ShouldBindJSON(&requestData)
if err != nil {
publicmethod.Result(100, err, c)
return
}
if requestData.Id == "" {
publicmethod.Result(101, requestData, c)
return
}
where := publicmethod.MapOut[string]()
where["at_id"] = requestData.Id
var archivesTypeOld modelbookimg.ArchivesType
getErr := archivesTypeOld.GetCont(where)
if getErr != nil {
publicmethod.Result(107, getErr, c)
return
}
saveData := publicmethod.MapOut[string]()
if requestData.Title != "" && requestData.Title != archivesTypeOld.Title {
var isExist modelbookimg.ArchivesType
existErr := isExist.GetCont(map[string]interface{}{"at_title": requestData.Title, "at_parent_id": requestData.Parent}, "at_id")
if existErr == nil {
publicmethod.Result(103, existErr, c)
return
}
saveData["at_title"] = requestData.Title // 栏目标题名称
}
if requestData.State != 0 && requestData.State != archivesTypeOld.Stater {
saveData["at_stater"] = requestData.State // 状态
}
if requestData.Sort != archivesTypeOld.Sort {
saveData["at_sort"] = requestData.Sort // 排序
}
saveData["at_parent_id"] = requestData.Parent // 父级
saveData["at_time"] = time.Now().Unix() // 时间
saveData["at_uid"] = requestData.Uid // 人员
editErr := archivesTypeOld.EiteCont(where, saveData)
if editErr != nil {
publicmethod.Result(106, editErr, c)
return
}
publicmethod.Result(0, requestData, c)
}
// 图文信息栏目删除(软删除)
func (a *ApiMethod) SoftDelBookImgColumn(c *gin.Context) {
var requestData delBookimgColumn
err := c.ShouldBindJSON(&requestData)
if err != nil {
publicmethod.Result(100, err, c)
return
}
if len(requestData.Ids) < 1 {
publicmethod.Result(101, requestData, c)
return
}
where := publicmethod.MapOut[string]()
for _, v := range requestData.Ids {
where["at_id"] = v
var archivesType modelbookimg.ArchivesType
getErr := archivesType.GetCont(where)
if getErr != nil {
publicmethod.Result(107, getErr, c)
return
}
editErr := archivesType.EiteCont(where, map[string]interface{}{"at_stater": 2})
if editErr != nil {
publicmethod.Result(108, editErr, c)
return
}
// 软删除图文信息栏目子栏目
syncSeting.Add(1)
go SoftDelBookimgColumnSubtopic(archivesType.Id, archivesType.Uid)
// 软删除图文信息栏目下的文章
syncSeting.Add(1)
go SoftDelBookImgColumnGraphicform(archivesType.Id, archivesType.Uid)
}
syncSeting.Wait()
publicmethod.Result(0, "删除成功", c)
}
// 软删除图文信息栏目子栏目
func SoftDelBookimgColumnSubtopic(parentId, Uid int64) {
defer syncSeting.Done()
var archivesTypeList []modelbookimg.ArchivesType
var archivesType modelbookimg.ArchivesType
overall.CONSTANT_DB_Master.Model(&archivesType).Table(fmt.Sprintf("%s at2", archivesType.TableName())).Where("at2.at_parent_id = ?", parentId).Find(&archivesTypeList)
for _, item := range archivesTypeList {
item.EiteCont(map[string]interface{}{"at2.at_stater": 1}, map[string]interface{}{"at2.at_stater": 3, "at2.at_uid": Uid, "at2.at_time": time.Now().Unix()})
}
}
// 软删除图文信息栏目下的文章
func SoftDelBookImgColumnGraphicform(parentId, Uid int64) {
defer syncSeting.Done()
var graphicformList []modelbookimg.GraphicForm
var graphicform modelbookimg.GraphicForm
overall.CONSTANT_DB_IMAGES_TEST.Model(&graphicform).Table(fmt.Sprintf("%s g", graphicform.TableName())).Where("g.g_parent_sun = ?", parentId).Find(&graphicformList)
for _, item := range graphicformList {
discusSyncSeting.Add(1)
go SoftDelGraphicFormDiscus(item.Id)
item.EiteCont(map[string]interface{}{"g.g_state": 1}, map[string]interface{}{"g.g_state": 4, "g.g_eite_time": time.Now().Unix(), "g.g_user_key": Uid})
}
discusSyncSeting.Wait()
}
// 软删除图文信息文章评论
func SoftDelGraphicFormDiscus(fileId int64) {
defer discusSyncSeting.Done()
var discusMsgList []modelbookimg.DiscussMsg
var discusMsg modelbookimg.DiscussMsg
overall.CONSTANT_DB_FILE_BOOK.Model(&discusMsg).Table(fmt.Sprintf("%s dm", discusMsg.TableName())).Where("dm.dis_file_id = ?", fileId).Find(&discusMsgList)
for _, item := range discusMsgList {
item.EiteCont(map[string]interface{}{"dm.dis_stater": 1}, map[string]interface{}{"dm.dis_stater": 4, "dm.dis_eite_time": time.Now().Unix()})
}
}