Browse Source

优化支付功能逻辑

xiaohaizhao 1 year ago
parent
commit
aa8377c678

+ 1 - 1
app.js

@@ -35,7 +35,7 @@ App({
     this.globalData.SocketTask.onMessage(function (res) {
       that.globalData.socket.callback(res)
       let data = JSON.parse(res.data);
-      if (data.message.type == 'pay') update(that);
+      if (data.message.type == 'pay') update();
     })
     this.globalData.SocketTask.onError(function (res) {
       that.globalData.socketEstablish = false;

+ 1 - 0
pages/tabbar/home/index.js

@@ -133,6 +133,7 @@ Page({
             });
             wx.setStorageSync('authList', authList)
             wx.setStorageSync('gridList', gridList)
+            return gridList
         } else {
             setTimeout(this.refreshData, 10);
         }

+ 57 - 8
pages/tabbar/smartStore/modules/viewPage.js

@@ -79,16 +79,30 @@ Component({
                 fileSelected = this.data.fileSelected;
             const downloadTask = wx.downloadFile({
                 url: fileSelected.url,
-                filePath: wx.env.USER_DATA_PATH + '/' + new Date().valueOf() + '.mp4',
-                timeout: 600000,
+                // filePath: wx.env.USER_DATA_PATH + '/' + new Date().valueOf() + '.mp4',
+                timeout: 6000000,
                 success(res) {
                     console.log("下载", res)
-                    that.saveVideo(res.filePath)
+                    // that.saveVideo(res.filePath)
+                    // 下载完成后转发
+                    wx.shareVideoMessage({
+                        videoPath: res.tempFilePath,
+                        fail(err) {
+                            console.log("转发", err)
+                            wx.showToast({
+                                title: `转发失败:${err.errMsg}`,
+                                icon: "none"
+                            })
+                        }
+                    })
                 },
-                fail({
-                    errMsg
-                }) {
-                    if (errMsg == 'downloadFile:fail exceed max file size') wx.showToast({
+                fail(err) {
+                    console.log("下载失败", err)
+                    wx.showToast({
+                        title: `下载失败:${err.errMsg}`,
+                        icon: "none"
+                    })
+                    if (err.errMsg == 'downloadFile:fail exceed max file size') wx.showToast({
                         title: '视频体积超大,无法保存!请尝试打开视频长按保存下载',
                         icon: "none"
                     })
@@ -96,12 +110,41 @@ Component({
             })
             downloadTask.onProgressUpdate((res) => {
                 wx.showLoading({
-                    title: `保存进度` + res.progress + `%`,
+                    title: res.progress + `%`,
                     mask: true
                 })
                 if (res.progress == 100) wx.hideLoading()
             })
             that.closeShow();
+
+            /*             const downloadTask = wx.downloadFile({
+                            url: fileSelected.url,
+                            filePath: wx.env.USER_DATA_PATH + '/' + new Date().valueOf() + '.mp4',
+                            timeout: 6000000,
+                            success(res) {
+                                console.log("下载", res)
+                                that.saveVideo(res.filePath)
+                            },
+                            fail(err) {
+                                console.log("下载失败", err)
+                                wx.showModal({
+                                    title: '提示',
+                                    content: `下载失败:${err}`,
+                                })
+                                if (err.errMsg == 'downloadFile:fail exceed max file size') wx.showToast({
+                                    title: '视频体积超大,无法保存!请尝试打开视频长按保存下载',
+                                    icon: "none"
+                                })
+                            }
+                        })
+                        downloadTask.onProgressUpdate((res) => {
+                            wx.showLoading({
+                                title: `保存进度` + res.progress + `%`,
+                                mask: true
+                            })
+                            if (res.progress == 100) wx.hideLoading()
+                        })
+                        that.closeShow(); */
         },
         /* 文件下载 */
         dowmLoad() {
@@ -157,6 +200,11 @@ Component({
                                 })
                             }
                         })
+                    } else {
+                        wx.showToast({
+                            title: err,
+                            icon: "none"
+                        })
                     }
                 }
             })
@@ -176,6 +224,7 @@ Component({
                 "method": (this.data.tabActiveTitle == '列表') ? "selectList" : "selectMyList",
                 content
             }).then(res => {
+                console.log("文件列表", res)
                 this.selectComponent('#ListBox').RefreshToComplete();
                 if (res.msg != '成功') return wx.showToast({
                     title: res.msg,

+ 1 - 1
pages/tabbar/smartStore/modules/viewPage.wxml

@@ -26,7 +26,7 @@
         </block>
     </navigator>
     <navigator wx:if="{{fileSelected.postfix=='mp4'}}" bindtap="mySaveVideo" url='#' class="option">
-        <text class="iconfont icon-a-tonggaoshujuxiazailiang icon" />保存到相册
+        <text class="iconfont icon-a-tuiguangsucaifenxiangliang icon" />转发给好友
     </navigator>
     <navigator wx:if="{{fileSelected.postfix!='folder'}}" bindtap="dowmLoad" url='#' class="option">
         <text class="iconfont icon-a-tonggaoshujuxiazailiang icon" />复制下载地址(请在电脑浏览器中打开)

+ 24 - 13
pages/teams/addOrder.js

@@ -168,18 +168,30 @@ Page({
                 return;
             };
             pageTotal = res.pageTotal;
-
-            this.setData({
-                userList: res.pageNumber == 1 ? res.data : this.data.userList.concat(res.data)
-            })
-            pageNumber = res.pageNumber + 1;
-            this.setUsers(this.data.opUsers.filter(id => this.data.userList.some(v => id == v.userid)));
-            // this.changeOrder();
+            if (res.data.some(v => v.isleader == 1)) {
+                this.setData({
+                    userList: res.pageNumber == 1 ? res.data : this.data.userList.concat(res.data)
+                })
+                pageNumber = res.pageNumber + 1;
+                this.setUsers(this.data.opUsers.filter(id => this.data.userList.some(v => id == v.userid)));
+            } else {
+                wx.showModal({
+                    title: '提示',
+                    content: "您的团队缺少主账号无法使用,请联系客服!",
+                    showCancel: false,
+                    complete: (res) => {
+                        if (res.confirm) {
+                            wx.navigateBack()
+                        }
+                    }
+                })
+            }
         })
     },
     setUsers(users = []) {
         let list = this.data.userList,
-            idname = this.data.sys_payincidence == 1 ? 'userid' : 'sa_agentsid'
+            idname = this.data.sys_payincidence == 1 ? 'userid' : 'sa_agentsid',
+            useDiscount = 0;
         list.forEach(v => {
             let date = v.enddate[this.data.sys_site_systempartitionid];
             if (v.userid == wx.getStorageSync('userMsg').userid || v.isleader == 1) {
@@ -187,14 +199,13 @@ Page({
                     // if (formatTime(new Date(), '-').split(" ")[0] >= date) users.push(v[idname] + '');
                 } else {
                     if (!users.some(v => v == v[idname])) users.push(v[idname] + '');
-                    if (v.isleader == 0) this.setData({
-                        useDiscount: this.data.useDiscount += 1
-                    })
                 }
             }
+            if (users.some(id => id == v.userid) && v.isleader == 0) useDiscount += 1
         });
         this.setData({
-            users
+            users,
+            useDiscount
         });
         this.changeOrder();
     },
@@ -244,7 +255,7 @@ Page({
             if (renew) {
                 wx.showModal({
                     title: '提示',
-                    content: `${renew}付费还未到期,是否继续付费`,
+                    content: `${renew}还未到期,是否继续付费`,
                     confirmText: "继续付费",
                     complete: (res) => {
                         if (res.cancel) resolve(false)

+ 6 - 5
pages/teams/addUsers.js

@@ -65,11 +65,12 @@ Page({
             "content": {},
         }).then(res => {
             console.log("新建订单", res)
-            if (res.msg != '成功') return wx.showToast({
-                title: res.msg,
-                icon: "none",
-                mask: true
-            });
+            if (res.msg != '成功') return wx.showModal({
+                title: '提示',
+                content: res.msg,
+                showCancel: false,
+            })
+
             wx.navigateTo({
                 url: './addOrder' + '?sys_payorderid=' + res.data.sys_payorderid,
             })

+ 5 - 5
pages/teams/index.js

@@ -142,11 +142,11 @@ Page({
                 "content": {},
             }).then(res => {
                 console.log("新建订单", res)
-                if (res.msg != '成功') return wx.showToast({
-                    title: res.msg,
-                    icon: "none",
-                    mask: true
-                });
+                if (res.msg != '成功') return wx.showModal({
+                    title: '提示',
+                    content: res.msg,
+                    showCancel: false,
+                })
                 wx.navigateTo({
                     url: url + '?sys_payorderid=' + res.data.sys_payorderid
                 })

+ 61 - 43
utils/pay.js

@@ -2,26 +2,41 @@
 const evidence = item => {
     const isLeader = wx.getStorageSync('isLeader');
     //应用是否开通,开通直接跳转
-    if (item.isneedpay) return wx.showModal({
-        title: '提示',
-        content: `当前模块未付费,是否付费使用?`,
-        confirmText: "去付费",
-        cancelText: isLeader ? "下次再说" : "提醒老板",
-        complete: (res) => {
-            if (res.confirm) createOrder();
-            if (res.cancel && !isLeader) sendMessage();
-        }
-    })
-    if (item.label == "营销物料") {
-        wx.switchTab({
-            url: item.path
-        });
+    if (item.isneedpay) {
+        update(false).then(res => {
+            let p = res.find(v => v.label == item.label);
+            if (p && !p.isneedpay) {
+                toPage()
+            } else {
+                wx.showModal({
+                    title: '提示',
+                    content: `当前模块未付费,是否付费使用?`,
+                    confirmText: "去付费",
+                    cancelText: isLeader ? "下次再说" : "提醒老板",
+                    complete: (res) => {
+                        if (res.confirm) createOrder();
+                        if (res.cancel && !isLeader) sendMessage();
+                    }
+                })
+            }
+        })
     } else {
-        wx.navigateTo({
-            url: item.path
-        });
+        toPage()
+    }
+
+    function toPage() {
+        if (item.label == "营销物料") {
+            wx.switchTab({
+                url: item.path
+            });
+        } else {
+            wx.navigateTo({
+                url: item.path
+            });
+        }
     }
 };
+
 //创建新的订单
 const createOrder = (query = "") => {
     getApp().globalData.http.basic({
@@ -30,11 +45,11 @@ const createOrder = (query = "") => {
         "content": {},
     }).then(res => {
         console.log("新建订单", res)
-        if (res.msg != '成功') return wx.showToast({
-            title: res.msg,
-            icon: "none",
-            mask: true
-        });
+        if (res.msg != '成功') return wx.showModal({
+            title: '提示',
+            content: res.msg,
+            showCancel: false,
+        })
         wx.navigateTo({
             url: '/pages/teams/addOrder?sys_payorderid=' + res.data.sys_payorderid + query
         })
@@ -113,27 +128,30 @@ const sendMessage = (sys_payorderid = '') => getApp().globalData.http.basic({
     icon: "none"
 }));
 //更新付费权限
-const update = that => {
-    that.globalData.http.basic({
-        "classname": "system.payorder.payorder",
-        "method": "query_userauth",
-        content: {
-            nocache: true
-        }
-    }).then(res => {
-        console.log('更新付费信息', res)
-        wx.setStorageSync('userauth', res.data);
-        wx.showToast({
-            title: '应用付费信息已更新',
-            icon: "none"
-        })
-        let page = getCurrentPages().find(v => v.__route__ == 'pages/tabbar/home/index')
-        if (page) {
-            page.refreshData();
-        } else {
-            that.globalData.refreshData();
-        }
-    });
+const update = (total = true) => {
+    return new Promise((resolve) => {
+        getApp().globalData.http.basic({
+            "classname": "system.payorder.payorder",
+            "method": "query_userauth",
+            content: {
+                nocache: true
+            }
+        }).then(res => {
+            console.log('更新付费信息', res)
+            if (res.msg != '成功') return resolve(false)
+            wx.setStorageSync('userauth', res.data);
+            if (total) wx.showToast({
+                title: '应用付费信息已更新',
+                icon: "none"
+            })
+            try {
+                let page = getCurrentPages().find(v => v.__route__ == 'pages/tabbar/home/index')
+                resolve(page ? page.refreshData() : getApp().globalData.refreshData())
+            } catch (error) {
+                resolve([])
+            }
+        });
+    })
 }
 export {
     evidence,