HttpCommonParams.ets 5.45 KB
import { SpConstants } from 'wdConstant';
import { DateTimeUtils, DeviceUtil, SPHelper, StringUtils } from 'wdKit';
import { HostEnum, HostManager } from './HttpHostManager';

/**
 * 网络请求参数工具类
 */
export class HttpParams {
  private static userId = ''
  private static userType = ''
  private static token = ''

  static buildHeaders(): Record<string, string> {
    let headers: Record<string, string> = {};
    // 通用请求头
    headers['User-Agent'] = 'Dalvik/2.1.0 (Linux; U; Android 13; 22101317C Build/TKQ1.221013.002)' // TODO
    headers['channel'] = 'rmrb_china_0000' // 自有渠道
    headers['plat'] = DeviceUtil.getPlat()
    headers['Content-Type'] = 'application/json; charset=utf-8'
    headers['device_id'] = DeviceUtil.clientId()
    headers['build_version'] = HttpParams.getVersion()
    headers['adcode'] = HttpParams.getAdCode()
    headers['os_version'] = DeviceUtil.getOsVersion()
    headers['system'] = 'Android' // TODO 后续是否新增鸿蒙标识
    headers['versionCode'] = HttpParams.getVersionCode()
    headers['version_name'] = HttpParams.getVersionName()
    headers['EagleEye-TraceID'] = DeviceUtil.getRandomUUIDForTraceID()
    headers['imei'] = DeviceUtil.clientId()
    headers['Accept-Language'] = 'zh'
    headers['timestamp'] = DateTimeUtils.getTimeStamp() + ''
    HttpParams.setLocationHeader(headers)
    // // TODO 判断是否登录
    headers['RMRB-X-TOKEN'] = HttpParams.getXToken()
    if (HttpParams.getXToken() != '') {
      headers['cookie'] = 'RMRB-X-TOKEN=' + HttpParams.getXToken()
    }
    headers['userId'] = HttpParams.getUserId()
    headers['userType'] = HttpParams.getUserType()
    //
    headers['mpassid'] = 'ZbHTMeTsfaYDAHqt8ZHIzcPs'
    HttpParams.addSpecialHeaders(headers);
    return headers;
  }

  static addSpecialHeaders(headers: Record<string, string>) {
    switch (HostManager.getHost()) {
      case HostEnum.HOST_UAT:
        headers['X-Ca-Stage'] = 'PRE'
        headers['Authorization'] = 'APPCODE 83092caa603a421aa0222308b3f6b27a'
        headers['appCode'] = '83092caa603a421aa0222308b3f6b27a'
        break
      case HostEnum.HOST_SIT:
        headers['X-Ca-Stage'] = 'TEST'
        headers['Authorization'] = 'APPCODE 0af1f9085e484c97b2a44704bae72c07'
        headers['appCode'] = '0af1f9085e484c97b2a44704bae72c07'
        break
      case HostEnum.HOST_PRODUCT:
        headers['X-Ca-Stage'] = 'RELEASE'
        headers['Authorization'] = 'APPCODE 3d4181bceeb94d9780e10dbb6c67bbf6'
        headers['appCode'] = '3d4181bceeb94d9780e10dbb6c67bbf6'
        break
      case HostEnum.HOST_DEV:
        headers['X-Ca-Stage'] = 'TEST'
        headers['Authorization'] = 'APPCODE ff33172859e14f9a8299e3bd769e79f9'
        headers['appCode'] = 'ff33172859e14f9a8299e3bd769e79f9'
        break
      default:
        break
    }
  }

  static setLocationHeader(headers: Record<string, string>) {
    let cityName = SPHelper.default.getSync(SpConstants.LOCATION_CITY_NAME, '') as string
    if (StringUtils.isNotEmpty(cityName)) {
      headers['city'] = encodeURI(cityName)
    }
    let cityCode = SPHelper.default.getSync(SpConstants.LOCATION_CITY_CODE, '') as string
    if (StringUtils.isNotEmpty(cityCode)) {
      headers['city_dode'] = encodeURI(cityCode)
    }
  }

  private static getXToken() {
    if (StringUtils.isNotEmpty(HttpParams.token)) {
      return HttpParams.token
    }
    HttpParams.token = SPHelper.default.getSync(SpConstants.USER_JWT_TOKEN, "") as string
    if (StringUtils.isNotEmpty(HttpParams.token)) {
      return HttpParams.token
    }
    // return 'eyJhbGciOiJIUzI1NiIsImtpZCI6ImQ4WkI2QkhxSEZrdjJ2U25BNlRwZEdKRjBHcjItVzBvS2FaYzdLOUUycmcifQ.eyJpc3MiOiJwZW9wbGVzLWRhaWx5LWZvdXJhIiwic3ViIjoicGVvcGxlcy1kYWlseS1mb3VyYSIsImV4cCI6MTcwMzY0OTYwNiwidXNlcklkIjo0NTk3NzYyOTc0NzQ5NDksInVzZXJWZXJzaW9uIjoiNDU5Nzc2Mjk3NDc0OTQ5XzIiLCJ1c2VyTmFtZSI6IkJ1bGlraWtpMTgxIiwidXNlclR5cGUiOjIsImNyZWF0b3JJZCI6NDI2NTM5MH0.jhQ9kylcm3FxWf0-lBMZuLkdtIQ6XpFnAi0AFZJNwfc';
    return ''
  }

  static getRefreshToken(): string {
    let refreshToken = SPHelper.default.getSync(SpConstants.USER_REFRESH_TOKEN, "")
    if (StringUtils.isNotEmpty(refreshToken)) {
      return refreshToken as string;
    }
    return '';
  }

  private static getVersion() {
    // TODO
    return '202401242103';
  }

  private static getVersionCode() {
    // TODO
    return '10000';
  }

  private static getVersionName() {
    // TODO
    return '1.0.0';
  }

  private static getAdCode() {
    // 省份编码
    return '340000';
  }

  public static getCityCode() {
    // TODO
    // 城市编码
    return '340100';
  }

  public static getProvinceCode() {
    // TODO
    return '340000';
  }

  /**
   * 地区code
   */
  public static getDistrictCode() {
    // TODO
    return '340103';
  }

  public static getUserId(): string {
    // TODO 对接登录
    if (StringUtils.isNotEmpty(HttpParams.userId)) {
      return HttpParams.userId
    }
    HttpParams.userId = SPHelper.default.getSync(SpConstants.USER_ID, "") as string
    return HttpParams.userId;
  }

  public static getUserType() {
    if (StringUtils.isNotEmpty(HttpParams.userType)) {
      return HttpParams.userType
    }
    HttpParams.userType = SPHelper.default.getSync(SpConstants.USER_Type, "") as string
    return HttpParams.userType;
  }

  public static setUserId(userId: string) {
    HttpParams.userId = userId;
  }

  public static setUserType(userType: string) {
    HttpParams.userType = userType;
  }

  public static setUserToken(token: string) {
    HttpParams.token = token;
  }
}