micro_roadshow.go 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291
  1. package models
  2. import (
  3. "github.com/beego/beego/v2/client/orm"
  4. "github.com/rdlucklib/rdluck_tools/paging"
  5. "hongze/hongze_clpt/utils"
  6. "time"
  7. )
  8. // MicroRoadShowListResp 微路演列表响应体
  9. type MicroRoadShowListResp struct {
  10. Paging *paging.PagingItem
  11. List []*MicroRoadShowPageList
  12. }
  13. // MicroRoadShowPageList 微路演列表
  14. type MicroRoadShowPageList struct {
  15. Id int `description:"音视频ID"`
  16. Title string `description:"标题"`
  17. ResourceUrl string `description:"链接"`
  18. Type int `description:"类型: 1-音频; 2-活动视频; 3-产业视频"`
  19. PublishTime string `description:"发布时间"`
  20. BackgroundImg string `description:"背景图"`
  21. ShareImg string `description:"分享封面图"`
  22. ChartPermissionId int `description:"行业ID"`
  23. ChartPermissionName string `description:"行业名称"`
  24. IndustryName string `description:"产业名称"`
  25. PlaySeconds string `description:"音视频时长"`
  26. ActivityId int `description:"活动ID"`
  27. IndustrialManagementId int `description:"产业ID"`
  28. CreateTime string `description:"视频创建时间"`
  29. AuthInfo *UserPermissionAuthInfo
  30. }
  31. type AddVideoHistoryReq struct {
  32. VideoId int `description:"视频ID"`
  33. PlaySeconds int `description:"播放时长"`
  34. }
  35. type CygxMicroRoadshowVideoHistory struct {
  36. Id int `orm:"column(id);pk"description:"微路演视频浏览记录表id"`
  37. VideoId int `description:"微路演视频id"`
  38. UserId int `description:"用户id"`
  39. Mobile string `description:"手机号"`
  40. Email string `description:"邮箱"`
  41. CompanyId int `description:"公司Id"`
  42. CompanyName string `description:"公司名称"`
  43. RealName string `description:"用户实际名称"`
  44. SellerName string `description:"所属销售"`
  45. PlaySeconds string `description:"播放时间 单位s"`
  46. CreateTime time.Time `description:"视频创建时间"`
  47. ModifyTime time.Time `description:"视频修改时间"`
  48. }
  49. func GetLastCygxMicroRoadshowVideoHistory(videoId, userId int) (item *CygxMicroRoadshowVideoHistory, err error) {
  50. o := orm.NewOrm()
  51. sql := ` SELECT * FROM cygx_micro_roadshow_video_history WHERE video_id=? AND user_id=? ORDER BY create_time DESC limit 1 `
  52. err = o.Raw(sql, videoId, userId).QueryRow(&item)
  53. return
  54. }
  55. func AddCygxMicroRoadshowVideoHistory(item *CygxMicroRoadshowVideoHistory) (err error) {
  56. o := orm.NewOrm()
  57. _, err = o.Insert(item)
  58. return
  59. }
  60. // MicroAudioUnionList 微路演音频联合列表
  61. type MicroAudioUnionList struct {
  62. Id int `description:"音视频ID"`
  63. AudioTitle string `description:"标题"`
  64. AudioResourceUrl string `description:"链接"`
  65. AudioType int `description:"类型: 1-音频; 2-视频"`
  66. AudioPublishTime string `description:"发布时间"`
  67. AudioImgUrl string `description:"背景图"`
  68. AudioShareImg string `description:"分享图"`
  69. AudioChartPermissionId int `description:"行业ID"`
  70. AudioChartPermissionName string `description:"行业名称"`
  71. AudioPlaySeconds string `description:"音视频时长"`
  72. AudioActivityId int `description:"活动ID"`
  73. AuthInfo *UserPermissionAuthInfo
  74. }
  75. // HomeNewestUnionList 首页最新纪要-音频联合查询结果
  76. type HomeNewestUnionList struct {
  77. ArticleId int `description:"文章id"`
  78. Title string `description:"标题"`
  79. TitleEn string `description:"英文标题 "`
  80. UpdateFrequency string `description:"更新周期"`
  81. CreateDate string `description:"创建时间"`
  82. PublishDate string `description:"发布时间"`
  83. Body string `description:"内容"`
  84. BodyHtml string `description:"内容带有HTML标签"`
  85. Abstract string `description:"摘要"`
  86. CategoryName string `description:"一级分类"`
  87. SubCategoryName string `description:"二级分类"`
  88. ExpertBackground string `description:"专家背景"`
  89. IsResearch bool `description:"是否属于研选"`
  90. Pv int `description:"PV"`
  91. ImgUrlPc string `description:"图片链接"`
  92. CategoryId string `description:"文章分类"`
  93. HttpUrl string `description:"文章链接跳转地址"`
  94. IsNeedJump bool `description:"是否需要跳转链接地址"`
  95. Source int `description:"来源 1:文章, 2:图表"`
  96. Annotation string `description:"核心观点"`
  97. HomeType int `description:"数据类型:0-纪要(默认); 1-微路演音频"`
  98. MicroAudioUnionList
  99. }
  100. func UpdateLastCygxActivityVideoHistory(playSeconds string, lastId int) (err error) {
  101. o := orm.NewOrm()
  102. sql := ` UPDATE cygx_micro_roadshow_video_history SET play_seconds =? WHERE id=? `
  103. _, err = o.Raw(sql, playSeconds, lastId).Exec()
  104. return
  105. }
  106. // MicroRoadshowVideo 微路演视频
  107. type MicroRoadshowVideo struct {
  108. VideoId int `orm:"column(video_id);pk" description:"视频ID"`
  109. VideoName string `description:"视频标题"`
  110. ChartPermissionId int `description:"行业ID"`
  111. ChartPermissionName string `description:"行业名称"`
  112. IndustryId int `description:"产业ID"`
  113. IndustryName string `description:"产业名称"`
  114. PublishStatus int `description:"发布状态:0-未发布;1-已发布"`
  115. ModifyDate time.Time `description:"更新时间"`
  116. PublishDate time.Time `description:"发布时间"`
  117. VideoCounts int `description:"视频播放量"`
  118. VideoDuration int `description:"视频时长"`
  119. VideoUrl string `description:"视频地址"`
  120. CreateTime time.Time `description:"创建时间"`
  121. ImgUrl string `description:"背景图链接"`
  122. DetailImgUrl string `description:"产业详情页背景图"`
  123. }
  124. // GetMicroRoadshowVideoById 主键获取微路演视频
  125. func GetMicroRoadshowVideoById(videoId int) (item *MicroRoadshowVideo, err error) {
  126. sql := `SELECT * FROM cygx_micro_roadshow_video WHERE video_id = ? LIMIT 1`
  127. err = orm.NewOrm().Raw(sql, videoId).QueryRow(&item)
  128. return
  129. }
  130. func UpdateCygxActivityVideoCounts(videoId int) (err error) {
  131. sql := `UPDATE cygx_micro_roadshow_video SET video_counts = video_counts+1 WHERE video_id = ? `
  132. o := orm.NewOrm()
  133. _, err = o.Raw(sql, videoId).Exec()
  134. return
  135. }
  136. // GetMicroRoadshowVideoByIndustryIds 根据行业ID查询产业视频列表
  137. func GetMicroRoadshowVideoByIndustryIds(industrialIdArr []int) (list []*MicroRoadshowVideo, err error) {
  138. sql := `SELECT * FROM cygx_micro_roadshow_video WHERE industry_id in (` + utils.GetOrmInReplace(len(industrialIdArr)) + `) `
  139. _, err = orm.NewOrm().Raw(sql, industrialIdArr).QueryRows(&list)
  140. return
  141. }
  142. // GetMicroRoadshowVideoListBycondition 根据搜索条件获取搜索列表
  143. func GetMicroRoadshowVideoListBycondition(condition string, pars []interface{}, startSize, pageSize int) (list []*MicroRoadshowVideo, err error) {
  144. sql := `SELECT * FROM cygx_micro_roadshow_video WHERE 1 =1 `
  145. if condition != "" {
  146. sql += condition
  147. }
  148. sql += ` LIMIT ?,? `
  149. _, err = orm.NewOrm().Raw(sql, pars, startSize, pageSize).QueryRows(&list)
  150. return
  151. }
  152. // GetMicroRoadshowVideoByIndustryId 根据行业ID查询产业视频列表
  153. func GetMicroRoadshowVideoByIndustryId(industryId int) (item *MicroRoadshowVideo, err error) {
  154. sql := `SELECT * FROM cygx_micro_roadshow_video WHERE industry_id = ? and publish_status = 1`
  155. err = orm.NewOrm().Raw(sql, industryId).QueryRow(&item)
  156. return
  157. }
  158. //GetMicroRoadshowVideoByIndustryIdCount 根据行业ID查询产业视频是否存在
  159. func GetMicroRoadshowVideoByIndustryIdCount(industryId int) (count int, err error) {
  160. o := orm.NewOrm()
  161. sql := `SELECT COUNT(1) count
  162. FROM cygx_micro_roadshow_video WHERE industry_id = ? and publish_status = 1`
  163. err = o.Raw(sql, industryId).QueryRow(&count)
  164. return
  165. }
  166. //GetMicroRoadshowVideoByVideoIdCount 根据视频ID查询产业视频是否存在
  167. func GetMicroRoadshowVideoByVideoIdCount(industryId int) (count int, err error) {
  168. o := orm.NewOrm()
  169. sql := `SELECT COUNT(1) count
  170. FROM cygx_micro_roadshow_video WHERE video_id = ? and publish_status = 1`
  171. err = o.Raw(sql, industryId).QueryRow(&count)
  172. return
  173. }
  174. // GetMicroRoadshowVideoList 获取已经发布的微路演视频
  175. func GetMicroRoadshowVideoList() (list []*MicroRoadshowVideo, err error) {
  176. sql := `SELECT * FROM cygx_micro_roadshow_video WHERE publish_status = 1`
  177. _, err = orm.NewOrm().Raw(sql).QueryRows(&list)
  178. return
  179. }
  180. // GetMicroRoadShowVideoPageList 获取微路演视频列表-分页
  181. func GetMicroRoadShowVideoPageListV8(startSize, pageSize int, condition string, pars []interface{}, conditionAct string, parsAct []interface{}, conditionAudio string, parsAudio []interface{}, audioId, videoId, activityVideoId, filter int) (total int, list []*MicroRoadShowPageList, err error) {
  182. o := orm.NewOrm()
  183. var sql string
  184. //if audioId+activityVideoId == 0 && filter != 2 {
  185. sql += `SELECT
  186. video_id AS id,
  187. video_name AS title,
  188. video_url AS resource_url,
  189. 3 AS type,
  190. publish_date AS publish_time,
  191. chart_permission_id,
  192. chart_permission_name,
  193. video_duration AS play_seconds,
  194. img_url AS background_img,
  195. industry_name,
  196. share_img_url AS share_img,
  197. industry_id AS industrial_management_id,
  198. "" as activity_id
  199. FROM
  200. cygx_micro_roadshow_video
  201. WHERE
  202. publish_status = 1 `
  203. if condition != `` {
  204. sql += condition
  205. }
  206. //}
  207. //if audioId+videoId+activityVideoId == 0 && filter != 2 {
  208. sql += ` UNION ALL `
  209. //}
  210. //if audioId+videoId == 0 && filter != 2 {
  211. sql += `
  212. SELECT
  213. video_id AS id,
  214. video_name AS title,
  215. video_url AS resource_url,
  216. 2 AS type,
  217. art.activity_time as publish_time,
  218. art.chart_permission_id,
  219. art.chart_permission_name,
  220. "" AS play_seconds,
  221. "" AS background_img,
  222. "" AS industry_name,
  223. "" AS share_img,
  224. 0 AS industrial_management_id,
  225. v.activity_id
  226. FROM
  227. cygx_activity_video as v
  228. INNER JOIN cygx_activity as art on art.activity_id = v.activity_id WHERE 1= 1 `
  229. if conditionAct != `` {
  230. sql += conditionAct
  231. }
  232. //}
  233. //if audioId+videoId+activityVideoId == 0 && filter == 0 {
  234. sql += ` UNION ALL `
  235. //}
  236. //if videoId+activityVideoId == 0 && filter != 1 {
  237. sql += `
  238. SELECT
  239. a.activity_voice_id AS id,
  240. a.voice_name AS title,
  241. a.voice_url AS resource_url,
  242. 1 AS type,
  243. b.activity_time AS publish_time,
  244. b.chart_permission_id,
  245. b.chart_permission_name,
  246. a.voice_play_seconds AS play_seconds,
  247. a.img_url AS background_img,
  248. "" AS industry_name,
  249. "" AS share_img,
  250. 0 AS industrial_management_id,
  251. a.activity_id
  252. FROM
  253. cygx_activity_voice AS a
  254. JOIN cygx_activity AS b ON a.activity_id = b.activity_id WHERE 1= 1 `
  255. if conditionAudio != `` {
  256. sql += conditionAudio
  257. }
  258. //}
  259. sql += ` ORDER BY publish_time DESC`
  260. totalSql := `SELECT COUNT(1) total FROM (` + sql + `) z `
  261. err = o.Raw(totalSql, pars, parsAct, parsAudio).QueryRow(&total)
  262. if err != nil {
  263. return
  264. }
  265. sql += ` LIMIT ?,?`
  266. _, err = o.Raw(sql, pars, parsAct, parsAudio, startSize, pageSize).QueryRows(&list)
  267. return
  268. }