package models import ( sql2 "database/sql" "eta/eta_api/global" "eta/eta_api/utils" "time" "github.com/rdlucklib/rdluck_tools/paging" ) // 英文策略报告 type EnglishPolicyReport struct { Id int `gorm:"column:id;primaryKey;autoIncrement" description:"策略报告Id"` ClassifyIdFirst int `description:"一级分类id"` ClassifyNameFirst string `description:"一级分类名称"` ClassifyIdSecond int `description:"二级分类id"` ClassifyNameSecond string `description:"二级分类名称"` Title string `description:"标题"` Abstract string `description:"摘要"` Author string `description:"作者"` Frequency string `description:"频度"` CreateTime time.Time `description:"创建时间"` ModifyTime time.Time `description:"修改时间"` State int `description:"1:未同步,2:已同步"` SyncTime time.Time `description:"同步时间"` PublishStatus int `description:"1:未发布,2:已发布"` PublishTime time.Time `description:"发布时间"` Content string `description:"内容"` KeyTakeaways string `description:"关键点"` AuthorMobile string `description:"创建者手机号"` SyncReportId int `description:"同步后的report_id为english_report的ID"` SourceReportId int `description:"原始报告ID"` ReportCoverUrl string `description:"原始报告封面图"` } // AddEnglishPolicyReportMulti 批量新增report func AddEnglishPolicyReportMulti(list []*EnglishPolicyReport) (err error) { if len(list) == 0 { return } err = global.DbMap[utils.DbNameReport].CreateInBatches(list, utils.MultiAddNum).Error return } type EnglishPolicyReportDetail struct { Id int `gorm:"column:id;primaryKey;autoIncrement" description:"策略报告Id"` ClassifyIdFirst int `description:"一级分类id"` ClassifyNameFirst string `description:"一级分类名称"` ClassifyIdSecond int `description:"二级分类id"` ClassifyNameSecond string `description:"二级分类名称"` Title string `description:"标题"` Abstract string `description:"摘要"` Author string `description:"作者"` Frequency string `description:"频度"` //CreateTime string `description:"创建时间"` PublishTime string `description:"发布时间"` ModifyTime string `description:"修改时间"` State int `description:"同步状态:1:未同步,2:已同步"` SyncTime string `description:"同步时间"` Content string `description:"内容"` KeyTakeaways string `description:"关键点"` AuthorMobile string `description:"创建者手机号"` SyncReportId int `description:"同步后的report_id为english_report的ID"` //SourceReportId int `description:"原始报告ID"` ReportCoverUrl string `description:"原始报告封面图"` } func GetEnglishPolicyReportById(reportId int) (item *EnglishPolicyReportDetail, err error) { sql := `SELECT * FROM english_policy_report WHERE id=?` err = global.DbMap[utils.DbNameReport].Raw(sql, reportId).First(&item).Error return } //func GetEnglishPolicyReportBySourceReportId(sourceReportId int) (item *EnglishPolicyReport, err error) { // o := orm.NewOrmUsingDB("rddp") // sql := `SELECT * FROM english_policy_report WHERE source_report_id = ? LIMIT 1` // err = o.Raw(sql, sourceReportId).QueryRow(&item) // return //} type EnglishPolicyReportList struct { Id int `orm:"column(id);pk;auto" description:"策略报告Id"` ClassifyIdFirst int `description:"一级分类id"` ClassifyNameFirst string `description:"一级分类名称"` ClassifyIdSecond int `description:"二级分类id"` ClassifyNameSecond string `description:"二级分类名称"` Title string `description:"标题"` Abstract string `description:"摘要"` Author string `description:"作者"` Frequency string `description:"频度"` //CreateTime string `description:"创建时间"` PublishTime string `description:"发布时间"` ModifyTime string `description:"修改时间"` State int `description:"1:未同步,2:已同步"` SyncTime string `description:"同步时间"` //Content string `description:"内容"` KeyTakeaways string `description:"关键点"` AuthorMobile string `description:"创建者手机号"` SyncReportId int `description:"同步后的report_id为english_report的ID"` //SourceReportId int `description:"原始报告ID"` ReportCoverUrl string `description:"原始报告封面图"` } type EnglishPolicyReportListResp struct { List []*EnglishPolicyReportList Paging *paging.PagingItem `description:"分页数据"` } func GetEnglishPolicyReportListCount(condition string, pars []interface{}) (count int, err error) { sql := `SELECT COUNT(1) AS count FROM english_policy_report WHERE 1=1 ` if condition != "" { sql += condition } var countNull sql2.NullInt64 err = global.DbMap[utils.DbNameReport].Raw(sql, pars...).Scan(&countNull).Error if err != nil { return } if countNull.Valid { count = int(countNull.Int64) } return } func GetEnglishPolicyReportList(condition string, pars []interface{}, startSize, pageSize int) (items []*EnglishPolicyReportList, err error) { sql := `SELECT * FROM english_policy_report WHERE 1=1 ` if condition != "" { sql += condition } sql += `ORDER BY publish_time DESC LIMIT ?,?` pars = append(pars, startSize, pageSize) err = global.DbMap[utils.DbNameReport].Raw(sql, pars...).Find(&items).Error return } func GetEnglishPolicyReportByCondition(condition string, pars []interface{}) (items []*EnglishPolicyReport, err error) { sql := `SELECT * FROM english_policy_report WHERE 1=1 ` if condition != "" { sql += condition } err = global.DbMap[utils.DbNameReport].Raw(sql, pars...).Find(&items).Error return } type SyncEnglishPolicyReq struct { Id int `description:"策略报告id"` } type PullEnglishPolicyDataResp struct { Num int `description:"成功获取的记录数"` } // 同步报告 func SyncEnglishPolicyReportById(id, newReportId int) (err error) { o := global.DbMap[utils.DbNameReport] sql := `UPDATE english_policy_report SET state=2, sync_time=now(),modify_time=NOW(), sync_report_id=? WHERE id = ? ` err = o.Exec(sql, newReportId, id).Error return } // 设置策略报告内容 func SetEnglishPolicyReportContentBySourceReportId(sourceReportId int, content string) (err error) { sql := `UPDATE english_policy_report SET content=?, modify_time=NOW() WHERE source_report_id = ? ` err = global.DbMap[utils.DbNameReport].Exec(sql, content, sourceReportId).Error return } // 取消发布报告 func SyncCancelEnglishPolicyReport(reportId int) (err error) { sql := ` UPDATE english_policy_report SET state=1,sync_time=null,modify_time=NOW(), sync_report_id=0 WHERE id =? ` err = global.DbMap[utils.DbNameReport].Exec(sql, reportId).Error return } // 删除报告 //func DeleteEnglishPolicyReport(reportIds int) (err error) { // o := orm.NewOrmUsingDB("rddp") // sql := ` DELETE FROM english_policy_report WHERE id =? ` // _, err = o.Raw(sql, reportIds).Exec() // return //} // Update 更新 func (item *EnglishPolicyReport) Update(cols []string) (err error) { err = global.DbMap[utils.DbNameReport].Select(cols).Updates(item).Error return } // GetEnglishPolicyReportByIds 根据IDs获取英文报告列表 //func GetEnglishPolicyReportByIds(reportIds []int, fieldArr []string) (list []*EnglishPolicyReport, err error) { // listLen := len(reportIds) // if listLen == 0 { // return // } // fields := ` * ` // if len(fieldArr) > 0 { // fields = strings.Join(fieldArr, ",") // } // o := orm.NewOrmUsingDB("rddp") // sql := `SELECT ` + fields + ` FROM english_policy_report WHERE id IN (` + utils.GetOrmInReplace(listLen) + `)` // _, err = o.Raw(sql, reportIds).QueryRows(&list) // return //}