TrackParamConvert.ets 2.54 KB
import { CompInfoBean, ContentDetailDTO, ContentDTO, PageInfoDTO } from 'wdBean/Index';
import { ParamType } from './PublicParams';
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: ContentDetailDTO, to: ParamType) {

    //TODO:  ContentDetailDTO 增加推荐字段

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

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