904118851 5 meses atrás
pai
commit
6d9704736b

+ 113 - 1
0_RECEIVE_FACTORY/RECEIVE_FACTORY.js

@@ -97,7 +97,6 @@ CMD.test_fq_book_sid_tt = async function(book_id,sid_tt){
         // return {"error_book_id":book_id,"error_sid_tt":sid_tt}
         return null
     }
-
 }
 
 CMD.test_fq_mf_book_sid_tt = async function(book_id,sid_tt){
@@ -389,6 +388,105 @@ CMD.get_zh_callback_template = async function(res) {
  }
 
 
+ CMD.hy_iapPassBackTemplate = async function(res,accountId) {
+    let timestamp = helper.getCurrentUnixTimestamp()
+    let sign = helper.generateSign({
+        "pid":config.heiyan_config.pid,
+        "timestamp":timestamp,
+        "sign":"",
+        "accountId":accountId
+    },config.heiyan_config.key)
+    var url = config.heiyan_config.iapPassBackTemplate
+    var base_params = `/?sign=${sign}&pid=${config.heiyan_config.pid}&timestamp=${timestamp}`
+    var other_params = `&accountId=${accountId}`
+    url = `${url}${base_params}${other_params}`
+    // console.log("url:",url)
+    let response = await axios.get(url)
+    let data  = response.data
+    console.log("response:",response)
+    if(data.code==1){
+        res.writeHead(200, {'Content-Type': 'application/json'});
+        res.end(JSON.stringify({ message:"成功!",data:data.data,code:10000}));
+    }else{
+        res.writeHead(200, {'Content-Type': 'application/json'});
+        res.end(JSON.stringify({ message:"失败",data:null,code:10001}));
+    }
+ }
+
+
+ CMD.hy_iaaPassBackTemplate = async function(res,accountId) {
+    let timestamp = helper.getCurrentUnixTimestamp()
+    let sign = helper.generateSign({
+        "pid":config.heiyan_config.pid,
+        "timestamp":timestamp,
+        "sign":"",
+        "accountId":accountId
+    },config.heiyan_config.key)
+    var url = config.heiyan_config.iaaPassBackTemplate
+    var base_params = `/?sign=${sign}&pid=${config.heiyan_config.pid}&timestamp=${timestamp}`
+    var other_params = `&accountId=${accountId}`
+    url = `${url}${base_params}${other_params}`
+    // console.log("url:",url)
+    let response = await axios.get(url)
+    let data  = response.data
+    console.log("response:",response)
+    if(data.code==1){
+        res.writeHead(200, {'Content-Type': 'application/json'});
+        res.end(JSON.stringify({ message:"成功!",data:data.data,code:10000}));
+    }else{
+        res.writeHead(200, {'Content-Type': 'application/json'});
+        res.end(JSON.stringify({ message:"失败",data:null,code:10001}));
+    }
+ }
+
+CMD.hy_topUpTemplate = async function(res,accountId) {
+    let timestamp = helper.getCurrentUnixTimestamp()
+    let sign = helper.generateSign({
+        "pid":config.heiyan_config.pid,
+        "timestamp":timestamp,
+        "sign":"",
+        "accountId":accountId
+    },config.heiyan_config.key)
+    var url = config.heiyan_config.topUpTemplate
+    var base_params = `/?sign=${sign}&pid=${config.heiyan_config.pid}&timestamp=${timestamp}`
+    var other_params = `&accountId=${accountId}`
+    url = `${url}${base_params}${other_params}`
+    // console.log("url:",url)
+    let response = await axios.get(url)
+    let data  = response.data
+    console.log("response:",response)
+    if(data.code==1){
+        res.writeHead(200, {'Content-Type': 'application/json'});
+        res.end(JSON.stringify({ message:"成功!",data:data.data,code:10000}));
+    }else{
+        res.writeHead(200, {'Content-Type': 'application/json'});
+        res.end(JSON.stringify({ message:"失败",data:null,code:10001}));
+    }
+}
+
+ CMD.hy_accountMapping = async function(res) {
+    let timestamp = helper.getCurrentUnixTimestamp()
+    let sign = helper.generateSign({
+        "pid":config.heiyan_config.pid,
+        "timestamp":timestamp,
+        "sign":""
+    },config.heiyan_config.key)
+    var url = config.heiyan_config.accountMapping
+    var base_params = `/?sign=${sign}&pid=${config.heiyan_config.pid}&timestamp=${timestamp}`
+    url = `${url}${base_params}`
+    // console.log("url:",url)
+    let response = await axios.get(url)
+    let data  = response.data
+    console.log("response:",response)
+    if(data.code==1){
+        res.writeHead(200, {'Content-Type': 'application/json'});
+        res.end(JSON.stringify({ message:"成功!",data:data.data,code:10000}));
+    }else{
+        res.writeHead(200, {'Content-Type': 'application/json'});
+        res.end(JSON.stringify({ message:"失败",data:null,code:10001}));
+    }
+ }
+
 var server = http.createServer(function(req,res){
 
     res.setHeader('Access-Control-Allow-Origin', '*'); // 允许所有域的请求,注意:在生产环境中应该限制为特定的域
@@ -500,10 +598,24 @@ var server = http.createServer(function(req,res){
                         CMD.get_zh_recharge_template(res,app_type) 
                     }else if(jsonData['fun']=="get_zh_callback_template"&&jsonData['cmd']=="zh_link"){
                         CMD.get_zh_callback_template(res) 
+                    } else if(jsonData['fun']=="hy_accountMapping"&&jsonData['cmd']=="hy_link"){
+                        CMD.hy_accountMapping(res) 
+                    } else if(jsonData['fun']=="hy_iaaPassBackTemplate"&&jsonData['cmd']=="hy_link"){
+                        let accountId = jsonData['data']['accountId']
+                        CMD.hy_iaaPassBackTemplate(res,accountId) 
+                    }else if(jsonData['fun']=="hy_iapPassBackTemplate"&&jsonData['cmd']=="hy_link"){
+                        let accountId = jsonData['data']['accountId']
+                        CMD.hy_iapPassBackTemplate(res,accountId) 
+                    }else if(jsonData['fun']=="hy_topUpTemplate"&&jsonData['cmd']=="hy_link"){
+                        let accountId = jsonData['data']['accountId']
+                        CMD.hy_topUpTemplate(res,accountId) 
                     }else{
                         res.writeHead(200, {'Content-Type': 'application/json'});
                         res.end(JSON.stringify({ message: 'fun 错误',code:100}));
                     }
+                    
+                   
+                    
 
                 } catch (error) {
                     // 处理解析错误

+ 1 - 1
5_CREATE_LINK_FACTORY/hy_create_link_factory.js

@@ -158,7 +158,7 @@ async function processCreateLinkTask(){
     try{
         if(hy_create_link_task_list.length>0){
             let hy_create_link_task = hy_create_link_task_list.pop()
-            require('./hy_create_link').runTask(hy_create_link_task.n_data
+            require('./hy_create_link_new').runTask(hy_create_link_task.n_data
                 ,hy_create_link_task.main_info,
                 hy_create_link_task.PlatformInfo,finish_call_back)
         }

+ 103 - 0
5_CREATE_LINK_FACTORY/hy_create_link_new.js

@@ -0,0 +1,103 @@
+//执行一个创建番茄链接任务
+const axios = require('axios');
+const helper = require('../src/helper');
+const config = require('../etc/config.json')
+const CMD = {}
+
+CMD.runTask = async function(data,main_info,PlatformInfo,call_back){
+
+    try {
+        let  tg_link_config = JSON.parse(main_info.tg_link_config)
+        let kadian_id = tg_link_config['kadian_id']
+        let chongzhi_id = tg_link_config['chongzhi_id']
+        let huichuan_id = tg_link_config['huichuan_id']
+        let chongzhi_list = JSON.parse(PlatformInfo.chongzhi)
+        let huichuan_list = JSON.parse(PlatformInfo.huichuan)
+        let kadian_list = JSON.parse(PlatformInfo.kadian)
+        let kadian_name = null
+        let tg_config = {
+          chongzhi_key:'',
+          huichuan_key:'',
+          kadian_key:''
+        }
+        for (let index = 0; index < chongzhi_list.length; index++) {
+          const cz_obj = chongzhi_list[index];
+          if(cz_obj.id==chongzhi_id){
+            chongzhi_name = cz_obj.name
+            tg_config.chongzhi_key = cz_obj.value
+            break
+          }
+        }
+      
+      
+        for (let index = 0; index < huichuan_list.length; index++) {
+          const hc_obj = huichuan_list[index];
+          if(hc_obj.id==huichuan_id){
+            huichuan_name = hc_obj.name
+            tg_config.huichuan_key = hc_obj.value
+            break
+          }
+        }
+      
+        for (let index = 0; index < kadian_list.length; index++) {
+          const kd_obj = kadian_list[index];
+          if(kd_obj.id==kadian_id){
+            kadian_name = kd_obj.name
+            break
+          }
+        }
+        tg_config.kadian_key = kadian_name
+        let name  =   `${data.product_name}_${main_info.id}`
+        let accountId = main_info.hy_accountId
+        let linkType = 1
+        let bookId = data.product_id
+        let mediaChannel = 1
+        let group = main_info.group_id
+        let site = PlatformInfo.mini_program_platform_id==config.wx?"7": "5" 
+        let paidPoint = tg_config.kadian_key; //卡点
+        let timestamp = helper.getCurrentUnixTimestamp()
+        let passBackTemplateId = tg_config.huichuan_key
+        let topUpTemplateId = tg_config.chongzhi_key
+        let sign = helper.generateSign({
+            "pid":config.heiyan_config.pid,
+            "timestamp":timestamp,
+            "sign":"",
+            "name":name,
+            "accountId":accountId,
+            "linkType":linkType,
+            "bookId":bookId,
+            "mediaChannel":mediaChannel,
+            "group":group,
+            "site":site,
+            "topUpTemplateId":topUpTemplateId,
+            "passBackTemplateId": passBackTemplateId,
+            "paidPoint":paidPoint,
+        },config.heiyan_config.key)
+        var url = config.heiyan_config.createLink
+        var base_params = `/?sign=${sign}&pid=${config.heiyan_config.pid}&timestamp=${timestamp}`
+        var other_params = `&accountId=${accountId}&name=${name}&linkType=${linkType}&bookId=${bookId}&mediaChannel=${mediaChannel}&group=${group}&site=${site}&topUpTemplateId=${topUpTemplateId}&passBackTemplateId=${passBackTemplateId}&paidPoint=${paidPoint}`
+        url = `${url}${base_params}${other_params}`
+        // console.log("url:",url)
+        let response = await axios.post(url)
+        let link_data  = response.data
+        console.log("response:",response)
+        if(link_data.code==1){
+            let params = link_data.data.fullPath.split('?')
+            let start_page = params[0]
+            let start_param = params[1]
+            const linkId = start_param.match(/linkId=([^&]*)/)[1];
+            data.promotion_id = linkId
+            data.start_page = start_page
+            data.start_param = start_param
+            call_back(data) 
+        }else{
+            call_back(data,link_data)
+        }
+    } catch (error) {
+        call_back(data,error)
+        console.error('There was an error!', error);
+    }
+
+}
+
+module.exports = CMD;

+ 1 - 1
5_CREATE_LINK_FACTORY/hymf_create_link_factory.js

@@ -132,7 +132,7 @@ async function processTask(){
 
         if(hy_create_link_task_list.length>0){
             let hy_create_link_task = hy_create_link_task_list.pop()
-            require('./hymf_create_link').runTask(hy_create_link_task.n_data
+            require('./hymf_create_link_new').runTask(hy_create_link_task.n_data
                 ,hy_create_link_task.main_info,
                 hy_create_link_task.PlatformInfo,finish_call_back)
         }

+ 102 - 0
5_CREATE_LINK_FACTORY/hymf_create_link_new.js

@@ -0,0 +1,102 @@
+//执行一个创建番茄链接任务
+const axios = require('axios');
+const helper = require('../src/helper');
+const config = require('../etc/config.json')
+const CMD = {}
+
+CMD.runTask = async function(data,main_info,PlatformInfo,call_back){
+
+    try {
+        console.log("main_info:",main_info)
+        let  tg_link_config = JSON.parse(main_info.tg_link_config)
+        let kadian_id = tg_link_config['kadian_id']
+        let chongzhi_id = tg_link_config['chongzhi_id']
+        let huichuan_id = tg_link_config['huichuan_id']
+        // let chongzhi_list = JSON.parse(PlatformInfo.chongzhi)
+        let huichuan_list = JSON.parse(PlatformInfo.huichuan)
+        let kadian_list = JSON.parse(PlatformInfo.kadian)
+        let kadian_name = null
+        let tg_config = {
+          chongzhi_key:'',
+          huichuan_key:'',
+          kadian_key:''
+        }
+        // for (let index = 0; index < chongzhi_list.length; index++) {
+        //   const cz_obj = chongzhi_list[index];
+        //   if(cz_obj.id==chongzhi_id){
+        //     chongzhi_name = cz_obj.name
+        //     tg_config.chongzhi_key = cz_obj.value
+        //     break
+        //   }
+        // }
+      
+      
+        for (let index = 0; index < huichuan_list.length; index++) {
+          const hc_obj = huichuan_list[index];
+          if(hc_obj.id==huichuan_id){
+            huichuan_name = hc_obj.name
+            tg_config.huichuan_key = hc_obj.value
+            break
+          }
+        }
+      
+        for (let index = 0; index < kadian_list.length; index++) {
+          const kd_obj = kadian_list[index];
+          if(kd_obj.id==kadian_id){
+            kadian_name = kd_obj.name
+            break
+          }
+        }
+        tg_config.kadian_key = kadian_name
+        let name  =   `${data.product_name}_${main_info.id}`
+        let accountId = main_info.hy_accountId
+        let linkType = 2
+        let bookId = data.product_id
+        let mediaChannel = 1
+        let group = main_info.group_id
+        let site = PlatformInfo.mini_program_platform_id==config.wx?"7": "5" 
+        let paidPoint = tg_config.kadian_key; //卡点
+        let adPassbackTemplateId = tg_config.huichuan_key; //回传模板
+        let timestamp = helper.getCurrentUnixTimestamp()
+        let sign = helper.generateSign({
+            "pid":config.heiyan_config.pid,
+            "timestamp":timestamp,
+            "sign":"",
+            "name":name,
+            "accountId":accountId,
+            "linkType":linkType,
+            "bookId":bookId,
+            "mediaChannel":mediaChannel,
+            "group":group,
+            "site":site,
+            "adPassbackTemplateId":adPassbackTemplateId,
+            "paidPoint":paidPoint,
+        },config.heiyan_config.key)
+        var url = config.heiyan_config.createLink
+        var base_params = `/?sign=${sign}&pid=${config.heiyan_config.pid}&timestamp=${timestamp}`
+        var other_params = `&accountId=${accountId}&name=${name}&linkType=${linkType}&bookId=${bookId}&mediaChannel=${mediaChannel}&group=${group}&site=${site}&adPassbackTemplateId=${adPassbackTemplateId}&paidPoint=${paidPoint}`
+        url = `${url}${base_params}${other_params}`
+        console.log("url:",url)
+        let response = await axios.post(url)
+        let link_data  = response.data
+        console.log("response:",response)
+        if(link_data.code==1){
+            let params = link_data.data.fullPath.split('?')
+            let start_page = params[0]
+            let start_param = params[1]
+            const linkId = start_param.match(/linkId=([^&]*)/)[1];
+            data.promotion_id = linkId
+            data.start_page = start_page
+            data.start_param = start_param
+            call_back(data) 
+        }else{
+            call_back(data,link_data)
+        }
+    } catch (error) {
+        call_back(data,error)
+        console.error('There was an error!', error);
+    }
+
+}
+
+module.exports = CMD;

+ 18 - 2
7_CHECK_AND_CREATE_URL_FACTORY/CHECK_AND_CREATE_URL_FACTORY.js

@@ -37,9 +37,27 @@ async function processTask() {
        let result = await video_applet_product_controllers.getAppletProductByStatusAndLimit({status:0,wait_status:1},100)
        if(result.success){
             let video_applet_product_data_list = result.data
+            
+ 
             if(video_applet_product_data_list.length<=0){
                 throw "no data!"
             }
+
+
+            let id_list = []
+
+            for (let index = 0; index < video_applet_product_data_list.length; index++) {
+                const element = video_applet_product_data_list[index];
+                id_list.push(element.id)
+            }
+            const placeholders = id_list.join(',');
+            sql_task_help.update(`UPDATE video_applet_product SET status = ?, wait_status = ?  , check_url = ?   WHERE  id IN  (${placeholders})`, 
+                [1,2,"https://n8-adv-ocean.s6kuwan.com"],
+                ()=>{
+                    // console.log("update_video_applet_product:更新成功!")
+                })
+            return
+
             let MainConfig = await redis_help.getKeyValue("MainConfig")
             MainConfig = JSON.parse(MainConfig)
 
@@ -121,8 +139,6 @@ async function processTask() {
                 }else{
                        throw `主体是空的 !:${main_id}` 
                 }
-    
-
             }
 
        }else{

+ 6 - 1
etc/config.json

@@ -23,7 +23,12 @@
         "back_host": "https://ms.zhangwenpindu.cn",
         "pid":"1809545659599544322",
         "key":"BTRQ3FZQT2JWIQ73W82JM0FGGEHSKCKD",
-        "copyBooks":"https://par.zhangwenpindu.cn/spider/partner/copybooks"
+        "copyBooks":"https://par.zhangwenpindu.cn/spider/partner/copybooks",
+        "topUpTemplate":"https://par.zhangwenpindu.cn/spider/distribute/topUpTemplate",
+        "iapPassBackTemplate":"https://par.zhangwenpindu.cn/spider/distribute/iapPassBackTemplate",
+        "iaaPassBackTemplate":"https://par.zhangwenpindu.cn/spider/distribute/iaaPassBackTemplate",
+        "accountMapping":"https://par.zhangwenpindu.cn/spider/distribute/accountMapping",
+        "createLink":"https://par.zhangwenpindu.cn/spider/distribute/createLink"
     },
     "fanqie_config": {
         "callbacklist_host": "https://www.changdunovel.com/novelsale/openapi/ad_callback_config/config_list/v1/",

+ 5 - 4
logs/combined.log

@@ -1,4 +1,5 @@
-2025-03-08T08:35:19: 
-2025-03-08T08:35:19: > heiyan@1.0.0 start
-2025-03-08T08:35:19: > node tg_factory_main.js
-2025-03-08T08:35:19: 
+2025-03-13T11:57:05: 
+2025-03-13T11:57:05: > heiyan@1.0.0 start
+2025-03-13T11:57:05: > node tg_factory_main.js
+2025-03-13T11:57:05: 
+2025-03-13T11:57:10: Connected to Redis

+ 5 - 4
logs/out.log

@@ -1,4 +1,5 @@
-2025-03-08T08:35:19: 
-2025-03-08T08:35:19: > heiyan@1.0.0 start
-2025-03-08T08:35:19: > node tg_factory_main.js
-2025-03-08T08:35:19: 
+2025-03-13T11:57:05: 
+2025-03-13T11:57:05: > heiyan@1.0.0 start
+2025-03-13T11:57:05: > node tg_factory_main.js
+2025-03-13T11:57:05: 
+2025-03-13T11:57:10: Connected to Redis

+ 2 - 2
pm2createlink.json

@@ -106,8 +106,8 @@
             "args": ["--type=data"],
             "cwd": "/home/tg_factory",
             "log_date_format": "YYYY-MM-DD HH:mm:ss",
-            "error_file": "./logs/create_link/hymf_create_link_factory.log",
-            "out_file": "./logs/create_link/hymf_create_link_factory.log",
+            "error_file": "./logs/create_link/hymf_create_link_factory_error.log",
+            "out_file": "./logs/create_link/hymf_create_link_factory_out.log",
             "merge_logs": true,
             "exec_mode": "fork",
             "autorestart": true

BIN
src/api/hy/qr.gif


BIN
src/api/hy/qr_resized.gif