report.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  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. }
  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.status, res.data);
  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 && Array.isArray(results) && results.length > 0) {
  52. obj.results = results
  53. } else {
  54. return
  55. }
  56. }
  57. }
  58. var params = {
  59. eventData: obj
  60. }
  61. params.logType = http_log_report_config.LOG_TYPE
  62. logger.log('transfer_record')
  63. if (!obj.results) {
  64. logger.log('transfer_record', obj.results)
  65. return
  66. }
  67. http_request_post(params);
  68. break
  69. case REPORT_TYPE.collect_coins:
  70. logger.log('collect_coins')
  71. var params = {
  72. eventData: obj
  73. }
  74. params.logType = http_log_report_config.LOG_TYPE
  75. http_request_post(params);
  76. break
  77. case REPORT_TYPE.withdraw:
  78. logger.log('withdraw')
  79. var params = {
  80. eventData: obj
  81. }
  82. params.logType = http_log_report_config.LOG_TYPE
  83. http_request_post(params);
  84. break
  85. }
  86. }
  87. module.exports = {
  88. logReport,
  89. REPORT_TYPE,
  90. }