collect_coins_db.js 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265
  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(startTime, endTime) {
  9. var sql = 'select * from collect_coins_manage WHERE status=? AND update_time>=? AND update_time<=? '
  10. var param = [0, startTime, endTime]
  11. if (!startTime && !endTime) {
  12. sql = 'select * from collect_coins_manage WHERE status=? '
  13. param = [0]
  14. }
  15. // sql = 'select * from collect_coins_manage'
  16. // param=[]
  17. return new Promise((resolve) => {
  18. mysql.getMySqlInstance().getConnection(function (err, connection) {
  19. if (err) {
  20. logger.error('query_collect_total_fee', err)
  21. logger.error('query_collect_total_fee', sql)
  22. resolve(null);
  23. return;
  24. }
  25. connection.query(
  26. sql, param,
  27. function selectCb(error, results) {
  28. if (error) {
  29. logger.error('query_collect_total_fee', error, sql, param)
  30. resolve(null);
  31. return;
  32. }
  33. // logger.log('query_collect_total_fee ret=', error, results);
  34. //用完当前连接需要释放,归还给连接池
  35. connection.release();
  36. resolve({
  37. err: error,
  38. results: results
  39. });
  40. }
  41. );
  42. })
  43. })
  44. }
  45. /**
  46. * 查询归集的hash
  47. */
  48. async function query_collect_hash(hash) {
  49. var sql = 'select * from collect_coins_manage WHERE gas_trx_hash=?'
  50. var param = [hash]
  51. // sql = 'select * from collect_coins_manage'
  52. // param=[]
  53. return new Promise((resolve) => {
  54. mysql.getMySqlInstance().getConnection(function (err, connection) {
  55. if (err) {
  56. logger.error('query_collect_total_fee', err)
  57. logger.error('query_collect_total_fee', sql)
  58. resolve(null);
  59. return;
  60. }
  61. connection.query(
  62. sql, param,
  63. function selectCb(error, results) {
  64. if (error) {
  65. logger.error('query_collect_total_fee', error, sql, param)
  66. resolve(null);
  67. return;
  68. }
  69. logger.log('query_collect_total_fee ret=', error, results);
  70. //用完当前连接需要释放,归还给连接池
  71. connection.release();
  72. resolve(results
  73. );
  74. }
  75. );
  76. })
  77. })
  78. }
  79. /**
  80. * 查询归集的hash
  81. */
  82. async function query_collect_hash_list() {
  83. var sql = 'select * from collect_coins_manage WHERE gas_trx_hash!=?'
  84. var param = ['']
  85. // sql = 'select * from collect_coins_manage'
  86. // param=[]
  87. return new Promise((resolve) => {
  88. mysql.getMySqlInstance().getConnection(function (err, connection) {
  89. if (err) {
  90. logger.error('query_collect_hash_list', err)
  91. logger.error('query_collect_hash_list', sql)
  92. resolve(null);
  93. return;
  94. }
  95. connection.query(
  96. sql, param,
  97. function selectCb(error, results) {
  98. if (error) {
  99. logger.error('query_collect_hash_list', error, sql, param)
  100. resolve(null);
  101. return;
  102. }
  103. logger.log('query_collect_hash_list ret=', error, results);
  104. //用完当前连接需要释放,归还给连接池
  105. connection.release();
  106. resolve(results
  107. );
  108. }
  109. );
  110. })
  111. })
  112. }
  113. /**
  114. * 创建一个归集任务
  115. * @param {*} opts
  116. * @returns
  117. */
  118. async function create_collect_coins_task(opts) {
  119. logger.log('create_collect_coins_task', opts)
  120. var balances = opts.addressBalances ? opts.addressBalances : ''
  121. var transfers = opts.transfers ? opts.transfers : ''
  122. var prestore_gas_free = opts.prestore_gas_fee ? opts.prestore_gas_fee : ''
  123. var company_public_key = opts.company_public_key ? opts.company_public_key : ''
  124. var total_gas_fee = opts.collectCoinsTotalGasFee ? opts.collectCoinsTotalGasFee : ''
  125. var status = opts.status
  126. var resposes = opts.collects ? opts.collects : ''
  127. var error_msg = opts.errMsg ? opts.errMsg : ''
  128. var create_time = opts.createTime ? opts.createTime : utils.getCurrentDate()
  129. var update_time = utils.getCurrentDate()
  130. var user_address = opts.user_address ? opts.user_address : ''
  131. var chain = opts.chain
  132. var gas_trx_hash = opts.gas_trx_hash ? opts.gas_trx_hash : ''
  133. var before_gas_fee = opts.before_gas_fee ? opts.before_gas_fee : ''
  134. 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,before_gas_fee)' +
  135. 'VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?)'
  136. var chain = opts.chain
  137. 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, before_gas_fee]
  138. logger.log('create_collect_coins_task create_collect_coins_task_sql', create_withdraw_sql, create_withdraw_params);
  139. return new Promise((resolve) => {
  140. mysql.getMySqlInstance().getConnection(function (err, connection) {
  141. if (err) {
  142. logger.error('create_collect_coins_task', err)
  143. logger.error('create_collect_coins_task_sql', create_withdraw_sql)
  144. resolve(null);
  145. return;
  146. }
  147. connection.query(
  148. create_withdraw_sql, create_withdraw_params,
  149. function selectCb(error, results) {
  150. if (error) {
  151. logger.error('create_collect_coins_task', error, create_withdraw_sql, create_withdraw_params)
  152. resolve(null);
  153. return;
  154. }
  155. logger.log('create_collect_coins_task ret=', error, results);
  156. //用完当前连接需要释放,归还给连接池
  157. connection.release();
  158. resolve({
  159. err: error,
  160. results: results.insertId
  161. });
  162. }
  163. );
  164. })
  165. })
  166. }
  167. /**
  168. * 更新归集任务
  169. * @param {*} opts
  170. * @returns
  171. */
  172. async function update_collect_coins_task(opts) {
  173. logger.log('update_collect_coins_task', opts)
  174. var balances = opts.addressBalances ? opts.addressBalances : ''
  175. var transfers = opts.transfers ? opts.transfers : ''
  176. var prestore_gas_free = opts.prestore_gas_fee ? opts.prestore_gas_fee : ''
  177. var company_public_key = opts.company_public_key ? opts.company_public_key : ''
  178. var total_gas_fee = opts.collectCoinsTotalGasFee ? opts.collectCoinsTotalGasFee : ''
  179. var status = opts.status
  180. var resposes = opts.collects ? opts.collects : ''
  181. var error_msg = opts.errMsg ? opts.errMsg : ''
  182. var create_time = opts.createTime ? opts.createTime : utils.getCurrentDate()
  183. var update_time = utils.getCurrentDate()
  184. var user_address = opts.user_address ? opts.user_address : ''
  185. 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)' +
  186. 'VALUES(?,?,?,?,?,?,?,?,?,?,?)'
  187. 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 : '']
  188. logger.log('update_collect_coins_task update_collect_coins_task_sql', create_withdraw_sql, create_withdraw_params);
  189. return new Promise((resolve) => {
  190. mysql.getMySqlInstance().getConnection(function (err, connection) {
  191. if (err) {
  192. logger.error('update_collect_coins_task', err)
  193. logger.error('update_collect_coins_task_sql', create_withdraw_sql)
  194. resolve(null);
  195. return;
  196. }
  197. connection.query(
  198. create_withdraw_sql, create_withdraw_params,
  199. function selectCb(error, results) {
  200. if (error) {
  201. logger.error('update_collect_coins_task', error, create_withdraw_sql, create_withdraw_params)
  202. resolve(null);
  203. return;
  204. }
  205. logger.log('update_collect_coins_task ret=', error, results);
  206. //用完当前连接需要释放,归还给连接池
  207. connection.release();
  208. resolve({
  209. err: error,
  210. results: results.insertId
  211. });
  212. }
  213. );
  214. })
  215. })
  216. }
  217. module.exports = {
  218. create_collect_coins_task,
  219. update_collect_coins_task,
  220. query_collect_total_fee,
  221. query_collect_hash,
  222. query_collect_hash_list,
  223. }