zhengyiming
2025-03-13 07d73df3d817d01ce47f6c7b7a8d8514cd389295
packages/core/src/lifeRecharge.ts
@@ -15,10 +15,11 @@
  constants = LifeRechargeConstants;
  constructor(options: BlLifeRechargeOptions<TResponse, TRequestOptions>) {
    this.services = new BlLifeRechargeServices(options);
    this.services = new BlLifeRechargeServices(this, options);
    this.accountModel = new BlLifeRechargeAccountModel({
      userId: options.userId,
      phoneNumber: options.phoneNumber,
      channlesNum: options.channlesNum,
    });
  }
@@ -43,7 +44,7 @@
  }
  getRechargeParValue(amount: number | string, rate: number) {
    return (Number(amount) * rate).toFixed(2);
    return ((Number(amount) * rate) / 100).toFixed(2);
  }
  MaxParValue = 300;
@@ -51,4 +52,70 @@
  filterParValueList(parValueList: string[]) {
    return parValueList.filter((x) => Number(x) <= this.MaxParValue);
  }
  getCarrierByPhoneNumber(phoneNumber: string): LifeRechargeConstants.IspCode {
    // 定义号段和对应的运营商
    const carrierSegments = {
      [LifeRechargeConstants.IspCode.yidong]: [
        '134',
        '135',
        '136',
        '137',
        '138',
        '139',
        '150',
        '151',
        '152',
        '157',
        '158',
        '159',
        '182',
        '183',
        '184',
        '187',
        '188',
        '198',
        '147',
        '178',
        '165',
      ],
      [LifeRechargeConstants.IspCode.liantong]: [
        '130',
        '131',
        '132',
        '155',
        '156',
        '185',
        '186',
        '145',
        '176',
        '166',
      ],
      [LifeRechargeConstants.IspCode.dianxin]: [
        '133',
        '153',
        '180',
        '181',
        '189',
        '177',
        '199',
        '191',
      ],
    };
    // 检查手机号是否有效(这里只简单检查长度)
    if (!/^\d{11}$/.test(phoneNumber)) {
      return '' as any;
    }
    let prefix = phoneNumber.substr(0, 3);
    for (let carrier in carrierSegments) {
      if (carrierSegments[carrier].includes(prefix)) {
        return carrier as LifeRechargeConstants.IspCode;
      }
    }
    // 如果没有找到匹配的号段,则返回未知
    return '' as any;
  }
}