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