Browse Source

no message

xingzai 1 year ago
parent
commit
30ca382657

+ 8 - 0
models/cygx/resource_data.go

@@ -47,3 +47,11 @@ func GetCygxReportSelectionBySourceAndId(sourceId int, source string) (count int
 	err = o.Raw(sqlCount, sourceId, source).QueryRow(&count)
 	return
 }
+
+// 通过ID跟资源获取详情
+func GetCygxResourceDataByIdAndSource(sourceId int, source string) (item *CygxResourceData, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM cygx_resource_data WHERE  source_id = ? AND source =?  `
+	err = o.Raw(sql, sourceId, source).QueryRow(&item)
+	return
+}

+ 102 - 0
models/cygx/resource_data_industrial_group_management.go

@@ -0,0 +1,102 @@
+package cygx
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+// 首页资源表与产业的关系
+type CygxResourceDataIndustrialGroupManagement struct {
+	Id                     int       `orm:"column(id);pk" description:"主键ID"`
+	ResourceDataId         int       `description:"cygx_resource_data 主键ID"`
+	SourceId               int       `description:"资源ID"`
+	Source                 string    `description:"资源类型 报告 :article 、图表 :newchart、微路演 :roadshow、活动 :activity、活动视频:activityvideo、活动音频:activityvoice、专项调研活动:activityspecial"`
+	IndustrialManagementId int       `description:"cygx_industrial_management表的主键ID"`
+	CreateTime             time.Time `description:"创建时间"`
+}
+
+// 首页资源表与产业的关系
+type CygxResourceDataIndustrialGroupSubject struct {
+	Id                  int       `orm:"column(id);pk" description:"主键ID"`
+	ResourceDataId      int       `description:"cygx_resource_data 主键ID"`
+	SourceId            int       `description:"资源ID"`
+	Source              string    `description:"资源类型 报告 :article 、图表 :newchart、微路演 :roadshow、活动 :activity、活动视频:activityvideo、活动音频:activityvoice、专项调研活动:activityspecial"`
+	IndustrialSubjectId int       `description:"cygx_industrial_subject表的主键ID"`
+	CreateTime          time.Time `description:"创建时间"`
+}
+
+// 添加
+func AddCygxResourceDataGroup(sourceId int, source string, industrialItems []*CygxResourceDataIndustrialGroupManagement, subjectItems []*CygxResourceDataIndustrialGroupSubject) (err error) {
+	o := orm.NewOrm()
+	to, err := o.Begin()
+	if err != nil {
+		return
+	}
+	defer func() {
+		if err != nil {
+			_ = to.Rollback()
+		} else {
+			_ = to.Commit()
+		}
+	}()
+	//删除关联产业
+	sql := `	DELETE FROM cygx_resource_data_industrial_group_management WHERE source_id = ? AND source =? `
+	_, err = to.Raw(sql, sourceId, source).Exec()
+	if err != nil {
+		return
+	}
+	//删除关联标的
+	sql = `	DELETE FROM cygx_resource_data_industrial_group_subject WHERE source_id = ? AND source =? `
+	_, err = to.Raw(sql, sourceId, source).Exec()
+	if err != nil {
+		return
+	}
+
+	//批量插入关联产业
+	if len(industrialItems) > 0 {
+		_, err = to.InsertMulti(len(industrialItems), industrialItems)
+		if err != nil {
+			return
+		}
+	}
+
+	//批量插入关联标的
+	if len(subjectItems) > 0 {
+		_, err = to.InsertMulti(len(subjectItems), subjectItems)
+		if err != nil {
+			return
+		}
+	}
+
+	return
+}
+
+// 删除
+func DeleteCygxResourceDataGroup(sourceId int, source string) (err error) {
+	o := orm.NewOrm()
+	to, err := o.Begin()
+	if err != nil {
+		return
+	}
+	defer func() {
+		if err != nil {
+			_ = to.Rollback()
+		} else {
+			_ = to.Commit()
+		}
+	}()
+	//删除关联产业
+	sql := `	DELETE FROM cygx_resource_data_industrial_group_management WHERE source_id = ? AND source =? `
+	_, err = to.Raw(sql, sourceId, source).Exec()
+	if err != nil {
+		return
+	}
+	//删除关联标的
+	sql = `	DELETE FROM cygx_resource_data_industrial_group_subject WHERE source_id = ? AND source =? `
+	_, err = to.Raw(sql, sourceId, source).Exec()
+	if err != nil {
+		return
+	}
+
+	return
+}

+ 2 - 0
models/db.go

@@ -439,6 +439,8 @@ func initCygx() {
 		new(cygx.CygxTag),
 		new(cygx.AliyunOcrLog),
 		new(cygx.CygxReportMappingCategoryGroup),
+		new(cygx.CygxResourceDataIndustrialGroupManagement),
+		new(cygx.CygxResourceDataIndustrialGroupSubject),
 	)
 }
 

+ 139 - 1
services/cygx/resource_data.go

@@ -7,11 +7,148 @@ import (
 	"hongze/hz_crm_api/services/alarm_msg"
 	"hongze/hz_crm_api/utils"
 	"strconv"
+	"strings"
 	"time"
 )
 
 //首页最新页面数据逻辑处理
 
+//activity
+//activityspecial
+//activityvideo
+//activityvoice
+//article
+//meetingreviewchapt
+//minutessummary
+//newchart
+//productinterior
+//reportselection
+//researchsummary
+//roadshow
+
+//func init() {
+//	UpdateActivityResourceData(2117)
+//}
+
+// 更新活动
+func UpdateActivityResourceData(sourceId int) (err error) {
+	//time.Sleep(3*time.Second) // 有时候同时添加多个活动,延迟三秒
+	defer func() {
+		if err != nil {
+			fmt.Println("err:", err)
+			go alarm_msg.SendAlarmMsg("更新活动 失败,UpdateActivityResourceData Err:"+err.Error()+"资源ID"+strconv.Itoa(sourceId), 3)
+		}
+	}()
+	var source = utils.CYGX_OBJ_ACTIVITY
+	var condition string
+	var pars []interface{}
+	condition = ` AND publish_status = 1  AND  activity_id = ?  `
+	pars = append(pars, sourceId)
+	total, e := cygx.GetActivityCount(condition, pars)
+	if e != nil {
+		err = errors.New("GetCygxReportSelection, Err: " + err.Error())
+		return
+	}
+	//如果取消发布了就做删除处理
+	if total == 0 {
+		e = cygx.DeleteResourceData(sourceId, source)
+		if e != nil {
+			err = errors.New("DeleteResourceData, Err: " + err.Error())
+			return
+		}
+		//删除 cygx_resource_data 表关联的产业ID,标的ID
+		e = cygx.DeleteCygxResourceDataGroup(sourceId, source)
+		if e != nil {
+			err = errors.New("DeleteCygxResourceDataGroup, Err: " + err.Error())
+			return
+		}
+	} else {
+		//判断是否存在,如果不存在就新增,存在就更新
+		totalData, e := cygx.GetCygxReportSelectionBySourceAndId(sourceId, source)
+		if e != nil {
+			err = errors.New("GetCygxReportSelectionBySourceAndId, Err: " + err.Error())
+			return
+		}
+		detail, e := cygx.GetAddActivityInfoById(sourceId)
+		if e != nil {
+			err = errors.New("GetCygxReportSelectionInfoById, Err: " + err.Error())
+			return
+		}
+		var resourceDataId int
+		publishDate := time.Now().Format(utils.FormatDateTime)
+		if totalData == 0 {
+			item := new(cygx.CygxResourceData)
+			item.SourceId = sourceId
+			item.Source = source
+			//分析师电话会(C类)
+			item.SearchTag = strings.TrimRight(detail.ActivityTypeName, "(C类)")
+			item.PublishDate = publishDate
+			item.CreateTime = time.Now()
+			newId, e := cygx.AddCygxResourceData(item)
+			if e != nil {
+				err = errors.New("AddCygxResourceData, Err: " + err.Error())
+				return
+			}
+			resourceDataId = int(newId)
+		} else {
+			e = cygx.UpdateResourceData(sourceId, source, publishDate)
+			if e != nil {
+				err = errors.New("UpdateResourceData, Err: " + err.Error())
+				return
+			}
+
+			sourceDetail, e := cygx.GetCygxResourceDataByIdAndSource(sourceId, source)
+			if e != nil {
+				err = errors.New("UpdateResourceData, Err: " + err.Error())
+				return
+			}
+			resourceDataId = sourceDetail.Id
+		}
+
+		//建立首页资源表,与产业的关系
+		industrialList, e := cygx.GetIndustrialActivityGroupManagementList(sourceId, 1)
+		if e != nil && e.Error() != utils.ErrNoRow() {
+			err = errors.New("GetIndustrialActivityGroupManagementList, Err: " + err.Error() + "activityId:" + strconv.Itoa(sourceId))
+			return
+		}
+		var industrialItems []*cygx.CygxResourceDataIndustrialGroupManagement
+		for _, v := range industrialList {
+			var industrialItem = new(cygx.CygxResourceDataIndustrialGroupManagement)
+			industrialItem.SourceId = sourceId
+			industrialItem.Source = source
+			industrialItem.IndustrialManagementId = v.IndustrialManagementId
+			industrialItem.ResourceDataId = resourceDataId
+			industrialItem.CreateTime = time.Now()
+			industrialItems = append(industrialItems, industrialItem)
+		}
+
+		//建立首页资源表,与标的 的关系
+		subjectList, e := cygx.GetSubjectActivityGroupManagementList(sourceId, 1)
+		if e != nil && e.Error() != utils.ErrNoRow() {
+			err = errors.New("GetIndustrialActivityGroupManagementList, Err: " + err.Error() + "activityId:" + strconv.Itoa(sourceId))
+			return
+		}
+		var subjectItems []*cygx.CygxResourceDataIndustrialGroupSubject
+		for _, v := range subjectList {
+			var subjectItem = new(cygx.CygxResourceDataIndustrialGroupSubject)
+			subjectItem.SourceId = sourceId
+			subjectItem.Source = source
+			subjectItem.IndustrialSubjectId = v.IndustrialSubjectId
+			subjectItem.ResourceDataId = resourceDataId
+			subjectItem.CreateTime = time.Now()
+			subjectItems = append(subjectItems, subjectItem)
+		}
+
+		//插入关联信息
+		e = cygx.AddCygxResourceDataGroup(sourceId, source, industrialItems, subjectItems)
+		if e != nil {
+			err = errors.New("AddCygxResourceDataGroup, Err: " + err.Error())
+			return
+		}
+	}
+	return
+}
+
 // 更新报告精选(重点公司)
 func UpdateReportSelectionResourceData(sourceId int) (err error) {
 	defer func() {
@@ -23,7 +160,8 @@ func UpdateReportSelectionResourceData(sourceId int) (err error) {
 	var source = utils.CYGX_OBJ_REPORTSELECTION
 	var condition string
 	var pars []interface{}
-	condition = ` AND visible_range = 1 `
+	condition = ` AND visible_range = 1  AND article_id = ? `
+	pars = append(pars, sourceId)
 	total, e := cygx.GetCygxReportSelection(condition, pars)
 	if e != nil {
 		err = errors.New("GetCygxReportSelection, Err: " + err.Error())