Activity.service.ts 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409
  1. import NewAxiosInstanceFunc from '../Service/NewAxiosInstance'
  2. import { INewResponse } from '../Service/INewResponse'
  3. import { IPaging } from 'Material/Material.service'
  4. import { IAuthInfo, IIndustryVideo } from 'Indepth/Indepth.service'
  5. import { INewestItem } from 'Newest/Newest.service'
  6. export interface IActivityHomeListItem {
  7. ActivityTypeId: number //活动类型id
  8. Resource: number //来源 ,1:活动 ,2:专项产业调研
  9. ActivityTypeName: string //活动类型名称
  10. OnlineIco: string //线上线下Ico图标
  11. ImgUrlBgPc: string
  12. List: IActivityLabelTypeItem[]
  13. }
  14. export interface IActivityLabelTypeItem {
  15. KeyWord: string //主题
  16. ImgUrlBg: string
  17. ActivityId: number
  18. Resource: number //来源 ,1:活动 ,2:专项产业调研
  19. IsNew: boolean //是否为新:活动存在关联的的产业所关联的报告均在3个月内/无报告则标记新
  20. YidongActivityId: number
  21. IsExternalLabel: boolean //是否为外部资源
  22. City: string // 城市
  23. Days: number // ??
  24. IsShowSubjectName: number // ??
  25. TemporaryLabel: string // ??
  26. TripStatus: number // //行程进行状态 1:预报名,2:确定行程
  27. IsResearchPoints: boolean // 是否为研选扣点
  28. IsResearch: boolean // 是否为买方研选
  29. }
  30. export interface IPermissionItem {
  31. ChartPermissionId: number
  32. PermissionName: string
  33. }
  34. export interface IActivityTypeParams {
  35. PageSize: number
  36. CurrentIndex: number
  37. ActivityTypeId?: number // 动类型id 多个用 , 隔开
  38. Label?: string // 搜索主题
  39. ChartPermissionIds?: string // 行业id 多个用 , 隔开
  40. WhichDay?: string // 哪一天 今天:1、明天:2,本周:3 上周:4,本月:5上月:6 多个用 , 隔开
  41. ActiveState?: string // 活动进行状态 未开始:1、进行中2、已结束3;多个用 , 隔开
  42. IsPower?: number // 是否选择有权限行业 ,1是 0 否 默认0
  43. PlayBack?: number // 是否仅展示回放 1:是、0:否 默认0
  44. KeyWord?: string // 搜索关键词 多个用 , 隔开
  45. Filter?: number // 筛选条件 0:全部 1:视频 2:音频"
  46. ActivityId?: number // 活动列表传过来的活动ID 处理新标签
  47. IsExternalLabel?: number // 是否仅展示外部资源 1:是
  48. IsResearchPoints?: number // 是否仅展示研选扣点 1:是
  49. IsResearch?: boolean // 是否仅展示研选
  50. }
  51. export interface IActivityTypeListItem extends IActivityDetialBase {
  52. VoiceList: null //音频数据
  53. }
  54. export interface IActivityDetialBase {
  55. AuthInfo: IAuthInfo
  56. ActivityId: number //活动ID
  57. ActivityTypeId: number //活动类型id 1专家电话会,2分析师电话会,3公司调研电话会,4公司线下调研,5专家线下沙龙,6分析师线下沙龙,7分析师电话会(c类)
  58. ActivityTypeName: string //活动类型名称
  59. ChartPermissionId: number //行业id
  60. ChartPermissionName: string //行业名称
  61. IsLimitPeople: number //是否限制人数 1是,0否
  62. LimitPeopleNum: number //限制的人数数量
  63. LastUpdatedTime: string //更新时间
  64. ActivityTime: string //活动时间 (活动预期时间)
  65. ActivityTimeText: string //活动时间带文字
  66. DistinguishedGuest: string //嘉宾
  67. Host: string //主持人
  68. Speaker: string //主讲人
  69. MainlandTell: string //大陆拨入号
  70. HongKongTell: string //香港拨入号
  71. TaiwanTell: string //台湾拨入号
  72. AmericaTell: string //美国拨入号
  73. ParticipationCode: string //参会密码
  74. Theme: string //主题
  75. Expert: string //专家
  76. ActivityName: string //活动名称
  77. OnlineParticipation: string //网络参会
  78. LinkParticipants: string // 链接参会
  79. ReportLink: string //报告链接
  80. City: string //城市
  81. Address: string //活动地址
  82. Highlights: string //活动亮点
  83. Remarks: string //备注
  84. IsSignup: number //是否已报名 1是 ,0 否-是普通活动 (是否感兴趣 1是 ,0 否-专项调研的)(是否预约外呼 1是 ,0 否)
  85. IsAppointment: number //是否已预约纪要 1是 ,0 否
  86. IsCancelMeetingReminder: number //是否添加了消息消息提醒 1是 ,0 否
  87. ActiveState: string //活动进行状态 未开始:1、进行中2、已结束3
  88. IsShowSustainable: boolean //是否展示限免标签
  89. Description: string //研选内容说明
  90. IsResearch: boolean //是否属于研选
  91. IsResearchSpecial: boolean // 是否需要正式的买方研选权限
  92. IsHideAppointment: number //是否隐藏预约纪要按钮 1是,0 否
  93. IsCClassMeeting: boolean //是否是c类电话会
  94. Label: string //主题标签
  95. ImgUrl: string //行业图片链接
  96. ImgUrlText: string //活动类型图片链接
  97. ActivityType: number //活动线上线下类型 1线上,0 线下
  98. IsShowOutboundCall: boolean //是否展示预约外呼
  99. IsShowMeetingReminder: boolean //是否展示会议提醒
  100. IsShowHelpSsk: boolean //是否展示帮我带问
  101. IsShowSignup: boolean //是否展示我要报名
  102. IsShowAppointment: boolean //是否展示预约纪要
  103. IsShowDetails: boolean //是否展示查看详情按钮
  104. AudioLink: boolean //是否展示回放按钮
  105. FileType: number //类型: 1-音频; 2-视频
  106. SourceType: number //活动来源。 1:活动 、2:专项产业调研
  107. VoiceDetail: IAudioDetail //音频数据
  108. VideoDetail: {
  109. ActivityId: number //活动ID
  110. Id: number //视频id
  111. Title: string //视频名称
  112. ResourceUrl: string //视频地址
  113. VideoDuration: number //视频时长
  114. } //视频数据
  115. YidongActivityUrl: string // 易懂活动链接
  116. SignupType: number // 参会方式 1预约外呼,2自主拨入,3我要报名 4自主入会
  117. IsYidongActivity: boolean // 是否属于易董同步过来的活动
  118. IsYidongConduct: boolean // 是否属于易董办会
  119. IsCanOutboundCall: number // 是否有外呼 0为否,1为有
  120. TencentConferenceNumber: string // 腾讯会议号
  121. IsExternalLabel: boolean // 是否仅展示外部资源
  122. IsResearchPoints: boolean // 是否仅展示研选扣点
  123. SiginupDeadline: string // 报名截至日期
  124. AppAttendance: string // App参会
  125. ConferencePassword: string // 会议密码
  126. CancelDeadline: string // 取消报名截止时间
  127. TopTime: number // 置顶时间
  128. LabelKeywordImgLink: string // 标签关键字图片链接
  129. }
  130. export interface IAudioDetail {
  131. ActivityId: number // 活动ID
  132. Name: string // 音频名称
  133. PlaySeconds?: number // 时长
  134. Url: string //地址
  135. Type?: number // 类型 1-音频; 2-活动视频; 3-产业视频
  136. SourceId?: number // ID
  137. }
  138. export interface IActivityTypeListRes {
  139. Paging: IPaging
  140. List: IActivityTypeListItem[]
  141. Label: string //主题
  142. ImgUrl: string //图片路径
  143. IsResearch: boolean //是否属于研选
  144. IsResearchSpecial: boolean // 是否属于特殊的研选
  145. IsJump: boolean //是否跳转
  146. IndustrialManagementId: number //产业ID
  147. IndustryNewLabel: boolean //产业是否新标签
  148. ChartPermissionId: number // 行业ID
  149. IsShowResearchPoints: boolean // 是否显示研选扣点
  150. }
  151. export interface IActivityTypeDetailRes {
  152. HasPermission: number //1:有该行业权限,正常展示,2:无该行业权限,不存在权益客户下(ficc),3:无该品类权限,已提交过申请,4:无该品类权限,未提交过申请,5:潜在客户,未提交过申请,6:潜在客户,已提交过申请
  153. PopupMsg: string //权限弹窗信息
  154. SellerMobile: string //销售电话
  155. SellerName: string //销售姓名
  156. Detail: IActivityTypeDetail
  157. IsResearch: boolean // 是否属于研选
  158. IsResearchSpecial: boolean // 是否属于特殊的研选
  159. }
  160. export interface IActivityTypeDetail extends IActivityDetialBase {
  161. SignupNum: number //已报名人数
  162. ArticleList: IArticleListItem[]
  163. Listndustrial: IListndustrialItem[] //活动关联的产业信息
  164. }
  165. export interface IArticleListItem {
  166. ArticleId: number // id
  167. ReportLink: string // 报告链接
  168. Title: string // 报告标题
  169. }
  170. export interface IListndustrialItem {
  171. ArticleReadNum: number // 文章阅读数量
  172. ChartPermissionId: number // 权限id
  173. IndustrialManagementId: number // 产业id
  174. IndustryName: string // 产业名称
  175. IndustryNewLabel: boolean // 产业是否新标签
  176. IsJump: boolean // 是否跳转
  177. IsResearch: boolean // 是否属于研选
  178. LayoutTime: string // 布局时间
  179. RecommendedIndex: number // 推荐指数
  180. }
  181. export interface IActivitySpecialListRes {
  182. IsFollow: boolean // 是否关注新调研通知
  183. IsBindingMobile: boolean // 是否绑定了手机号
  184. Paging: IPaging
  185. List: IActivitySpecialListItem[]
  186. }
  187. export interface IActivitySpecialListItem extends IActivityDetialBase {
  188. SpecialType: number //调研形式、 1 线上 , 2 线下
  189. ResearchTheme: string //调研主题
  190. TripImgLink: string //行程图片链接
  191. IndustrialName: string //产业名称
  192. IndustrialSubjectName: string //标的名称(相关公司
  193. Scale: string
  194. CustomerTypeIds: string
  195. IsTrip: number //是否报名 1是 ,0 否
  196. TripNum: number //已报名人数
  197. Days: number //调研天数
  198. PersonInCharge: number //纪要负责人
  199. TripImgLinkFix: string //确定行程之后的图片链接
  200. ActivityTimeTextByDay: number //活动预期时间带周日
  201. ActivityTimeEnd: string
  202. TripStatus: number //行程进行状态 1:预报名,2:确定行程
  203. Explain: string //说明
  204. AdminId: number
  205. }
  206. export interface IActivitySpecialDetailRes {
  207. HasPermission: number //1:有该行业权限,正常展示,2:无该行业权限,不存在权益客户下(ficc),3:无该品类权限,已提交过申请,4:无该品类权限,未提交过申请,5:潜在客户,未提交过申请,6:潜在客户,已提交过申请
  208. PopupMsg: string //权限弹窗信息
  209. SellerMobile: string //销售电话
  210. SellerName: string //销售姓名
  211. IsFollow: boolean //是否关注新调研通知
  212. Detail: IActivitySpecialListItem
  213. }
  214. export interface IActivitySignupRes {
  215. SignupStatus: string //返回状态:人数已满:FullStarffed、单机构超过两人:TwoPeople、爽约次数过多:BreakPromise、超时:Overtime 、成功:Success
  216. GoFollow: boolean //是否去关注公众号
  217. SignupType: number //报名方式,1预约外呼,2自主拨入,3我要报名
  218. ActivityId: number //活动ID
  219. HaqveJurisdiction: boolean //是否有权限
  220. HasPermission: number //1:有该行业权限,正常展示,2:无该行业权限,不存在权益客户下(ficc),3:无该品类权限,已提交过申请,4:无该品类权限,未提交过申请,5:潜在客户,未提交过申请,6:潜在客户,已提交过申请
  221. PopupMsg: string //权限弹窗信息
  222. SellerMobile: string //销售电话
  223. SellerName: string //销售姓名
  224. Mobile: string //外呼手机号
  225. CountryCode: string //外呼手机号区号
  226. GoOutboundMobile: boolean //是否去绑定手机号
  227. GoBindEmail: boolean //是否去绑定邮箱
  228. IsResearch: boolean // 是否属于研选
  229. IsResearchSpecial: boolean // 是否属于特殊的研选
  230. }
  231. export interface IActivityCheckRes {
  232. CheckPermission: boolean //权限是否通过校验
  233. HasPermission: number
  234. PopupMsg: string //权限弹窗信息
  235. SellerMobile: string //销售电话
  236. SellerName: string //销售姓名
  237. Mobile: string //手机号
  238. IsResearch: boolean //是否属于研选
  239. IsResearchSpecial: boolean //是否属于特殊的研选
  240. CheckTime: boolean //时间是否通过校验
  241. CheckEmail: boolean //邮箱是否通过校验
  242. CheckPoints: boolean //扣点是否通过校验
  243. CompanyPoints: string //公司剩余点数
  244. ActivityPoints: string //本场活动要扣除的点数
  245. CancelPopupMsg: string // 取消报名时间弹窗信息
  246. }
  247. export interface IActivitySpecialTripAddRes {
  248. ActivityId: number //活动ID
  249. HasPermission: number //1:有该行业权限,正常展示,2:无该行业权限,不存在权益客户下(ficc),3:无该品类权限,已提交过申请,4:无该品类权限,未提交过申请,5:潜在客户,未提交过申请,6:潜在客户,已提交过申请"
  250. PopupMsg: string //权限弹窗信息
  251. PopupMsg2: string //权限弹窗信息2
  252. Status: number //返回类型,1:添加,2:取消
  253. SellerMobile: string //销售电话
  254. SellerName: string //销售姓名
  255. SignupStatus: number //返回状态:1:成功 、2 :人数已满 、3:调研次数已用完、 4:超时
  256. }
  257. export interface ISearchActivityRes {
  258. Paging: IPaging
  259. List: INewestItem[]
  260. }
  261. export interface IYidongDetialRes {
  262. HasPermission: number
  263. PopupMsg: string
  264. SellerMobile: string
  265. SellerName: string
  266. IsResearch: boolean
  267. IsResearchSpecial: boolean
  268. YidongActivityUrl: string
  269. }
  270. export const ActivityService = {
  271. getActivityHomeList: (
  272. ActiveState: string, // 活动进行状态 未开始:1、进行中2、已结束3 多个用 , 隔开
  273. WhichDay?: string, // 哪一天 今天:1、明天:2,多个用 , 隔开
  274. ChartPermissionIds?: string, // 行业id 多个用 , 隔开
  275. IsPower?: number // 是否选择有权限行业 ,1是 0 否 默认0
  276. ): INewResponse<{ List: IActivityHomeListItem[] }> =>
  277. NewAxiosInstanceFunc({
  278. url: `/activity/labelTypeList`,
  279. method: 'get',
  280. params: { ActiveState, WhichDay, ChartPermissionIds, IsPower }
  281. }),
  282. getActivityPermissionList: (): INewResponse<{ List: IPermissionItem[]; CheckList: number[] }> =>
  283. NewAxiosInstanceFunc({
  284. url: `/permission/listByActivity`,
  285. method: 'get'
  286. }),
  287. getActivityTypeList: (params: IActivityTypeParams): INewResponse<IActivityTypeListRes> =>
  288. NewAxiosInstanceFunc({
  289. url: `/activity/list`,
  290. method: 'get',
  291. params: params
  292. }),
  293. getActivityTypeDetail: (ActivityId: number, InviteShareCode?: string): INewResponse<IActivityTypeDetailRes> =>
  294. NewAxiosInstanceFunc({
  295. url: `/activity/detail`,
  296. method: 'get',
  297. params: { ActivityId, InviteShareCode }
  298. }),
  299. getActivitySpecialList: (params: IActivityTypeParams): INewResponse<IActivitySpecialListRes> =>
  300. NewAxiosInstanceFunc({
  301. url: `/activity_special/list`,
  302. method: 'get',
  303. params: params
  304. }),
  305. getActivitySpecialDetail: (ActivityId: number): INewResponse<IActivitySpecialDetailRes> =>
  306. NewAxiosInstanceFunc({
  307. url: `/activity_special/detail`,
  308. method: 'get',
  309. params: { ActivityId }
  310. }),
  311. getActivityVideoDetail: (VideoId: number): INewResponse<{ VideoDetail: IIndustryVideo; AuthInfo: IAuthInfo }> =>
  312. NewAxiosInstanceFunc({
  313. url: `/activity/detailVideo`,
  314. method: 'get',
  315. params: { VideoId }
  316. }),
  317. getYidongActivityDetail: (ActivityId: number): INewResponse<IYidongDetialRes> =>
  318. NewAxiosInstanceFunc({
  319. url: `/activity/get_yidong_url`,
  320. method: 'get',
  321. params: { ActivityId }
  322. }),
  323. // 报名方式,,1预约外呼,2自主拨入,3我要报名
  324. postActivitySignup: (ActivityId: number, SignupType: number, Email?: string): INewResponse<IActivitySignupRes> =>
  325. NewAxiosInstanceFunc({
  326. url: `/activity/signup/add`,
  327. method: 'post',
  328. data: { ActivityId, SignupType, Email }
  329. }),
  330. postActivityCheck: (ActivityId: number): INewResponse<IActivityCheckRes> =>
  331. NewAxiosInstanceFunc({
  332. url: `/activity/check`,
  333. method: 'post',
  334. data: { ActivityId }
  335. }),
  336. postActivityCancelSignup: (ActivityId: number): INewResponse =>
  337. NewAxiosInstanceFunc({
  338. url: `/activity/signup/cancel`,
  339. method: 'post',
  340. data: { ActivityId }
  341. }),
  342. postActivityFollow: (): INewResponse =>
  343. NewAxiosInstanceFunc({
  344. url: `/activity_special/follow`,
  345. method: 'post'
  346. }),
  347. postActivitySpectialTripAdd: (ActivityId: number): INewResponse<IActivitySpecialTripAddRes> =>
  348. NewAxiosInstanceFunc({
  349. url: `/activity_special/trip/add`,
  350. method: 'post',
  351. data: { ActivityId }
  352. }),
  353. postActivitySpectialTripCancel: (ActivityId: number): INewResponse =>
  354. NewAxiosInstanceFunc({
  355. url: `/activity_special/trip/cancel`,
  356. method: 'post',
  357. data: { ActivityId }
  358. }),
  359. postActivitySpectialSignup: (ActivityId: number): INewResponse<IActivitySpecialTripAddRes> =>
  360. NewAxiosInstanceFunc({
  361. url: `/activity_special/signup/add`,
  362. method: 'post',
  363. data: { ActivityId }
  364. }),
  365. postActAppointmentAdd: (ActivityId: number): INewResponse<IActivitySignupRes> =>
  366. NewAxiosInstanceFunc({
  367. url: `/activity/appointment/add`,
  368. method: 'post',
  369. data: { ActivityId }
  370. }),
  371. postActAppointmentCancel: (ActivityId: number): INewResponse<IActivitySignupRes> =>
  372. NewAxiosInstanceFunc({
  373. url: `/activity/appointment/cancel`,
  374. method: 'post',
  375. data: { ActivityId }
  376. }),
  377. postActMeetingReminderAdd: (ActivityId: number): INewResponse<IActivitySignupRes> =>
  378. NewAxiosInstanceFunc({
  379. url: `/activity/meetingReminder/add`,
  380. method: 'post',
  381. data: { ActivityId }
  382. }),
  383. postActMeetingReminderCancel: (ActivityId: number): INewResponse<IActivitySignupRes> =>
  384. NewAxiosInstanceFunc({
  385. url: `/activity/meetingReminder/cancel`,
  386. method: 'post',
  387. data: { ActivityId }
  388. }),
  389. postActAskAdd: (ActivityId: number, Content: string): INewResponse<IActivitySignupRes> =>
  390. NewAxiosInstanceFunc({
  391. url: `/activity/askAdd`,
  392. method: 'post',
  393. data: { ActivityId, Content }
  394. }),
  395. postCheckApplyBefore: (ActivityId: number): INewResponse<IActivitySignupRes> =>
  396. NewAxiosInstanceFunc({
  397. url: `/activity/checkAsk`,
  398. method: 'post',
  399. data: { ActivityId }
  400. }),
  401. getSearchActivityList: (params: IActivityTypeParams): INewResponse<ISearchActivityRes> =>
  402. NewAxiosInstanceFunc({
  403. url: `/activity/listSearch`,
  404. method: 'get',
  405. params: params
  406. })
  407. }