CREATE_LINK_FACTORY.js 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. const CMD = {}
  2. const time_count = 2000;
  3. const redis_help = require('../src/use_redis');
  4. const video_applet_product_controllers = require('../src/data_manager/Controllers/video_applet_product_controllers');
  5. var hy_create_link_task_list = []
  6. var fq_create_link_task_list = []
  7. let finish_call_back = async function(new_data,error_info=null){
  8. try{
  9. if(new_data.start_page != null && error_info==null){
  10. const result = await video_applet_product_controllers.updateData({id:new_data.id},{
  11. dy_small_program_start:new_data.start_page,
  12. dy_small_program_start_data:new_data.start_param,
  13. promotion_id:new_data.promotion_id,
  14. wait_status:1,
  15. status:0
  16. })
  17. }else{
  18. const result = await video_applet_product_controllers.updateData({id:new_data.id},{
  19. status:2,
  20. wait_status:2,
  21. error_info:JSON.stringify(error_info)
  22. })
  23. }
  24. }catch(e){
  25. console.log("finish_call_back error:",e)
  26. }
  27. }
  28. CMD.isBlackBook = function(all_black_books,book_id){
  29. if(all_black_books==null){
  30. return false
  31. }
  32. for (let index = 0; index < all_black_books.length; index++) {
  33. const black_book = all_black_books[index];
  34. if(black_book.product_id==book_id){
  35. return true
  36. }
  37. }
  38. return false
  39. }
  40. async function processTask(){
  41. try{
  42. let MainConfig = await redis_help.getKeyValue("MainConfig")
  43. MainConfig = JSON.parse(MainConfig)
  44. let PlatformConfig = await redis_help.getKeyValue("PlatformConfig")
  45. PlatformConfig = JSON.parse(PlatformConfig)
  46. let black_books = await redis_help.getKeyValue("all_black_books")
  47. if(black_books!=null){
  48. black_books = JSON.parse(black_books)
  49. }
  50. let result = await video_applet_product_controllers.getAppletProductDataByStatus({status:0,wait_status:0})
  51. if(result.success){
  52. if(CMD.isBlackBook(black_books,result.data.product_id)){
  53. await video_applet_product_controllers.updateData({id:result.data.id},{
  54. status:2,
  55. wait_status:2,
  56. error_info:JSON.stringify({msg:"当前书在黑名单"})
  57. })
  58. throw "当前书在黑名单"
  59. }
  60. let PlatformInfo = null
  61. PlatformInfo = CMD.getPlatformInfoById(PlatformConfig,result.data.book_platform)
  62. if(PlatformInfo==null){
  63. await video_applet_product_controllers.updateData({id:result.data.id},{
  64. status:2,
  65. wait_status:2,
  66. error_info:JSON.stringify({msg:"平台配置错误:"})
  67. })
  68. console.error("平台配置错误:",result)
  69. throw "平台配置错误:"
  70. }
  71. let main_info = CMD.getMainInfoById(MainConfig,result.data.main_id)
  72. if(main_info==null){
  73. await video_applet_product_controllers.updateData({id:result.data.id},{
  74. status:2,
  75. wait_status:2,
  76. error_info:JSON.stringify({msg:"主体配置错误:"})
  77. })
  78. console.error("主体配置错误:",result)
  79. throw "主体配置错误:"
  80. }
  81. if(result.data.book_platform==1){
  82. hy_create_link_task_list.push({
  83. n_data:result.data,
  84. main_info:main_info,
  85. PlatformInfo:PlatformInfo
  86. })
  87. }else if(result.data.book_platform==2){
  88. fq_create_link_task_list.push({
  89. n_data:result.data,
  90. main_info:main_info,
  91. PlatformInfo:PlatformInfo
  92. })
  93. }
  94. }
  95. if(hy_create_link_task_list.length>0){
  96. let hy_create_link_task = hy_create_link_task_list.pop()
  97. require('./hy_create_link').runTask(hy_create_link_task.n_data
  98. ,hy_create_link_task.main_info,
  99. hy_create_link_task.PlatformInfo,finish_call_back)
  100. }
  101. if(fq_create_link_task_list.length>0){
  102. let fq_create_link_task = fq_create_link_task_list.pop()
  103. require('./fq_create_link').runTask(fq_create_link_task.n_data
  104. ,fq_create_link_task.main_info,
  105. fq_create_link_task.PlatformInfo,finish_call_back)
  106. }
  107. }catch(e){
  108. console.log("CREATE_LINK_FACTORY error:",e)
  109. finish_call_back(null,{"MESSAGE":"CREATE_LINK_FACTORY error:"})
  110. } finally{
  111. global.setTimeout(processTask,time_count)
  112. }
  113. }
  114. CMD.init = function(){
  115. redis_help.connect((results)=>{
  116. if(results){
  117. }
  118. })
  119. processTask()
  120. }
  121. CMD.create_link = function(n_data){
  122. if(n_data.book_platform==1){
  123. hy_create_link_task_list.push({
  124. n_data:n_data,
  125. main_info:main_info,
  126. PlatformInfo:PlatformInfo
  127. })
  128. }else if(n_data.book_platform==1){
  129. fq_create_link_task_list.push({
  130. n_data:n_data,
  131. main_info:main_info,
  132. PlatformInfo:PlatformInfo
  133. })
  134. }
  135. }
  136. CMD.getPlatformInfoById = function(PlatformConfig,tg_platform_id){
  137. for (let index = 0; index < PlatformConfig.length; index++) {
  138. const element = PlatformConfig[index];
  139. if(element.tg_platform_id==tg_platform_id){
  140. return element
  141. }
  142. }
  143. return null
  144. }
  145. CMD.getMainInfoById = function(MainConfig,main_id){
  146. // console.log("MainConfig:",MainConfig)
  147. for (let index = 0; index < MainConfig.length; index++) {
  148. const element = MainConfig[index];
  149. if(element.id==main_id){
  150. return element
  151. }
  152. }
  153. return null
  154. }
  155. CMD.init()