ppt_english_group_mapping.go 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. package ppt_english
  2. import (
  3. "eta/eta_api/global"
  4. "eta/eta_api/utils"
  5. "time"
  6. )
  7. // ppt目录和ppt 映射表
  8. type PptEnglishGroupMapping struct {
  9. GroupPptId int64 `orm:"column(group_ppt_id);pk" gorm:"primaryKey" description:"自增序号"`
  10. GroupId int64 `description:"ppt目录ID"`
  11. PptSort int64 `description:"Ppt的排序"`
  12. PptId int64 `description:"ppt ID"`
  13. CreateTime time.Time `orm:"auto_now_add;type(datetime)" description:"创建时间"`
  14. ModifyTime time.Time `orm:"auto_now;type(datetime)" description:"修改时间"`
  15. AdminId int `description:"移动ppt到该目录的系统用户id"`
  16. AdminRealName string `description:"系统用户名称"`
  17. ChildGroupPptId int64 `description:"设置共享后的新映射ID"`
  18. IsMoved bool `description:"true表示改PPT被人为移动过"`
  19. }
  20. // AddPptGroupMapping 新增目录和ppt的映射关系
  21. func AddPptGroupMapping(item *PptEnglishGroupMapping) (lastId int64, err error) {
  22. o := global.DbMap[utils.DbNameReport]
  23. err = o.Create(item).Error
  24. if err != nil {
  25. return
  26. }
  27. lastId = item.GroupPptId
  28. return
  29. }
  30. // GetPptMappingCountByGroupId 查询目录下,ppt的个数
  31. func GetPptMappingCountByGroupId(groupId int64) (total int64, err error) {
  32. o := global.DbMap[utils.DbNameReport]
  33. sql := `select count(*) from ppt_english_group_mapping where group_id=?`
  34. err = o.Raw(sql, groupId).Scan(&total).Error
  35. return
  36. }
  37. // GetPptMappingListByGroupId 查询目录下,ppt列表
  38. func GetPptMappingListByGroupId(groupId int64) (list []*PptEnglishGroupMapping, err error) {
  39. o := global.DbMap[utils.DbNameReport]
  40. sql := `select group_ppt_id, group_id, ppt_id, ppt_sort, admin_id, admin_real_name, create_time from ppt_english_group_mapping where group_id=? order by ppt_sort asc, group_ppt_id asc `
  41. err = o.Raw(sql, groupId).Find(&list).Error
  42. return
  43. }
  44. // GetPptMappingListByGroupIds 根据分组ID查找
  45. func GetPptMappingListByGroupIds(groupIds []int64) (list []*PptEnglishGroupMapping, err error) {
  46. o := global.DbMap[utils.DbNameReport] /*.
  47. QueryTable("ppt_english_group_mapping").
  48. Filter("group_id__in", groupIds).
  49. OrderBy("-ppt_sort", "group_ppt_id").
  50. All(&list)*/
  51. sql := `select * from ppt_english_group_mapping where group_id in ` + utils.GetOrmInReplace(len(groupIds)) + ` order by ppt_sort desc, group_ppt_id asc`
  52. err = o.Raw(sql, groupIds).Find(&list).Error
  53. return
  54. }
  55. // GetPptMappingByPptId 查询目录下, pptId对应的目录映射关系
  56. func GetPptMappingByPptId(pptId int64) (item *PptEnglishGroupMapping, err error) {
  57. o := global.DbMap[utils.DbNameReport]
  58. sql := ` select * from ppt_english_group_mapping where ppt_id=? `
  59. err = o.Raw(sql, pptId).First(&item).Error
  60. return
  61. }
  62. // GetPptMappingListByGroupId 查询目录下,ppt列表, 降序排列
  63. func GetPptMappingListByGroupIdDesc(groupId int64) (list []*PptEnglishGroupMapping, err error) {
  64. o := global.DbMap[utils.DbNameReport]
  65. sql := `select group_ppt_id, group_id, ppt_id, ppt_sort, admin_id, admin_real_name, create_time from ppt_english_group_mapping where group_id=? order by ppt_sort desc, group_ppt_id desc `
  66. err = o.Raw(sql, groupId).Find(&list).Error
  67. return
  68. }
  69. // GetPptMappingByGroupPptId 查询根据映射ID,查询单个映射关系
  70. func GetPptMappingByGroupPptId(groupPptId int64, adminId int) (item *PptEnglishGroupMapping, err error) {
  71. o := global.DbMap[utils.DbNameReport]
  72. sql := `select * from ppt_english_group_mapping where group_ppt_id=? and admin_id=?`
  73. err = o.Raw(sql, groupPptId, adminId).First(&item).Error
  74. return
  75. }
  76. // GetPptMappingByGroupPptId 查询根据映射ID,查询单个映射关系数量
  77. func GetPptMappingCountByGroupPptId(groupPptId int64, adminId int) (count int, err error) {
  78. o := global.DbMap[utils.DbNameReport]
  79. sql := `select COUNT(*) AS count from ppt_english_group_mapping where group_ppt_id=? and admin_id=?`
  80. err = o.Raw(sql, groupPptId, adminId).Scan(&count).Error
  81. return
  82. }
  83. // Update 更新ppt目录映射的基本信息
  84. func (item *PptEnglishGroupMapping) Update(cols []string) (err error) {
  85. o := global.DbMap[utils.DbNameReport]
  86. err = o.Select(cols).Updates(item).Error
  87. return
  88. }
  89. // AddPptGroupMappingMulti 批量新增ppt和目录的映射关系
  90. func AddPptGroupMappingMulti(list []*PptEnglishGroupMapping) (err error) {
  91. o := global.DbMap[utils.DbNameReport]
  92. err = o.CreateInBatches(list, utils.MultiAddNum).Error
  93. return
  94. }
  95. // UpdatePptGroupMappingSortMulti 批量更新初始排序标识
  96. func UpdatePptGroupMappingSortMulti(groupPptIds []int64) (err error) {
  97. o := global.DbMap[utils.DbNameReport]
  98. sql := "UPDATE ppt_english_group_mapping SET ppt_sort = group_ppt_id WHERE group_ppt_id = ?"
  99. for _, v := range groupPptIds {
  100. err = o.Exec(sql, v).Error
  101. if err != nil {
  102. return
  103. }
  104. }
  105. return
  106. }
  107. // DeletePptGroupMapping 删除ppt目录
  108. func DeletePptGroupMapping(groupId int64, adminId int) (err error) {
  109. o := global.DbMap[utils.DbNameReport]
  110. sql := `DELETE FROM ppt_english_group_mapping WHERE group_ppt_id=? and admin_id=? `
  111. err = o.Exec(sql, groupId, adminId).Error
  112. return
  113. }
  114. // DeletePptGroupMappingByPptId 删除ppt目录
  115. func DeletePptGroupMappingByPptId(pptId int) (err error) {
  116. o := global.DbMap[utils.DbNameReport]
  117. sql := `DELETE FROM ppt_english_group_mapping WHERE ppt_id=?`
  118. err = o.Exec(sql, pptId).Error
  119. return
  120. }
  121. // MoveUpGroupPptBySort 往上移动ppt
  122. func MoveUpGroupPptBySort(groupId, nextSort, currentSort int64) (err error) {
  123. o := global.DbMap[utils.DbNameReport]
  124. sql := `update ppt_english_group_mapping set ppt_sort = ppt_sort + 1 where group_id=? and ppt_sort >= ? and ppt_sort< ?`
  125. err = o.Exec(sql, groupId, nextSort, currentSort).Error
  126. return
  127. }
  128. // MoveDownGroupPptBySort 往下移动ppt
  129. func MoveDownGroupPptBySort(groupId, prevSort, currentSort int64) (err error) {
  130. o := global.DbMap[utils.DbNameReport]
  131. sql := `update ppt_english_group_mapping set ppt_sort = ppt_sort - 1 where group_id=? and ppt_sort <= ? and ppt_sort> ? `
  132. err = o.Exec(sql, groupId, prevSort, currentSort).Error
  133. return
  134. }
  135. // GetGroupPptByPptId 根据pptID 查找各个目录下的ppt
  136. func GetGroupPptByPptId(pptId int) (list []*PptEnglishGroupMapping, err error) {
  137. o := global.DbMap[utils.DbNameReport]
  138. sql := `select * from ppt_english_group_mapping where ppt_id=?`
  139. err = o.Raw(sql, pptId).Find(&list).Error
  140. return
  141. }
  142. // GetPublicGroupPptByPptIds 根据pptid查询公共目录下的ppt
  143. func GetPublicGroupPptByPptIds(pptIds []string) (list []*PptEnglishGroupMapping, err error) {
  144. sql := `select p.* from ppt_english_group as g inner join ppt_english_group_mapping as p on g.group_id = p.group_id where g.is_share = 1 and p.ppt_id in ` + utils.GetOrmInReplace(len(pptIds)) + ` order by g.share_time asc, p.ppt_sort asc`
  145. // 执行 SQL 语句
  146. o := global.DbMap[utils.DbNameReport]
  147. err = o.Raw(sql).Find(&list).Error
  148. return
  149. }