123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- package models
- import (
- sql2 "database/sql"
- "eta/eta_api/global"
- "eta/eta_api/utils"
- "time"
- )
- // ppt目录和ppt 映射表
- type PptV2GroupMapping struct {
- GroupPptId int64 `gorm:"column:group_ppt_id;primaryKey;autoIncrement" description:"自增序号"`
- GroupId int64 `description:"ppt目录ID"`
- PptSort int64 `description:"Ppt的排序"`
- PptId int64 `description:"ppt ID"`
- CreateTime time.Time `gorm:"column:create_time;type:datetime;comment:创建时间;not null;default:CURRENT_TIMESTAMP;" description:"创建时间"`
- ModifyTime time.Time `gorm:"column:modify_time;type:datetime;comment:修改时间;not null;default:CURRENT_TIMESTAMP;" description:"修改时间"`
- AdminId int `description:"移动ppt到该目录的系统用户id"`
- AdminRealName string `description:"系统用户名称"`
- ChildGroupPptId int64 `description:"设置共享后的新映射ID"`
- IsMoved bool `description:"true表示改PPT被人为移动过"`
- }
- // AddPptGroupMapping 新增目录和ppt的映射关系
- func AddPptGroupMapping(item *PptV2GroupMapping) (lastId int64, err error) {
- o := global.DbMap[utils.DbNameReport]
- err = o.Create(item).Error
- if err != nil {
- return
- }
- lastId = int64(item.GroupPptId)
- return
- }
- // GetPptMappingCountByGroupId 查询目录下,ppt的个数
- func GetPptMappingCountByGroupId(groupId int64) (total int64, err error) {
- o := global.DbMap[utils.DbNameReport]
- sql := `select count(*) from ppt_v2_group_mapping where group_id=?`
- var totalNull sql2.NullInt64
- err = o.Raw(sql, groupId).Scan(&totalNull).Error
- if err != nil {
- return
- }
- if totalNull.Valid {
- total = totalNull.Int64
- }
- return
- }
- // GetPptMappingListByGroupId 查询目录下,ppt列表
- func GetPptMappingListByGroupId(groupId int64) (list []*PptV2GroupMapping, err error) {
- o := global.DbMap[utils.DbNameReport]
- 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 desc `
- err = o.Raw(sql, groupId).Find(&list).Error
- return
- }
- // GetPptMappingListByGroupIds 根据分组ID查找
- func GetPptMappingListByGroupIds(groupIds []int64) (list []*PptV2GroupMapping, err error) {
- err = global.DbMap[utils.DbNameReport].Table("ppt_v2_group_mapping").Where("group_id in ?", groupIds).Find(&list).Error
- return
- }
- // GetPptMappingByGroupPptId 查询根据映射ID,查询单个映射关系
- func GetPptMappingByGroupPptId(groupPptId int64, adminId int) (item *PptV2GroupMapping, err error) {
- o := global.DbMap[utils.DbNameReport]
- sql := `select * from ppt_v2_group_mapping where group_ppt_id=? and admin_id=?`
- err = o.Raw(sql, groupPptId, adminId).First(&item).Error
- return
- }
- // GetPptMappingByGroupPptCountId 查询根据映射ID,查询单个映射关系数量
- func GetPptMappingByGroupPptCountId(groupPptId int64, adminId int) (count int, err error) {
- o := global.DbMap[utils.DbNameReport]
- sql := `select COUNT(*) AS count from ppt_v2_group_mapping where group_ppt_id=? and admin_id=?`
- var countNull sql2.NullInt64
- err = o.Raw(sql, groupPptId, adminId).Scan(&countNull).Error
- if err != nil {
- return
- }
- if countNull.Valid {
- count = int(countNull.Int64)
- }
- return
- }
- // GetPptMappingByPptId 查询根据ppt_Id, 查询当映单个映射关系
- func GetPptMappingByPptId(pptId int64) (item *PptV2GroupMapping, err error) {
- o := global.DbMap[utils.DbNameReport]
- sql := ` select * from ppt_v2_group_mapping where ppt_id=? `
- err = o.Raw(sql, pptId).First(&item).Error
- return
- }
- // Update 更新ppt目录映射的基本信息
- func (item *PptV2GroupMapping) Update(cols []string) (err error) {
- err = global.DbMap[utils.DbNameReport].Select(cols).Updates(item).Error
- return
- }
- // AddPptGroupMappingMulti 批量新增ppt和目录的映射关系
- func AddPptGroupMappingMulti(list []*PptV2GroupMapping) (err error) {
- o := global.DbMap[utils.DbNameReport]
- err = o.CreateInBatches(list, utils.MultiAddNum).Error
- return
- }
- // UpdatePptGroupMappingSortMulti 批量更新初始排序标识
- func UpdatePptGroupMappingSortMulti(groupPptIds []int64) (err error) {
- o := global.DbMap[utils.DbNameReport]
- sql := "UPDATE ppt_v2_group_mapping SET ppt_sort = group_ppt_id WHERE group_ppt_id = ?"
- for _, v := range groupPptIds {
- err = o.Exec(sql, v).Error
- if err != nil {
- return
- }
- }
- return
- }
- // DeletePptGroupMapping 删除ppt目录
- func DeletePptGroupMapping(groupId int64, adminId int) (err error) {
- o := global.DbMap[utils.DbNameReport]
- sql := `DELETE FROM ppt_v2_group_mapping WHERE group_ppt_id=? and admin_id=? `
- err = o.Exec(sql, groupId, adminId).Error
- return
- }
- // DeletePptGroupMappingByPptId 删除ppt目录
- func DeletePptGroupMappingByPptId(pptId int) (err error) {
- o := global.DbMap[utils.DbNameReport]
- sql := `DELETE FROM ppt_v2_group_mapping WHERE ppt_id=?`
- err = o.Exec(sql, pptId).Error
- return
- }
- // MoveUpGroupPptBySort 往上移动ppt
- func MoveUpGroupPptBySort(groupId, nextSort, currentSort int64) (err error) {
- o := global.DbMap[utils.DbNameReport]
- sql := `update ppt_v2_group_mapping set ppt_sort = ppt_sort + 1 where group_id=? and ppt_sort >= ? and ppt_sort< ?`
- err = o.Exec(sql, groupId, nextSort, currentSort).Error
- return
- }
- // MoveDownGroupPptBySort 往下移动ppt
- func MoveDownGroupPptBySort(groupId, prevSort, currentSort int64) (err error) {
- o := global.DbMap[utils.DbNameReport]
- sql := `update ppt_v2_group_mapping set ppt_sort = ppt_sort - 1 where group_id=? and ppt_sort <= ? and ppt_sort> ? `
- err = o.Exec(sql, groupId, prevSort, currentSort).Error
- return
- }
- // GetGroupPptByPptId 根据pptID 查找各个目录下的ppt
- func GetGroupPptByPptId(pptId int) (list []*PptV2GroupMapping, err error) {
- o := global.DbMap[utils.DbNameReport]
- sql := `select * from ppt_v2_group_mapping where ppt_id=?`
- err = o.Raw(sql, pptId).Find(&list).Error
- return
- }
- // GetPublicGroupPptByPptIds 根据pptid查询公共目录下的ppt
- func GetPublicGroupPptByPptIds(pptIds []string) (list []*PptV2GroupMapping, err error) {
- // qb, _ := orm.NewQueryBuilder("mysql")
- // // 构建查询对象
- // qb.Select("p.*").
- // From("ppt_v2_group as g").
- // InnerJoin("ppt_v2_group_mapping as p").On("g.group_id = p.group_id").
- // Where("g.is_share = 1 and p.ppt_id").In(pptIds...).
- // OrderBy("g.share_time asc, p.ppt_sort asc")
- // // 导出 SQL 语句
- // sql := qb.String()
- sql := `select p.* from ppt_v2_group as g inner join ppt_v2_group_mapping as p on g.group_id = p.group_id where g.is_share = 1 and p.ppt_id in (?) order by g.share_time asc, p.ppt_sort asc`
- // 执行 SQL 语句
- o := global.DbMap[utils.DbNameReport]
- err = o.Raw(sql, pptIds).Find(&list).Error
- return
- }
|