From 09e6dc3fb7266620fafb5e341808a8eb36e080a1 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期六, 13 十二月 2025 22:51:52 +0800
Subject: [PATCH] feat:增加企业微信消息提醒

---
 app/utils/subscribe.js |   68 ++++++++++++++++++++++++----------
 1 files changed, 48 insertions(+), 20 deletions(-)

diff --git a/app/utils/subscribe.js b/app/utils/subscribe.js
index 8066c8a..ab6d316 100644
--- a/app/utils/subscribe.js
+++ b/app/utils/subscribe.js
@@ -47,7 +47,7 @@
    * @returns {boolean}
    */
   checkLocalSubscribeStatus() {
-    return true;// uni.getStorageSync('hasSubscribedTaskNotify') || false
+    return uni.getStorageSync('hasSubscribedTaskNotify') || false
   }
 
   /**
@@ -70,16 +70,43 @@
           wx.getSetting({
             withSubscriptions: true,
             success: (res) => {
-              console.log('寰俊璁㈤槄鐘舵�佹煡璇㈢粨鏋滐細', res)
-              
+              // console.log('寰俊璁㈤槄鐘舵�佹煡璇㈢粨鏋滐細', res.subscriptionsSetting.mainSwitch)
+
               // 妫�鏌ubscriptionsSetting涓槸鍚︽湁璇ユā鏉縄D鐨勮褰�
               if (res.subscriptionsSetting && res.subscriptionsSetting.mainSwitch) {
-                const subscribeStatus = res.subscriptionsSetting.mainSwitch;
-                resolve(subscribeStatus)
+                resolve(false); // 濡傛灉鐢ㄦ埛鍚屾剰浜嗚闃咃紝鍒欒繑鍥瀎alse
+                // const subscribeStatus = res.subscriptionsSetting.mainSwitch;
+                // console.log(res.subscriptionsSetting.itemSettings[templateId])
+                // resolve(subscribeStatus)
                 // 'accept' 琛ㄧず鐢ㄦ埛鍚屾剰璁㈤槄锛�'reject' 琛ㄧず鎷掔粷锛�'ban' 琛ㄧず琚皝绂�
                 // const isSubscribed = subscribeStatus === 'accept'
                 // console.log(`妯℃澘ID ${templateId} 璁㈤槄鐘舵�侊細`, subscribeStatus, '鏄惁宸茶闃咃細', isSubscribed)
                 // resolve(isSubscribed)
+                // console.log("鍙戣捣璁㈤槄璇锋眰")
+                // wx.requestSubscribeMessage({
+                //   tmplIds: [templateId],
+                //   success: (res) => {
+                //     console.log('璁㈤槄娑堟伅鐘舵�侊細', res)
+                //     if (res[templateId] === 'accept') {
+                //       console.log('鐢ㄦ埛宸茶闃�')
+                //       resolve(true)
+                //     } else if (res[templateId] === 'reject') {
+                //       console.log('鐢ㄦ埛宸叉嫆缁濊闃�')
+                //       resolve(false)
+                //     } else if (res[templateId] === 'ban') {
+                //       console.log('鐢ㄦ埛宸插皝绂佽闃�')
+                //       resolve(false)
+                //     } else {
+                //       console.log('鏈煡璁㈤槄鐘舵��')
+                //       resolve(false)
+                //     }
+                //   },fail: (err) => {
+                //     console.error('璁㈤槄娑堟伅澶辫触锛�', err)
+                //     resolve(false)
+                //   }
+
+                // }
+                // )
               } else {
                 console.log('鏈壘鍒拌闃呰缃俊鎭紝瑙嗕负鏈闃�')
                 resolve(false)
@@ -112,16 +139,16 @@
   async checkSubscribeStatus() {
     const localStatus = this.checkLocalSubscribeStatus()
     const wechatStatus = await this.checkWechatSubscribeStatus()
-    
+
     // 濡傛灉鏈湴鏄剧ず宸茶闃咃紝浣嗗井淇″畼鏂规樉绀烘湭璁㈤槄锛岄渶瑕侀噸鏂拌闃�
-    const needResubscribe =  wechatStatus
-    
+    const needResubscribe = !localStatus
+
     if (needResubscribe) {
-      console.warn('鏈湴鐘舵�佷笌寰俊瀹樻柟鐘舵�佷笉涓�鑷达紝闇�瑕侀噸鏂拌闃�')
+      // console.warn('鏈湴鐘舵�佷笌寰俊瀹樻柟鐘舵�佷笉涓�鑷达紝闇�瑕侀噸鏂拌闃�')
       // 娓呴櫎鏈湴璁板綍
-      uni.removeStorageSync('hasSubscribedTaskNotify')
+      // uni.removeStorageSync('hasSubscribedTaskNotify')
     }
-    
+
     return {
       local: localStatus,
       wechat: wechatStatus,
@@ -175,7 +202,7 @@
    * @returns {Promise}
    */
   async subscribeTaskNotify(options = {}) {
-    const { 
+    const {
       showConfirm = true,
       onSuccess,
       onReject,
@@ -208,7 +235,7 @@
           success: (res) => {
             console.log('璁㈤槄娑堟伅鎺堟潈缁撴灉锛�', res)
             const templateId = this.wechatConfig.taskNotifyTemplateId
-            
+
             if (res[templateId] === 'accept') {
               // 璁板綍宸茶闃�
               uni.setStorageSync('hasSubscribedTaskNotify', true)
@@ -216,7 +243,7 @@
                 title: '璁㈤槄鎴愬姛',
                 icon: 'success'
               })
-              
+
               if (onSuccess) onSuccess()
               resolve({ success: true, action: 'accept' })
             } else if (res[templateId] === 'reject') {
@@ -224,7 +251,7 @@
                 title: '鎮ㄦ嫆缁濅簡璁㈤槄',
                 icon: 'none'
               })
-              
+
               if (onReject) onReject()
               resolve({ success: false, action: 'reject' })
             } else {
@@ -238,7 +265,7 @@
               title: '璁㈤槄澶辫触',
               icon: 'none'
             })
-            
+
             if (onFail) onFail(err)
             reject(err)
           }
@@ -284,13 +311,13 @@
    */
   async autoSubscribe(options = {}) {
     const { force = false } = options
-    
+
     try {
       // 缁煎悎妫�鏌ヨ闃呯姸鎬侊紙鏈湴 + 寰俊瀹樻柟锛�
       const status = await this.checkSubscribeStatus()
-      
+
       console.log('璁㈤槄鐘舵�佹鏌ョ粨鏋滐細', status)
-      
+
       // 濡傛灉寰俊瀹樻柟鐘舵�佹樉绀哄凡璁㈤槄锛屼笖涓嶅己鍒惰闃�
       if (status.isSubscribed && !force) {
         console.log('鐢ㄦ埛宸茶闃呰繃锛堝井淇″畼鏂圭姸鎬侊級锛岃烦杩囪嚜鍔ㄨ闃�')
@@ -302,8 +329,9 @@
         console.log('妫�娴嬪埌璁㈤槄鐘舵�佸け鏁堬紝瑙﹀彂閲嶆柊璁㈤槄娴佺▼')
       } else {
         console.log('鐢ㄦ埛鏈闃咃紝瑙﹀彂鑷姩璁㈤槄娴佺▼')
+        return { success: false, action: 'not_subscribed', skipped: true, status }
       }
-      
+
       // 鏄剧ず纭寮圭獥骞惰闃� 鐩存帴榛樿璁㈤槄
       const result = await this.subscribeWithConfirm();
       return { ...result, status }

--
Gitblit v1.9.1