TrackParamConvert.ets 3.61 KB
import { CompInfoBean, ContentDetailDTO, ContentDTO, PageInfoBean, PageInfoDTO } from 'wdBean/Index';
import { ParamType } from './PublicParams';
import { TrackConstants } from './TrackConstants';
import { TrackingUtils } from './TrackingUtils';

export class TrackParamConvert {

  /// 页面pageInfo 转换 埋点参数
  static page(pageInfo?: PageInfoDTO) : ParamType {
    return TrackParamConvert.pageCompProgram(pageInfo, undefined, undefined)
  }

  // 页面comp 转换 埋点参数
  static pageAndComp(pageInfo?: PageInfoDTO, comp?: CompInfoBean) : ParamType {
    return TrackParamConvert.pageCompProgram(pageInfo, comp, undefined)
  }

  // 运营位数据 转换 埋点参数
  static program(program?: ContentDTO) : ParamType {
    return TrackParamConvert.pageCompProgram(undefined, undefined, program)
  }

  static pageCompProgram(pageInfo?: PageInfoDTO, comp?: CompInfoBean, program?: ContentDTO) : ParamType {
    let params = TrackingUtils.generateParams()

    //TODO: 转换参数

    return params
  }

  static contentDetail(detail: ContentDetailDTO) : ParamType {

    let param: ParamType = {
      "contentType": detail.newsType.toFixed(0),
      "contentId": detail.newsId,
      "contentName": detail.newsTitle,
      "channelSourceId": detail.reLInfo?.channelId || "",
      "rmhPlatform": detail.rmhPlatform,
    }

    if (detail.rmhInfo && detail.rmhInfo.rmhId.length > 0) {
      param["saAuthorId"] = detail.rmhInfo.rmhId
      param["saAuthorName"] = detail.rmhInfo.rmhName || ""
    }

    // 图文和音频
    if (detail.newsType == 8 || detail.newsType == 13) {
      param["readFlag"] = detail.readFlag ? detail.readFlag : 0
    }

    // TODO: 频道处理
    // if (detail.channelsList) {
    //  param["contentShowChannelId"] = X
    // }

    // TODO: 专题处理
    // detail.topicInfo.
    // param["summaryType"] = X
    // param["summaryId"] = X

    // TODO: 直播
    if (detail.newsType == 2 && detail.liveInfo) {
      // param["vliveId"] = X
      // param["vliveName"] = X
      // param["liveMode"] = X
      // param["liveStreamType"] = X
      // param["liveType"] = X
    }

    TrackParamConvert.appendRecommend(detail, param)
    return param
  }

  private static appendRecommend(detail: object, to: ParamType) {

    //TODO:  ContentDetailDTO 增加推荐字段

    to["sceneId"] = "9999"
    to["subSceneId"] = ""
    to["cnsTraceId"] = "selfHold"
    to["itemId"] = ""
    to["expIds"] = ""

    /// 这里填写默认值,后续在分享处 再重写
    to["shareChannel"] = ""
    /// 这里填写默认值,后续在action=browse时,再重写
    to["duration"] = 0
  }


  ///早晚报 专题
  static pageInfoBean_ParamType(pageInfo: PageInfoBean) : ParamType {

    let topTypeString: string = '';
    switch (pageInfo.topicInfo.topicType){
      case 21:
        topTypeString = TrackConstants.SummaryType.Article
      break;
      case 22:
        topTypeString = TrackConstants.SummaryType.Audio
        break;
      case 23:
        topTypeString = TrackConstants.SummaryType.Live
        break;
      case 24:
        topTypeString = TrackConstants.SummaryType.Talk
        break;
      case 25:
        topTypeString = TrackConstants.SummaryType.MorningAndEveningNews
        break;
      case 26:
        topTypeString = TrackConstants.SummaryType.TimeAxis
        break;
    }

    let param: ParamType = {
      "summaryId": pageInfo.topicInfo.topicId,
      "summaryType": topTypeString,
      "specialLink": pageInfo.topicInfo.shareUrl,
      "channelSourceId":  pageInfo.name,
      "pageId": 'summaryDetailPage',
    }
    TrackParamConvert.appendRecommend(pageInfo, param)

    return param
  }
}