shawenguan 2 лет назад
Родитель
Сommit
cd08fcdbd1
2 измененных файлов с 149 добавлено и 68 удалено
  1. 80 68
      Scripts/gandart/gandartComposite.js
  2. 69 0
      Scripts/gandart/gandartHelper.js

+ 80 - 68
Scripts/gandart/gandartComposite.js

@@ -225,22 +225,7 @@ async function tryToExecCompositeTask(taskId, taskInfo = {}) {
             let tmpJsonStr = JSON.stringify(finalGroups, null, 2);
             lk.log(`详情如下:\n${tmpJsonStr}`);
             if (isExecFinalComposite()) {
-                let retOrderLst = [];
-                for (let i = 0; i < finalGroups.length; i++) {
-                    let ret = await confirmCompositeV2(taskInfo.id, taskInfo, finalGroups[i]);
-                    if (ret) {
-                        retOrderLst.push(retOrderLst);
-                    }
-                }
-                if (retOrderLst.length > 0) {
-                    lk.log(`合成成功${retOrderLst.length},订单为${retOrderLst.join(",")}`);
-                    for (let i = 0; i < retOrderLst.length; i++) {
-                        let ret = await checkCompositeResult(retOrderLst[i]);
-                    }
-                    lk.setVal(GandartConstKey.CompositeTaskFinalList, '{}');
-                } else {
-                    lk.log('合成成功0');
-                }
+                await doExecFinalComposite(taskInfo.id, taskInfo, finalGroups);
             }
         }
         return;
@@ -285,34 +270,9 @@ async function tryToExecCompositeTask(taskId, taskInfo = {}) {
                     lk.appendNotifyInfo('⚠️暂无可行的合成组合');
                     return;
                 }
-                let retOrderLst = [];
-                for (let i = 0; i < finalGroups.length; i++) {
-                    let ret = await confirmCompositeV2(taskId, taskInfo, finalGroups[i]);
-                    if (ret) {
-                        retOrderLst.push(retOrderLst);
-                    }
-                }
-                if (retOrderLst.length > 0) {
-                    lk.log(`合成成功${retOrderLst.length},订单为${retOrderLst.join(",")}`);
-                    for (let i = 0; i < retOrderLst.length; i++) {
-                        let ret = await checkCompositeResult(retOrderLst[i]);
-                    }
-                    lk.setVal(GandartConstKey.CompositeTaskFinalList, '{}');
-                } else {
-                    lk.log('合成成功0');
-                }
+                await doExecFinalComposite(taskId, taskInfo, finalGroups);
             } else {
-                let simpleInfo = {
-                    id: taskInfo.id,
-                    compositeLabel: taskInfo.compositeLabel,
-                    compositeTaskName: taskInfo.compositeTaskName,
-                    surplus: taskInfo.surplus,
-                }
-                let finalCacheData = {
-                    taskInfo: simpleInfo,
-                    finalGroups: finalGroups,
-                };
-                lk.setVal(GandartConstKey.CompositeTaskFinalList, JSON.stringify(finalCacheData, null, 2));
+                setCompositeTaskFinalList(taskInfo, finalGroups);
             }
         } else {
             lk.execFail();
@@ -322,6 +282,50 @@ async function tryToExecCompositeTask(taskId, taskInfo = {}) {
     return;
 }
 
+async function doExecFinalComposite(taskId, taskInfo, finalGroups) {
+    let retOrderLst = [];
+    let retWillDelLst = [];
+    for (let i = 0; i < finalGroups.length; i++) {
+        let idx = i;
+        let ret = await confirmCompositeV2(taskId, taskInfo, finalGroups[i]);
+        if (ret) {
+            retWillDelLst.push(idx);
+            retOrderLst.push(ret);
+        }
+    }
+    if (retOrderLst.length > 0) {
+        lk.log(`合成成功${retOrderLst.length}}`);
+        for (let i = 0; i < retOrderLst.length; i++) {
+            const orderNum = retOrderLst[i];
+            if (orderNum && orderNum.indexOf('#') == -1) {
+                await checkCompositeResult(orderNum);
+            }
+        }
+        // 从高的序号删除
+        for (let i = retWillDelLst.length - 1; i >= 0; i--) {
+            let idx = retWillDelLst[i];
+            finalGroups.splice(idx, 1);
+        }
+        setCompositeTaskFinalList(taskInfo, finalGroups);
+    } else {
+        lk.log('合成成功0');
+    }
+}
+
+function setCompositeTaskFinalList(taskInfo, finalGroups) {
+    let simpleInfo = {
+        id: taskInfo.id,
+        compositeLabel: taskInfo.compositeLabel,
+        compositeTaskName: taskInfo.compositeTaskName,
+        surplus: taskInfo.surplus,
+    }
+    let finalCacheData = {
+        taskInfo: simpleInfo,
+        finalGroups: finalGroups,
+    };
+    lk.setVal(GandartConstKey.CompositeTaskFinalList, JSON.stringify(finalCacheData, null, 2));
+}
+
 function getCompositeCountDict() {
     let str = lk.getVal(GandartConstKey.CompositeCountArray, '0#1');
     let arr1 = str.split(',');
@@ -681,31 +685,39 @@ async function confirmCompositeV2(taskId, taskInfo, materialDetailList) {
             };
             let taskName = taskInfo.compositeTaskName || ''; //合成标题
             lk.log(`请求合成任务[${taskName}#${taskId}]:\n${body}`);
-            lk.post(url, async (error, _response, data) => {
-                let retOrder;
-                try {
-                    if (error) {
-                        lk.log(`合成发生错误`);
-                        lk.execFail();
-                        lk.appendNotifyInfo(`❌合成失败,请稍后再试`);
-                    } else {
-                        let ret = JSON.parse(data);
-                        if (ret.success) {
-                            retOrder = ret.obj;
-                            lk.appendNotifyInfo(`🎉合成任务[${taskId}]成功,订单号:${obj}`);
-                        } else {
-                            lk.log(`合成失败,响应:${data}`);
-                        }
-                    }
-                } catch (e) {
-                    lk.log(`合成发生错误`);
-                    lk.logErr(e);
-                    lk.execFail();
-                } finally {
-                    resolve(retOrder);
-                }
-            });
-            resolve();
+            // lk.post(url, async (error, _response, data) => {
+            //     let retOrder;
+            //     try {
+            //         if (error) {
+            //             lk.log(`合成发生错误`);
+            //             lk.execFail();
+            //             lk.appendNotifyInfo(`❌合成失败,请稍后再试`);
+            //         } else {
+            //             let ret = JSON.parse(data);
+            //             if (ret.success) {
+            //                 retOrder = ret.obj;
+            //                 let dismsg = `合成任务[${taskId}]成功,订单号:${obj}`;
+            //                 lk.log(dismsg);
+            //                 lk.appendNotifyInfo(`🎉${dismsg}`);
+            //             } else {
+            //                 let respMsg = ret.msg;
+            //                 if (respMsg && (respMsg.indexOf('合成中') || respMsg.indexOf('已合成'))) {
+            //                     lk.appendNotifyInfo(`🎉${respMsg}`);
+            //                     retOrder = '#HC123456789';
+            //                 } else {
+            //                     lk.log(`合成失败,响应:${data}`);
+            //                 }
+            //             }
+            //         }
+            //     } catch (e) {
+            //         lk.log(`合成发生错误`);
+            //         lk.logErr(e);
+            //         lk.execFail();
+            //     } finally {
+            //         resolve(retOrder);
+            //     }
+            // });
+            resolve('#retOrder');
         } catch (e) {
             lk.log(`合成发生错误`);
             lk.logErr(e);

+ 69 - 0
Scripts/gandart/gandartHelper.js

@@ -21,6 +21,10 @@ const lk = new ToolKit(`光予助手`, `GandartHelper`, `gandartHelper.js`);
 
 const GandartConstKey = {
     Token: 'lkGandartToken',
+    UserData: 'lkGandartUserData',
+    PrivCollectionBrief: 'lkGandartPrivCollectionBrief',
+    PrivCollectionDetail: 'lkGandartPrivCollectionDetail',
+    CollectionName: 'lkGandartCollectionName',
     CollectionName: 'lkGandartCollectionName',
     CastingId: 'lkGandartCastingId',
     LimitPrice: 'lkGandartLimitPrice',
@@ -67,6 +71,12 @@ function checkHanldeRequest() {
             case '/base/auth/verifyCodeLogin':
                 handleVerifyCodeLogin();
                 break;
+            case '/base/user/getUser':
+                handleUserInfo();
+                break
+            case '/base/v2/order/nftorder/selectCollection':
+                handleMyOwnCollection();
+                break;
             case '/base/v2/resaleManage/resale/findAllIsOpenResale':
                 handleFindAllIsOpenResale();
                 break;
@@ -108,6 +118,65 @@ function handleVerifyCodeLogin() {
     lk.msg('');
 }
 
+function handleMyOwnCollection() {
+    try {
+        let data = lk.getResponseBody();
+        if (!data) {
+            return;
+        }
+        lk.log(`获取个人产品简要列表`);
+        data = JSON.parse(data);
+        if (data.rows) {
+            let jsonStr = lk.getVal(GandartConstKey.PrivCollectionBrief, '[]');
+            let cacheLst = JSON.parse(jsonStr);
+            let curPage = data.page;
+            if (curPage == 1) {
+                //全部清理
+                cacheLst = [];
+            } else {
+                for (let i = cacheLst.length - 1; i >= 0; i--) {
+                    if (cacheLst[i].page == curPage) {
+                        cacheLst.splice(i, 1);
+                    }
+                }
+            }
+
+            lk.log('成功获取个人产品简要列表');
+            lk.appendNotifyInfo('🎉成功获取个人产品简要列表');
+        } else {
+            lk.execFail();
+            lk.appendNotifyInfo('❌获取光予个人产品简要列表失败,请稍后再试');
+        }
+    } catch (e) {
+        lk.execFail();
+        lk.appendNotifyInfo('❌获取光予个人产品简要列表失败');
+    }
+    // lk.msg('');
+}
+
+function handleUserInfo() {
+    try {
+        let data = lk.getResponseBody();
+        if (!data) {
+            return;
+        }
+        lk.log(`获取用户信息`);
+        data = JSON.parse(data);
+        if (data.user) {
+            lk.setVal(GandartConstKey.UserData, JSON.stringify(data.user));
+            lk.log('成功获取光予用户信息');
+            lk.appendNotifyInfo('🎉成功获取光予用户信息');
+        } else {
+            lk.execFail();
+            lk.appendNotifyInfo('❌获取光予用户信息失败,请稍后再试');
+        }
+    } catch (e) {
+        lk.execFail();
+        lk.appendNotifyInfo('❌获取光予用户信息失败');
+    }
+    // lk.msg('');
+}
+
 function handleFindAllIsOpenResale() {
     try {
         let data = lk.getResponseBody();