package data_manage import ( "eta/eta_api/global" "eta/eta_api/utils" "time" ) // EdbInfoNoPermissionAdmin 指标不可见用户配置表 type EdbInfoNoPermissionAdmin struct { Id int `orm:"column(id);pk" gorm:"primaryKey"` EdbInfoId int `orm:"column(edb_info_id);"` AdminId int `orm:"column(admin_id);"` CreateTime time.Time } func AddEdbInfoNoPermissionAdmin(item *EdbInfoNoPermissionAdmin) (lastId int64, err error) { o := global.DbMap[utils.DbNameIndex] err = o.Create(item).Error lastId = int64(item.Id) return } // GetAllListByEdbInfoId 根据指标id获取所有的配置 func (item EdbInfoNoPermissionAdmin) GetAllListByEdbInfoId(edbInfoId int) (items []*EdbInfoNoPermissionAdmin, err error) { o := global.DbMap[utils.DbNameIndex] sql := `SELECT * FROM edb_info_no_permission_admin WHERE edb_info_id = ? ORDER BY create_time desc` err = o.Raw(sql, edbInfoId).Find(&items).Error return } // GetAllListByAdminId 根据用户id获取该用户的所有配置 func (item EdbInfoNoPermissionAdmin) GetAllListByAdminId(adminId int) (items []*EdbInfoNoPermissionAdmin, err error) { o := global.DbMap[utils.DbNameIndex] sql := `SELECT * FROM edb_info_no_permission_admin WHERE admin_id = ? ORDER BY create_time desc` err = o.Raw(sql, adminId).Find(&items).Error return } // GetByEdbInfoIdAndAdminId 根据用户id和指标id获取配置 func (item EdbInfoNoPermissionAdmin) GetByEdbInfoIdAndAdminId(adminId, edbInfoId int) (info *EdbInfoNoPermissionAdmin, err error) { o := global.DbMap[utils.DbNameIndex] sql := `SELECT * FROM edb_info_no_permission_admin WHERE admin_id = ? AND edb_info_id = ? ORDER BY create_time desc` err = o.Raw(sql, adminId, edbInfoId).First(&info).Error return } // DeleteAllByEdbInfoId 根据指标id删除所有的配置 func (item EdbInfoNoPermissionAdmin) DeleteAllByEdbInfoId(edbInfoId int) (err error) { o := global.DbMap[utils.DbNameIndex] sql := `DELETE FROM edb_info_no_permission_admin WHERE edb_info_id = ? ` err = o.Exec(sql, edbInfoId).Error return } // DeleteByEdbInfoIdAndAdminId 根据指标id和用户id删除配置 func (item EdbInfoNoPermissionAdmin) DeleteByEdbInfoIdAndAdminId(edbInfoId, adminId int) (err error) { o := global.DbMap[utils.DbNameIndex] sql := `DELETE FROM edb_info_no_permission_admin WHERE edb_info_id = ? AND admin_id = ? ` err = o.Exec(sql, edbInfoId, adminId).Error return } // ModifyByEdbInfoId 根据指标id和用户ID列表 重新配置 func (item EdbInfoNoPermissionAdmin) ModifyByEdbInfoId(edbInfoId int, adminIdList []int) (err error) { to := global.DbMap[utils.DbNameIndex].Begin() if to.Error != nil { return to.Error } defer func() { if err != nil { _ = to.Rollback() } else { _ = to.Commit() } }() sql := `DELETE FROM edb_info_no_permission_admin WHERE edb_info_id = ? ` err = to.Exec(sql, edbInfoId).Error if err != nil { return } insertArr := make([]*EdbInfoNoPermissionAdmin, 0) for _, adminId := range adminIdList { insertArr = append(insertArr, &EdbInfoNoPermissionAdmin{ //Id: 0, EdbInfoId: edbInfoId, AdminId: adminId, CreateTime: time.Now(), }) } if len(insertArr) > 0 { err = to.CreateInBatches(insertArr, utils.MultiAddNum).Error } return } // AddByEdbInfoId 根据指标id和用户ID列表 添加配置 func (item EdbInfoNoPermissionAdmin) AddByEdbInfoId(edbInfoId int, adminIdList []int) (err error) { to := global.DbMap[utils.DbNameIndex].Begin() if to.Error != nil { return to.Error } defer func() { if err != nil { _ = to.Rollback() } else { _ = to.Commit() } }() var items []*EdbInfoNoPermissionAdmin sql := `SELECT * FROM edb_info_no_permission_admin WHERE edb_info_id = ? ORDER BY create_time desc` err = to.Raw(sql, edbInfoId).Find(&items).Error if err != nil { return } hasMap := make(map[int]int) for _, v := range items { hasMap[v.AdminId] = v.EdbInfoId } insertArr := make([]*EdbInfoNoPermissionAdmin, 0) for _, adminId := range adminIdList { if _, ok := hasMap[adminId]; !ok { insertArr = append(insertArr, &EdbInfoNoPermissionAdmin{ //Id: 0, EdbInfoId: edbInfoId, AdminId: adminId, CreateTime: time.Now(), }) } } if len(insertArr) > 0 { err = to.CreateInBatches(insertArr, utils.MultiAddNum).Error } return } type NoPermissionChart struct { AdminId int ChartInfoId int } // GetAllChartListByAdminId 根据用户id获取该用户的所有配置 func (item EdbInfoNoPermissionAdmin) GetAllChartListByAdminId(adminId int) (items []*NoPermissionChart, err error) { o := global.DbMap[utils.DbNameIndex] sql := `SELECT a.admin_id,b.chart_info_id FROM edb_info_no_permission_admin AS a JOIN chart_edb_mapping AS b ON a.edb_info_id=b. edb_info_id WHERE a.admin_id = ? ORDER BY a.create_time desc ` err = o.Raw(sql, adminId).Find(&items).Error return } // GetChartByEdbInfoIdAndAdminId 根据用户id和指标id获取配置 func (item EdbInfoNoPermissionAdmin) GetChartByEdbInfoIdAndAdminId(adminId, edbInfoId int) (info *NoPermissionChart, err error) { o := global.DbMap[utils.DbNameIndex] sql := `SELECT a.admin_id,b.chart_info_id FROM edb_info_no_permission_admin AS a JOIN chart_edb_mapping AS b ON a.edb_info_id=b. edb_info_id WHERE a.admin_id = ? AND a.edb_info_id = ? ORDER BY a.create_time desc` err = o.Raw(sql, adminId, edbInfoId).First(&info).Error return }