micro_roadshow.go 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408
  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. if publishOrCancle == 0 {
  122. publishOrCancle = 3 // 取消发布状态
  123. }
  124. o := orm.NewOrmUsingDB("hz_cygx")
  125. sql := `UPDATE cygx_micro_roadshow_video SET publish_status=?,modify_date=NOW() WHERE video_id =?`
  126. _, err = o.Raw(sql, publishOrCancle, videoId).Exec()
  127. return
  128. }
  129. type CygxMicroRoadshowVideoHistory struct {
  130. Id int `orm:"column(id);pk"description:"微路演视频浏览记录表id"`
  131. VideoId int `description:"微路演视频id"`
  132. UserId int `description:"用户id"`
  133. Mobile string `description:"手机号"`
  134. Email string `description:"邮箱"`
  135. CompanyId int `description:"公司Id"`
  136. CompanyName string `description:"公司名称"`
  137. RealName string `description:"用户实际名称"`
  138. SellerName string `description:"所属销售"`
  139. PlaySeconds string `description:"播放时间 单位s"`
  140. CreateTime string `description:"视频创建时间"`
  141. ModifyTime time.Time `description:"视频修改时间"`
  142. RegisterPlatform string `description:"来源 1小程序,2:网页"`
  143. }
  144. func GetMicroRoadshowVideoHistoryByIdPage(condition string, pars []interface{}, startSize, pageSize int) (item []*CygxMicroRoadshowVideoHistory, err error) {
  145. o := orm.NewOrmUsingDB("hz_cygx")
  146. sql := ` SELECT * FROM cygx_micro_roadshow_video_history WHERE 1=1 `
  147. if condition != "" {
  148. sql += condition
  149. }
  150. sql += ` ORDER BY create_time DESC LIMIT ?,? `
  151. _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&item)
  152. return
  153. }
  154. func GetMicroRoadshowVideoHistoryById(condition string, pars []interface{}) (item []*CygxMicroRoadshowVideoHistory, err error) {
  155. o := orm.NewOrmUsingDB("hz_cygx")
  156. sql := ` SELECT * FROM cygx_micro_roadshow_video_history WHERE 1=1 `
  157. if condition != "" {
  158. sql += condition
  159. }
  160. sql += ` ORDER BY create_time DESC `
  161. _, err = o.Raw(sql, pars).QueryRows(&item)
  162. return
  163. }
  164. //type CygxMicroRoadshowVoice struct {
  165. // ActivityVoiceId int `orm:"column(activity_voice_id);pk"description:"微路演视频id"`
  166. // ActivityId string `description:"活动Id"`
  167. // VoiceName string `description:"音频名称"`
  168. // ChartPermissionId int `description:"行业Id"`
  169. // ChartPermissionName string `description:"行业名称"`
  170. // IndustryId int `description:"产业id"`
  171. // IndustryName string `description:"产业名称"`
  172. // ModifyDate string `description:"更新时间"`
  173. // PublishDate string `description:"发布时间"`
  174. // VoicePlaySeconds string `description:"音频时长"`
  175. // VoiceCounts int `description:"播放量"`
  176. // VoiceUrl string `description:"音频地址"`
  177. // CreateTime string `description:"创建时间"`
  178. //}
  179. type CygxMicroRoadshowVoice struct {
  180. ActivityVoiceId int `description:"微路演音频id"`
  181. ActivityId string `description:"活动Id"`
  182. VoiceName string `description:"音频名称"`
  183. ChartPermissionId int `description:"行业Id"`
  184. ChartPermissionName string `description:"行业名称"`
  185. IndustryId int `description:"产业id"`
  186. IndustryName string `description:"产业名称"`
  187. ModifyTime string `description:"更新时间"`
  188. PublishDate string `description:"发布时间"`
  189. VoicePlaySeconds string `description:"音频时长"`
  190. VoiceCounts int `description:"播放量"`
  191. VoiceUrl string `description:"音频地址"`
  192. CreateTime string `description:"创建时间"`
  193. Label string `description:"活动标签"`
  194. ActivityTypeId string `description:"活动类型Id"`
  195. ActivityTypeName string `description:"活动类型名称"`
  196. ActivityTime time.Time `description:"活动类型时间"`
  197. ActivityTimeText string `description:"活动类型时间文字"`
  198. CommentNum int `description:"留言总数"`
  199. }
  200. type CygxMicroRoadshowVoiceRsep struct {
  201. ActivityVoiceId int `description:"微路演音频id"`
  202. ActivityId string `description:"活动Id"`
  203. VoiceName string `description:"音频名称"`
  204. ChartPermissionId int `description:"行业Id"`
  205. ChartPermissionName string `description:"行业名称"`
  206. IndustryId int `description:"产业id"`
  207. IndustryName string `description:"产业名称"`
  208. ModifyTime string `description:"更新时间"`
  209. PublishDate string `description:"发布时间"`
  210. VoicePlaySeconds string `description:"音频时长"`
  211. VoiceCounts int `description:"播放量"`
  212. VoiceUrl string `description:"音频地址"`
  213. CreateTime string `description:"创建时间"`
  214. Label string `description:"活动标签"`
  215. ActivityTypeId string `description:"活动类型Id"`
  216. ActivityTypeName string `description:"活动类型名称"`
  217. ActivityTime string `description:"活动类型时间"`
  218. ActivityTimeText string `description:"活动类型时间文字"`
  219. CommentNum int `description:"留言总数"`
  220. }
  221. type MicroRoadshowVoiceListResp struct {
  222. Paging *paging.PagingItem
  223. List []*CygxMicroRoadshowVoiceRsep
  224. }
  225. func GetMicroRoadshowVoiceList(condition, sortStr string, pars []interface{}, startSize, pageSize int) (items []*CygxMicroRoadshowVoice, err error) {
  226. o := orm.NewOrmUsingDB("hz_cygx")
  227. sql := ` SELECT
  228. v.*,
  229. a.label,
  230. a.activity_type_id,
  231. a.activity_type_name,
  232. a.activity_time,
  233. a.activity_time_text,
  234. (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,
  235. a.chart_permission_name
  236. FROM
  237. cygx_activity_voice AS v
  238. INNER JOIN cygx_activity AS a
  239. WHERE
  240. v.activity_id = a.activity_id `
  241. if condition != "" {
  242. sql += condition
  243. }
  244. if sortStr == "" {
  245. sortStr = "ORDER BY a.activity_time DESC "
  246. }
  247. sql += sortStr + ` LIMIT ?,? `
  248. _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
  249. return
  250. }
  251. func GetMicroRoadshowVoiceListCount(condition string, pars []interface{}) (count int, err error) {
  252. o := orm.NewOrmUsingDB("hz_cygx")
  253. sql := `SELECT
  254. COUNT(1) AS count
  255. FROM
  256. cygx_activity_voice AS v
  257. INNER JOIN cygx_activity AS a
  258. WHERE
  259. v.activity_id = a.activity_id `
  260. if condition != "" {
  261. sql += condition
  262. }
  263. err = o.Raw(sql, pars).QueryRow(&count)
  264. return
  265. }
  266. type PermissionNameAndIndustryName struct {
  267. PermissionName string
  268. PermissionId int
  269. IndustryName string
  270. }
  271. func GetPermissionNameAndIndustryNameByIndustryId(industryId int) (item *PermissionNameAndIndustryName, err error) {
  272. o := orm.NewOrmUsingDB("hz_cygx")
  273. sql := `SELECT
  274. cm.industry_name as industry_name,
  275. cm.chart_permission_id AS permission_id
  276. FROM
  277. cygx_industrial_management AS cm
  278. WHERE
  279. 1=1
  280. AND cm.industrial_management_id = ? `
  281. err = o.Raw(sql, industryId).QueryRow(&item)
  282. return
  283. }
  284. type MicroRoadshowVideoHistoryListResp struct {
  285. Paging *paging.PagingItem
  286. List []*CygxMicroRoadshowVideoHistory
  287. }
  288. type CygxMicroRoadshowVoiceHistory struct {
  289. Id int `orm:"column(id);pk"description:"音频id"`
  290. VideoId int `description:"微路演音频id"`
  291. ActivityId int `description:"活动id"`
  292. UserId int `description:"用户id"`
  293. Mobile string `description:"手机号"`
  294. Email string `description:"邮箱"`
  295. CompanyId int `description:"公司Id"`
  296. CompanyName string `description:"公司名称"`
  297. RealName string `description:"用户实际名称"`
  298. SellerName string `description:"所属销售"`
  299. PlaySeconds string `description:"播放时间 单位s"`
  300. CreateTime string `description:"视频创建时间"`
  301. ModifyTime time.Time `description:"视频修改时间"`
  302. RegisterPlatform string `description:"来源 1小程序,2:网页"`
  303. }
  304. func GetMicroRoadshowVoiceHistoryById(condition string, pars []interface{}) (item []*CygxMicroRoadshowVoiceHistory, err error) {
  305. o := orm.NewOrmUsingDB("hz_cygx")
  306. sql := ` SELECT
  307. h.*
  308. FROM
  309. cygx_activity_voice_history AS h
  310. INNER JOIN cygx_activity_voice AS v
  311. WHERE
  312. 1 = 1
  313. AND v.activity_id = h.activity_id
  314. `
  315. if condition != "" {
  316. sql += condition
  317. }
  318. sql += ` ORDER BY create_time DESC `
  319. _, err = o.Raw(sql, pars).QueryRows(&item)
  320. return
  321. }
  322. func GetPermissionNameAndIndustryNameByChartPermissionId(ChartPermissionId int) (item *PermissionNameAndIndustryName, err error) {
  323. o := orm.NewOrm()
  324. sql := `SELECT
  325. chart_permission_id AS permission_id,
  326. chart_permission_name AS permission_name
  327. FROM
  328. chart_permission
  329. WHERE
  330. chart_permission_id = ? `
  331. err = o.Raw(sql, ChartPermissionId).QueryRow(&item)
  332. return
  333. }
  334. func GetMicroRoadshowVideoByIndustryId(industryId int) (item *CygxMicroRoadshowVideo, err error) {
  335. o := orm.NewOrmUsingDB("hz_cygx")
  336. sql := `SELECT * from cygx_micro_roadshow_video where industry_id = ? `
  337. err = o.Raw(sql, industryId).QueryRow(&item)
  338. return
  339. }
  340. func GetMicroRoadshowVideoByVideoId(videoId int) (item *CygxMicroRoadshowVideo, err error) {
  341. o := orm.NewOrmUsingDB("hz_cygx")
  342. sql := `SELECT * from cygx_micro_roadshow_video where video_id = ? `
  343. err = o.Raw(sql, videoId).QueryRow(&item)
  344. return
  345. }
  346. // 修改是否推送过模板消息的状态
  347. func UpdateIsSendWxMsg(videoId, isSendWxMsg int) (err error) {
  348. o := orm.NewOrmUsingDB("hz_cygx")
  349. sql := `UPDATE cygx_micro_roadshow_video SET is_send_wx_msg=? WHERE video_id =?`
  350. _, err = o.Raw(sql, isSendWxMsg, videoId).Exec()
  351. return
  352. }
  353. func GetMicroRoadshowVoiceById(activityId int) (item *CygxMicroRoadshowVoice, err error) {
  354. o := orm.NewOrmUsingDB("hz_cygx")
  355. sql := `SELECT
  356. v.*,
  357. a.label,
  358. a.activity_type_id,
  359. a.activity_type_name,
  360. a.activity_time,
  361. a.activity_time_text,
  362. a.chart_permission_name
  363. FROM
  364. cygx_activity_voice AS v
  365. INNER JOIN cygx_activity AS a
  366. WHERE
  367. v.activity_id = a.activity_id AND v.activity_id = ?`
  368. err = o.Raw(sql, activityId).QueryRow(&item)
  369. return
  370. }