From 74953600e30027aa89aec6eeb939a182a2a7ecda Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期一, 09 六月 2025 16:20:05 +0800 Subject: [PATCH] feat: 接口 --- apps/taro/project.private.config.json | 2 apps/taro/src/subpackages/my/applyAgent/applyAgent.vue | 2 packages/services/api/typings.d.ts | 48 +++++++++ packages/components/src/views/Mine/ApplyAgentView.vue | 1 packages/core/src/lifeRechargeServices.ts | 90 +++++++++++++++++ apps/taro/src/subpackages/my/applyResult/applyResult.vue | 67 ++++++++++++- packages/services/api/Promoter.ts | 30 ++++++ packages/services/api/LifePay.ts | 15 +++ 8 files changed, 244 insertions(+), 11 deletions(-) diff --git a/apps/taro/project.private.config.json b/apps/taro/project.private.config.json index 73439be..0b515bc 100644 --- a/apps/taro/project.private.config.json +++ b/apps/taro/project.private.config.json @@ -67,5 +67,5 @@ ] } }, - "libVersion": "3.7.3" + "libVersion": "3.8.7" } \ No newline at end of file diff --git a/apps/taro/src/subpackages/my/applyAgent/applyAgent.vue b/apps/taro/src/subpackages/my/applyAgent/applyAgent.vue index 232af4e..0f50218 100644 --- a/apps/taro/src/subpackages/my/applyAgent/applyAgent.vue +++ b/apps/taro/src/subpackages/my/applyAgent/applyAgent.vue @@ -28,7 +28,7 @@ function submit(value: string) { RouteHelper.navigateTo({ - url: `${RouterPath.applyResult}?promoterIdNumber=${value}`, + url: `${RouterPath.applyResult}?channelConsultationId=${value}`, }); } </script> diff --git a/apps/taro/src/subpackages/my/applyResult/applyResult.vue b/apps/taro/src/subpackages/my/applyResult/applyResult.vue index 59e712a..c916847 100644 --- a/apps/taro/src/subpackages/my/applyResult/applyResult.vue +++ b/apps/taro/src/subpackages/my/applyResult/applyResult.vue @@ -12,19 +12,74 @@ <script setup lang="ts"> import { PageLayout } from '@/components'; import { ResultWithoutBG } from '@life-payment/components'; +import { + APIgetChannelConsultationByIdParams, + APIgetPromoterParams, + CreateOrUpdatePromoterInput, + useLifeRechargeContext, +} from '@life-payment/core-vue'; import Taro from '@tarojs/taro'; defineOptions({ - name: 'applyAgent', + name: 'applyResult', }); const router = Taro.useRouter(); +const { blLifeRecharge } = useLifeRechargeContext(); -const promoterIdNumber = router.params?.promoterIdNumber ?? ''; +const channelConsultationId = router.params?.channelConsultationId ?? ''; +console.log('channelConsultationId: ', channelConsultationId); -function generate() { - RouteHelper.navigateTo({ - url: `${RouterPath.generatePromotionCode}?promoterIdNumber=${promoterIdNumber}`, - }); +async function getPromoter(phoneNumber: string) { + try { + let params: APIgetPromoterParams = { + phoneNumber: phoneNumber, + }; + return await blLifeRecharge.services.getPromoter(params); + } catch (error) {} +} + +async function getChannelConsultationById() { + try { + let params: APIgetChannelConsultationByIdParams = { + id: channelConsultationId, + }; + return await blLifeRecharge.services.getChannelConsultationById(params); + } catch (error) {} +} + +async function createOrUpdatePromoter(name: string, phoneNumber: string) { + try { + let params: CreateOrUpdatePromoterInput = { + userId: blLifeRecharge.accountModel.userId, + name: name, + phoneNumber: phoneNumber, + }; + return await blLifeRecharge.services.createOrUpdatePromoter(params); + } catch (error) {} +} + +async function generate() { + try { + if (channelConsultationId) { + let res = await getChannelConsultationById(); + if (res) { + let promoterIdNumber = await getPromoter(res.phoneNumber); + if (promoterIdNumber) { + RouteHelper.navigateTo({ + url: `${RouterPath.promotionQrcode}?promoterIdNumber=${promoterIdNumber}`, + }); + } else { + let promoterIdNumber = await createOrUpdatePromoter(res.name, res.phoneNumber); + if (promoterIdNumber) { + RouteHelper.navigateTo({ + url: `${RouterPath.promotionQrcode}?promoterIdNumber=${res}`, + }); + } + } + } + } else { + } + } catch (error) {} } </script> diff --git a/packages/components/src/views/Mine/ApplyAgentView.vue b/packages/components/src/views/Mine/ApplyAgentView.vue index 8c70ef6..38a3938 100644 --- a/packages/components/src/views/Mine/ApplyAgentView.vue +++ b/packages/components/src/views/Mine/ApplyAgentView.vue @@ -125,7 +125,6 @@ companyName: form.companyName, customerResources: form.customerResources, }; - console.log('params: ', params); let res = await blLifeRecharge.services.createChannelConsultation(params); if (res) { emit('submit', res); diff --git a/packages/core/src/lifeRechargeServices.ts b/packages/core/src/lifeRechargeServices.ts index 71d3723..89a7ee2 100644 --- a/packages/core/src/lifeRechargeServices.ts +++ b/packages/core/src/lifeRechargeServices.ts @@ -424,13 +424,43 @@ } /** 鍒涘缓鎴栨洿鏂版帹骞垮憳 POST /api/Promoter/CreateOrUpdatePromoter */ - async createOrUpdatePromoter(body: API.CreateOrUpdatePromoterInput, options?: API.RequestConfig) { + async createOrUpdatePromoter(body: CreateOrUpdatePromoterInput, options?: RequestConfig) { return this.request<string>('/api/Promoter/CreateOrUpdatePromoter', { method: 'POST', headers: { 'Content-Type': 'application/json', }, data: body, + ...(options || {}), + }); + } + + /** 鑾峰彇娓犻亾鍜ㄨId GET /api/Promoter/GetChannelConsultationById */ + async getChannelConsultationById( + // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄) + params: APIgetChannelConsultationByIdParams, + options?: RequestConfig + ) { + return this.request<ChannelConsultationDto>('/api/Promoter/GetChannelConsultationById', { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + }); + } + + /** 鑾峰彇鎺ㄥ箍鍛樹俊鎭� GET /api/Promoter/GetPromoter */ + async getPromoter( + // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄) + params: APIgetPromoterParams, + options?: RequestConfig + ) { + return this.request<PromoterDto>('/api/Promoter/GetPromoter', { + method: 'GET', + params: { + ...params, + }, ...(options || {}), }); } @@ -972,3 +1002,61 @@ /** 澶囨敞 */ remark?: string; } + +export interface APIgetChannelConsultationByIdParams { + id?: string; +} + +export type LifePayChannelAgentType = 1 | 2 | 3; + +export type LifePayChannelConsultationFollowupStatus = 1 | 2 | 3 | 4; + +export interface ChannelConsultationDto { + /** Id */ + id?: string; + /** 鍜ㄨ鏃堕棿 */ + creationTime?: string; + /** 鍜ㄨ浜� */ + name?: string; + agentType?: LifePayChannelAgentType; + /** 鑱旂郴鏂瑰紡 */ + phoneNumber?: string; + /** 鍏徃鍚嶇О */ + companyName?: string; + /** 瀹㈡埛璧勬簮 */ + customerResources?: string; + /** ID */ + promoterIdNumber?: string; + /** 鎺ㄥ箍鍛� */ + promoterName?: string; + /** 鑱旂郴鏂瑰紡 */ + promoterPhoneNumber?: string; + followupStatus?: LifePayChannelConsultationFollowupStatus; + /** 鏈�杩戝洖璁� */ + lastFollowupTime?: string; + /** 鍥炶璁板綍 */ + followupRemark?: string; +} + +export interface APIgetPromoterParams { + phoneNumber?: string; +} + +export interface PromoterDto { + /** Id */ + id?: string; + /** 鍜ㄨ鏃堕棿 */ + creationTime?: string; + /** ID */ + idNumber?: string; + /** 鎺ㄥ箍鍛� */ + name?: string; + /** 鑱旂郴鏂瑰紡 */ + phoneNumber?: string; + /** 鐐瑰嚮鏁� */ + clickCount?: number; + /** 鐢宠鏁� */ + applyCount?: number; + /** 澶囨敞 */ + remark?: string; +} diff --git a/packages/services/api/LifePay.ts b/packages/services/api/LifePay.ts index f314ca5..8efe49c 100644 --- a/packages/services/api/LifePay.ts +++ b/packages/services/api/LifePay.ts @@ -764,6 +764,21 @@ }); } +/** 璇濊垂璁㈠崟鏌ヨ POST /api/LifePay/QueryPhoneOrder */ +export async function queryPhoneOrder( + body: API.QueryPhoneOrderRequestInput, + options?: API.RequestConfig +) { + return request<API.QueryPhoneOrderResponse>('/api/LifePay/QueryPhoneOrder', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + /** 閫�娆剧敓娲荤即璐硅鍗� POST /api/LifePay/RefundLifePayOrder */ export async function refundLifePayOrder( body: API.RefundLifePayOrderInput, diff --git a/packages/services/api/Promoter.ts b/packages/services/api/Promoter.ts index 4b533ed..357048a 100644 --- a/packages/services/api/Promoter.ts +++ b/packages/services/api/Promoter.ts @@ -62,6 +62,21 @@ }); } +/** 鑾峰彇娓犻亾鍜ㄨId GET /api/Promoter/GetChannelConsultationById */ +export async function getChannelConsultationById( + // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄) + params: API.APIgetChannelConsultationByIdParams, + options?: API.RequestConfig +) { + return request<API.ChannelConsultationDto>('/api/Promoter/GetChannelConsultationById', { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + }); +} + /** 鑾峰彇娓犻亾鍜ㄨ鍥炶璁板綍 GET /api/Promoter/GetChannelConsultationFollowupList */ export async function getChannelConsultationFollowupList( // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄) @@ -80,6 +95,21 @@ ); } +/** 鑾峰彇鎺ㄥ箍鍛樹俊鎭� GET /api/Promoter/GetPromoter */ +export async function getPromoter( + // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄) + params: API.APIgetPromoterParams, + options?: API.RequestConfig +) { + return request<API.PromoterDto>('/api/Promoter/GetPromoter', { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + }); +} + /** 鑾峰彇鎺ㄥ箍鍛樺垪琛� POST /api/Promoter/GetPromoters */ export async function getPromoters(body: API.GetPromotersInput, options?: API.RequestConfig) { return request<API.PromoterDtoPageOutput>('/api/Promoter/GetPromoters', { diff --git a/packages/services/api/typings.d.ts b/packages/services/api/typings.d.ts index c8bf145..c55257c 100644 --- a/packages/services/api/typings.d.ts +++ b/packages/services/api/typings.d.ts @@ -15,7 +15,7 @@ scope?: string; } - type ACOOLYStatusEnum = 10 | 20 | 30 | 40 | 50 | 60; + type ACOOLYStatusEnum = 10 | 20 | 30 | 40 | 50 | 51 | 60; interface ActionApiDescriptionModel { uniqueName?: string; @@ -240,6 +240,10 @@ orderNo?: string; } + interface APIgetChannelConsultationByIdParams { + id?: string; + } + interface APIgetChannelConsultationFollowupListParams { /** 娓犻亾鍜ㄨId */ id?: string; @@ -317,6 +321,10 @@ interface APIgetParams { id?: string; + } + + interface APIgetPromoterParams { + phoneNumber?: string; } interface APIgetRolesIdRolesParams { @@ -2000,6 +2008,15 @@ permissions?: PermissionGrantInfoDto[]; } + interface PhoneChargeOrderOutput { + outOrderNo?: string; + busiOrderNo?: string; + parValue?: number; + payAmount?: number; + status?: string; + statusText?: string; + } + interface PhoneParValueOutput { ispCode?: string; ispName?: string; @@ -2138,6 +2155,35 @@ operateHistoryType?: OperateHistoryTypeEnum; } + interface QueryPhoneOrderRequestInput { + requestNo?: string; + partnerId?: string; + service?: string; + version?: string; + protocol?: string; + context?: string; + ext?: string; + returnUrl?: string; + notifyUrl?: string; + outOrderNo?: string; + busiOrderNo?: string; + } + + interface QueryPhoneOrderResponse { + success?: boolean; + requestNo?: string; + partnerId?: string; + service?: string; + version?: string; + protocol?: string; + context?: string; + ext?: any; + code?: string; + message?: string; + detail?: string; + phoneChargeOrder?: PhoneChargeOrderOutput; + } + interface QueryUserAccountAllListInput { pageModel?: Pagination; checkChannelId?: string; -- Gitblit v1.9.1