hsun преди 1 година
родител
ревизия
280e4b2846
променени са 5 файла, в които са добавени 296 реда и са изтрити 0 реда
  1. 55 0
      controllers/english_report/report.go
  2. 1 0
      models/db.go
  3. 203 0
      models/english_policy_report.go
  4. 9 0
      routers/commentsRouter.go
  5. 28 0
      services/english_report.go

+ 55 - 0
controllers/english_report/report.go

@@ -587,3 +587,58 @@ func (this *EnglishReportController) PublishCancleReport() {
 	br.Success = true
 	br.Msg = "取消发布成功"
 }
+
+// @Title 删除报告接口
+// @Description 删除报告
+// @Param	request	body models.DeleteReq true "type json string"
+// @Success 200 Ret=200 删除成功
+// @router /delete [post]
+func (this *EnglishReportController) Delete() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	var req models.DeleteReq
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+	if req.ReportIds <= 0 {
+		br.Msg = "参数错误"
+		br.ErrMsg = "参数错误,报告id不可为空"
+		return
+	}
+	reportInfo, err := models.GetEnglishReportById(req.ReportIds)
+	if err != nil {
+		if err.Error() == utils.ErrNoRow() {
+			br.Msg = "报告不存在"
+			return
+		}
+		br.Msg = "查询报告信息失败"
+		br.ErrMsg = "查询报告信息失败, Err" + err.Error()
+		return
+	}
+
+	// 更新es里的报告状态
+	_ = services.UpdateEnglishReportEs(req.ReportIds, 1)
+	if err = models.DeleteEnglishReportAndChapter(reportInfo); err != nil {
+		br.Msg = "删除失败"
+		br.ErrMsg = "删除报告失败, Err: " + err.Error()
+		return
+	}
+
+	// 重置PPT关联报告
+	go func() {
+		_ = services.ResetPPTReport(req.ReportIds, true)
+	}()
+
+	go func() {
+		_ = services.EnglishPolicyReportSyncCancel(reportInfo)
+	}()
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "删除成功"
+}

+ 1 - 0
models/db.go

@@ -155,6 +155,7 @@ func initMultipleGraphConfig() {
 func initEnglishReport() {
 	orm.RegisterModel(
 		new(EnglishReport),
+		new(EnglishPolicyReport),
 		new(EnglishReportEmail),
 		new(EnglishReportEmailLog),
 		new(EnglishClassify),

+ 203 - 0
models/english_policy_report.go

@@ -0,0 +1,203 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"github.com/rdlucklib/rdluck_tools/paging"
+	"hongze/hongze_ETA_mobile_api/utils"
+	"strings"
+	"time"
+)
+
+// 英文策略报告
+type EnglishPolicyReport 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         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) {
+	o := orm.NewOrmUsingDB("rddp")
+	_, err = o.InsertMulti(len(list), list)
+	return
+}
+
+type EnglishPolicyReportDetail struct {
+	Id                 int    `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) {
+	o := orm.NewOrmUsingDB("rddp")
+	sql := `SELECT * FROM english_policy_report WHERE id=?`
+	err = o.Raw(sql, reportId).QueryRow(&item)
+	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) {
+	oRddp := orm.NewOrmUsingDB("rddp")
+	sql := `SELECT COUNT(1) AS count  FROM english_policy_report WHERE 1=1 `
+	if condition != "" {
+		sql += condition
+	}
+	err = oRddp.Raw(sql, pars).QueryRow(&count)
+	return
+}
+
+func GetEnglishPolicyReportList(condition string, pars []interface{}, startSize, pageSize int) (items []*EnglishPolicyReportList, err error) {
+	o := orm.NewOrmUsingDB("rddp")
+	//产品权限
+	sql := `SELECT * 
+        FROM english_policy_report WHERE 1=1  `
+	if condition != "" {
+		sql += condition
+	}
+	sql += `ORDER BY  publish_time DESC LIMIT ?,?`
+	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	return
+}
+
+func GetEnglishPolicyReportByCondition(condition string, pars []interface{}) (items []*EnglishPolicyReport, err error) {
+	o := orm.NewOrmUsingDB("rddp")
+	sql := `SELECT * 
+        FROM english_policy_report WHERE 1=1  `
+	if condition != "" {
+		sql += condition
+	}
+	_, err = o.Raw(sql, pars).QueryRows(&items)
+	return
+}
+
+type SyncEnglishPolicyReq struct {
+	Id int `description:"策略报告id"`
+}
+
+type PullEnglishPolicyDataResp struct {
+	Num int `description:"成功获取的记录数"`
+}
+
+// 同步报告
+func SyncEnglishPolicyReportById(id, newReportId int) (err error) {
+	o := orm.NewOrmUsingDB("rddp")
+	sql := `UPDATE english_policy_report SET state=2, sync_time=now(),modify_time=NOW(), sync_report_id=? WHERE id = ? `
+	_, err = o.Raw(sql, newReportId, id).Exec()
+	return
+}
+
+// 设置策略报告内容
+func SetEnglishPolicyReportContentBySourceReportId(sourceReportId int, content string) (err error) {
+	o := orm.NewOrmUsingDB("rddp")
+	sql := `UPDATE english_policy_report SET content=?, modify_time=NOW() WHERE source_report_id = ? `
+	_, err = o.Raw(sql, content, sourceReportId).Exec()
+	return
+}
+
+// 取消发布报告
+func SyncCancelEnglishPolicyReport(reportId int) (err error) {
+	o := orm.NewOrmUsingDB("rddp")
+	sql := ` UPDATE english_policy_report SET state=1,sync_time=null,modify_time=NOW(), sync_report_id=0 WHERE id =?  `
+	_, err = o.Raw(sql, reportId).Exec()
+	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) {
+	o := orm.NewOrmUsingDB("rddp")
+	_, err = o.Update(item, cols...)
+	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
+}

+ 9 - 0
routers/commentsRouter.go

@@ -322,6 +322,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["hongze/hongze_ETA_mobile_api/controllers/english_report:EnglishReportController"] = append(beego.GlobalControllerRouter["hongze/hongze_ETA_mobile_api/controllers/english_report:EnglishReportController"],
+        beego.ControllerComments{
+            Method: "Delete",
+            Router: `/delete`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["hongze/hongze_ETA_mobile_api/controllers/english_report:EnglishReportController"] = append(beego.GlobalControllerRouter["hongze/hongze_ETA_mobile_api/controllers/english_report:EnglishReportController"],
         beego.ControllerComments{
             Method: "Detail",

+ 28 - 0
services/english_report.go

@@ -535,3 +535,31 @@ func UpdateEnReportEditMark(reportId, nowUserId, status int, nowUserName string)
 	}
 	return
 }
+
+// 取消英文策略报告一键同步
+func EnglishPolicyReportSyncCancel(reportInfo *models.EnglishReportDetail) (err error) {
+	var policyReport *models.EnglishPolicyReportDetail
+	if reportInfo.FromReportId > 0 {
+		//查询报告是否存在
+		policyReport, err = models.GetEnglishPolicyReportById(reportInfo.FromReportId)
+		if err != nil {
+			if err.Error() == utils.ErrNoRow() {
+				err = fmt.Errorf("报告不存在!")
+				return
+			}
+			err = fmt.Errorf("获取报告信息失败,Err:%v", err)
+			return
+		}
+		//判断报告是否已同步
+		if policyReport.State == 1 {
+			err = fmt.Errorf("报告已取消同步,无需重复取消")
+			return
+		}
+
+		if err = models.SyncCancelEnglishPolicyReport(policyReport.Id); err != nil {
+			err = fmt.Errorf("报告已取消同步失败 Err %v", err)
+			return
+		}
+	}
+	return
+}