From 2c4474b33be9a9a5a045616c41e2b0074f6d8d4a Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期二, 10 六月 2025 09:20:34 +0800
Subject: [PATCH] fix: v1.4

---
 apps/taro/src/subpackages/my/applyResult/applyResult.vue |   79 +++++++++++++++++++++++++++++++++++++--
 1 files changed, 74 insertions(+), 5 deletions(-)

diff --git a/apps/taro/src/subpackages/my/applyResult/applyResult.vue b/apps/taro/src/subpackages/my/applyResult/applyResult.vue
index c7c56f1..3aa1492 100644
--- a/apps/taro/src/subpackages/my/applyResult/applyResult.vue
+++ b/apps/taro/src/subpackages/my/applyResult/applyResult.vue
@@ -12,14 +12,83 @@
 <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',
 });
 
-function generate() {
-  RouteHelper.navigateTo({
-    url: RouterPath.promotionQrcode,
-  });
+const router = Taro.useRouter();
+const { blLifeRecharge } = useLifeRechargeContext();
+const consultationId = router.params?.consultationId ?? '';
+
+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: consultationId,
+    };
+    return await blLifeRecharge.services.getChannelConsultationById(params);
+  } catch (error) {}
+}
+
+type CreateOrUpdatePromoterOptions = {
+  name?: string;
+  phoneNumber?: string;
+};
+
+async function createOrUpdatePromoter(options: CreateOrUpdatePromoterOptions = {}) {
+  try {
+    const { name, phoneNumber } = options;
+    let params: CreateOrUpdatePromoterInput = {
+      userId: blLifeRecharge.accountModel.userId,
+      name: name,
+      phoneNumber: phoneNumber,
+    };
+    return await blLifeRecharge.services.createOrUpdatePromoter(params);
+  } catch (error) {}
+}
+
+async function generate() {
+  try {
+    if (consultationId) {
+      let res = await getChannelConsultationById();
+      if (res) {
+        let promoterRes = await getPromoter(res.phoneNumber);
+        let idNumber: string;
+        if (promoterRes?.idNumber) {
+          idNumber = promoterRes.idNumber;
+        } else {
+          let createOrUpdatePromoterRes = await createOrUpdatePromoter({
+            name: res.name,
+            phoneNumber: res.phoneNumber,
+          });
+          idNumber = createOrUpdatePromoterRes.idNumber;
+        }
+        if (idNumber) {
+          if (res.phoneNumber === blLifeRecharge.accountModel.phoneNumber) {
+            blLifeRecharge.accountModel.setUserPromoterIdNumber(idNumber);
+          }
+          RouteHelper.navigateTo({
+            url: `${RouterPath.promotionQrcode}?promoterIdNumber=${idNumber}`,
+          });
+        }
+      }
+    }
+  } catch (error) {}
 }
 </script>

--
Gitblit v1.9.1