ppt_v2_group_mapping.go 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. package models
  2. import (
  3. "eta_gn/eta_api/global"
  4. "eta_gn/eta_api/utils"
  5. "time"
  6. "github.com/beego/beego/v2/client/orm"
  7. )
  8. type PptV2GroupMapping struct {
  9. GroupPptId int64 `gorm:"column:group_ppt_id;primaryKey;autoIncrement" description:"自增序号"`
  10. GroupId int64 `gorm:"column:group_id" description:"ppt目录ID"`
  11. PptSort int64 `gorm:"column:ppt_sort" description:"Ppt的排序"`
  12. PptId int64 `gorm:"column:ppt_id" description:"ppt ID"`
  13. CreateTime time.Time `gorm:"column:create_time;autoCreateTime" description:"创建时间"`
  14. ModifyTime time.Time `gorm:"column:modify_time;autoUpdateTime" description:"修改时间"`
  15. AdminId int `gorm:"column:admin_id" description:"移动ppt到该目录的系统用户id"`
  16. AdminRealName string `gorm:"column:admin_real_name" description:"系统用户名称"`
  17. ChildGroupPptId int64 `gorm:"column:child_group_ppt_id" description:"设置共享后的新映射ID"`
  18. IsMoved bool `gorm:"column:is_moved" description:"true表示改PPT被人为移动过"`
  19. }
  20. func AddPptGroupMapping(item *PptV2GroupMapping) (lastId int64, err error) {
  21. err = global.DmSQL["rddp"].Create(item).Error
  22. lastId = item.GroupId
  23. return
  24. }
  25. func GetPptMappingCountByGroupId(groupId int64) (total int64, err error) {
  26. sql := `select count(*) from ppt_v2_group_mapping where group_id=?`
  27. err = global.DmSQL["rddp"].Raw(sql, groupId).Scan(&total).Error
  28. return
  29. }
  30. func GetPptMappingListByGroupId(groupId int64) (list []*PptV2GroupMapping, err error) {
  31. sql := `select group_ppt_id, group_id, ppt_id, ppt_sort, admin_id, admin_real_name, create_time from ppt_v2_group_mapping where group_id=? order by ppt_sort asc, group_ppt_id asc `
  32. err = global.DmSQL["rddp"].Raw(sql, groupId).Find(&list).Error
  33. return
  34. }
  35. func GetPptMappingListByGroupIds(groupIds []int64) (list []*PptV2GroupMapping, err error) {
  36. err = global.DmSQL["rddp"].Table("ppt_v2_group_mapping").Where("group_id in ?", groupIds).Find(&list).Error
  37. return
  38. }
  39. func GetPptMappingByGroupPptId(groupPptId int64, adminId int) (item *PptV2GroupMapping, err error) {
  40. sql := `select * from ppt_v2_group_mapping where group_ppt_id=? and admin_id=?`
  41. err = global.DmSQL["rddp"].Raw(sql, groupPptId, adminId).First(&item).Error
  42. return
  43. }
  44. func GetPptMappingByGroupPptCountId(groupPptId int64, adminId int) (count int, err error) {
  45. sql := `select COUNT(*) AS count from ppt_v2_group_mapping where group_ppt_id=? and admin_id=?`
  46. err = global.DmSQL["rddp"].Raw(sql, groupPptId, adminId).Scan(&count).Error
  47. return
  48. }
  49. func GetPptMappingByPptId(pptId int64) (item *PptV2GroupMapping, err error) {
  50. sql := ` select * from ppt_v2_group_mapping where ppt_id=? `
  51. err = global.DmSQL["rddp"].Raw(sql, pptId).First(&item).Error
  52. return
  53. }
  54. func (item *PptV2GroupMapping) Update(cols []string) (err error) {
  55. err = global.DmSQL["rddp"].Select(cols).Updates(item).Error
  56. return
  57. }
  58. func AddPptGroupMappingMulti(list []*PptV2GroupMapping) (err error) {
  59. err = global.DmSQL["rddp"].CreateInBatches(list, utils.MultiAddNum).Error
  60. return
  61. }
  62. func UpdatePptGroupMappingSortMulti(groupPptIds []int64) (err error) {
  63. tx := global.DmSQL["rddp"].Begin()
  64. for _, v := range groupPptIds {
  65. err = tx.Exec("UPDATE ppt_v2_group_mapping SET ppt_sort = group_ppt_id WHERE group_ppt_id = ?", v).Error
  66. if err != nil {
  67. tx.Rollback()
  68. return
  69. }
  70. }
  71. tx.Commit()
  72. return
  73. }
  74. func DeletePptGroupMapping(groupId int64, adminId int) (err error) {
  75. sql := `DELETE FROM ppt_v2_group_mapping WHERE group_ppt_id=? and admin_id=? `
  76. err = global.DmSQL["rddp"].Exec(sql, groupId, adminId).Error
  77. return
  78. }
  79. func DeletePptGroupMappingByPptId(pptId int) (err error) {
  80. sql := `DELETE FROM ppt_v2_group_mapping WHERE ppt_id=?`
  81. err = global.DmSQL["rddp"].Exec(sql, pptId).Error
  82. return
  83. }
  84. func MoveUpGroupPptBySort(groupId, nextSort, currentSort int64) (err error) {
  85. sql := `update ppt_v2_group_mapping set ppt_sort = ppt_sort + 1 where group_id=? and ppt_sort >= ? and ppt_sort< ?`
  86. err = global.DmSQL["rddp"].Exec(sql, groupId, nextSort, currentSort).Error
  87. return
  88. }
  89. func MoveDownGroupPptBySort(groupId, prevSort, currentSort int64) (err error) {
  90. sql := `update ppt_v2_group_mapping set ppt_sort = ppt_sort - 1 where group_id=? and ppt_sort <= ? and ppt_sort> ? `
  91. err = global.DmSQL["rddp"].Exec(sql, groupId, prevSort, currentSort).Error
  92. return
  93. }
  94. func GetGroupPptByPptId(pptId int) (list []*PptV2GroupMapping, err error) {
  95. sql := `select * from ppt_v2_group_mapping where ppt_id=?`
  96. err = global.DmSQL["rddp"].Raw(sql, pptId).Find(&list).Error
  97. return
  98. }
  99. func GetPublicGroupPptByPptIds(pptIds []string) (list []*PptV2GroupMapping, err error) {
  100. qb, _ := orm.NewQueryBuilder("mysql")
  101. qb.Select("p.*").
  102. From("ppt_v2_group as g").
  103. InnerJoin("ppt_v2_group_mapping as p").On("g.group_id = p.group_id").
  104. Where("g.is_share = 1 and p.ppt_id").In(pptIds...).
  105. OrderBy("g.share_time asc, p.ppt_sort asc")
  106. sql := qb.String()
  107. err = global.DmSQL["rddp"].Raw(sql).Find(&list).Error
  108. return
  109. }