package data_manage import ( "eta_gn/eta_api/global" "eta_gn/eta_api/utils" "fmt" "time" ) // EdbInfoShare // @Description: 指标分享表 type EdbInfoShare struct { EdbInfoShareId int `gorm:"primaryKey" ` EdbInfoId int `description:"指标id"` SysUserId int `description:"sys_user_id"` ShareType int8 `description:"分享类型,1:仅查看;2:可编辑"` CreateTime time.Time `description:"创建时间"` } // TableName // @Description: 表名 // @author: Roc // @receiver m // @datetime 2024-11-27 14:04:14 // @return string func (m EdbInfoShare) TableName() string { return `edb_info_share` } // GetListByEdbInfoId // @Description: 根据指标id获取分享用户列表 // @author: Roc // @receiver m // @datetime 2024-11-27 15:39:17 // @param edbInfoId int // @return items []*EdbInfoShare // @return err error func (m EdbInfoShare) GetListByEdbInfoId(edbInfoId int) (items []*EdbInfoShare, err error) { sql := ` SELECT * FROM edb_info_share WHERE edb_info_id = ? ORDER BY edb_info_share_id ASC ` err = global.DmSQL["data"].Raw(sql, edbInfoId).Find(&items).Error return } // SaveEdbInfoShare // @Description: 保存配置 // @author: Roc // @receiver m // @datetime 2024-11-27 15:54:07 // @param edbInfoIdList []int // @param userIdList []int // @param shareType int8 // @return err error func (m EdbInfoShare) SaveEdbInfoShare(edbInfoIdList, userIdList []int, shareType int8) (err error) { addList := make([]*EdbInfoShare, 0) for _, edbInfoId := range edbInfoIdList { for _, userId := range userIdList { addList = append(addList, &EdbInfoShare{ EdbInfoShareId: 0, EdbInfoId: edbInfoId, SysUserId: userId, ShareType: shareType, CreateTime: time.Now(), }) } } tx := global.DmSQL["data"].Begin() defer func() { if err != nil { _ = tx.Rollback() return } _ = tx.Commit() }() // 先删除原来的配置,新增最新的配置 sql := fmt.Sprintf("DELETE FROM %s WHERE edb_info_id IN (?) ", m.TableName()) err = tx.Exec(sql, edbInfoIdList).Error if err != nil { return } // 批量添加新的配置 if len(addList) > 0 { err = tx.CreateInBatches(addList, utils.MultiAddNum).Error if err != nil { return } } return }