report.js 2.7 KB

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