report.js 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  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("./redis_db") //导入 db.js
  5. const mysql = require("./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. }
  14. const http_request_post = async (params) => {
  15. var data = {
  16. baseInfo: {},
  17. params: {
  18. eventData: JSON.stringify(params.eventData),
  19. logType: params.logType,
  20. },
  21. }
  22. var host = http_log_report_config.HOST
  23. var path = http_log_report_config.PATH
  24. var url = host + path
  25. var url = host + path
  26. logger.log('http_request_post eventData', params.eventData)
  27. logger.log('http_request_post', JSON.stringify(data), url)
  28. axios.post(url, data)
  29. .then(res => {
  30. logger.log('res=>', res);
  31. }).catch(err => {
  32. logger.error('http_request_post', err);
  33. });
  34. }
  35. /**
  36. * 日志埋点上报
  37. * @param {*} obj
  38. */
  39. const logReport = async (obj) => {
  40. switch (obj.type) {
  41. case REPORT_TYPE.transfer_record:
  42. var results;
  43. if (obj.results) {
  44. var rets = JSON.parse(obj.results)
  45. if (rets.code == 0 && rets.data && rets.data.result) {
  46. results = rets.data.result.filter(element => {
  47. console.log('filter', element, obj.address)
  48. return element.to_address.toString().toLowerCase() == obj.address.toString().toLowerCase()
  49. })
  50. console.log('filter results', results)
  51. if (results) {
  52. obj.results = results
  53. }
  54. }
  55. }
  56. var params = {
  57. eventData: obj
  58. }
  59. params.logType = http_log_report_config.LOG_TYPE
  60. logger.log('transfer_record')
  61. http_request_post(params);
  62. break
  63. case REPORT_TYPE.collect_coins:
  64. logger.log('collect_coins')
  65. var params = {
  66. eventData: obj
  67. }
  68. params.logType = http_log_report_config.LOG_TYPE
  69. http_request_post(params);
  70. break
  71. case REPORT_TYPE.withdraw:
  72. logger.log('withdraw')
  73. var params = {
  74. eventData: obj
  75. }
  76. params.logType = http_log_report_config.LOG_TYPE
  77. http_request_post(params);
  78. break
  79. }
  80. }
  81. module.exports = {
  82. logReport,
  83. REPORT_TYPE,
  84. }