RECEIVE_FACTORY.js 47 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018
  1. const CMD = {}
  2. const time_count = 250;
  3. const PROT = 9101
  4. var http = require('http');
  5. const axios = require('axios')
  6. const redis_help = require('../src/use_redis');
  7. const origin_data_controllers = require('../src/data_manager/Controllers/origin_data_controllers');
  8. const helper = require('../src/helper');
  9. const HttpClient = require('../src/HttpClient')
  10. const config = require('../etc/config.json');
  11. const tools = require('../tools');
  12. var recv_data_list = []
  13. const 视频id = 0;
  14. const 视频链接 = 1;
  15. const 标题 = 2;
  16. const 发布时间 = 3;
  17. const 收藏数 = 4;
  18. const 评论数 = 5;
  19. const 点赞数 = 6;
  20. const 分享数 = 7;
  21. const 是否挂件 = 8;
  22. const 挂件地址 = 9;
  23. let task_status = false
  24. function excelDateToJs(dateStr) {
  25. // const date = moment(dateStr, "DD/MM/YYYY HH:mm:ss").toDate();
  26. // return new Date(date);
  27. return new Date()
  28. }
  29. async function processTask(){
  30. try{
  31. if(recv_data_list.length>0){
  32. const xml = recv_data_list.pop();
  33. let guajian_link = ''
  34. guajian_link = xml[挂件地址]
  35. const result = await origin_data_controllers.getOriginDataById({video_id:xml[视频id]})
  36. if(result.success){
  37. await origin_data_controllers.updateOriginData({id:result.data.id},{kepp_num:xml[收藏数],comment_num:xml[评论数],like_num:xml[点赞数],shared_num:xml[分享数],guajian_link:guajian_link})
  38. }else{
  39. await origin_data_controllers.createOriginData(
  40. {
  41. video_id:xml[视频id],
  42. video_link:xml[视频链接],
  43. title:xml[标题],
  44. // publish_time:xml[发布时间],
  45. publish_time:excelDateToJs(xml[发布时间]),
  46. kepp_num:xml[收藏数],
  47. comment_num:xml[评论数],
  48. like_num:xml[点赞数],
  49. shared_num:xml[分享数],
  50. is_guajian:xml[是否挂件],
  51. guajian_link:guajian_link,
  52. status:0,
  53. }
  54. )
  55. }
  56. }else{
  57. task_status = false;
  58. }
  59. }catch(e){
  60. console.log("数据解析错误:",e)
  61. }finally{
  62. global.setTimeout(processTask,200)
  63. }
  64. }
  65. CMD.startTask = function(data){
  66. task_status = true;
  67. let temp_list = JSON.parse(data)
  68. for (let index = 1; index < temp_list.length; index++) {
  69. let isGuaJian = parseInt(temp_list[index][是否挂件])==1
  70. if(isGuaJian){
  71. recv_data_list.push(temp_list[index])
  72. }
  73. }
  74. console.log("temp_list.length:",temp_list.length)
  75. processTask()
  76. }
  77. CMD.init = function(){
  78. redis_help.connect(()=>{
  79. })
  80. }
  81. CMD.runTask = async function(){
  82. }
  83. CMD.test_fq_book_sid_tt = async function(book_id,sid_tt){
  84. try{
  85. let client =new HttpClient()
  86. let response = await client.proxyRequest( helper.getFqRequestOpt(book_id,sid_tt))
  87. console.log("response:",response)
  88. let obj = response['data']
  89. return obj['novel_data']
  90. }catch(e){
  91. // return {"error_book_id":book_id,"error_sid_tt":sid_tt}
  92. return null
  93. }
  94. }
  95. CMD.test_fq_mf_book_sid_tt = async function(book_id,sid_tt){
  96. try{
  97. let client =new HttpClient()
  98. let response = await client.proxyGet( helper.getMfFqRequestOpt(book_id,sid_tt))
  99. console.log("response:",response)
  100. let obj = response['data']
  101. return obj['book_info']
  102. }catch(e){
  103. // return {"error_book_id":book_id,"error_sid_tt":sid_tt}
  104. return null
  105. }
  106. }
  107. CMD.get_group_mapping = function(res,type,site){
  108. let get_hy_group_mapping = require('../src/api/hy/get_hy_group_mapping');
  109. get_hy_group_mapping.get_group_mapping((data)=>{
  110. res.writeHead(200, {'Content-Type': 'application/json'});
  111. if(data.code==200){
  112. let list = data.data
  113. res.end(JSON.stringify({ message:"成功!",data:list,code:10000}));
  114. }else{
  115. res.end(JSON.stringify({ message:"fail!",data:data,code:data.code}));
  116. }
  117. console.log("get_hy_group_mapping:",data)
  118. },type,site)
  119. }
  120. CMD.get_hy_rechargeTemplate = function(res){
  121. let get_hy_recharge_template = require('../src/api/hy/get_hy_recharge_template');
  122. get_hy_recharge_template.get_recharge_template("1865735741365059585",(data)=>{
  123. res.writeHead(200, {'Content-Type': 'application/json'});
  124. if(data.code==200){
  125. let list = data.data
  126. res.end(JSON.stringify({ message:"成功!",data:list,code:10000}));
  127. }else{
  128. res.end(JSON.stringify({ message:"fail!",data:data,code:data.code}));
  129. }
  130. console.log("get_hy_rechargeTemplate:",data)
  131. })
  132. }
  133. CMD.get_hy_SiteTemplate = function(res){
  134. let get_hy_site_template = require('../src/api/hy/get_hy_site_template');
  135. get_hy_site_template.get_callback_template((data)=>{
  136. res.writeHead(200, {'Content-Type': 'application/json'});
  137. if(data.code==200){
  138. let list = data.data
  139. res.end(JSON.stringify({ message:"成功!",data:list,code:10000}));
  140. }else{
  141. res.end(JSON.stringify({ message:"fail!",data:data,code:data.code}));
  142. }
  143. console.log("get_hy_SiteTemplate:",data)
  144. })
  145. }
  146. CMD.get_hy_passBackTemplate = function(res,is_free){
  147. if(is_free){
  148. let get_hy_call_back_template = require('../src/api/hy/get_hy_call_back_template');
  149. get_hy_call_back_template.adPassBackTemplate((data)=>{
  150. res.writeHead(200, {'Content-Type': 'application/json'});
  151. if(data.code==200){
  152. let list = data.data
  153. res.end(JSON.stringify({ message:"成功!",data:list,code:10000}));
  154. }else{
  155. res.end(JSON.stringify({ message:"fail!",data:data,code:data.code}));
  156. }
  157. console.log("get_hy_passBackTemplate:",data)
  158. })
  159. }else{
  160. let get_hy_call_back_template = require('../src/api/hy/get_hy_call_back_template');
  161. get_hy_call_back_template.get_callback_template((data)=>{
  162. res.writeHead(200, {'Content-Type': 'application/json'});
  163. if(data.code==200){
  164. let list = data.data
  165. res.end(JSON.stringify({ message:"成功!",data:list,code:10000}));
  166. }else{
  167. res.end(JSON.stringify({ message:"fail!",data:data,code:data.code}));
  168. }
  169. console.log("get_hy_passBackTemplate:",data)
  170. })
  171. }
  172. }
  173. CMD.get_fq_callback_template = async function(res,distributor_id) {
  174. let data = await require('../src/api/fq/get_fq_call_back_template').get_callback_template(distributor_id)
  175. res.writeHead(200, {'Content-Type': 'application/json'});
  176. if(data==null){
  177. res.end(JSON.stringify({ message:"成功!",data:{},code:10000}));
  178. }else{
  179. console.log('get_fq_callback_template:', data);
  180. res.end(JSON.stringify({ message:"成功!",data:data,code:10000}));
  181. }
  182. }
  183. CMD.get_fq_dt_callback_template = async function(res,distributor_id) {
  184. let data = await require('../src/api/fq/get_fq_call_back_template').get_dt_callback_template(distributor_id)
  185. res.writeHead(200, {'Content-Type': 'application/json'});
  186. if(data==null){
  187. res.end(JSON.stringify({ message:"成功!",data:{},code:10000}));
  188. }else{
  189. console.log('get_fq_callback_template:', data);
  190. res.end(JSON.stringify({ message:"成功!",data:data,code:10000}));
  191. }
  192. }
  193. CMD.get_fq_rechargeTemplate = function(res,distributor_id){
  194. // var distributorId = config.fanqie_config.distributorId;
  195. var distributorId = distributor_id
  196. var secretKey = config.fanqie_config.secretKey;
  197. const postData = {
  198. distributor_id: distributorId,
  199. ts: helper.getCurrentUnixTimestamp(),
  200. sign: helper.getSign(distributorId,secretKey),
  201. page_size: 100,
  202. page_index:0,
  203. };
  204. // console.log("get_recharge_template:")
  205. var url = config.fanqie_config.recharge_list_host
  206. var base_params = `/?distributor_id=${postData.distributor_id}&ts=${postData.ts}&sign=${postData.sign}`
  207. var other_params = `&page_size=${postData.page_size}&page_index=${postData.page_index}`
  208. axios.get(`${url}${base_params}${other_params}`)
  209. .then(response => {
  210. // console.log('Response data:', response.data );
  211. let data = response.data
  212. res.writeHead(200, {'Content-Type': 'application/json'});
  213. if(data.code==200){
  214. let list = data.data
  215. res.end(JSON.stringify({ message:"成功!",data:list,code:10000}));
  216. }else{
  217. res.end(JSON.stringify({ message:"fail!",data:data,code:data.code}));
  218. }
  219. console.log("get_fq_rechargeTemplate:",data)
  220. })
  221. .catch(error => {
  222. console.error('Error:', error);
  223. res.end(JSON.stringify({ message:"fail!",data:data,code:data.code}));
  224. });
  225. }
  226. CMD.get_fq_dt_rechargeTemplate = function(res,distributor_id){
  227. // var distributorId = config.fanqie_config.distributorId;
  228. var distributorId = distributor_id
  229. var secretKey = config.fanqie_dt_config.secretKey;
  230. const postData = {
  231. distributor_id: distributorId,
  232. ts: helper.getCurrentUnixTimestamp(),
  233. sign: helper.getSign(distributorId,secretKey),
  234. page_size: 100,
  235. page_index:0,
  236. };
  237. // console.log("get_recharge_template:")
  238. var url = config.fanqie_config.recharge_list_host
  239. var base_params = `/?distributor_id=${postData.distributor_id}&ts=${postData.ts}&sign=${postData.sign}`
  240. var other_params = `&page_size=${postData.page_size}&page_index=${postData.page_index}`
  241. axios.get(`${url}${base_params}${other_params}`)
  242. .then(response => {
  243. // console.log('Response data:', response.data );
  244. let data = response.data
  245. res.writeHead(200, {'Content-Type': 'application/json'});
  246. if(data.code==200){
  247. let list = data.data
  248. res.end(JSON.stringify({ message:"成功!",data:list,code:10000}));
  249. }else{
  250. res.end(JSON.stringify({ message:"fail!",data:data,code:data.code}));
  251. }
  252. console.log("get_fq_rechargeTemplate:",data)
  253. })
  254. .catch(error => {
  255. console.error('Error:', error);
  256. res.end(JSON.stringify({ message:"fail!",data:data,code:data.code}));
  257. });
  258. }
  259. // 应用业务类型。枚举值,提供该字段则只返回对应业务类型分包列表
  260. // - 快应用 = 1
  261. // - 微信h5 = 3
  262. // - 微信短剧 = 4
  263. // - 抖音短剧 = 7
  264. // - 抖小网文 = 8
  265. // - 微小网文 = 12
  266. CMD.get_fq_package_list = function(res,distributorId,app_type){
  267. var secretKey = config.fanqie_config.secretKey;
  268. const postData = {
  269. distributor_id: distributorId,
  270. ts: helper.getCurrentUnixTimestamp(),
  271. sign: helper.getSign(distributorId,secretKey),
  272. page_size: 50,
  273. page_index:0,
  274. app_type:app_type
  275. };
  276. var url = config.fanqie_config.get_fq_package_list
  277. var base_params = `/?distributor_id=${postData.distributor_id}&ts=${postData.ts}&sign=${postData.sign}&app_type=${postData.app_type}`
  278. var other_params = `&page_size=${postData.page_size}&page_index=${postData.page_index}`
  279. console.log("url:",`${url}${base_params}${other_params}`)
  280. axios.get(`${url}${base_params}${other_params}`)
  281. .then(response => {
  282. // console.log('Response data:', response.data );
  283. let data = response.data
  284. res.writeHead(200, {'Content-Type': 'application/json'});
  285. if(data.code==200){
  286. res.end(JSON.stringify({ message:"成功!",data:data.package_info_open_list,code:10000}));
  287. }else{
  288. res.end(JSON.stringify({ message:"fail!",data:data,code:data.code}));
  289. }
  290. console.log("get_fq_package_list:",data)
  291. })
  292. .catch(error => {
  293. console.error('Error:', error);
  294. res.end(JSON.stringify({ message:"fail!",data:data,code:data.code}));
  295. });
  296. }
  297. CMD.get_fq_dt_package_list = function(res,distributorId,app_type){
  298. var secretKey = config.fanqie_dt_config.secretKey;
  299. const postData = {
  300. distributor_id: distributorId,
  301. ts: helper.getCurrentUnixTimestamp(),
  302. sign: helper.getSign(distributorId,secretKey),
  303. page_size: 50,
  304. page_index:0,
  305. app_type:app_type
  306. };
  307. var url = config.fanqie_config.get_fq_package_list
  308. var base_params = `/?distributor_id=${postData.distributor_id}&ts=${postData.ts}&sign=${postData.sign}&app_type=${postData.app_type}`
  309. var other_params = `&page_size=${postData.page_size}&page_index=${postData.page_index}`
  310. console.log("url:",`${url}${base_params}${other_params}`)
  311. axios.get(`${url}${base_params}${other_params}`)
  312. .then(response => {
  313. // console.log('Response data:', response.data );
  314. let data = response.data
  315. res.writeHead(200, {'Content-Type': 'application/json'});
  316. if(data.code==200){
  317. res.end(JSON.stringify({ message:"成功!",data:data.package_info_open_list,code:10000}));
  318. }else{
  319. res.end(JSON.stringify({ message:"fail!",data:data,code:data.code}));
  320. }
  321. console.log("get_fq_package_list:",data)
  322. })
  323. .catch(error => {
  324. console.error('Error:', error);
  325. res.end(JSON.stringify({ message:"fail!",data:data,code:data.code}));
  326. });
  327. }
  328. CMD.get_fq_dt_bound_package_list = function(res,distributorId,app_id){
  329. var secretKey = config.fanqie_dt_config.secretKey;
  330. const postData = {
  331. distributor_id: distributorId,
  332. ts: helper.getCurrentUnixTimestamp(),
  333. sign: helper.getSign(distributorId,secretKey),
  334. page_size: 50,
  335. page_index:0,
  336. app_id:app_id
  337. };
  338. var url = config.fanqie_dt_config.get_bound_package_list
  339. var base_params = `/?distributor_id=${postData.distributor_id}&ts=${postData.ts}&sign=${postData.sign}&app_id=${postData.app_id}`
  340. var other_params = `&page_size=${postData.page_size}&page_index=${postData.page_index}`
  341. console.log("url:",`${url}${base_params}${other_params}`)
  342. axios.get(`${url}${base_params}${other_params}`)
  343. .then(response => {
  344. // console.log('Response data:', response.data );
  345. let data = response.data
  346. res.writeHead(200, {'Content-Type': 'application/json'});
  347. if(data.code==200){
  348. res.end(JSON.stringify({ message:"成功!",data:data.wx_package_info_open_list,code:10000}));
  349. }else{
  350. res.end(JSON.stringify({ message:"fail!",data:data,code:data.code}));
  351. }
  352. console.log("get_fq_bound_package_list:",data)
  353. })
  354. .catch(error => {
  355. console.error('Error:', error);
  356. res.end(JSON.stringify({ message:"fail!",data:data,code:data.code}));
  357. });
  358. }
  359. CMD.get_fq_bound_package_list = function(res,distributorId,app_id){
  360. var secretKey = config.fanqie_config.secretKey;
  361. const postData = {
  362. distributor_id: distributorId,
  363. ts: helper.getCurrentUnixTimestamp(),
  364. sign: helper.getSign(distributorId,secretKey),
  365. page_size: 50,
  366. page_index:0,
  367. app_id:app_id
  368. };
  369. var url = config.fanqie_config.get_bound_package_list
  370. var base_params = `/?distributor_id=${postData.distributor_id}&ts=${postData.ts}&sign=${postData.sign}&app_id=${postData.app_id}`
  371. var other_params = `&page_size=${postData.page_size}&page_index=${postData.page_index}`
  372. console.log("url:",`${url}${base_params}${other_params}`)
  373. axios.get(`${url}${base_params}${other_params}`)
  374. .then(response => {
  375. // console.log('Response data:', response.data );
  376. let data = response.data
  377. res.writeHead(200, {'Content-Type': 'application/json'});
  378. if(data.code==200){
  379. res.end(JSON.stringify({ message:"成功!",data:data.wx_package_info_open_list,code:10000}));
  380. }else{
  381. res.end(JSON.stringify({ message:"fail!",data:data,code:data.code}));
  382. }
  383. console.log("get_fq_bound_package_list:",data)
  384. })
  385. .catch(error => {
  386. console.error('Error:', error);
  387. res.end(JSON.stringify({ message:"fail!",data:data,code:data.code}));
  388. });
  389. }
  390. CMD.get_pull_token = async function(res){
  391. let token = await redis_help.getKeyValue("pull_data_token")
  392. res.writeHead(200, {'Content-Type': 'application/json'});
  393. res.end(JSON.stringify({ message:"成功!",data:{token:token},code:10000}));
  394. console.log('get_pull_token:', token);
  395. }
  396. CMD.get_dz_book = async function(book_id,res) {
  397. let data = await require('../src/api/dz/dz_search_book').search_id(book_id)
  398. res.writeHead(200, {'Content-Type': 'application/json'});
  399. res.end(JSON.stringify({ message:"成功!",data:data,code:10000}));
  400. console.log('get_dz_book:', data);
  401. }
  402. CMD.get_dz_callback_template = async function(isFree,channelId,res) {
  403. console.log("get_dz_callback_template!")
  404. if(isFree==1){
  405. require('../src/api/dz/get_dz_call_back_template').get_mf_callback_template(channelId,(data)=>{
  406. console.log('get_dz_callback_template:', data);
  407. res.writeHead(200, {'Content-Type': 'application/json'});
  408. res.end(JSON.stringify({ message:"成功!",data:data,code:10000}));
  409. })
  410. }else{
  411. require('../src/api/dz/get_dz_call_back_template').get_callback_template(channelId,(data)=>{
  412. console.log('get_dz_callback_template:', data);
  413. res.writeHead(200, {'Content-Type': 'application/json'});
  414. res.end(JSON.stringify({ message:"成功!",data:data,code:10000}));
  415. })
  416. }
  417. }
  418. CMD.get_dz_channel_Info_list = async function(isFree,is_wx,res) {
  419. console.log("get_dz_channel_Info_list!")
  420. if(isFree==1){
  421. require('../src/api/dz/get_channel_Info_list').get_mf_channel_Info_list(is_wx,(data)=>{
  422. console.log('get_dz_channel_Info_list:', data);
  423. res.writeHead(200, {'Content-Type': 'application/json'});
  424. res.end(JSON.stringify({ message:"成功!",data:data,code:10000}));
  425. })
  426. }else{
  427. require('../src/api/dz/get_channel_Info_list').get_channel_Info_list(is_wx,(data)=>{
  428. console.log('get_dz_channel_Info_list:', data);
  429. res.writeHead(200, {'Content-Type': 'application/json'});
  430. res.end(JSON.stringify({ message:"成功!",data:data,code:10000}));
  431. })
  432. }
  433. }
  434. CMD.get_dz_recharge_template = async function(channelId,res) {
  435. await require('../src/api/dz/get_dz_recharge_template').get_recharge_template(channelId,(data)=>{
  436. console.log('get_dz_recharge_template:', data);
  437. res.writeHead(200, {'Content-Type': 'application/json'});
  438. res.end(JSON.stringify({ message:"成功!",data:data,code:10000}));
  439. })
  440. }
  441. CMD.get_qm_callback_template = async function(res,mini_program_platform_id,qm_id) {
  442. let data = await require('../src/api/qm/get_qm_call_back_template').get_callback_template_new(mini_program_platform_id,qm_id)
  443. console.log('get_qm_callback_template:', data);
  444. res.writeHead(200, {'Content-Type': 'application/json'});
  445. res.end(JSON.stringify({ message:"成功!",data:data.data.list,code:10000}));
  446. }
  447. CMD.get_qm_recharge_template = async function(res,category,mini_program_platform_id,qm_id) {
  448. let data = await require('../src/api/qm/get_qm_recharge_template').get_recharge_template_new(mini_program_platform_id,qm_id)
  449. console.log('get_qm_recharge_template:', data);
  450. res.writeHead(200, {'Content-Type': 'application/json'});
  451. res.end(JSON.stringify({ message:"成功!",data:data.data.list,code:10000}));
  452. }
  453. CMD.get_qm_account_list = async function(res) {
  454. let data = await require('../src/api/qm/get_qm_account_list').get_qm_account_list()
  455. console.log('get_qm_account_list:', data);
  456. res.writeHead(200, {'Content-Type': 'application/json'});
  457. res.end(JSON.stringify({ message:"成功!",data:data.list,code:10000}));
  458. }
  459. CMD.get_yw_recharge_template = async function(res,yw_id) {
  460. let data = await require('../src/api/yw/get_yw_recharge_template').get_recharge_template(yw_id)
  461. console.log('get_yw_recharge_template:', data);
  462. res.writeHead(200, {'Content-Type': 'application/json'});
  463. res.end(JSON.stringify({ message:"成功!",data:data,code:10000}));
  464. }
  465. CMD.test_open_sessid = async function(res,book_id) {
  466. let yw_book_data = await require('../src/api/yw/yw_search_book').search_test_id(book_id)
  467. res.writeHead(200, {'Content-Type': 'application/json'});
  468. res.end(JSON.stringify({ message:"成功!",data:yw_book_data,code:10000}));
  469. }
  470. CMD.get_yw_open_sessid_status = async function(res) {
  471. let OPENSESSID = await redis_help.getKeyValue("OPENSESSID")
  472. console.log('get_yw_open_sessid_status:', OPENSESSID);
  473. res.writeHead(200, {'Content-Type': 'application/json'});
  474. res.end(JSON.stringify({ message:"成功!",data:OPENSESSID,code:10000}));
  475. }
  476. CMD.get_yw_account_list = async function(res,coopid) {
  477. let data = await require('../src/api/yw/get_yw_account_list').get_yw_account_list(coopid)
  478. console.log('get_yw_account_list:', JSON.stringify(data));
  479. res.writeHead(200, {'Content-Type': 'application/json'});
  480. res.end(JSON.stringify({ message:"成功!",data:data.data.list,code:10000}));
  481. }
  482. // CMD.get_zh_callback_template = async function(res) {
  483. // let data = await require('../src/api/zh/get_zh_call_back_template').get_zh_call_back_template()
  484. // console.log('get_zh_callback_template:', data);
  485. // res.writeHead(200, {'Content-Type': 'application/json'});
  486. // res.end(JSON.stringify({ message:"成功!",data:data,code:10000}));
  487. // }
  488. CMD.get_zh_callback_template = async function(res,member_token,app_id) {
  489. let data = await require('../src/api/zh/get_zh_call_back_template').get_zh_call_back_template_new(member_token,app_id)
  490. console.log('get_zh_callback_template:', data);
  491. res.writeHead(200, {'Content-Type': 'application/json'});
  492. res.end(JSON.stringify({ message:"成功!",data:data,code:10000}));
  493. }
  494. // CMD.get_zh_recharge_template = async function(res,app_type) {
  495. // let data = await require('../src/api/zh/get_zh_recharge_template').get_zh_recharge_template(app_type)
  496. // console.log('get_zh_recharge_template:', data);
  497. // res.writeHead(200, {'Content-Type': 'application/json'});
  498. // res.end(JSON.stringify({ message:"成功!",data:data,code:10000}));
  499. // }
  500. CMD.get_zh_recharge_template = async function(res,member_token,app_id) {
  501. let data = await require('../src/api/zh/get_zh_recharge_template').get_zh_recharge_template_new(member_token,app_id)
  502. console.log('get_zh_recharge_template:', data);
  503. res.writeHead(200, {'Content-Type': 'application/json'});
  504. res.end(JSON.stringify({ message:"成功!",data:data,code:10000}));
  505. }
  506. CMD.hy_iapPassBackTemplate = async function(res,accountId) {
  507. let timestamp = helper.getCurrentUnixTimestamp()
  508. let sign = helper.generateSign({
  509. "pid":config.heiyan_config.pid,
  510. "timestamp":timestamp,
  511. "sign":"",
  512. "accountId":accountId
  513. },config.heiyan_config.key)
  514. var url = config.heiyan_config.iapPassBackTemplate
  515. var base_params = `/?sign=${sign}&pid=${config.heiyan_config.pid}&timestamp=${timestamp}`
  516. var other_params = `&accountId=${accountId}`
  517. url = `${url}${base_params}${other_params}`
  518. // console.log("url:",url)
  519. let response = await axios.get(url)
  520. let data = response.data
  521. console.log("response:",response)
  522. if(data.code==1){
  523. res.writeHead(200, {'Content-Type': 'application/json'});
  524. res.end(JSON.stringify({ message:"成功!",data:data.data,code:10000}));
  525. }else{
  526. res.writeHead(200, {'Content-Type': 'application/json'});
  527. res.end(JSON.stringify({ message:"失败",data:null,code:10001}));
  528. }
  529. }
  530. CMD.hy_iaaPassBackTemplate = async function(res,accountId) {
  531. let timestamp = helper.getCurrentUnixTimestamp()
  532. let sign = helper.generateSign({
  533. "pid":config.heiyan_config.pid,
  534. "timestamp":timestamp,
  535. "sign":"",
  536. "accountId":accountId
  537. },config.heiyan_config.key)
  538. var url = config.heiyan_config.iaaPassBackTemplate
  539. var base_params = `/?sign=${sign}&pid=${config.heiyan_config.pid}&timestamp=${timestamp}`
  540. var other_params = `&accountId=${accountId}`
  541. url = `${url}${base_params}${other_params}`
  542. // console.log("url:",url)
  543. let response = await axios.get(url)
  544. let data = response.data
  545. console.log("response:",response)
  546. if(data.code==1){
  547. res.writeHead(200, {'Content-Type': 'application/json'});
  548. res.end(JSON.stringify({ message:"成功!",data:data.data,code:10000}));
  549. }else{
  550. res.writeHead(200, {'Content-Type': 'application/json'});
  551. res.end(JSON.stringify({ message:"失败",data:null,code:10001}));
  552. }
  553. }
  554. CMD.hy_topUpTemplate = async function(res,accountId) {
  555. let timestamp = helper.getCurrentUnixTimestamp()
  556. let sign = helper.generateSign({
  557. "pid":config.heiyan_config.pid,
  558. "timestamp":timestamp,
  559. "sign":"",
  560. "accountId":accountId
  561. },config.heiyan_config.key)
  562. var url = config.heiyan_config.topUpTemplate
  563. var base_params = `/?sign=${sign}&pid=${config.heiyan_config.pid}&timestamp=${timestamp}`
  564. var other_params = `&accountId=${accountId}`
  565. url = `${url}${base_params}${other_params}`
  566. // console.log("url:",url)
  567. let response = await axios.get(url)
  568. let data = response.data
  569. console.log("response:",response)
  570. if(data.code==1){
  571. res.writeHead(200, {'Content-Type': 'application/json'});
  572. res.end(JSON.stringify({ message:"成功!",data:data.data,code:10000}));
  573. }else{
  574. res.writeHead(200, {'Content-Type': 'application/json'});
  575. res.end(JSON.stringify({ message:"失败",data:null,code:10001}));
  576. }
  577. }
  578. CMD.hy_accountMapping = async function(res) {
  579. let timestamp = helper.getCurrentUnixTimestamp()
  580. let sign = helper.generateSign({
  581. "pid":config.heiyan_config.pid,
  582. "timestamp":timestamp,
  583. "sign":""
  584. },config.heiyan_config.key)
  585. var url = config.heiyan_config.accountMapping
  586. var base_params = `/?sign=${sign}&pid=${config.heiyan_config.pid}&timestamp=${timestamp}`
  587. url = `${url}${base_params}`
  588. // console.log("url:",url)
  589. let response = await axios.get(url)
  590. let data = response.data
  591. console.log("response:",response)
  592. if(data.code==1){
  593. res.writeHead(200, {'Content-Type': 'application/json'});
  594. res.end(JSON.stringify({ message:"成功!",data:data.data,code:10000}));
  595. }else{
  596. res.writeHead(200, {'Content-Type': 'application/json'});
  597. res.end(JSON.stringify({ message:"失败",data:null,code:10001}));
  598. }
  599. }
  600. CMD.get_qm_mf_callback_template = async function(res,mini_program_platform_id,qm_id) {
  601. let data = await require('../src/api/qm_mf/get_qm_mf_call_back_template').get_callback_template(mini_program_platform_id,qm_id)
  602. console.log('get_qm_mf_callback_template:', data);
  603. res.writeHead(200, {'Content-Type': 'application/json'});
  604. res.end(JSON.stringify({ message:"成功!",data:data,code:10000}));
  605. }
  606. CMD.get_qm_mf_recharge_template = async function(res,category,mini_program_platform_id,qm_id) {
  607. let data = await require('../src/api/qm_mf/get_qm_mf_recharge_template').get_recharge_template(category,mini_program_platform_id,qm_id)
  608. console.log('get_qm_mf_recharge_template:', data);
  609. res.writeHead(200, {'Content-Type': 'application/json'});
  610. res.end(JSON.stringify({ message:"成功!",data:data,code:10000}));
  611. }
  612. CMD.get_qm_mf_account_list = async function(res) {
  613. let data = await require('../src/api/qm_mf/get_qm_mf_account_list').get_qm_account_list()
  614. console.log('get_qm_mf_account_list:', data);
  615. res.writeHead(200, {'Content-Type': 'application/json'});
  616. res.end(JSON.stringify({ message:"成功!",data:data,code:10000}));
  617. }
  618. CMD.get_zy_account_list = async function(res) {
  619. let token = await require('../src/api/zy/get_zy_token').get_token()
  620. console.log("token:",token)
  621. let clinet = tools.getOneNewClinet()
  622. let response = await clinet.get(`https://openapi-gaia.zhangyue.com/opendata/reseller/info?access_token=${token}`)
  623. let list = null
  624. if(response.data.code!=0){
  625. console.error("get_zy_account_list error:",response)
  626. }else{
  627. list = response.data.body.users
  628. }
  629. res.writeHead(200, {'Content-Type': 'application/json'});
  630. res.end(JSON.stringify({ message:"成功!",data:list,code:10000}));
  631. }
  632. CMD.get_zy_callback_template = async function(res,owner,page,size) {
  633. let token = await require('../src/api/zy/get_zy_token').get_token()
  634. let clinet = tools.getOneNewClinet()
  635. let response = await clinet.post(`https://openapi-gaia.zhangyue.com/opendata/reseller/pay/book/callback/list`,{
  636. access_token:token,
  637. owner:parseInt(owner),
  638. page:page,
  639. size:size
  640. })
  641. let list = null
  642. if(response.data.code!=0){
  643. console.error("get_zy_account_list error:",response)
  644. }else{
  645. list = response.data.body.list
  646. }
  647. res.writeHead(200, {'Content-Type': 'application/json'});
  648. res.end(JSON.stringify({ message:"成功!",data:list,code:10000}));
  649. }
  650. CMD.get_match_book_info = async function(res,book_id,platform,book_name) {
  651. console.log("book_id:",book_id)
  652. console.log("platform:",platform)
  653. console.log("book_name:",book_name)
  654. let book_info = null
  655. if(platform==config.platform_fanqie){
  656. book_info = await require('../src/api/fq/fq_search_book').根据番茄付费ID查询免费书籍(book_id)
  657. }else if(platform==config.platform_fanqiemf){
  658. book_info = await require('../src/api/fq/fq_search_book').根据番茄免费ID查询付费书籍(book_id)
  659. }else if(platform==config.platform_qimao){
  660. book_info = await require('../src/api/qm_mf/qm_mf_search_book').根据七猫付费ID查询免费书籍(book_id)
  661. }else if(platform==config.platform_qmmf){
  662. book_info = await require('../src/api/qm/qm_search_book').根据七猫免费D查询付费书籍(book_id)
  663. }else if(platform==config.platform_zy){
  664. let iaa_book_info = await require('../src/api/zy_mf/zy_mf_search_book').new_search_name(book_name)
  665. if(iaa_book_info!=null){
  666. iaa_book_info = await require('../src/api/zy_mf/zy_mf_search_book').new_search_id(iaa_book_info.book_id)
  667. if(iaa_book_info!=null){
  668. book_info = iaa_book_info
  669. }
  670. }
  671. }else if(platform==config.platform_zymf){
  672. let iap_book_info = await require('../src/api/zy/zy_search_book').new_search_name(book_name)
  673. if(iap_book_info!=null){
  674. iap_book_info = await require('../src/api/zy/zy_search_book').new_search_id(iap_book_info.book_id)
  675. if(iap_book_info!=null){
  676. book_info = iap_book_info
  677. }
  678. }
  679. }
  680. res.writeHead(200, {'Content-Type': 'application/json'});
  681. if(book_info==null){
  682. res.end(JSON.stringify({ message:"没找到对应的匹配书籍!",data:{},code:10001}));
  683. }else{
  684. res.end(JSON.stringify({ message:"成功!",data:book_info,code:10000}));
  685. }
  686. }
  687. CMD.get_zy_recharge_template = async function(res,user_id,page,size) {
  688. let token = await require('../src/api/zy/get_zy_token').get_token()
  689. let clinet = tools.getOneNewClinet()
  690. let response = await clinet.post(`https://openapi-gaia.zhangyue.com/opendata/reseller/pay/book/recharge`,{
  691. access_token:token,
  692. user_id:parseInt(user_id),
  693. page:page,
  694. size:size
  695. })
  696. let list = null
  697. if(response.data.code!=0){
  698. console.error("get_zy_recharge_template error:",response)
  699. }else{
  700. list = response.data.body.list
  701. }
  702. res.writeHead(200, {'Content-Type': 'application/json'});
  703. res.end(JSON.stringify({ message:"成功!",data:list,code:10000}));
  704. }
  705. CMD.get_zy_mf_account_list = async function(res) {
  706. let token = await require('../src/api/zy_mf/get_zy_mf_token').get_token()
  707. console.log("token:",token)
  708. let clinet = tools.getOneNewClinet()
  709. let response = await clinet.get(`https://openapi-gaia.zhangyue.com/opendata/reseller/info?access_token=${token}`)
  710. let list = null
  711. if(response.data.code!=0){
  712. console.error("get_zy_account_list error:",response)
  713. }else{
  714. list = response.data.body.users
  715. }
  716. res.writeHead(200, {'Content-Type': 'application/json'});
  717. res.end(JSON.stringify({ message:"成功!",data:list,code:10000}));
  718. }
  719. CMD.get_zy_mf_callback_template = async function(res,owner,page,size) {
  720. let token = await require('../src/api/zy_mf/get_zy_mf_token').get_token()
  721. let clinet = tools.getOneNewClinet()
  722. let response = await clinet.post(`https://openapi-gaia.zhangyue.com/opendata/reseller/free/book/callback/list`,{
  723. access_token:token,
  724. owner:parseInt(owner),
  725. page:page,
  726. size:size
  727. })
  728. let list = null
  729. if(response.data.code!=0){
  730. console.error("get_zy_account_list error:",response)
  731. }else{
  732. list = response.data.body.list
  733. }
  734. res.writeHead(200, {'Content-Type': 'application/json'});
  735. res.end(JSON.stringify({ message:"成功!",data:list,code:10000}));
  736. }
  737. var server = http.createServer(function(req,res){
  738. res.setHeader('Access-Control-Allow-Origin', '*'); // 允许所有域的请求,注意:在生产环境中应该限制为特定的域
  739. res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS'); // 允许的方法
  740. res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization'); // 允许的头部
  741. let body = '';
  742. // 监听数据块
  743. req.on('data', chunk => {
  744. body += chunk.toString(); // 将接收到的数据块转换为字符串并拼接
  745. });
  746. // 监听请求结束
  747. req.on('end', async () => {
  748. if (req.method === 'POST') {
  749. if (req.headers['content-type'] === 'application/x-www-form-urlencoded') {
  750. try {
  751. // 解析 JSON 数据
  752. const jsonData = JSON.parse(body);
  753. console.log("recv msg:",jsonData)
  754. if(jsonData['fun']=="start_filter"&&jsonData['cmd']=="filter_task"){
  755. res.writeHead(200, {'Content-Type': 'application/json'});
  756. if(task_status==false){
  757. CMD.startTask(jsonData['data'])
  758. res.end(JSON.stringify({ msg: 'success!',code:10000,data:{}}));
  759. }else{
  760. res.end(JSON.stringify({ msg: '服务器繁忙!',code:10000,data:{}}));
  761. }
  762. }else if(jsonData['fun']=="test_fq_book_sid_tt"&&jsonData['cmd']=="fq_book"){
  763. let book_id = jsonData['data']['book_id']
  764. let sid_tt = jsonData['data']['sid_tt']
  765. let info = await CMD.test_fq_book_sid_tt(book_id,sid_tt)
  766. res.writeHead(200, {'Content-Type': 'application/json'});
  767. if(info==null){
  768. res.end(JSON.stringify({ message:"失败",code:10001}));
  769. }else{
  770. res.end(JSON.stringify({ message:"成功!",data:info,code:10000}));
  771. }
  772. }else if(jsonData['fun']=="test_fq_mf_book_sid_tt"&&jsonData['cmd']=="fq_mf_book"){
  773. let book_id = jsonData['data']['book_id']
  774. let sid_tt = jsonData['data']['sid_tt']
  775. let info = await CMD.test_fq_mf_book_sid_tt(book_id,sid_tt)
  776. res.writeHead(200, {'Content-Type': 'application/json'});
  777. if(info==null){
  778. res.end(JSON.stringify({ message:"失败",code:10001}));
  779. }else{
  780. res.end(JSON.stringify({ message:"成功!",data:info,code:10000}));
  781. }
  782. }else if(jsonData['fun']=="groupMapping"&&jsonData['cmd']=="hy_link"){
  783. let type = jsonData['data']['type']
  784. let site = jsonData['data']['site']
  785. CMD.get_group_mapping(res,type,site)
  786. }else if(jsonData['fun']=="rechargeTemplate"&&jsonData['cmd']=="hy_link"){
  787. CMD.get_hy_rechargeTemplate(res)
  788. }else if(jsonData['fun']=="get_hy_SiteTemplate"&&jsonData['cmd']=="hy_link"){
  789. CMD.get_hy_SiteTemplate(res)
  790. }else if(jsonData['fun']=="passBackTemplate"&&jsonData['cmd']=="hy_link"){
  791. let is_free = jsonData['data']['is_free']
  792. CMD.get_hy_passBackTemplate(res,is_free)
  793. }
  794. else if(jsonData['fun']=="get_fq_dt_package_list"&&jsonData['cmd']=="fq_dt_link"){
  795. let app_type = jsonData['data']['app_type']
  796. // let distributor_id = jsonData['data']['distributor_id']
  797. CMD.get_fq_dt_package_list(res,config.fanqie_dt_config.distributorId,app_type)
  798. }else if(jsonData['fun']=="get_fq_dt_callback_template"&&jsonData['cmd']=="fq_dt_link"){
  799. let distributor_id = jsonData['data']['distributor_id']
  800. CMD.get_fq_dt_callback_template(res,distributor_id)
  801. }else if(jsonData['fun']=="get_fq_dt_rechargeTemplate"&&jsonData['cmd']=="fq_dt_link"){
  802. let distributor_id = jsonData['data']['distributor_id']
  803. CMD.get_fq_dt_rechargeTemplate(res,distributor_id)
  804. }else if(jsonData['fun']=="get_fq_dt_bound_package_list"&&jsonData['cmd']=="fq_dt_link"){
  805. let app_id = jsonData['data']['app_id']
  806. // let distributor_id = jsonData['data']['distributor_id']
  807. CMD.get_fq_dt_bound_package_list(res,config.fanqie_dt_config.distributorId,app_id)
  808. }
  809. else if(jsonData['fun']=="rechargeTemplate"&&jsonData['cmd']=="fq_link"){
  810. let distributor_id = jsonData['data']['distributor_id']
  811. CMD.get_fq_rechargeTemplate(res,distributor_id)
  812. }else if(jsonData['fun']=="get_fq_package_list"&&jsonData['cmd']=="fq_link"){
  813. let app_type = jsonData['data']['app_type']
  814. // let distributor_id = jsonData['data']['distributor_id']
  815. CMD.get_fq_package_list(res,config.fanqie_config.distributorId,app_type)
  816. }else if(jsonData['fun']=="get_fq_bound_package_list"&&jsonData['cmd']=="fq_link"){
  817. let app_id = jsonData['data']['app_id']
  818. // let distributor_id = jsonData['data']['distributor_id']
  819. CMD.get_fq_bound_package_list(res,config.fanqie_config.distributorId,app_id)
  820. }else if(jsonData['fun']=="get_pull_token"&&jsonData['cmd']=="pull_data_config"){
  821. CMD.get_pull_token(res)
  822. }else if(jsonData['fun']=="get_dz_book"&&jsonData['cmd']=="dz_link"){
  823. let book_id = jsonData['data']['book_id']
  824. CMD.get_dz_book(book_id,res)
  825. }else if(jsonData['fun']=="get_dz_callback_template"&&jsonData['cmd']=="dz_link"){
  826. let channelId = jsonData['data']['channelId']
  827. let isFree = jsonData['data']['isFree']
  828. CMD.get_dz_callback_template(isFree,channelId,res)
  829. }else if(jsonData['fun']=="get_dz_recharge_template"&&jsonData['cmd']=="dz_link"){
  830. let channelId = jsonData['data']['channelId']
  831. CMD.get_dz_recharge_template(channelId,res)
  832. }else if(jsonData['fun']=="get_dz_channel_Info_list"&&jsonData['cmd']=="dz_link"){
  833. let is_wx = jsonData['data']['is_wx']
  834. let isFree = jsonData['data']['isFree']
  835. CMD.get_dz_channel_Info_list(isFree,is_wx,res)
  836. }else if(jsonData['fun']=="get_qm_recharge_template"&&jsonData['cmd']=="qm_link"){
  837. let category = jsonData['data']['category']
  838. let qm_id = jsonData['data']['qm_id']
  839. let mini_program_platform_id = jsonData['data']['mini_program_platform_id']
  840. CMD.get_qm_recharge_template(res,category,mini_program_platform_id,qm_id)
  841. }else if(jsonData['fun']=="get_qm_callback_template"&&jsonData['cmd']=="qm_link"){
  842. let mini_program_platform_id = jsonData['data']['mini_program_platform_id']
  843. let qm_id = jsonData['data']['qm_id']
  844. CMD.get_qm_callback_template(res,mini_program_platform_id,qm_id)
  845. }else if(jsonData['fun']=="get_qm_account_list"&&jsonData['cmd']=="qm_link"){
  846. CMD.get_qm_account_list(res)
  847. }else if(jsonData['fun']=="get_fq_callback_template"&&jsonData['cmd']=="fq_link"){
  848. let distributor_id = jsonData['data']['distributor_id']
  849. CMD.get_fq_callback_template(res,distributor_id)
  850. }else if(jsonData['fun']=="get_yw_recharge_template"&&jsonData['cmd']=="yw_link"){
  851. let yw_id = jsonData['data']['yw_id']
  852. CMD.get_yw_recharge_template(res,yw_id)
  853. }else if(jsonData['fun']=="test_open_sessid"&&jsonData['cmd']=="yw_link"){
  854. let book_id = jsonData['data']['book_id']
  855. CMD.test_open_sessid(res,book_id)
  856. }else if(jsonData['fun']=="get_yw_open_sessid_status"&&jsonData['cmd']=="yw_link"){
  857. CMD.get_yw_open_sessid_status(res)
  858. } else if(jsonData['fun']=="get_yw_account_list"&&jsonData['cmd']=="yw_link"){
  859. let coopid = jsonData['data']['coopid']
  860. CMD.get_yw_account_list(res,coopid)
  861. } else if(jsonData['fun']=="get_zh_recharge_template"&&jsonData['cmd']=="zh_link"){
  862. let app_id = jsonData['data']['app_id']
  863. let member_token = jsonData['data']['member_token']
  864. CMD.get_zh_recharge_template(res,member_token,app_id)
  865. }else if(jsonData['fun']=="get_zh_callback_template"&&jsonData['cmd']=="zh_link"){
  866. let app_id = jsonData['data']['app_id']
  867. let member_token = jsonData['data']['member_token']
  868. CMD.get_zh_callback_template(res,member_token,app_id)
  869. } else if(jsonData['fun']=="hy_accountMapping"&&jsonData['cmd']=="hy_link"){
  870. CMD.hy_accountMapping(res)
  871. } else if(jsonData['fun']=="hy_iaaPassBackTemplate"&&jsonData['cmd']=="hy_link"){
  872. let accountId = jsonData['data']['accountId']
  873. CMD.hy_iaaPassBackTemplate(res,accountId)
  874. }else if(jsonData['fun']=="hy_iapPassBackTemplate"&&jsonData['cmd']=="hy_link"){
  875. let accountId = jsonData['data']['accountId']
  876. CMD.hy_iapPassBackTemplate(res,accountId)
  877. }else if(jsonData['fun']=="hy_topUpTemplate"&&jsonData['cmd']=="hy_link"){
  878. let accountId = jsonData['data']['accountId']
  879. CMD.hy_topUpTemplate(res,accountId)
  880. }else if(jsonData['fun']=="get_qm_mf_recharge_template"&&jsonData['cmd']=="qm_link"){
  881. let category = jsonData['data']['category']
  882. let qm_id = jsonData['data']['qm_id']
  883. let mini_program_platform_id = jsonData['data']['mini_program_platform_id']
  884. CMD.get_qm_mf_recharge_template(res,category,mini_program_platform_id,qm_id)
  885. }else if(jsonData['fun']=="get_qm_mf_callback_template"&&jsonData['cmd']=="qm_link"){
  886. let mini_program_platform_id = jsonData['data']['mini_program_platform_id']
  887. let qm_id = jsonData['data']['qm_id']
  888. CMD.get_qm_mf_callback_template(res,mini_program_platform_id,qm_id)
  889. }else if(jsonData['fun']=="get_qm_mf_account_list"&&jsonData['cmd']=="qm_link"){
  890. CMD.get_qm_mf_account_list(res)
  891. }else if(jsonData['fun']=="get_zy_recharge_template"&&jsonData['cmd']=="zy_link"){
  892. let user_id = jsonData['data']['user_id']
  893. let page = jsonData['data']['page']==undefined?1:jsonData['data']['page']
  894. let size = jsonData['data']['size']==undefined?20:jsonData['data']['size']
  895. CMD.get_zy_recharge_template(res,user_id,page,size)
  896. }else if(jsonData['fun']=="get_zy_callback_template"&&jsonData['cmd']=="zy_link"){
  897. let owner = jsonData['data']['owner']
  898. let page = jsonData['data']['page']==undefined?1:jsonData['data']['page']
  899. let size = jsonData['data']['size']==undefined?100:jsonData['data']['size']
  900. CMD.get_zy_callback_template(res,owner,page,size)
  901. }else if(jsonData['fun']=="get_zy_account_list"&&jsonData['cmd']=="zy_link"){
  902. CMD.get_zy_account_list(res)
  903. }else if(jsonData['fun']=="get_zy_mf_callback_template"&&jsonData['cmd']=="zy_mf_link"){
  904. let owner = jsonData['data']['owner']
  905. let page = jsonData['data']['page']==undefined?1:jsonData['data']['page']
  906. let size = jsonData['data']['size']==undefined?100:jsonData['data']['size']
  907. CMD.get_zy_mf_callback_template(res,owner,page,size)
  908. }else if(jsonData['fun']=="get_zy_mf_account_list"&&jsonData['cmd']=="zy_mf_link"){
  909. CMD.get_zy_mf_account_list(res)
  910. }else if(jsonData['fun']=="get_match_book_info"&&jsonData['cmd']=="match"){
  911. let book_id = jsonData['data']['book_id']
  912. let platform = parseInt(jsonData['data']['platform'])
  913. let book_name = jsonData['data']['book_name']
  914. await CMD.get_match_book_info(res,book_id,platform,book_name)
  915. } else{
  916. res.writeHead(200, {'Content-Type': 'application/json'});
  917. res.end(JSON.stringify({ message: 'fun 错误',code:100}));
  918. }
  919. } catch (error) {
  920. // 处理解析错误
  921. console.error('Error parsing JSON:', error);
  922. res.writeHead(200, {'Content-Type': 'application/json'});
  923. res.end(JSON.stringify({ error: 'Invalid JSON' }));
  924. }
  925. } else {
  926. // 如果不是 JSON 内容类型,返回错误
  927. res.writeHead(200, {'Content-Type': 'text/plain'});
  928. res.end('Unsupported Media Type. Please send data as JSON.');
  929. }
  930. }else{
  931. res.writeHead(200, {'Content-Type': 'text/plain'});
  932. res.end(' Please Use Post.');
  933. }
  934. });
  935. })
  936. server.listen(PROT,()=>{
  937. });
  938. CMD.init()