网站开发技术。 | | | 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 } 先通过id查询table_names以及plate的值,然后判断plate=用户意见板块或者质量测试板块 当plate=用户意见板块时,在表&example.ExaUserOpinion{}内删除data_source = tableName的数据, 当plate=质量测试板块时,在表&example.ExaUserOpinion{}内删除data_source = tableName的数据请帮我修改代码
时间: 2023-08-07 09:13:04 浏览: 176
你想要修改的代码如下所示:
```go
func (exa *ReportService) DeleteReport(e example.ExaReport) (err error) {
// 通过ID查询table_names和plate的值
var tableName string
var plate string
err = global.GVA_DB.Model(&example.ExaReport{}).Select("table_names, plate").Where("id = ?", e.ID).Scan(&e).Error
if err != nil {
return err
}
// 判断plate=用户意见板块或者质量测试板块
if e.Plate == "用户意见板块" {
// 当plate=用户意见板块时,在表&example.ExaUserOpinion{}内删除data_source = tableName的数据
err = global.GVA_DB.Where("data_source = ?", e.TableNames).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 = ?", e.TableNames).Delete(&example.ExaUserOpinion{}).Error
if err != nil {
return err
}
}
// 删除报表数据
err = global.GVA_DB.Delete(&e).Error
if err != nil {
return err
}
return nil
}
```
在代码中,我添加了查询语句来获取 `table_names` 和 `plate` 的值。然后,根据 `plate` 的值进行条件判断。如果 `plate` 等于 "用户意见板块",则在表 `example.ExaUserOpinion{}` 中删除 `data_source = tableName` 的数据。如果 `plate` 等于 "质量测试板块",也在表 `example.ExaUserOpinion{}` 中删除 `data_source = tableName` 的数据。最后,删除报表数据。
请注意,我假设了 "用户意见板块" 和 "质量测试板块" 是 `plate` 属性的可能取值。你可以根据实际情况修改这些值。另外,我还修正了查询语句中的错误,应该使用 `Scan` 方法将结果赋值给 `e` 对象。
阅读全文