report.js 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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.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) {
  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. if(!obj.results){
  62. logger.log('transfer_record',obj.results)
  63. return
  64. }
  65. http_request_post(params);
  66. break
  67. case REPORT_TYPE.collect_coins:
  68. logger.log('collect_coins')
  69. var params = {
  70. eventData: obj
  71. }
  72. params.logType = http_log_report_config.LOG_TYPE
  73. http_request_post(params);
  74. break
  75. case REPORT_TYPE.withdraw:
  76. logger.log('withdraw')
  77. var params = {
  78. eventData: obj
  79. }
  80. params.logType = http_log_report_config.LOG_TYPE
  81. http_request_post(params);
  82. break
  83. }
  84. }
  85. module.exports = {
  86. logReport,
  87. REPORT_TYPE,
  88. }