package report import ( "eta_gn/eta_api/global" "eta_gn/eta_api/utils" "time" ) // ReportGrant // @Description: 报告授权用户表 //type ReportGrant struct { // GrantId int `orm:"column(grant_id)"` // 授权id // ReportId int `description:"报告id"` // AdminId int `description:"授权的用户id"` // CreateTime time.Time `description:"授权时间"` //} type ReportGrant struct { GrantId int `gorm:"primaryKey;column:grant_id;type:int(9) unsigned;not null"` // 授权id ReportId int `gorm:"index:idx_reportid;column:report_id;type:int(9) unsigned;not null;default:0"` // 报告id AdminId int `gorm:"column:admin_id;type:int(9) unsigned;default:0"` // 授权的用户id CreateTime time.Time `gorm:"column:create_time;type:timestamp;default:CURRENT_TIMESTAMP"` // 授权时间 } // MultiAddReportGrantGrant // @Description: 批量添加报告授权用户 // @author: Roc // @receiver m // @datetime 2024-06-04 15:36:02 // @param reportId int // @param list []*ReportGrant // @return err error func (m ReportGrant) MultiAddReportGrantGrant(reportId int, list []*ReportGrant) (err error) { tx := global.DmSQL["rddp"].Begin() defer func() { if err != nil { _ = tx.Rollback() return } _ = tx.Commit() }() sql := "DELETE from report_grant where report_id=?" err = tx.Exec(sql, reportId).Error if err != nil { return } // 新增授权记录 if len(list) > 0 { e := tx.CreateInBatches(list, utils.MultiAddNum).Error if e != nil { err = e return } } return } // GetGrantListById // @Description: 根据id获取授权列表 // @author: Roc // @receiver m // @datetime 2024-06-04 15:33:58 // @param reportId int // @return list []*ReportGrant // @return err error func (m ReportGrant) GetGrantListById(reportId int) (list []*ReportGrant, err error) { sql := `SELECT * FROM report_grant WHERE report_id=? ` err = global.DmSQL["rddp"].Raw(sql, reportId).Find(&list).Error return } // GetGrantListByIdList // @Description: 根据id列表获取授权列表 // @author: Roc // @receiver m // @datetime 2024-06-04 15:33:58 // @param reportIdList []int // @return list []*ReportGrant // @return err error func (m ReportGrant) GetGrantListByIdList(reportIdList []int) (list []*ReportGrant, err error) { num := len(reportIdList) if num <= 0 { return } sql := `SELECT * FROM report_grant WHERE report_id in (` + utils.GetOrmInReplace(num) + `) ` err = global.DmSQL["rddp"].Raw(sql, reportIdList).Find(&list).Error return } // GetGrantByIdAndAdmin // @Description: 根据reportId和操作人获取报告权限配置 // @author: Roc // @receiver m // @datetime 2024-06-04 15:49:59 // @param reportId int // @param sysUserId int // @return item *ReportGrant // @return err error func (m ReportGrant) GetGrantByIdAndAdmin(reportId, sysUserId int) (item *ReportGrant, err error) { sql := `SELECT * FROM report_grant WHERE report_id = ? AND admin_id = ? ` err = global.DmSQL["rddp"].Raw(sql, reportId, sysUserId).First(&item).Error return } // GetGrantListByAdminId // @Description: 根据id获取授权列表 // @author: Roc // @receiver m // @datetime 2024-06-04 15:33:58 // @param adminId int // @return list []*ReportGrant // @return err error func (m ReportGrant) GetGrantListByAdminId(adminId int) (list []*ReportGrant, err error) { sql := `SELECT * FROM report_grant WHERE admin_id=? ` err = global.DmSQL["rddp"].Raw(sql, adminId).Find(&list).Error return }