collect_coins_db.js 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. const mysql = require("./mysql_db")
  2. const logger = require('../logger')
  3. var { db_config } = require('../../config/config.js')
  4. const utils = require('../utils.js')
  5. /**
  6. * 查询归集入账总金额和总消耗的 gas fee
  7. */
  8. async function query_collect_total_fee() {
  9. var sql = 'select * from collect_coins_manage WHERE status=?'
  10. var param = [0]
  11. // sql = 'select * from collect_coins_manage'
  12. // param=[]
  13. return new Promise((resolve) => {
  14. mysql.getMySqlInstance().getConnection(function (err, connection) {
  15. if (err) {
  16. logger.error('query_collect_total_fee', err)
  17. logger.error('query_collect_total_fee', sql)
  18. resolve(null);
  19. return;
  20. }
  21. connection.query(
  22. sql, param,
  23. function selectCb(error, results) {
  24. if (error) {
  25. logger.error('query_collect_total_fee', error, sql, param)
  26. resolve(null);
  27. return;
  28. }
  29. logger.log('query_collect_total_fee ret=', error, results);
  30. //用完当前连接需要释放,归还给连接池
  31. connection.release();
  32. resolve({
  33. err: error,
  34. results: results
  35. });
  36. }
  37. );
  38. })
  39. })
  40. }
  41. /**
  42. * 查询归集的hash
  43. */
  44. async function query_collect_hash(hash) {
  45. var sql = 'select * from collect_coins_manage WHERE gas_trx_hash=?'
  46. var param = [hash]
  47. // sql = 'select * from collect_coins_manage'
  48. // param=[]
  49. return new Promise((resolve) => {
  50. mysql.getMySqlInstance().getConnection(function (err, connection) {
  51. if (err) {
  52. logger.error('query_collect_total_fee', err)
  53. logger.error('query_collect_total_fee', sql)
  54. resolve(null);
  55. return;
  56. }
  57. connection.query(
  58. sql, param,
  59. function selectCb(error, results) {
  60. if (error) {
  61. logger.error('query_collect_total_fee', error, sql, param)
  62. resolve(null);
  63. return;
  64. }
  65. logger.log('query_collect_total_fee ret=', error, results);
  66. //用完当前连接需要释放,归还给连接池
  67. connection.release();
  68. resolve(results
  69. );
  70. }
  71. );
  72. })
  73. })
  74. }
  75. /**
  76. * 创建一个归集任务
  77. * @param {*} opts
  78. * @returns
  79. */
  80. async function create_collect_coins_task(opts) {
  81. logger.log('create_collect_coins_task', opts)
  82. var balances = opts.addressBalances ? opts.addressBalances : ''
  83. var transfers = opts.transfers ? opts.transfers : ''
  84. var prestore_gas_free = opts.prestore_gas_fee ? opts.prestore_gas_fee : ''
  85. var company_public_key = opts.company_public_key ? opts.company_public_key : ''
  86. var total_gas_fee = opts.collectCoinsTotalGasFee ? opts.collectCoinsTotalGasFee : ''
  87. var status = opts.status
  88. var resposes = opts.collects ? opts.collects : ''
  89. var error_msg = opts.errMsg ? opts.errMsg : ''
  90. var create_time = opts.createTime ? opts.createTime : utils.getCurrentDate()
  91. var update_time = utils.getCurrentDate()
  92. var user_address = opts.user_address ? opts.user_address : ''
  93. var chain = opts.chain
  94. var gas_trx_hash = opts.gas_trx_hash ? opts.gas_trx_hash : ''
  95. var create_withdraw_sql = 'INSERT INTO collect_coins_manage (user_address,balances,transfers,prestore_gas_fee,company_public_key,total_gas_fee,status,create_time,update_time,resposes,error_msg,chain,gas_trx_hash)' +
  96. 'VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?)'
  97. var chain = opts.chain
  98. var create_withdraw_params = [user_address, JSON.stringify(balances), JSON.stringify(transfers), JSON.stringify(prestore_gas_free), company_public_key, total_gas_fee, status, create_time, update_time, resposes, error_msg ? error_msg : '', chain, gas_trx_hash]
  99. logger.log('create_collect_coins_task create_collect_coins_task_sql', create_withdraw_sql, create_withdraw_params);
  100. return new Promise((resolve) => {
  101. mysql.getMySqlInstance().getConnection(function (err, connection) {
  102. if (err) {
  103. logger.error('create_collect_coins_task', err)
  104. logger.error('create_collect_coins_task_sql', create_withdraw_sql)
  105. resolve(null);
  106. return;
  107. }
  108. connection.query(
  109. create_withdraw_sql, create_withdraw_params,
  110. function selectCb(error, results) {
  111. if (error) {
  112. logger.error('create_collect_coins_task', error, create_withdraw_sql, create_withdraw_params)
  113. resolve(null);
  114. return;
  115. }
  116. logger.log('create_collect_coins_task ret=', error, results);
  117. //用完当前连接需要释放,归还给连接池
  118. connection.release();
  119. resolve({
  120. err: error,
  121. results: results.insertId
  122. });
  123. }
  124. );
  125. })
  126. })
  127. }
  128. /**
  129. * 更新归集任务
  130. * @param {*} opts
  131. * @returns
  132. */
  133. async function update_collect_coins_task(opts) {
  134. logger.log('update_collect_coins_task', opts)
  135. var balances = opts.addressBalances ? opts.addressBalances : ''
  136. var transfers = opts.transfers ? opts.transfers : ''
  137. var prestore_gas_free = opts.prestore_gas_fee ? opts.prestore_gas_fee : ''
  138. var company_public_key = opts.company_public_key ? opts.company_public_key : ''
  139. var total_gas_fee = opts.collectCoinsTotalGasFee ? opts.collectCoinsTotalGasFee : ''
  140. var status = opts.status
  141. var resposes = opts.collects ? opts.collects : ''
  142. var error_msg = opts.errMsg ? opts.errMsg : ''
  143. var create_time = opts.createTime ? opts.createTime : utils.getCurrentDate()
  144. var update_time = utils.getCurrentDate()
  145. var user_address = opts.user_address ? opts.user_address : ''
  146. var create_withdraw_sql = 'INSERT INTO collect_coins_manage (user_address,balances,transfers,prestore_gas_fee,company_public_key,total_gas_fee,status,create_time,update_time,resposes,error_msg)' +
  147. 'VALUES(?,?,?,?,?,?,?,?,?,?,?)'
  148. var create_withdraw_params = [user_address, JSON.stringify(balances), JSON.stringify(transfers), JSON.stringify(prestore_gas_free), company_public_key, total_gas_fee, status, create_time, update_time, resposes, error_msg ? error_msg : '']
  149. logger.log('update_collect_coins_task update_collect_coins_task_sql', create_withdraw_sql, create_withdraw_params);
  150. return new Promise((resolve) => {
  151. mysql.getMySqlInstance().getConnection(function (err, connection) {
  152. if (err) {
  153. logger.error('update_collect_coins_task', err)
  154. logger.error('update_collect_coins_task_sql', create_withdraw_sql)
  155. resolve(null);
  156. return;
  157. }
  158. connection.query(
  159. create_withdraw_sql, create_withdraw_params,
  160. function selectCb(error, results) {
  161. if (error) {
  162. logger.error('update_collect_coins_task', error, create_withdraw_sql, create_withdraw_params)
  163. resolve(null);
  164. return;
  165. }
  166. logger.log('update_collect_coins_task ret=', error, results);
  167. //用完当前连接需要释放,归还给连接池
  168. connection.release();
  169. resolve({
  170. err: error,
  171. results: results.insertId
  172. });
  173. }
  174. );
  175. })
  176. })
  177. }
  178. module.exports = {
  179. create_collect_coins_task,
  180. update_collect_coins_task,
  181. query_collect_total_fee,
  182. query_collect_hash,
  183. }