jinmencaijing.go 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575
  1. package controllers
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. jinmencaijingReq "hongze/hongze_open_api/models/request/jinmencaijing"
  6. reportSelectionResp "hongze/hongze_open_api/models/response/cygx_report_selection"
  7. "hongze/hongze_open_api/models/response/jinmencaijing"
  8. "hongze/hongze_open_api/models/tables/company"
  9. "hongze/hongze_open_api/models/tables/company_product"
  10. "hongze/hongze_open_api/models/tables/company_report_permission"
  11. cygxActivity "hongze/hongze_open_api/models/tables/cygx/cygx_activity"
  12. "hongze/hongze_open_api/models/tables/cygx/cygx_report_selection"
  13. "hongze/hongze_open_api/models/tables/cygx/cygx_three_api_log"
  14. "hongze/hongze_open_api/models/tables/wx_user"
  15. "hongze/hongze_open_api/services/alarm_msg"
  16. servicesCompany "hongze/hongze_open_api/services/company"
  17. cygxSeriesActivity "hongze/hongze_open_api/services/cygx_activity"
  18. servicesWxUser "hongze/hongze_open_api/services/wx_user"
  19. "hongze/hongze_open_api/utils"
  20. "strconv"
  21. "strings"
  22. "time"
  23. )
  24. // JinMenCaiJingControllerCommon 进门财经模块
  25. type JinMenCaiJingController struct {
  26. BaseAuth
  27. }
  28. // 活动详情
  29. // @Title 活动详情接口
  30. // @Description 活动详情接口
  31. // @router /activity/detail [get]
  32. func (c *JinMenCaiJingController) ActivityDetail() {
  33. //回调中url参数要做签名(get请求中的参数,按照自己的方式签名,避免链接被别人拿去随意请求)
  34. activityId, _ := c.GetInt("activity_id")
  35. activityInfo, err := cygxActivity.GetAddActivityInfoByActivityId(activityId)
  36. if err != nil {
  37. c.FailWithMessage("会议id异常:" + strconv.Itoa(activityId))
  38. return
  39. }
  40. //resp := new(*jinmencaijing.CygxActivityDetailResp)
  41. detail := new(jinmencaijing.CygxActivityResp)
  42. detail.ActivityID = activityInfo.ActivityId
  43. detail.PublishStatus = activityInfo.PublishStatus
  44. detail.ActivityName = activityInfo.ActivityName
  45. detail.Label = activityInfo.Label
  46. detail.ActivityTime = activityInfo.ActivityTime
  47. detail.ActivityTimeText = activityInfo.ActivityTimeText
  48. detail.ActivityTypeId = activityInfo.ActivityTypeId
  49. detail.ActivityTypeName = activityInfo.ActivityTypeName
  50. detail.ChartPermissionName = activityInfo.ChartPermissionName
  51. detail.IsLimitPeople = activityInfo.IsLimitPeople
  52. detail.LimitPeopleNum = activityInfo.LimitPeopleNum
  53. detail.Expert = activityInfo.Expert
  54. detail.Host = activityInfo.Host
  55. detail.Speaker = activityInfo.Speaker
  56. detail.City = activityInfo.City
  57. detail.Address = activityInfo.Address
  58. detail.Highlights = activityInfo.Highlights
  59. detail.DistinguishedGuest = activityInfo.DistinguishedGuest
  60. detail.MainlandTell = activityInfo.MainlandTell
  61. detail.HongKongTell = activityInfo.HongKongTell
  62. detail.TaiwanTell = activityInfo.TaiwanTell
  63. detail.AmericaTell = activityInfo.AmericaTell
  64. detail.ParticipationCode = activityInfo.ParticipationCode
  65. detail.OnlineParticipation = activityInfo.OnlineParticipation
  66. detail.TencentConferenceNumber = activityInfo.TencentConferenceNumber
  67. detail.LinkParticipants = activityInfo.LinkParticipants
  68. detail.VmpRobotMeetingId = activityInfo.VmpRobotMeetingId
  69. detail.ConferencePassword = activityInfo.ConferencePassword
  70. detail.ReportLink = activityInfo.ReportLink
  71. detail.Theme = activityInfo.Theme
  72. detail.Remarks = activityInfo.Remarks
  73. detail.SubjectName = cygxSeriesActivity.GetActivitySubjectNameList(activityId)
  74. //添加请求日志记录
  75. itemApiLog := new(cygx_three_api_log.CygxThreeApiLog)
  76. itemApiLog.CreateTime = time.Now()
  77. itemApiLog.Source = 2
  78. itemApiLog.Url = c.Ctx.Input.URI()
  79. jsonstr := strconv.Itoa(activityId)
  80. itemApiLog.Body = fmt.Sprint(jsonstr)
  81. itemApiLog.Result = fmt.Sprint(detail)
  82. _, errlog := cygx_three_api_log.AddCygxThreeApiLog(itemApiLog)
  83. if errlog != nil {
  84. go alarm_msg.SendAlarmMsg("进门财经活动详情接口 AddCygxThreeApiLog:"+errlog.Error()+fmt.Sprint("activityId=", activityId), 3)
  85. }
  86. c.OkDetailed(detail, "获取成功")
  87. }
  88. // 活动报名
  89. // @Title 活动报名接口
  90. // @Description 活动报名接口
  91. // @router /activity/signup/add [post]
  92. func (c *JinMenCaiJingController) ActivitySignupAdd() {
  93. //回调中url参数要做签名(get请求中的参数,按照自己的方式签名,避免链接被别人拿去随意请求)
  94. var req jinmencaijingReq.ActivitySignupReq
  95. err := json.Unmarshal(c.Ctx.Input.RequestBody, &req)
  96. if err != nil {
  97. c.FailWithMessage("参数解析异常")
  98. return
  99. }
  100. activityId := req.ActivityId
  101. mobile := req.Mobile
  102. countryCode := req.CountryCode
  103. realName := req.RealName
  104. companyName := req.CompanyName
  105. var dateTxt = []byte(mobile)
  106. resultDe := utils.DesBase64Decrypt(dateTxt)
  107. deMobile := string(resultDe)
  108. resp := new(jinmencaijing.CygxActivitySignupResp)
  109. activityInfo, err := cygxActivity.GetAddActivityInfoByActivityId(activityId)
  110. if err != nil {
  111. c.FailWithMessage("会议id异常:" + strconv.Itoa(activityId))
  112. return
  113. }
  114. resultTime := utils.StrTimeToTime(activityInfo.ActivityTime) //时间字符串格式转时间格式
  115. if time.Now().After(resultTime.Add(-time.Minute * 60)) {
  116. resp.SignupStatus = 2
  117. c.OkDetailed(resp, "报名失败时间超时")
  118. }
  119. if activityInfo.LimitPeopleNum > 0 {
  120. totalSuccess, err := cygxActivity.GetActivitySignupSuccessCount(activityId)
  121. if err != nil {
  122. c.FailWithMessage("获取已报名的用户数量失败!" + err.Error())
  123. return
  124. }
  125. if activityInfo.LimitPeopleNum <= totalSuccess {
  126. resp.SignupStatus = 3
  127. c.OkDetailed(resp, "报名失败人数已满")
  128. }
  129. }
  130. userTotal, err := wx_user.GetWxUserCountByMobile(deMobile)
  131. if err != nil {
  132. c.FailWithMessage("根据手机号判断用户信息失败")
  133. return
  134. }
  135. var user *wx_user.WxUser
  136. if userTotal == 0 {
  137. userId, err := servicesWxUser.AddWxUserByMobile(deMobile, countryCode, realName)
  138. if err != nil {
  139. c.FailWithMessage("根据手机号录入用户信息失败")
  140. return
  141. }
  142. user, err = wx_user.GetByUserId(userId)
  143. if err != nil {
  144. c.FailWithMessage("获取用户信息失败")
  145. return
  146. }
  147. } else {
  148. user, err = wx_user.GetByUserMobile(deMobile)
  149. if err != nil {
  150. c.FailWithMessage("获取用户信息失败")
  151. return
  152. }
  153. }
  154. signupCount, err := cygxActivity.GetActivitySignupCountByUserId(int(user.UserId), activityId)
  155. if err != nil {
  156. c.FailWithMessage("获取用户是否报名信息失败")
  157. return
  158. }
  159. if signupCount == 0 {
  160. item := new(cygxActivity.CygxActivitySignup)
  161. item.UserId = int(user.UserId)
  162. item.RealName = user.RealName
  163. item.ActivityId = activityId
  164. item.CreateTime = time.Now()
  165. item.Email = user.Email
  166. item.CompanyId = user.CompanyId
  167. item.CompanyName = companyName
  168. item.SignupType = 3
  169. item.ThreeSource = 1
  170. item.Mobile = user.Mobile
  171. item.CountryCode = user.CountryCode
  172. item.OutboundMobile = user.OutboundMobile
  173. if user.OutboundMobile == "" {
  174. item.OutboundMobile = user.Mobile
  175. }
  176. if user.CountryCode == "" {
  177. item.CountryCode = "86"
  178. }
  179. _, err = cygxActivity.AddActivitySignup(item)
  180. if err != nil {
  181. c.OkDetailed(resp, "报名成功")
  182. return
  183. }
  184. }
  185. resp.SignupStatus = 1
  186. c.OkDetailed(resp, "报名成功")
  187. }
  188. // 活动取消报名
  189. // @Title 活动取消报名接口
  190. // @Description 活动取消报名接口
  191. // @router /activity/signup/cancel [post]
  192. func (c *JinMenCaiJingController) ActivitySignupCancel() {
  193. //回调中url参数要做签名(get请求中的参数,按照自己的方式签名,避免链接被别人拿去随意请求)
  194. var req jinmencaijingReq.ActivitySignupReq
  195. err := json.Unmarshal(c.Ctx.Input.RequestBody, &req)
  196. if err != nil {
  197. c.FailWithMessage("参数解析异常")
  198. return
  199. }
  200. activityId := req.ActivityId
  201. mobile := req.Mobile
  202. var dateTxt = []byte(mobile)
  203. resultDe := utils.DesBase64Decrypt(dateTxt)
  204. deMobile := string(resultDe)
  205. activityInfo, err := cygxActivity.GetAddActivityInfoByActivityId(activityId)
  206. if err != nil {
  207. c.FailWithMessage("会议id异常:" + strconv.Itoa(activityId))
  208. return
  209. }
  210. resp := new(jinmencaijing.CygxActivitySignupcancelResp)
  211. resultTime := utils.StrTimeToTime(activityInfo.ActivityTime) //时间字符串格式转时间格式
  212. if time.Now().After(resultTime.Add(-time.Minute * 60)) {
  213. resp.CancelStatus = 2
  214. c.OkDetailed(resp, "活动开始前1小时内无法取消报名")
  215. }
  216. var user *wx_user.WxUser
  217. user, err = wx_user.GetByUserMobile(deMobile)
  218. if err != nil {
  219. c.FailWithMessage("获取用户信息失败")
  220. return
  221. }
  222. item := new(cygxActivity.CygxActivitySignup)
  223. item.UserId = int(user.UserId)
  224. item.ActivityId = activityId
  225. item.CreateTime = time.Now()
  226. _, err = cygxActivity.CancelActivitySignup(item)
  227. if err != nil {
  228. c.OkDetailed(resp, "取消报名失败")
  229. return
  230. }
  231. resp.CancelStatus = 1
  232. c.OkDetailed(resp, "取消报名成功")
  233. }
  234. // 活动白名单校验
  235. // @Title 活动白名单校验接口
  236. // @Description 活动白名单校验接口
  237. // @router /activity/white/check [post]
  238. func (c *JinMenCaiJingController) ActivityWhiteCheck() {
  239. //回调中url参数要做签名(get请求中的参数,按照自己的方式签名,避免链接被别人拿去随意请求)
  240. var req jinmencaijingReq.ActivitySignupReq
  241. err := json.Unmarshal(c.Ctx.Input.RequestBody, &req)
  242. if err != nil {
  243. c.FailWithMessage("参数解析异常")
  244. return
  245. }
  246. activityId := req.ActivityId
  247. mobile := req.Mobile
  248. var dateTxt = []byte(mobile)
  249. resultDe := utils.DesBase64Decrypt(dateTxt)
  250. deMobile := string(resultDe)
  251. userTotal, err := wx_user.GetWxUserCountByMobile(deMobile)
  252. if err != nil {
  253. c.FailWithMessage("根据手机号判断用户信息失败")
  254. return
  255. }
  256. activityInfo, err := cygxActivity.GetAddActivityInfoByActivityId(activityId)
  257. if err != nil {
  258. c.FailWithMessage("会议id异常:" + strconv.Itoa(activityId))
  259. return
  260. }
  261. var user *wx_user.WxUser
  262. resp := new(jinmencaijing.CygxActivityWhiteCheckResp)
  263. if userTotal == 0 {
  264. c.OkDetailed(resp, "获取成功")
  265. return
  266. } else {
  267. user, err = wx_user.GetByUserMobile(deMobile)
  268. if err != nil {
  269. c.FailWithMessage("获取用户信息失败")
  270. return
  271. }
  272. }
  273. companyInfo, err := company.GetCompanyById(user.CompanyId)
  274. if err != nil {
  275. c.FailWithMessage("获取客户信息失败")
  276. return
  277. }
  278. resp.RealName = user.RealName
  279. resp.Position = user.Position
  280. resp.CompanyName = companyInfo.CompanyName
  281. if activityInfo.LimitPeopleNum > 0 {
  282. total, err := company_product.CheckUserAaiPerssionByMobile(deMobile)
  283. if err != nil {
  284. c.FailWithMessage("校验失败!" + err.Error())
  285. return
  286. }
  287. if total > 0 {
  288. resp.IsWhite = true
  289. }
  290. } else {
  291. listPermissionName, err := company_report_permission.GetPermissionListNameByCompanyIdAndProductId(user.CompanyId, 2)
  292. if err != nil {
  293. c.FailWithMessage("获取用户权限信息失败:" + strconv.Itoa(activityId))
  294. return
  295. }
  296. if len(listPermissionName) > 0 {
  297. listPermissionName = append(listPermissionName, &company_report_permission.ChartPermissionNameResp{ChartPermissionName: "宏观"})
  298. }
  299. for _, v := range listPermissionName {
  300. if v.ChartPermissionName == activityInfo.ChartPermissionName {
  301. resp.IsWhite = true
  302. break
  303. }
  304. }
  305. }
  306. //添加请求日志记录
  307. itemApiLog := new(cygx_three_api_log.CygxThreeApiLog)
  308. itemApiLog.CreateTime = time.Now()
  309. itemApiLog.Source = 2
  310. itemApiLog.Url = c.Ctx.Input.URI()
  311. data, _ := json.Marshal(req)
  312. jsonstr := string(data)
  313. itemApiLog.Body = fmt.Sprint(jsonstr, "deMobile=", deMobile)
  314. itemApiLog.Result = fmt.Sprint(resp)
  315. _, errlog := cygx_three_api_log.AddCygxThreeApiLog(itemApiLog)
  316. if errlog != nil {
  317. go alarm_msg.SendAlarmMsg("进门财经活动白名单接口 AddCygxThreeApiLog:"+errlog.Error()+fmt.Sprint("activityId=", activityId), 3)
  318. }
  319. c.OkDetailed(resp, "获取成功")
  320. }
  321. // 活动用户报名信息回显(自己是否报名,以及已经报名的人数)
  322. // @Title 活动用户报名信息回显接口
  323. // @Description 活动用户报名信息回显接口
  324. // @router /activity/signup/detail [post]
  325. func (c *JinMenCaiJingController) ActivitySignupDetail() {
  326. //回调中url参数要做签名(get请求中的参数,按照自己的方式签名,避免链接被别人拿去随意请求)
  327. var req jinmencaijingReq.ActivitySignupReq
  328. err := json.Unmarshal(c.Ctx.Input.RequestBody, &req)
  329. if err != nil {
  330. c.FailWithMessage("参数解析异常")
  331. return
  332. }
  333. activityId := req.ActivityId
  334. mobile := req.Mobile
  335. var dateTxt = []byte(mobile)
  336. resultDe := utils.DesBase64Decrypt(dateTxt)
  337. deMobile := string(resultDe)
  338. userTotal, err := wx_user.GetWxUserCountByMobile(deMobile)
  339. if err != nil {
  340. c.FailWithMessage("根据手机号判断用户信息失败")
  341. return
  342. }
  343. activityInfo, err := cygxActivity.GetAddActivityInfoByActivityId(activityId)
  344. if err != nil {
  345. c.FailWithMessage("会议id异常:" + strconv.Itoa(activityId))
  346. return
  347. }
  348. resp := new(jinmencaijing.CygxActivitySignupCheckResp)
  349. var user *wx_user.WxUser
  350. if userTotal == 0 {
  351. c.OkDetailed(resp, "获取成功")
  352. } else {
  353. user, err = wx_user.GetByUserMobile(deMobile)
  354. if err != nil {
  355. c.FailWithMessage("获取用户信息失败")
  356. return
  357. }
  358. }
  359. if activityInfo.LimitPeopleNum > 0 {
  360. total, err := cygxActivity.GetActivitySignupSuccessCount(activityId)
  361. if err != nil {
  362. c.FailWithMessage("获取已报名的用户数量失败!" + err.Error())
  363. return
  364. }
  365. resp.SignupNum = total
  366. }
  367. totalUser, err := cygxActivity.GetActivitySignupCountByUserIdeffective(int(user.UserId), activityId)
  368. if err != nil {
  369. c.FailWithMessage("获取已报名的用户数量失败!" + err.Error())
  370. return
  371. }
  372. resp.IsSignup = totalUser
  373. c.OkDetailed(resp, "获取成功")
  374. }
  375. //func init() {
  376. // mobile := "15557270777"
  377. // encryptMobile := string(utils.DesBase64Encrypt([]byte(mobile)))
  378. // fmt.Println(encryptMobile)
  379. //}
  380. // 重点公司详情接口
  381. // @Title 重点公司详情接口
  382. // @Description 重点公司详情接口
  383. // @router /report_selection/detail [get]
  384. func (c *JinMenCaiJingController) ReportSelectionDetail() {
  385. //回调中url参数要做签名(get请求中的参数,按照自己的方式签名,避免链接被别人拿去随意请求)
  386. articleId, _ := c.GetInt("article_id")
  387. resp := new(reportSelectionResp.ReportSelectionLetailResp)
  388. detail, err := cygx_report_selection.GetCygxReportSelectionInfoById(articleId)
  389. if err != nil {
  390. c.FailWithMessage("报告ID异常:" + strconv.Itoa(articleId))
  391. return
  392. }
  393. detail.PublishDate = utils.StrTimeToTime(detail.PublishDate).Format("2006-01-02")
  394. existMap := make(map[int]int)
  395. var items []*reportSelectionResp.ReportSelectionChartPermission
  396. var itemsSubject []*reportSelectionResp.ReportSelectionChartLogPermission
  397. listLog, err := cygx_report_selection.GetReportSelectionlogListAll(articleId)
  398. if err != nil {
  399. c.FailWithMessage("获取信息失败")
  400. return
  401. }
  402. //获取行业核心逻辑汇总
  403. listChartLog, err := cygx_report_selection.GetCygxReportSelectionChartLogRepList(articleId)
  404. if err != nil {
  405. c.FailWithMessage("获取信息失败")
  406. return
  407. }
  408. mapChartLog := make(map[string]string)
  409. for _, v := range listChartLog {
  410. mapChartLog[v.ChartPermissionName] = v.BodyChartSummary
  411. }
  412. PermissionNameMap, err := servicesCompany.GetPermissionNameMap()
  413. if err != nil {
  414. c.FailWithMessage("获取信息失败:")
  415. return
  416. }
  417. for _, v := range listLog {
  418. v.PermissionName = PermissionNameMap[v.ChartPermissionId]
  419. item := new(reportSelectionResp.ReportSelectionChartPermission)
  420. itemSubject := new(reportSelectionResp.ReportSelectionChartLogPermission)
  421. itemSubject.PermissionName = v.PermissionName
  422. if existMap[v.ChartPermissionId] == 0 {
  423. item.PermissionName = v.PermissionName
  424. listSonLog, err := cygx_report_selection.GetReportSelectionlogSonListAll(articleId, v.ChartPermissionId)
  425. if err != nil {
  426. c.FailWithMessage("获取信息失败")
  427. return
  428. }
  429. for k2, v2 := range listSonLog {
  430. if v2.IndustrialManagementId != "" {
  431. listIndustrial, err := cygx_report_selection.GetIndustrialByIds(v2.IndustrialManagementId)
  432. if err != nil {
  433. c.FailWithMessage("获取信息失败")
  434. return
  435. }
  436. listSonLog[k2].List = listIndustrial
  437. if v2.SubjectName == "" {
  438. v2.ShowName = v2.IndustrialManagementNames
  439. } else {
  440. v2.ShowName = v2.SubjectName
  441. }
  442. }
  443. if v2.Label != "" {
  444. CompanyLabelSlice := strings.Split(v2.Label, "{|}")
  445. for _, vCompanyLabel := range CompanyLabelSlice {
  446. v2.CompanyLabel = append(v2.CompanyLabel, "#"+vCompanyLabel+"#")
  447. }
  448. }
  449. if v2.ThirdName != "" {
  450. v2.ShowName = v2.ThirdName
  451. }
  452. subjectItem := new(reportSelectionResp.ReportSelectionChartLogSubjectName)
  453. subjectItem.SubjectName = v2.SubjectName
  454. subjectItem.IsNew = v2.IsNew
  455. if v2.ThirdName != "" {
  456. subjectItem.SubjectName = v2.ThirdName
  457. } else {
  458. if subjectItem.SubjectName == "" {
  459. subjectItem.SubjectName = v2.IndustrialManagementNames
  460. }
  461. }
  462. subjectItem.UniqueString = utils.MD5(fmt.Sprint("IN_ID", v2.IndustrialManagementId, "S_ID", v2.IndustrialSubjectId, "T_ID", v2.ThirdId))
  463. v2.UniqueString = subjectItem.UniqueString
  464. itemSubject.ListSubject = append(itemSubject.ListSubject, subjectItem)
  465. }
  466. item.BodyChartSummary = mapChartLog[v.PermissionName]
  467. for _, vs := range listSonLog {
  468. listItem := new(reportSelectionResp.CygxReportSelectionLogDetail)
  469. listItem.IsNew = vs.IsNew
  470. listItem.Body = vs.Body
  471. listItem.CompanyLabel = vs.CompanyLabel
  472. listItem.UniqueString = vs.UniqueString
  473. listItem.ShowName = vs.ShowName
  474. item.List = append(item.List, listItem)
  475. }
  476. item.PermissionName = PermissionNameMap[v.ChartPermissionId]
  477. items = append(items, item)
  478. itemsSubject = append(itemsSubject, itemSubject)
  479. }
  480. existMap[v.ChartPermissionId] = v.ChartPermissionId
  481. }
  482. resp.List = items
  483. resp.ListPermissionSubject = itemsSubject
  484. detailItem := new(reportSelectionResp.DetailCygxReportSelectionRep)
  485. detailItem.ArticleId = detail.ArticleId
  486. detailItem.Title = detail.Title
  487. detailItem.Department = detail.Department
  488. detailItem.PublishDate = detail.PublishDate
  489. detailItem.ProductDescription = detail.ProductDescription
  490. detailItem.MarketStrategy = detail.MarketStrategy
  491. detailItem.Disclaimer = utils.CYGX_DISCLAIMER
  492. detailItem.PermissionName = "宏观策略"
  493. resp.Detail = detailItem
  494. c.OkDetailed(resp, "获取成功")
  495. }
  496. // 活动音视频详情
  497. // @Title 活动音视频详情接口
  498. // @Description 活动音视频详情接口
  499. // @router /activity/vivo_detail [get]
  500. func (c *JinMenCaiJingController) ActivityVivoDetail() {
  501. activityId, _ := c.GetInt("activity_id")
  502. activityInfo, err := cygxActivity.GetAddActivityInfoByActivityId(activityId)
  503. if err != nil {
  504. c.FailWithMessage("会议id异常:" + strconv.Itoa(activityId))
  505. return
  506. }
  507. totalVoiceCount, err := cygxActivity.GetCygxActivityVoiceCount(activityId)
  508. if err != nil {
  509. c.FailWithMessage("获取信息失败!" + err.Error())
  510. return
  511. }
  512. totalVideoCount, err := cygxActivity.GetCygxActivityVideoCount(activityId)
  513. if err != nil {
  514. c.FailWithMessage("获取信息失败!" + err.Error())
  515. return
  516. }
  517. resp := new(jinmencaijing.CygxActivityVivoDetailResp)
  518. detail := new(jinmencaijing.CygxActivityVivoResp)
  519. if totalVoiceCount > 0 {
  520. voiceDetail, err := cygxActivity.GetCygxActivityVoiceReq(activityId)
  521. if err != nil {
  522. c.FailWithMessage("获取信息失败!" + err.Error())
  523. return
  524. }
  525. detail.FileType = 1
  526. detail.FileUrl = voiceDetail.Url
  527. detail.FileName = voiceDetail.Name
  528. detail.PlaySeconds = voiceDetail.PlaySeconds
  529. } else if totalVideoCount > 0 {
  530. videoDetail, err := cygxActivity.GetCygxActivityVideoReq(activityId)
  531. if err != nil {
  532. c.FailWithMessage("获取信息失败!" + err.Error())
  533. return
  534. }
  535. detail.FileType = 2
  536. detail.FileUrl = videoDetail.Url
  537. detail.FileName = videoDetail.Name
  538. detail.PlaySeconds = videoDetail.PlaySeconds
  539. } else {
  540. c.FailWithMessage("获取信息失败,该活动不存在音视频文件!")
  541. return
  542. }
  543. detail.ActivityId = activityInfo.ActivityId
  544. detail.Label = activityInfo.Label
  545. detail.ActivityTime = activityInfo.ActivityTime
  546. detail.ActivityTimeText = activityInfo.ActivityTimeText
  547. detail.ChartPermissionName = activityInfo.ChartPermissionName
  548. //detail.SubjectName = cygxSeriesActivity.GetActivitySubjectNameList(activityId)
  549. resp.Detail = detail
  550. c.OkDetailed(resp, "获取成功")
  551. }