123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- 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
- }
|