report.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. const axios = require('axios');
  2. var utils = require('./utils.js');
  3. var { http_log_report_config } = require('../config/config.js')
  4. const redis = require("./db/redis_db") //导入 db.js
  5. const mysql = require("./db/mysql_db")
  6. const logger = require('./logger')
  7. //埋点文档 https://st94nif1cq.feishu.cn/docs/doccnoEvFRxdD0zy4I0MVhzCMLg#
  8. //测试环境阿里 https://sls.console.aliyun.com/lognext/project/wqsd-longvideo-frontend-log-test/logsearch/denet-event-log
  9. const REPORT_TYPE = {
  10. transfer_record: 'transfer_record',
  11. collect_coins: 'collect_coins',
  12. withdraw: 'withdraw',
  13. monitor: 'monitor'
  14. }
  15. const http_request_post = async (params) => {
  16. var data = {
  17. baseInfo: {},
  18. params: {
  19. eventData: JSON.stringify(params.eventData),
  20. logType: params.logType,
  21. },
  22. }
  23. var host = http_log_report_config.HOST
  24. var path = http_log_report_config.PATH
  25. var url = host + path
  26. var url = host + path
  27. // logger.log('http_request_post eventData', params.eventData)
  28. // logger.log('http_request_post', JSON.stringify(data), url)
  29. // axios.post(url, data)
  30. // .then(res => {
  31. // logger.log('res=>', res.status, res.data);
  32. // }).catch(err => {
  33. // logger.error('http_request_post', err.toString(),url.toString());
  34. // });
  35. }
  36. /**
  37. * 日志埋点上报
  38. * @param {*} obj
  39. */
  40. const logReport = async (obj) => {
  41. switch (obj.type) {
  42. case REPORT_TYPE.transfer_record:
  43. var results;
  44. if (obj.results) {
  45. var rets = JSON.parse(obj.results)
  46. if (rets.code == 0 && rets.data && rets.data.result) {
  47. results = rets.data.result.filter(element => {
  48. // console.log('filter', element, obj.address)
  49. return element.to_address.toString().toLowerCase() == obj.address.toString().toLowerCase()
  50. })
  51. // console.log('filter results', results)
  52. if (results && Array.isArray(results) && results.length > 0) {
  53. obj.results = results
  54. } else {
  55. return
  56. }
  57. }
  58. }
  59. var params = {
  60. eventData: obj
  61. }
  62. params.logType = http_log_report_config.LOG_TYPE
  63. logger.log('transfer_record')
  64. if (!obj.results) {
  65. logger.log('transfer_record', obj.results)
  66. return
  67. }
  68. http_request_post(params);
  69. break
  70. case REPORT_TYPE.collect_coins:
  71. logger.log('collect_coins')
  72. var params = {
  73. eventData: obj
  74. }
  75. params.logType = http_log_report_config.LOG_TYPE
  76. http_request_post(params);
  77. break
  78. case REPORT_TYPE.withdraw:
  79. logger.log('withdraw')
  80. var params = {
  81. eventData: obj
  82. }
  83. params.logType = http_log_report_config.LOG_TYPE
  84. http_request_post(params);
  85. break
  86. }
  87. }
  88. module.exports = {
  89. logReport,
  90. REPORT_TYPE,
  91. }