123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- //同步黑岩免费的发布时间
- 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()
|