CREATE_LINK_FACTORY.js 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  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. ,error_type:1
  60. })
  61. throw "当前书在黑名单"
  62. }
  63. let main_info = CMD.getMainInfoById(MainConfig,result.data.main_id)
  64. let PlatformInfo = null
  65. PlatformInfo = CMD.getPlatformInfoById(PlatformConfig,main_info.tg_platform_id)
  66. if(PlatformInfo==null){
  67. await video_applet_product_controllers.updateData({id:result.data.id},{
  68. status:2,
  69. wait_status:2,
  70. error_info:JSON.stringify({msg:"平台配置错误:"})
  71. })
  72. console.error("平台配置错误:",result)
  73. throw "平台配置错误:"
  74. }
  75. if(main_info==null&&result.data.is_close_execution==1){
  76. let CloseMainConfig = await redis_help.getKeyValue("CloseMainConfig")
  77. CloseMainConfig = JSON.parse(CloseMainConfig)
  78. main_info = CMD.getMainInfoById(CloseMainConfig,result.data.main_id)
  79. }
  80. if(main_info==null){
  81. await video_applet_product_controllers.updateData({id:result.data.id},{
  82. status:2,
  83. wait_status:2,
  84. error_info:JSON.stringify({msg:"主体配置错误:"})
  85. })
  86. console.error("主体配置错误:",result)
  87. throw "主体配置错误:"
  88. }
  89. if(result.data.book_platform==1){
  90. hy_create_link_task_list.push({
  91. n_data:result.data,
  92. main_info:main_info,
  93. PlatformInfo:PlatformInfo
  94. })
  95. }
  96. if(result.data.book_platform==2){
  97. fq_create_link_task_list.push({
  98. n_data:result.data,
  99. main_info:main_info,
  100. PlatformInfo:PlatformInfo
  101. })
  102. }
  103. if(result.data.book_platform==3){
  104. qm_create_link_task_list.push({
  105. n_data:result.data,
  106. main_info:main_info,
  107. PlatformInfo:PlatformInfo
  108. })
  109. }
  110. if(result.data.book_platform==4){
  111. dz_create_link_task_list.push({
  112. n_data:result.data,
  113. main_info:main_info,
  114. PlatformInfo:PlatformInfo
  115. })
  116. }
  117. }
  118. if(hy_create_link_task_list.length>0){
  119. let hy_create_link_task = hy_create_link_task_list.pop()
  120. require('./hy_create_link').runTask(hy_create_link_task.n_data
  121. ,hy_create_link_task.main_info,
  122. hy_create_link_task.PlatformInfo,finish_call_back)
  123. }
  124. await new Promise(resolve => setTimeout(resolve,100));
  125. if(fq_create_link_task_list.length>0){
  126. let fq_create_link_task = fq_create_link_task_list.pop()
  127. require('./fq_create_link').runTask(fq_create_link_task.n_data
  128. ,fq_create_link_task.main_info,
  129. fq_create_link_task.PlatformInfo,finish_call_back)
  130. }
  131. await new Promise(resolve => setTimeout(resolve,100));
  132. if(dz_create_link_task_list.length>0){
  133. let dz_create_link_task = dz_create_link_task_list.pop()
  134. require('./dz_create_link').runTask(dz_create_link_task.n_data
  135. ,dz_create_link_task.main_info,
  136. dz_create_link_task.PlatformInfo,finish_call_back)
  137. }
  138. await new Promise(resolve => setTimeout(resolve,100));
  139. if(qm_create_link_task_list.length>0){
  140. let qm_create_link_task = qm_create_link_task_list.pop()
  141. require('./qm_create_link').runTask(qm_create_link_task.n_data
  142. ,qm_create_link_task.main_info,
  143. qm_create_link_task.PlatformInfo,finish_call_back)
  144. }
  145. }catch(e){
  146. console.log("CREATE_LINK_FACTORY error:",e)
  147. finish_call_back(null,{"MESSAGE":"CREATE_LINK_FACTORY error:"})
  148. } finally{
  149. global.setTimeout(processTask,time_count)
  150. }
  151. }
  152. CMD.init = function(){
  153. redis_help.connect((results)=>{
  154. if(results){
  155. }
  156. })
  157. processTask()
  158. }
  159. CMD.create_link = function(n_data){
  160. // if(n_data.book_platform==1){
  161. // hy_create_link_task_list.push({
  162. // n_data:n_data,
  163. // main_info:main_info,
  164. // PlatformInfo:PlatformInfo
  165. // })
  166. // }else if(n_data.book_platform==1){
  167. // fq_create_link_task_list.push({
  168. // n_data:n_data,
  169. // main_info:main_info,
  170. // PlatformInfo:PlatformInfo
  171. // })
  172. // }
  173. }
  174. CMD.getPlatformInfoById = function(PlatformConfig,tg_platform_id){
  175. for (let index = 0; index < PlatformConfig.length; index++) {
  176. const element = PlatformConfig[index];
  177. if(element.tg_platform_id==tg_platform_id){
  178. return element
  179. }
  180. }
  181. return null
  182. }
  183. CMD.getMainInfoById = function(MainConfig,main_id){
  184. // console.log("MainConfig:",MainConfig)
  185. for (let index = 0; index < MainConfig.length; index++) {
  186. const element = MainConfig[index];
  187. if(element.id==main_id){
  188. return element
  189. }
  190. }
  191. return null
  192. }
  193. CMD.init()