From 0886e91fdfe3b5528f80d2b6742083aa11d16ebb Mon Sep 17 00:00:00 2001 From: zhengyiming <540361168@qq.com> Date: 星期三, 02 四月 2025 15:54:15 +0800 Subject: [PATCH] fix: 四期bug --- packages/core/src/lifeRecharge.ts | 94 +++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 90 insertions(+), 4 deletions(-) diff --git a/packages/core/src/lifeRecharge.ts b/packages/core/src/lifeRecharge.ts index 26c02a5..d523104 100644 --- a/packages/core/src/lifeRecharge.ts +++ b/packages/core/src/lifeRecharge.ts @@ -2,30 +2,42 @@ BlLifeRechargeServices, PhoneMesssageCodeLoginInput, RequestConfig, + ChannelOutput, } from './lifeRechargeServices'; import { BlLifeRechargeOptions } from './types'; import { LifeRechargeConstants } from './lifeRechargeConstants'; import { BlLifeRechargeAccountModel } from './lifeRechargeAccountModel'; +import { LifeRechargeListener } from './listener'; export class BlLifeRecharge<TResponse = any, TRequestOptions = any> { services: BlLifeRechargeServices<TResponse, TRequestOptions>; accountModel: BlLifeRechargeAccountModel; + listener: LifeRechargeListener; static constants = LifeRechargeConstants; constants = LifeRechargeConstants; constructor(options: BlLifeRechargeOptions<TResponse, TRequestOptions>) { - this.services = new BlLifeRechargeServices(options); - this.accountModel = new BlLifeRechargeAccountModel({ + this.listener = new LifeRechargeListener(); + this.services = new BlLifeRechargeServices(this, options); + this.accountModel = new BlLifeRechargeAccountModel(this, { userId: options.userId, phoneNumber: options.phoneNumber, + channlesNum: options.channlesNum, }); + } + + init() { + if (this.accountModel.userId) { + this.accountModel.getUserInfo(); + } } async login(body: PhoneMesssageCodeLoginInput, options?: RequestConfig) { try { let res = await this.services.lifePayPhoneMesssageCodeLogin(body, options); - this.accountModel.setUserId(res); + this.accountModel.setUserId(res.userId); + this.accountModel.getUserInfo(); this.accountModel.setPhoneNumber(body.phoneNumber); return res; } catch (error) { @@ -36,6 +48,8 @@ loginout() { this.accountModel.setUserId(''); this.accountModel.setPhoneNumber(''); + this.accountModel.setUserChannles([]); + this.accountModel.isBackClientUser = false; } isLogin() { @@ -43,6 +57,78 @@ } getRechargeParValue(amount: number | string, rate: number) { - return (Number(amount) * rate).toFixed(2); + return ((Number(amount) * rate) / 100).toFixed(2); + } + + MaxParValue = 300; + + 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; } } -- Gitblit v1.9.1