CREATE_LINK_FACTORY.js 7.5 KB

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