From eabb18cf60273b25471509858b287474cea9b370 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期二, 30 九月 2025 09:19:43 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/user_action' into send_coupon

---
 pages/tabbar/user/my.vue |  122 ++++++++++++++++++++++++++++++++++++++++
 1 files changed, 120 insertions(+), 2 deletions(-)

diff --git a/pages/tabbar/user/my.vue b/pages/tabbar/user/my.vue
index 6552fd3..f4f3e1e 100644
--- a/pages/tabbar/user/my.vue
+++ b/pages/tabbar/user/my.vue
@@ -140,10 +140,11 @@
 import '@/pages/subComponents/uview-components/uview-ui';
 import tool from "@/pages/tabbar/user/utils/tool.vue";
 import { getSTSToken } from "@/api/common.js";
-import { getCouponsNum, getFootprintNum } from "@/api/members.js";
+import { getCouponsNum, getFootprintNum,bindMemberAndStore } from "@/api/members.js";
 import { getUserWallet } from "@/api/members";
 import configs from '@/config/config'
 import storage from '@/utils/storage.js'
+import { getSessionId, userAction } from "@/api/userAction.js";
 export default {
   components: {
     tool
@@ -160,12 +161,81 @@
       couponNum: "",
       footNum: "",
       walletNum: "",
+	  pageSessionNo:"",
+	  actionParam:{
+			sessionId:'',
+			actionType:"PAGE",
+			joinType:"SELF",
+			pageCode:"TBA_BAR_MY",
+			pageParams:"{}",
+			pageStatus:"JOIN",
+			pageType:"DETAIL"
+		}
     };
   },
-  onLoad() {
+  onLoad(option) {
+    console.log('-----------鍒嗕韩鍑虹殑鏁版嵁---------->', option)
+    let shareStoreId = null;
+    let shareTime = null;
+    // 妫�鏌ユ槸鍚﹀瓨鍦╭鍙傛暟
+    if (option.q) {
+      // 鍙岄噸瑙g爜锛氬井淇″URL杩涜浜嗕袱娆$紪鐮�
+      const decodedUrl = decodeURIComponent(decodeURIComponent(option.q));
+      console.log('鍘熷URL:', decodedUrl);
+
+      // 瑙f瀽URL涓殑鏌ヨ鍙傛暟
+      const params = this.parseUrlParams(decodedUrl);
+      shareStoreId = params.shareStoreId;
+      try {
+        // 灏嗘暟鎹瓨鍌ㄥ埌鏈湴缂撳瓨
+        uni.setStorageSync('shareStoreId', shareStoreId);
+        //鍒涘缓涓�涓壂鐮佺殑鏃堕棿
+        // 鑾峰彇褰撳墠鏃堕棿骞舵牸寮忓寲涓� yyyy-MM-dd HH:mm:ss
+        const now = new Date();
+        const year = now.getFullYear();
+        const month = String(now.getMonth() + 1).padStart(2, '0'); // 鏈堜唤浠�0寮�濮嬶紝闇�瑕�+1
+        const day = String(now.getDate()).padStart(2, '0');
+        const hours = String(now.getHours()).padStart(2, '0');
+        const minutes = String(now.getMinutes()).padStart(2, '0');
+        const seconds = String(now.getSeconds()).padStart(2, '0');
+
+        shareTime = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+        uni.setStorageSync('shareTime', shareTime);
+        console.log('鏁版嵁瀛樺偍鎴愬姛');
+      } catch (e) {
+        console.error('瀛樺偍澶辫触锛�', e);
+      }
+    }
+    this.initCOS()
+	},
+  onUnload() {
+    let	param = Object.assign({}, this.actionParam);
+    if (this.sendOnShow)return
+    param.pageStatus = "LEAVE"
+    userAction(param)
+  },
+  onHide() {
+    this.startHidenTime = Date.now()
+    let	param =Object.assign({}, this.actionParam);
+    this.sendOnShow = true;
+    param.pageStatus = "LEAVE"
+    userAction(param)
+  },
+  onLoad(options) {
+	  this.actionParam.pageParams = JSON.stringify(options)
 	  this.initCOS()
   },
   onShow() {
+	  getSessionId().then(res=>{
+		this.pageSessionNo = res.data.data
+		this.actionParam.sessionId = res.data.data
+		if(this.pageSessionNo){
+		let	param = Object.assign({}, this.actionParam);
+			param.sessionId = this.pageSessionNo
+			userAction(param)
+		}
+	  })
+
     this.userInfo = this.$options.filters.isLogin() || {};
     if (this.$options.filters.isLogin("auth")) {
       this.getUserOrderNum();
@@ -174,6 +244,16 @@
       this.couponNum = 0;
       this.footNum = 0;
     }
+
+	let shareStoreId = uni.getStorageSync('shareStoreId');
+	let shareTime = uni.getStorageSync('shareTime');
+	console.log('浠庣紦瀛樿鍙栧弬鏁�:', { shareStoreId, shareTime });
+	if (shareStoreId && shareTime) {
+	  console.log('妫�娴嬪埌鏈夋晥鍙傛暟锛岃皟鐢ㄥ悗绔帴鍙�');
+	  this.bindMemberAndStore(shareStoreId, shareTime);
+	} else {
+	  console.log('鏃犳湁鏁堝弬鏁帮紝鎵ц姝e父閫昏緫');
+	}
   },
   onPullDownRefresh() {
     this.getUserOrderNum();
@@ -190,6 +270,44 @@
 
   mounted() { },
   methods: {
+	  // 瑙f瀽URL鍙傛暟
+	  parseUrlParams(url) {
+	  	const params = {};
+	  	// 澶勭悊鍙兘瀛樺湪鐨刪ash锛堝鏋滄湁鐨勮瘽锛�
+	  	const cleanUrl = url.split('#')[0];
+	  	const queryStr = cleanUrl.split('?')[1] || '';
+
+	  	queryStr.split('&').forEach(pair => {
+	  		const [key, value] = pair.split('=');
+	  		if (key) {
+	  			// 濡傛灉鍊煎瓨鍦紝鍒欒В鐮侊紝鍚﹀垯璁句负绌哄瓧绗︿覆
+	  			params[key] = value ? decodeURIComponent(value) : '';
+	  		}
+	  	});
+
+	  	return params;
+	  },
+    async bindMemberAndStore(shareStoreId, shareTime){
+      let form ={
+        shareStoreId: shareStoreId,
+        shareTime: shareTime
+      }
+      // let form ={
+      // 			  shareStoreId: "1376433565247471616",
+      // 			  shareTime: "2025-09-26 16:18:00"
+      // }
+      try {
+        const res = await bindMemberAndStore(form);
+        if(res.statusCode === 200){
+          //娓呴櫎缂撳瓨
+          uni.removeStorageSync('shareStoreId');
+          uni.removeStorageSync('shareTime');
+        }
+      }
+      catch(error) {
+        console.error('鍑洪敊:', error);
+      };
+    },
 	  // goTOSuccess(){
 	  // 		 uni.redirectTo({
 	  // 		    url:"/pages/cart/payment/success?paymentMethod=WECHAT" +

--
Gitblit v1.8.0