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