type ExaReport struct { global.GVA_MODEL TableNames string `json:"tableNames" form:"tableNames" gorm:"comment:报表类型"` // 报表类型 Plate string `json:"plate" form:"plate" gorm:"comment:所属板块"` // 所属板块 StartTime *time.Time `json:"startTime" form:"startTime" gorm:"comment:数据最早时间"` // 数据最早时间 EndTime *time.Time `json:"endTime" form:"endTime" gorm:"comment:数据最晚时间"` // 数据最晚时间 UpdateAt *time.Time `json:"updateAt" form:"updateAt" gorm:"comment:数据更新时间"` UpdateOpinion string `json:"updateOpinion" form:"updateOpinion" gorm:"comment:更新详细意见"` StateCode string `json:"stateCode" form:"stateCode" gorm:"comment:解析状态"` SysUserID uint `json:"sysUserId" form:"sysUserId" gorm:"comment:管理ID"` // 管理ID SysUserAuthorityID uint `json:"sysUserAuthorityID" form:"sysUserAuthorityID" gorm:"comment:管理角色ID"` // 管理角色ID SysUser system.SysUser `json:"sysUser" form:"sysUser" gorm:"comment:管理详情"` // 管理详情 } func (exa *ReportService) DeleteReport(e example.ExaReport) (err error) { // 删除对应的用户意见数据 var tableName string err = global.GVA_DB.Model(&example.ExaReport{}).Where("id = ?", e.ID).Pluck("table_names", &tableName).Error if err != nil { return err } err = global.GVA_DB.Where("data_source = ?", tableName).Delete(&example.ExaUserOpinion{}).Error if err != nil { return err } // 删除报表数据 err = global.GVA_DB.Delete(&e).Error if err != nil { return err } return nil } 先判断plate=用户意见板块或者质量测试板块 当plate=用户意见板块时,在表&example.ExaUserOpinion{}内删除data_source = tableName的数据, 当plate=质量测试板块时,在表&example.ExaUserOpinion{}内删除data_source = tableName的数据请帮我修改代码
时间: 2023-08-07 08:13:04 浏览: 155
你想要修改的代码如下所示:
```go
func (exa *ReportService) DeleteReport(e example.ExaReport) (err error) {
// 删除对应的用户意见数据
var tableName string
err = global.GVA_DB.Model(&example.ExaReport{}).Where("id = ?", e.ID).Pluck("table_names", &tableName).Error
if err != nil {
return err
}
// 判断plate=用户意见板块或者质量测试板块
if e.Plate == "用户意见板块" {
// 当plate=用户意见板块时,在表&example.ExaUserOpinion{}内删除data_source = tableName的数据
err = global.GVA_DB.Where("data_source = ?", tableName).Delete(&example.ExaUserOpinion{}).Error
if err != nil {
return err
}
} else if e.Plate == "质量测试板块" {
// 当plate=质量测试板块时,在表&example.ExaUserOpinion{}内删除data_source = tableName的数据
err = global.GVA_DB.Where("data_source = ?", tableName).Delete(&example.ExaUserOpinion{}).Error
if err != nil {
return err
}
}
// 删除报表数据
err = global.GVA_DB.Delete(&e).Error
if err != nil {
return err
}
return nil
}
```
我在代码中添加了条件判断,根据 `Plate` 属性的值进行不同的操作。当 `Plate` 等于 "用户意见板块" 时,删除表 `example.ExaUserOpinion{}` 中 `data_source = tableName` 的数据;当 `Plate` 等于 "质量测试板块" 时,也删除表 `example.ExaUserOpinion{}` 中 `data_source = tableName` 的数据。最后,删除报表数据。
请注意,我假设了 "用户意见板块" 和 "质量测试板块" 是 `Plate` 属性的可能取值。你可以根据实际情况修改这些值。
阅读全文