//同步黑岩免费的发布时间 const config = require("../etc/config.json"); const mysql = require('mysql2/promise'); const taskdbConfig = config.isDebug?config.debug_task_mysql:config.release_task_mysql const redis_help = require('../src/use_redis'); const hy_search_book = require('../src/api/hy/hy_search_book'); const helper = require("../src/helper"); const video_product_controllers = require('../src/data_manager/Controllers/video_product_controllers'); const filter_data_controllers = require('../src/data_manager/Controllers/filter_data_controllers'); const tools = require("../tools"); const CMD = {} async function processTask(){ let right_status = true let connection = null try{ connection = await mysql.createConnection({ ...taskdbConfig, multipleStatements: true }); //先获取100本没有发布时间的黑岩书籍 let sql = `SELECT * FROM video_product WHERE book_platform = ${config.platform_heiyanmf} AND publish_time IS NULL LIMIT 500` console.log("sql:",sql) const [rows] = await connection.execute( sql ); if(rows.length<=0){ throw 0 } for (let index = 0; index < rows.length; index++) { let video_product_info = rows[index] // let data = // console.log("data:",data) let data = await CMD.search_parent_id(connection,video_product_info.product_parent_id) if(data!=null){ let publish_time = helper.getDate7DaysBefore(data.publish_time,null,'YYYY-MM-DD') await connection.execute( `UPDATE video_product SET publish_time = ? WHERE id = ${video_product_info.id} `, [publish_time] ); }else{ let hy_book_data = await CMD.add_parent_book(video_product_info.product_parent_id) if(hy_book_data!=null){ let publish_time = hy_book_data.openTime if(publish_time==undefined){ publish_time = hy_book_data.createTime } let words = hy_book_data.words let book_name = hy_book_data.name; let genre = 1 if(words>100000){ genre = 1; }else{ genre = 3; } await CMD.insert_product({ tg_platform_id:config.platform_heiyan, book_name:book_name, genre:genre, book_id:video_product_info.product_parent_id, words:words, publish_time:publish_time }) }else{ await connection.execute( ` UPDATE video_product SET publish_time = '2000-01-01 01:01:01' WHERE id = ${video_product_info.id} ` ); console.error("查无此书:",video_product_info,hy_book_data) } } } }catch(e){ if(e==0){ right_status = false } console.error("processTask error:",e) } finally{ if(connection!=null){ connection.end() } global.setTimeout(processTask, 2000); } } CMD.add_parent_book = async function(product_id){ let data = await hy_search_book.search_id(product_id) if(data==undefined||data==null){ data = null } if(data!=null){ if(data.rows==null||data.rows==undefined){ data = null } } if(data!=null){ if(data.rows.length<=0){ data = null } } if(data!=null){ return data.rows[0] } return data } CMD.search_parent_id = async function(connection,product_parent_id) { let sql = `SELECT * FROM video_product WHERE product_id = '${product_parent_id}' LIMIT 1` const [rows] = await connection.execute( sql ); if(rows.length<=0){ return null } return rows[0] } CMD.insert_product = async function(data){ await video_product_controllers.createProductData({ book_platform:data.tg_platform_id, product_name:data.book_name, genre:data.genre, product_id:data.book_id, words:data.words, publish_time:data.publish_time }) } CMD.init = async function(){ redis_help.connect((results)=>{ if(results){ processTask(); } }) } CMD.init()