123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- const config = require("../etc/config.json");
- const helper = require("../src/helper");
- const HttpClient = require("../src/HttpClient");
- const redis_help = require('../src/use_redis');
- const mysql = require('mysql2/promise');
- const tools = require("../tools");
- const video_product_controllers = require('../src/data_manager/Controllers/video_product_controllers');
- const dbConfig = config.isDebug?config.debug_mysql:config.release_mysql
- const taskdbConfig = config.isDebug?config.debug_task_mysql:config.release_task_mysql
- const CMD = {}
- let page_index = 1;
- async function processTask(){
- let right_status = true
- let connection = null
- try{
- connection = await mysql.createConnection({
- ...dbConfig,
- multipleStatements: true
- });
- let postData = {
- "cmd":"video_product",
- "fun":"search_book_data",
- "data":{
- "product_id":"",
- "product_name":"",
- "tg_platform_id":config.platform_qimao,
- "is_auto":"",
- "page_size":500,
- "page_number":page_index,
- "oce_material_id":"",
- "genre":"",
- "is_store":"",
- "alias_name":"",
- "stat_cost":"",
- "min_book_word":"",
- "max_book_word":"",
- "min_totalChapterNum":"",
- "max_totalChapterNum":""
- }
- };
-
- console.log("发送请求数据:", postData);
- let client = tools.getOneNewClinet()
- let response = await client.post('http://127.0.0.1:9100/tg/back/api', postData, {
- headers: {
- 'Content-Type': 'application/json',
- 'X-Request-Type': 'API', // 标记 API 请求
- }
- });
- response = response.data
- // 检查响应数据结构
- if (!response || !response.data || !Array.isArray(response.data)) {
- console.log("响应数据无效或格式错误");
- throw 0;
- }
- // 检查是否有数据
- if (response.data.length <= 0) {
- console.log("没有更多数据");
- throw 0;
- }
- console.log("response:",response)
- let total = response.total;
- let product_list = response.data;
- for (let index = 0; index < product_list.length; index++) {
- const element = product_list[index];
- const [rows] = await connection.execute(
- `SELECT * FROM qm_iap_lib WHERE book_id = ${element.product_id} AND is_have_iaa = 1 LIMIT 1`
- );
- if(rows.length<=0){
- }else{
- let qm_iap_book_info = rows[0]
- let iaa_book_info = await CMD.getQMMFVideoProduct(qm_iap_book_info.iaa_book_id)
- if(iaa_book_info==null){
- await CMD.addQMMFVideoProduct(qm_iap_book_info.iaa_book_id,element.product_id)
- }
- }
- }
- }catch(e){
- if(e==0){
- right_status = false
- }
- console.error("processTask error:",e)
- } finally{
- if(right_status){
- page_index++;
- global.setTimeout(processTask, 1000);
- }
- if(connection!=null){
- connection.end()
- }
- }
- }
- //插入
- CMD.addQMMFVideoProduct = async function(product_id,product_parent_id){
- let connection = await mysql.createConnection({
- ...taskdbConfig,
- multipleStatements: true
- });
- let qm_book_data = await require('../src/api/qm_mf/qm_mf_search_book').search_id_new(product_id)
- console.log("qm_book_data:",qm_book_data,product_id,product_parent_id)
- if(qm_book_data!=null){
- await connection.execute(
- `INSERT INTO video_product (product_name,product_id,book_platform,genre,words,product_parent_id) VALUES ("${qm_book_data.book_name}",${product_id},${config.platform_qmmf},${qm_book_data.genre},"${qm_book_data.words}",${product_parent_id})`
- );
- }
- await connection.end();
- }
- CMD.getQMMFVideoProduct = async function(product_id){
- let connection = await mysql.createConnection({
- ...taskdbConfig,
- multipleStatements: true
- });
- const [rows] = await connection.execute(
- `SELECT * FROM video_product WHERE product_id = ${product_id} AND book_platform = ${config.platform_qmmf} LIMIT 1`
- );
- await connection.end();
-
- if(rows.length<=0){
- return null
- }
- return rows[0]
- }
- CMD.init = async function(){
- redis_help.connect((results)=>{
- if(results){
- processTask();
- }
- })
- }
- CMD.init()
|