package models import ( sql2 "database/sql" "eta/eta_api/global" "eta/eta_api/utils" "github.com/rdlucklib/rdluck_tools/paging" "time" ) type ReportAuthor struct { Id int `gorm:"column:id;primaryKey;autoIncrement" description:"报告作者ID"` ReportAuthor string `description:"报告作者名称"` AuthorType int `description:"类型,1:中文;2:英文"` Enable int `description:"是否启用,0:禁用,1:启用"` IsDelete int `description:"是否删除,0:未删除,1:已删除"` CreateTime time.Time `description:"创建时间"` ModifyTime time.Time `description:"更新时间"` } // GetReportAuthorList 获取报告作者列表 func GetReportAuthorList(condition string, pars []interface{}, startSize, pageSize int) (total int, items []*ReportAuthor, err error) { o := global.DbMap[utils.DbNameReport] baseSql := ` report_author WHERE is_delete=0 ` if condition != "" { baseSql += condition } totalSql := ` SELECT count(1) total FROM ` + baseSql var totalNull sql2.NullInt64 err = global.DbMap[utils.DbNameReport].Raw(totalSql, pars...).Scan(&totalNull).Error if err != nil { return } if totalNull.Valid { total = int(totalNull.Int64) } sql := ` SELECT * FROM ` + baseSql + ` ORDER BY id desc LIMIT ?,? ` pars = append(pars, startSize, pageSize) err = o.Raw(sql, pars...).Find(&items).Error return } // GetReportAuthorCount 获取报告作者列表数 func GetReportAuthorCount(condition string, pars []interface{}) (total int, err error) { o := global.DbMap[utils.DbNameReport] totalSql := ` SELECT count(1) total FROM report_author WHERE 1=1 ` if condition != "" { totalSql += condition } var totalNull sql2.NullInt64 err = o.Raw(totalSql, pars...).Scan(&totalNull).Error if err != nil { return } if totalNull.Valid { total = int(totalNull.Int64) } return } type ReportAuthorResp struct { List []*ReportAuthor Paging *paging.PagingItem `description:"分页数据"` } // AddReportAuthorReq 新增报告作者请求体 type AddReportAuthorReq struct { Id int `description:"作者id"` AuthorType int `description:"类型,1:中文;2:英文"` Author string `description:"报告作者名称"` } // GetReportAuthorById 根据作者id获取数据 func GetReportAuthorById(authorId int) (item *ReportAuthor, err error) { o := global.DbMap[utils.DbNameReport] sql := `SELECT * FROM report_author WHERE is_delete=0 AND id = ? ` err = o.Raw(sql, authorId).First(&item).Error return } // GetReportAuthorByAuthor 根据作者名称获取数据 func GetReportAuthorByAuthor(title string, authorType int) (item *ReportAuthor, err error) { o := global.DbMap[utils.DbNameReport] sql := `SELECT * FROM report_author WHERE is_delete=0 AND report_author=? AND author_type = ? ` err = o.Raw(sql, title, authorType).First(&item).Error return } // GetReportAuthorByAuthorAndId 根据作者名称和作者id获取数据 func GetReportAuthorByAuthorAndId(title string, authorType, authorId int) (item *ReportAuthor, err error) { o := global.DbMap[utils.DbNameReport] sql := `SELECT * FROM report_author WHERE is_delete=0 AND report_author=? AND author_type = ? AND id != ? ` err = o.Raw(sql, title, authorType, authorId).First(&item).Error return } // AddReportAuthor 新增作者 func AddReportAuthor(item *ReportAuthor) (lastId int64, err error) { o := global.DbMap[utils.DbNameReport] err = o.Create(item).Error if err != nil { return } lastId = int64(item.Id) return } // Update 更新作者基础信息 func (item *ReportAuthor) Update(cols []string) (err error) { err = global.DbMap[utils.DbNameReport].Select(cols).Updates(item).Error return } // EnableReportAuthorReq 启用/禁用报告作者请求体 type EnableReportAuthorReq struct { Id int `description:"作者id"` EnableType int `description:"是否启用,0:禁用,1:启用"` } // DeleteReportAuthorReq 删除报告作者请求体 type DeleteReportAuthorReq struct { Id int `description:"作者id"` }