resource_data.go 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. package cygx
  2. import (
  3. "errors"
  4. "fmt"
  5. "hongze/hz_crm_api/models/cygx"
  6. "hongze/hz_crm_api/services/alarm_msg"
  7. "hongze/hz_crm_api/utils"
  8. "strconv"
  9. "strings"
  10. "time"
  11. )
  12. //首页最新页面数据逻辑处理
  13. //activity
  14. //activityspecial
  15. //activityvideo
  16. //activityvoice
  17. //article
  18. //meetingreviewchapt
  19. //minutessummary
  20. //newchart
  21. //productinterior
  22. //reportselection
  23. //researchsummary
  24. //roadshow
  25. //func init() {
  26. // UpdateActivityResourceData(2117)
  27. //}
  28. // 更新活动
  29. func UpdateActivityResourceData(sourceId int) (err error) {
  30. //time.Sleep(3*time.Second) // 有时候同时添加多个活动,延迟三秒
  31. defer func() {
  32. if err != nil {
  33. fmt.Println("err:", err)
  34. go alarm_msg.SendAlarmMsg("更新活动 失败,UpdateActivityResourceData Err:"+err.Error()+"资源ID"+strconv.Itoa(sourceId), 3)
  35. }
  36. }()
  37. var source = utils.CYGX_OBJ_ACTIVITY
  38. var condition string
  39. var pars []interface{}
  40. condition = ` AND publish_status = 1 AND activity_id = ? `
  41. pars = append(pars, sourceId)
  42. total, e := cygx.GetActivityCount(condition, pars)
  43. if e != nil {
  44. err = errors.New("GetCygxReportSelection, Err: " + err.Error())
  45. return
  46. }
  47. //如果取消发布了就做删除处理
  48. if total == 0 {
  49. e = cygx.DeleteResourceData(sourceId, source)
  50. if e != nil {
  51. err = errors.New("DeleteResourceData, Err: " + err.Error())
  52. return
  53. }
  54. //删除 cygx_resource_data 表关联的产业ID,标的ID
  55. e = cygx.DeleteCygxResourceDataGroup(sourceId, source)
  56. if e != nil {
  57. err = errors.New("DeleteCygxResourceDataGroup, Err: " + err.Error())
  58. return
  59. }
  60. } else {
  61. //判断是否存在,如果不存在就新增,存在就更新
  62. totalData, e := cygx.GetCygxReportSelectionBySourceAndId(sourceId, source)
  63. if e != nil {
  64. err = errors.New("GetCygxReportSelectionBySourceAndId, Err: " + err.Error())
  65. return
  66. }
  67. detail, e := cygx.GetAddActivityInfoById(sourceId)
  68. if e != nil {
  69. err = errors.New("GetCygxReportSelectionInfoById, Err: " + err.Error())
  70. return
  71. }
  72. var resourceDataId int
  73. publishDate := time.Now().Format(utils.FormatDateTime)
  74. if totalData == 0 {
  75. item := new(cygx.CygxResourceData)
  76. item.SourceId = sourceId
  77. item.Source = source
  78. //分析师电话会(C类)
  79. item.SearchTag = strings.TrimRight(detail.ActivityTypeName, "(C类)")
  80. item.PublishDate = publishDate
  81. item.CreateTime = time.Now()
  82. newId, e := cygx.AddCygxResourceData(item)
  83. if e != nil {
  84. err = errors.New("AddCygxResourceData, Err: " + err.Error())
  85. return
  86. }
  87. resourceDataId = int(newId)
  88. } else {
  89. e = cygx.UpdateResourceData(sourceId, source, publishDate)
  90. if e != nil {
  91. err = errors.New("UpdateResourceData, Err: " + err.Error())
  92. return
  93. }
  94. sourceDetail, e := cygx.GetCygxResourceDataByIdAndSource(sourceId, source)
  95. if e != nil {
  96. err = errors.New("UpdateResourceData, Err: " + err.Error())
  97. return
  98. }
  99. resourceDataId = sourceDetail.Id
  100. }
  101. //建立首页资源表,与产业的关系
  102. industrialList, e := cygx.GetIndustrialActivityGroupManagementList(sourceId, 1)
  103. if e != nil && e.Error() != utils.ErrNoRow() {
  104. err = errors.New("GetIndustrialActivityGroupManagementList, Err: " + err.Error() + "activityId:" + strconv.Itoa(sourceId))
  105. return
  106. }
  107. var industrialItems []*cygx.CygxResourceDataIndustrialGroupManagement
  108. for _, v := range industrialList {
  109. var industrialItem = new(cygx.CygxResourceDataIndustrialGroupManagement)
  110. industrialItem.SourceId = sourceId
  111. industrialItem.Source = source
  112. industrialItem.IndustrialManagementId = v.IndustrialManagementId
  113. industrialItem.ResourceDataId = resourceDataId
  114. industrialItem.CreateTime = time.Now()
  115. industrialItems = append(industrialItems, industrialItem)
  116. }
  117. //建立首页资源表,与标的 的关系
  118. subjectList, e := cygx.GetSubjectActivityGroupManagementList(sourceId, 1)
  119. if e != nil && e.Error() != utils.ErrNoRow() {
  120. err = errors.New("GetIndustrialActivityGroupManagementList, Err: " + err.Error() + "activityId:" + strconv.Itoa(sourceId))
  121. return
  122. }
  123. var subjectItems []*cygx.CygxResourceDataIndustrialGroupSubject
  124. for _, v := range subjectList {
  125. var subjectItem = new(cygx.CygxResourceDataIndustrialGroupSubject)
  126. subjectItem.SourceId = sourceId
  127. subjectItem.Source = source
  128. subjectItem.IndustrialSubjectId = v.IndustrialSubjectId
  129. subjectItem.ResourceDataId = resourceDataId
  130. subjectItem.CreateTime = time.Now()
  131. subjectItems = append(subjectItems, subjectItem)
  132. }
  133. //插入关联信息
  134. e = cygx.AddCygxResourceDataGroup(sourceId, source, industrialItems, subjectItems)
  135. if e != nil {
  136. err = errors.New("AddCygxResourceDataGroup, Err: " + err.Error())
  137. return
  138. }
  139. }
  140. return
  141. }
  142. // 更新报告精选(重点公司)
  143. func UpdateReportSelectionResourceData(sourceId int) (err error) {
  144. defer func() {
  145. if err != nil {
  146. fmt.Println("err:", err)
  147. go alarm_msg.SendAlarmMsg("更新报告精选(重点公司) 失败,UpdateReportSelectionResourceData Err:"+err.Error()+"资源ID"+strconv.Itoa(sourceId), 3)
  148. }
  149. }()
  150. var source = utils.CYGX_OBJ_REPORTSELECTION
  151. var condition string
  152. var pars []interface{}
  153. condition = ` AND visible_range = 1 AND article_id = ? `
  154. pars = append(pars, sourceId)
  155. total, e := cygx.GetCygxReportSelection(condition, pars)
  156. if e != nil {
  157. err = errors.New("GetCygxReportSelection, Err: " + err.Error())
  158. return
  159. }
  160. //如果取消发布了就做删除处理
  161. if total == 0 {
  162. e = cygx.DeleteResourceData(sourceId, source)
  163. if e != nil {
  164. err = errors.New("DeleteResourceData, Err: " + err.Error())
  165. return
  166. }
  167. } else {
  168. //判断是否存在,如果不存在就新增,存在就更新
  169. totalData, e := cygx.GetCygxReportSelectionBySourceAndId(sourceId, source)
  170. if e != nil {
  171. err = errors.New("GetCygxReportSelection, Err: " + err.Error())
  172. return
  173. }
  174. detail, e := cygx.GetCygxReportSelectionInfoById(sourceId)
  175. if e != nil {
  176. err = errors.New("GetCygxReportSelectionInfoById, Err: " + err.Error())
  177. return
  178. }
  179. publishDate := detail.PublishDate
  180. if totalData == 0 {
  181. item := new(cygx.CygxResourceData)
  182. item.SourceId = sourceId
  183. item.Source = source
  184. item.SearchTag = "重点公司"
  185. item.PublishDate = publishDate
  186. item.CreateTime = time.Now()
  187. _, err = cygx.AddCygxResourceData(item)
  188. } else {
  189. err = cygx.UpdateResourceData(sourceId, source, publishDate)
  190. }
  191. }
  192. return
  193. }