micro_roadshow.go 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402
  1. package cygx
  2. import (
  3. "github.com/beego/beego/v2/client/orm"
  4. "github.com/rdlucklib/rdluck_tools/paging"
  5. "time"
  6. )
  7. type CygxMicroRoadshowVideo struct {
  8. VideoId int `orm:"column(video_id);pk"description:"微路演视频id"`
  9. VideoName string `description:"视频名称"`
  10. ChartPermissionId int `description:"行业Id"`
  11. ChartPermissionName string `description:"行业名称"`
  12. IndustryId int `description:"产业id"`
  13. IndustryName string `description:"产业名称"`
  14. PublishStatus int `description:"发布状态 1发布 0没有"`
  15. ModifyDate string `description:"更新时间"`
  16. PublishDate time.Time `description:"发布时间"`
  17. VideoDuration string `description:"视频时长"`
  18. VideoCounts int `description:"播放量"`
  19. VideoUrl string `description:"视频地址"`
  20. CreateTime string `description:"创建时间"`
  21. ImgUrl string `description:"视频封面图"`
  22. ShareImgUrl string `description:"视频分享图"`
  23. DetailImgUrl string `description:"产业详情页背景图"`
  24. CommentNum int `description:"留言总数"`
  25. IsSendWxMsg int `description:"是否推送过微信模板消息,1是,0:否"`
  26. }
  27. type CygxMicroRoadshowVideoResp struct {
  28. VideoId int `orm:"column(video_id);pk"description:"微路演视频id"`
  29. VideoName string `description:"视频名称"`
  30. ChartPermissionId int `description:"行业Id"`
  31. ChartPermissionName string `description:"行业名称"`
  32. IndustryId int `description:"产业id"`
  33. IndustryName string `description:"产业名称"`
  34. PublishStatus int `description:"发布状态 1发布 0没有"`
  35. ModifyDate string `description:"更新时间"`
  36. PublishDate string `description:"发布时间"`
  37. VideoDuration string `description:"视频时长"`
  38. VideoCounts int `description:"播放量"`
  39. VideoUrl string `description:"视频地址"`
  40. CreateTime string `description:"创建时间"`
  41. ImgUrl string `description:"视频封面图"`
  42. ShareImgUrl string `description:"视频分享图"`
  43. DetailImgUrl string `description:"产业详情页背景图"`
  44. CommentNum int `description:"留言总数"`
  45. }
  46. type MicroRoadshowVideoListResp struct {
  47. Paging *paging.PagingItem
  48. List []*CygxMicroRoadshowVideoResp
  49. }
  50. func GetMicroRoadshowVideoList(condition, sortStr string, pars []interface{}, startSize, pageSize int) (items []*CygxMicroRoadshowVideo, err error) {
  51. o := orm.NewOrmUsingDB("hz_cygx")
  52. sql := ` SELECT *,(SELECT COUNT(1) FROM cygx_article_comment AS h WHERE h.industry_id=v.industry_id AND h.activity_id = 0 ) AS comment_num FROM cygx_micro_roadshow_video as v WHERE 1=1 `
  53. if condition != "" {
  54. sql += condition
  55. }
  56. if sortStr == "" {
  57. sortStr = "ORDER BY publish_date DESC "
  58. }
  59. sql += sortStr + ` LIMIT ?,? `
  60. _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
  61. return
  62. }
  63. func GetMicroRoadshowVideoListCount(condition string, pars []interface{}) (count int, err error) {
  64. o := orm.NewOrmUsingDB("hz_cygx")
  65. sql := `SELECT COUNT(1) AS count FROM cygx_micro_roadshow_video WHERE 1=1 `
  66. if condition != "" {
  67. sql += condition
  68. }
  69. err = o.Raw(sql, pars).QueryRow(&count)
  70. return
  71. }
  72. // 视频保存请求参数
  73. type VideoAddReq struct {
  74. VideoId int `description:"视频Id"`
  75. VideoName string `description:"视频标题"`
  76. VideoUrl string `description:"视频地址"`
  77. VideoDuration string `description:"视频时长"`
  78. ChartPermissionId int `description:"行业id"`
  79. IndustryId int `description:"产业id"`
  80. ImgUrl string `description:"视频封面图"`
  81. ShareImgUrl string `description:"视频分享图"`
  82. DetailImgUrl string `description:"产业详情页背景图"`
  83. PublishDate string `description:"发布时间"`
  84. PublishOrSave int `description:"保存或发布 1发布 0保存"`
  85. }
  86. func GetMicroRoadshowVideoByTitle(title string) (count int, err error) {
  87. o := orm.NewOrmUsingDB("hz_cygx")
  88. sql := ` SELECT COUNT(1) AS count FROM cygx_micro_roadshow_video WHERE video_name =? `
  89. err = o.Raw(sql, title).QueryRow(&count)
  90. return
  91. }
  92. // 新增视频
  93. func AddMicroRoadshowVideo(item *CygxMicroRoadshowVideo) (newId int64, err error) {
  94. o := orm.NewOrmUsingDB("hz_cygx")
  95. newId, err = o.Insert(item)
  96. return
  97. }
  98. // 视频编辑请求参数
  99. type VideoEditReq struct {
  100. VideoId int `description:"视频id"`
  101. VideoName string `description:"视频标题"`
  102. VideoUrl string `description:"视频地址"`
  103. VideoDuration string `description:"视频时长"`
  104. ChartPermissionId int `description:"行业Id"`
  105. ChartPermissionName string `description:"行业名称"`
  106. IndustryId int `description:"产业id"`
  107. IndustryName string `description:"产业名称"`
  108. PublishDate string `description:"发布时间"`
  109. }
  110. // 新增视频
  111. func EditVideo(item *CygxMicroRoadshowVideo) (err error) {
  112. o := orm.NewOrmUsingDB("hz_cygx")
  113. sql := " UPDATE cygx_micro_roadshow_video SET " +
  114. " video_url = ?, video_name = ?,chart_permission_id=?, chart_permission_name=?, industry_id =?, industry_name =?, " +
  115. " modify_date=?, publish_date=?, video_duration=?, img_url=?, share_img_url=?, detail_img_url=?, publish_status=? WHERE video_id = ? "
  116. _, err = o.Raw(sql, item.VideoUrl, item.VideoName, item.ChartPermissionId, item.ChartPermissionName,
  117. item.IndustryId, item.IndustryName, item.ModifyDate, item.PublishDate, item.VideoDuration, item.ImgUrl, item.ShareImgUrl, item.DetailImgUrl, item.PublishStatus, item.VideoId).Exec()
  118. return
  119. }
  120. func PublishVideoCancel(videoId, publishOrCancle int) (err error) {
  121. o := orm.NewOrmUsingDB("hz_cygx")
  122. sql := `UPDATE cygx_micro_roadshow_video SET publish_status=?,modify_date=NOW() WHERE video_id =?`
  123. _, err = o.Raw(sql, publishOrCancle, videoId).Exec()
  124. return
  125. }
  126. type CygxMicroRoadshowVideoHistory struct {
  127. Id int `orm:"column(id);pk"description:"微路演视频浏览记录表id"`
  128. VideoId int `description:"微路演视频id"`
  129. UserId int `description:"用户id"`
  130. Mobile string `description:"手机号"`
  131. Email string `description:"邮箱"`
  132. CompanyId int `description:"公司Id"`
  133. CompanyName string `description:"公司名称"`
  134. RealName string `description:"用户实际名称"`
  135. SellerName string `description:"所属销售"`
  136. PlaySeconds string `description:"播放时间 单位s"`
  137. CreateTime string `description:"视频创建时间"`
  138. ModifyTime time.Time `description:"视频修改时间"`
  139. }
  140. func GetMicroRoadshowVideoHistoryByIdPage(condition string, pars []interface{}, startSize, pageSize int) (item []*CygxMicroRoadshowVideoHistory, err error) {
  141. o := orm.NewOrmUsingDB("hz_cygx")
  142. sql := ` SELECT * FROM cygx_micro_roadshow_video_history WHERE 1=1 `
  143. if condition != "" {
  144. sql += condition
  145. }
  146. sql += ` ORDER BY create_time DESC LIMIT ?,? `
  147. _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&item)
  148. return
  149. }
  150. func GetMicroRoadshowVideoHistoryById(condition string, pars []interface{}) (item []*CygxMicroRoadshowVideoHistory, err error) {
  151. o := orm.NewOrmUsingDB("hz_cygx")
  152. sql := ` SELECT * FROM cygx_micro_roadshow_video_history WHERE 1=1 `
  153. if condition != "" {
  154. sql += condition
  155. }
  156. sql += ` ORDER BY create_time DESC `
  157. _, err = o.Raw(sql, pars).QueryRows(&item)
  158. return
  159. }
  160. //type CygxMicroRoadshowVoice struct {
  161. // ActivityVoiceId int `orm:"column(activity_voice_id);pk"description:"微路演视频id"`
  162. // ActivityId string `description:"活动Id"`
  163. // VoiceName string `description:"音频名称"`
  164. // ChartPermissionId int `description:"行业Id"`
  165. // ChartPermissionName string `description:"行业名称"`
  166. // IndustryId int `description:"产业id"`
  167. // IndustryName string `description:"产业名称"`
  168. // ModifyDate string `description:"更新时间"`
  169. // PublishDate string `description:"发布时间"`
  170. // VoicePlaySeconds string `description:"音频时长"`
  171. // VoiceCounts int `description:"播放量"`
  172. // VoiceUrl string `description:"音频地址"`
  173. // CreateTime string `description:"创建时间"`
  174. //}
  175. type CygxMicroRoadshowVoice struct {
  176. ActivityVoiceId int `description:"微路演音频id"`
  177. ActivityId string `description:"活动Id"`
  178. VoiceName string `description:"音频名称"`
  179. ChartPermissionId int `description:"行业Id"`
  180. ChartPermissionName string `description:"行业名称"`
  181. IndustryId int `description:"产业id"`
  182. IndustryName string `description:"产业名称"`
  183. ModifyTime string `description:"更新时间"`
  184. PublishDate string `description:"发布时间"`
  185. VoicePlaySeconds string `description:"音频时长"`
  186. VoiceCounts int `description:"播放量"`
  187. VoiceUrl string `description:"音频地址"`
  188. CreateTime string `description:"创建时间"`
  189. Label string `description:"活动标签"`
  190. ActivityTypeId string `description:"活动类型Id"`
  191. ActivityTypeName string `description:"活动类型名称"`
  192. ActivityTime time.Time `description:"活动类型时间"`
  193. ActivityTimeText string `description:"活动类型时间文字"`
  194. CommentNum int `description:"留言总数"`
  195. }
  196. type CygxMicroRoadshowVoiceRsep struct {
  197. ActivityVoiceId int `description:"微路演音频id"`
  198. ActivityId string `description:"活动Id"`
  199. VoiceName string `description:"音频名称"`
  200. ChartPermissionId int `description:"行业Id"`
  201. ChartPermissionName string `description:"行业名称"`
  202. IndustryId int `description:"产业id"`
  203. IndustryName string `description:"产业名称"`
  204. ModifyTime string `description:"更新时间"`
  205. PublishDate string `description:"发布时间"`
  206. VoicePlaySeconds string `description:"音频时长"`
  207. VoiceCounts int `description:"播放量"`
  208. VoiceUrl string `description:"音频地址"`
  209. CreateTime string `description:"创建时间"`
  210. Label string `description:"活动标签"`
  211. ActivityTypeId string `description:"活动类型Id"`
  212. ActivityTypeName string `description:"活动类型名称"`
  213. ActivityTime string `description:"活动类型时间"`
  214. ActivityTimeText string `description:"活动类型时间文字"`
  215. CommentNum int `description:"留言总数"`
  216. }
  217. type MicroRoadshowVoiceListResp struct {
  218. Paging *paging.PagingItem
  219. List []*CygxMicroRoadshowVoiceRsep
  220. }
  221. func GetMicroRoadshowVoiceList(condition, sortStr string, pars []interface{}, startSize, pageSize int) (items []*CygxMicroRoadshowVoice, err error) {
  222. o := orm.NewOrmUsingDB("hz_cygx")
  223. sql := ` SELECT
  224. v.*,
  225. a.label,
  226. a.activity_type_id,
  227. a.activity_type_name,
  228. a.activity_time,
  229. a.activity_time_text,
  230. (SELECT COUNT(1) FROM cygx_article_comment AS h WHERE h.activity_id=a.activity_id AND h.industry_id = 0 AND h.video_id = 0) AS comment_num,
  231. a.chart_permission_name
  232. FROM
  233. cygx_activity_voice AS v
  234. INNER JOIN cygx_activity AS a
  235. WHERE
  236. v.activity_id = a.activity_id `
  237. if condition != "" {
  238. sql += condition
  239. }
  240. if sortStr == "" {
  241. sortStr = "ORDER BY a.activity_time DESC "
  242. }
  243. sql += sortStr + ` LIMIT ?,? `
  244. _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
  245. return
  246. }
  247. func GetMicroRoadshowVoiceListCount(condition string, pars []interface{}) (count int, err error) {
  248. o := orm.NewOrmUsingDB("hz_cygx")
  249. sql := `SELECT
  250. COUNT(1) AS count
  251. FROM
  252. cygx_activity_voice AS v
  253. INNER JOIN cygx_activity AS a
  254. WHERE
  255. v.activity_id = a.activity_id `
  256. if condition != "" {
  257. sql += condition
  258. }
  259. err = o.Raw(sql, pars).QueryRow(&count)
  260. return
  261. }
  262. type PermissionNameAndIndustryName struct {
  263. PermissionName string
  264. PermissionId int
  265. IndustryName string
  266. }
  267. func GetPermissionNameAndIndustryNameByIndustryId(industryId int) (item *PermissionNameAndIndustryName, err error) {
  268. o := orm.NewOrmUsingDB("hz_cygx")
  269. sql := `SELECT
  270. cm.industry_name as industry_name,
  271. cm.chart_permission_id AS permission_id
  272. FROM
  273. cygx_industrial_management AS cm
  274. WHERE
  275. 1=1
  276. AND cm.industrial_management_id = ? `
  277. err = o.Raw(sql, industryId).QueryRow(&item)
  278. return
  279. }
  280. type MicroRoadshowVideoHistoryListResp struct {
  281. Paging *paging.PagingItem
  282. List []*CygxMicroRoadshowVideoHistory
  283. }
  284. type CygxMicroRoadshowVoiceHistory struct {
  285. Id int `orm:"column(id);pk"description:"音频id"`
  286. VideoId int `description:"微路演音频id"`
  287. ActivityId int `description:"活动id"`
  288. UserId int `description:"用户id"`
  289. Mobile string `description:"手机号"`
  290. Email string `description:"邮箱"`
  291. CompanyId int `description:"公司Id"`
  292. CompanyName string `description:"公司名称"`
  293. RealName string `description:"用户实际名称"`
  294. SellerName string `description:"所属销售"`
  295. PlaySeconds string `description:"播放时间 单位s"`
  296. CreateTime string `description:"视频创建时间"`
  297. ModifyTime time.Time `description:"视频修改时间"`
  298. }
  299. func GetMicroRoadshowVoiceHistoryById(condition string, pars []interface{}) (item []*CygxMicroRoadshowVoiceHistory, err error) {
  300. o := orm.NewOrmUsingDB("hz_cygx")
  301. sql := ` SELECT
  302. h.*
  303. FROM
  304. cygx_activity_voice_history AS h
  305. INNER JOIN cygx_activity_voice AS v
  306. WHERE
  307. 1 = 1
  308. AND v.activity_id = h.activity_id
  309. `
  310. if condition != "" {
  311. sql += condition
  312. }
  313. sql += ` ORDER BY create_time DESC `
  314. _, err = o.Raw(sql, pars).QueryRows(&item)
  315. return
  316. }
  317. func GetPermissionNameAndIndustryNameByChartPermissionId(ChartPermissionId int) (item *PermissionNameAndIndustryName, err error) {
  318. o := orm.NewOrm()
  319. sql := `SELECT
  320. chart_permission_id AS permission_id,
  321. chart_permission_name AS permission_name
  322. FROM
  323. chart_permission
  324. WHERE
  325. chart_permission_id = ? `
  326. err = o.Raw(sql, ChartPermissionId).QueryRow(&item)
  327. return
  328. }
  329. func GetMicroRoadshowVideoByIndustryId(industryId int) (item *CygxMicroRoadshowVideo, err error) {
  330. o := orm.NewOrmUsingDB("hz_cygx")
  331. sql := `SELECT * from cygx_micro_roadshow_video where industry_id = ? `
  332. err = o.Raw(sql, industryId).QueryRow(&item)
  333. return
  334. }
  335. func GetMicroRoadshowVideoByVideoId(videoId int) (item *CygxMicroRoadshowVideo, err error) {
  336. o := orm.NewOrmUsingDB("hz_cygx")
  337. sql := `SELECT * from cygx_micro_roadshow_video where video_id = ? `
  338. err = o.Raw(sql, videoId).QueryRow(&item)
  339. return
  340. }
  341. // 修改是否推送过模板消息的状态
  342. func UpdateIsSendWxMsg(videoId, isSendWxMsg int) (err error) {
  343. o := orm.NewOrmUsingDB("hz_cygx")
  344. sql := `UPDATE cygx_micro_roadshow_video SET is_send_wx_msg=? WHERE video_id =?`
  345. _, err = o.Raw(sql, isSendWxMsg, videoId).Exec()
  346. return
  347. }
  348. func GetMicroRoadshowVoiceById(activityId int) (item *CygxMicroRoadshowVoice, err error) {
  349. o := orm.NewOrmUsingDB("hz_cygx")
  350. sql := `SELECT
  351. v.*,
  352. a.label,
  353. a.activity_type_id,
  354. a.activity_type_name,
  355. a.activity_time,
  356. a.activity_time_text,
  357. a.chart_permission_name
  358. FROM
  359. cygx_activity_voice AS v
  360. INNER JOIN cygx_activity AS a
  361. WHERE
  362. v.activity_id = a.activity_id AND v.activity_id = ?`
  363. err = o.Raw(sql, activityId).QueryRow(&item)
  364. return
  365. }