123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254 |
- //找到带有300的数据,并且创建新书籍
- 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 video_applet_product_controllers = require('../src/data_manager/Controllers/video_applet_product_controllers');
- const video_product_controllers = require('../src/data_manager/Controllers/video_product_controllers');
- const helper = require("../src/helper");
- const schedule = require('node-schedule');
- const tools = require("../tools");
- const CMD = {}
- async function processTask(){
- let right_status = true
- let connection = null
- try{
- connection = await mysql.createConnection({
- ...taskdbConfig,
- multipleStatements: true
- });
- let sql = `SELECT * FROM video_product WHERE book_platform = ${config.platform_qmmf} AND status != 2 AND is_check = 0 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 = await require('../src/api/qm_mf/qm_mf_search_book').search_350_name(video_product_info.product_name+"(350)")
- if(data!=null&&data!=""){
- await connection.execute(
- ` UPDATE video_product SET status = 2 , is_check = 1 WHERE id = ${video_product_info.id} `
- );
- let book_data = {
- book_name:data.book_name,
- book_id:data.book_id,
- genre:data.genre,
- words:data.words,
- product_parent_id:video_product_info.product_parent_id
- }
- let result = await video_product_controllers.getProductData({book_id:book_data.book_id})
- if(result.success){
- await connection.execute(
- ` UPDATE video_product SET is_check = 3 WHERE id = ${result.data.id} `
- );
- }else{
- //1创建这本书
- await CMD.insert_product(book_data)
- //2在创建推广链接
- await CMD.update_filter_data(book_data)
- }
- }else{
- await connection.execute(
- ` UPDATE video_product SET is_check = 1 WHERE id = ${video_product_info.id} `
- );
- }
- }
- }catch(e){
- if(e==0){
- right_status = false
- }
- console.error("processTask error:",e)
- } finally{
- if(connection!=null){
- connection.end()
- }
- if(right_status==true){
- global.setTimeout(processTask, 1000);
- }
- }
- }
- CMD.insert_product = async function(data){
- console.log("创建这本书",data)
- return await video_product_controllers.createProductData({
- book_platform:config.platform_qmmf,
- product_name:data.book_name,
- genre:data.genre,
- product_id:data.book_id,
- product_parent_id:data.product_parent_id,
- words:data.words
- })
- }
- CMD.getAppInfoByPlatformId = function(AppConfig,tg_platform_id){
- let temp = []
- for (let index = 0; index < AppConfig.length; index++) {
- const element = AppConfig[index];
- if(element.tg_platform_id==tg_platform_id){
- temp.push(element)
- }
- }
- return temp
- }
- CMD.isBlackBook = function(all_black_books,book_id){
- if(all_black_books==null){
- return false
- }
- for (let index = 0; index < all_black_books.length; index++) {
- const black_book = all_black_books[index];
- if(black_book.product_id==book_id){
- return true
- }
- }
- return false
- }
- CMD.getMainInfoByAppid = function(MainConfig,app_id){
- let list = []
- for (let index = 0; index < MainConfig.length; index++) {
- const element = MainConfig[index];
- if(element.app_id==app_id){
- list.push(element)
- }
- }
- return list
- }
- CMD.getSharedPlatform = function(PlatformShared,platform_shared_id){
- for (let index = 0; index < PlatformShared.length; index++) {
- const element = PlatformShared[index];
- if(element.id==platform_shared_id){
- return JSON.parse(element.info)
- }
- }
- }
- CMD.getPlatformInfo = function(PlatformConfig,tg_platform_id){
- for (let index = 0; index < PlatformConfig.length; index++) {
- const element = PlatformConfig[index];
- if(element.tg_platform_id==tg_platform_id){
- return element
- }
- }
- }
- CMD.update_filter_data = async function(data) {
-
- let MainConfig = await redis_help.getKeyValue("MainConfig")
- MainConfig = JSON.parse(MainConfig)
- let AppConfig = await redis_help.getKeyValue("AppConfig")
- AppConfig = JSON.parse(AppConfig)
- let PlatformShared = await redis_help.getKeyValue("PlatformShared")
- PlatformShared = JSON.parse(PlatformShared)
-
- let PlatformConfig = await redis_help.getKeyValue("PlatformConfig")
- PlatformConfig = JSON.parse(PlatformConfig)
- let PlatformInfo = CMD.getPlatformInfo(PlatformConfig,config.platform_qmmf)
- let all_platform_list = CMD.getSharedPlatform(PlatformShared,PlatformInfo.platform_shared_id)
- for (let i = 0; i < all_platform_list.length; i++) {
- const tg_platform_id = all_platform_list[i];
- let AppInfoList = CMD.getAppInfoByPlatformId(AppConfig,tg_platform_id)
- for (let j = 0; j < AppInfoList.length; j++) {
- const AppInfo = AppInfoList[j];
- data.app_id = AppInfo.app_id
- let list = CMD.getMainInfoByAppid(MainConfig,data.app_id)
- if(list.length<0){
- return console.error("获取主体错误:",data)
- }
- let black_books = await redis_help.getKeyValue("all_black_books")
-
- if(black_books!=null){
- black_books = JSON.parse(black_books)
- }
-
- for (let index = 0; index < list.length; index++) {
- const main_info = list[index];
- data.main_id = main_info.id
- data.main_name = main_info.main_name
- let butler_id = main_info.butler_id
- if(main_info.tg_link_config==undefined||main_info.tg_link_config==null){
- console.error("主体配置推广链接错误:",main_info)
- }else{
- let min_book_word = main_info.min_book_word
- let max_book_word = main_info.max_book_word
- let word = data.words
- let material_platform_id = main_info.material_platform_id
- if(!CMD.isBlackBook(black_books,data.book_id)&&word>=min_book_word&&word<=max_book_word){
- //符合标准进行创建表
- let butler_video_applet_info = await tools.getAppletProductDataByButlerId(butler_id,data.book_id,data.main_id)
- if(butler_video_applet_info==null){
- const result = await video_applet_product_controllers.getAppletProductData({book_id:data.book_id,main_id:data.main_id})
- if(!result.success){
- let product_parent_id = data.product_parent_id
- //没有找到 可以创建
- await video_applet_product_controllers.createAppletProductData({
- book_platform:config.platform_qmmf,
- product_name:data.book_name,
- product_id:data.book_id,
- dy_small_program_start:"",
- dy_small_program_start_data:"",
- dy_small_applet_app_id:data.app_id,
- status:0,
- main_id:data.main_id,
- promotion_id:"",
- wait_status:0,
- material_platform_id:material_platform_id,
- butler_id:butler_id,
- product_parent_id: product_parent_id
- })
- }
- }
- }
- }
- }
- }
- }
- }
- CMD.updateAllFqMfBookCheckStatus = async function(){
- let connection = await mysql.createConnection({
- ...taskdbConfig,
- multipleStatements: true
- });
- await connection.execute(
- ` UPDATE video_product SET is_check = 0 WHERE is_check = 1 AND status !=2 AND book_platform = ${config.platform_qmmf} `
- );
- if(connection!=null){
- connection.end()
- }
- }
- CMD.init = async function(){
- redis_help.connect(async (results)=>{
- if(results){
- const job = schedule.scheduleJob('0 17 * * *', async function() {
- await CMD.updateAllFqMfBookCheckStatus()
- console.log('整点执行的任务:', new Date().toLocaleString());
- processTask();
- });
- }
- })
- }
- CMD.init()
|