123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227 |
- const mysql = require("./mysql_db")
- const logger = require('../logger')
- var { db_config } = require('../../config/config.js')
- const utils = require('../utils.js')
- /**
- * 查询归集入账总金额和总消耗的 gas fee
- */
- async function query_collect_total_fee(startTime, endTime) {
- var sql = 'select * from collect_coins_manage WHERE status=? AND update_time>=? AND update_time<=? '
- var param = [0, startTime, endTime]
- if (!startTime && !endTime) {
- sql = 'select * from collect_coins_manage WHERE status=? '
- param = [0]
- }
- // sql = 'select * from collect_coins_manage'
- // param=[]
- return new Promise((resolve) => {
- mysql.getMySqlInstance().getConnection(function (err, connection) {
- if (err) {
- logger.error('query_collect_total_fee', err)
- logger.error('query_collect_total_fee', sql)
- resolve(null);
- return;
- }
- connection.query(
- sql, param,
- function selectCb(error, results) {
- if (error) {
- logger.error('query_collect_total_fee', error, sql, param)
- resolve(null);
- return;
- }
- // logger.log('query_collect_total_fee ret=', error, results);
- //用完当前连接需要释放,归还给连接池
- connection.release();
- resolve({
- err: error,
- results: results
- });
- }
- );
- })
- })
- }
- /**
- * 查询归集的hash
- */
- async function query_collect_hash(hash) {
- var sql = 'select * from collect_coins_manage WHERE gas_trx_hash=?'
- var param = [hash]
- // sql = 'select * from collect_coins_manage'
- // param=[]
- return new Promise((resolve) => {
- mysql.getMySqlInstance().getConnection(function (err, connection) {
- if (err) {
- logger.error('query_collect_total_fee', err)
- logger.error('query_collect_total_fee', sql)
- resolve(null);
- return;
- }
- connection.query(
- sql, param,
- function selectCb(error, results) {
- if (error) {
- logger.error('query_collect_total_fee', error, sql, param)
- resolve(null);
- return;
- }
- logger.log('query_collect_total_fee ret=', error, results);
- //用完当前连接需要释放,归还给连接池
- connection.release();
- resolve(results
- );
- }
- );
- })
- })
- }
- /**
- * 创建一个归集任务
- * @param {*} opts
- * @returns
- */
- async function create_collect_coins_task(opts) {
- logger.log('create_collect_coins_task', opts)
- var balances = opts.addressBalances ? opts.addressBalances : ''
- var transfers = opts.transfers ? opts.transfers : ''
- var prestore_gas_free = opts.prestore_gas_fee ? opts.prestore_gas_fee : ''
- var company_public_key = opts.company_public_key ? opts.company_public_key : ''
- var total_gas_fee = opts.collectCoinsTotalGasFee ? opts.collectCoinsTotalGasFee : ''
- var status = opts.status
- var resposes = opts.collects ? opts.collects : ''
- var error_msg = opts.errMsg ? opts.errMsg : ''
- var create_time = opts.createTime ? opts.createTime : utils.getCurrentDate()
- var update_time = utils.getCurrentDate()
- var user_address = opts.user_address ? opts.user_address : ''
- var chain = opts.chain
- var gas_trx_hash = opts.gas_trx_hash ? opts.gas_trx_hash : ''
- var before_gas_fee = opts.before_gas_fee ? opts.before_gas_fee : ''
- 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)' +
- 'VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?)'
- var chain = opts.chain
- 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]
- logger.log('create_collect_coins_task create_collect_coins_task_sql', create_withdraw_sql, create_withdraw_params);
- return new Promise((resolve) => {
- mysql.getMySqlInstance().getConnection(function (err, connection) {
- if (err) {
- logger.error('create_collect_coins_task', err)
- logger.error('create_collect_coins_task_sql', create_withdraw_sql)
- resolve(null);
- return;
- }
- connection.query(
- create_withdraw_sql, create_withdraw_params,
- function selectCb(error, results) {
- if (error) {
- logger.error('create_collect_coins_task', error, create_withdraw_sql, create_withdraw_params)
- resolve(null);
- return;
- }
- logger.log('create_collect_coins_task ret=', error, results);
- //用完当前连接需要释放,归还给连接池
- connection.release();
- resolve({
- err: error,
- results: results.insertId
- });
- }
- );
- })
- })
- }
- /**
- * 更新归集任务
- * @param {*} opts
- * @returns
- */
- async function update_collect_coins_task(opts) {
- logger.log('update_collect_coins_task', opts)
- var balances = opts.addressBalances ? opts.addressBalances : ''
- var transfers = opts.transfers ? opts.transfers : ''
- var prestore_gas_free = opts.prestore_gas_fee ? opts.prestore_gas_fee : ''
- var company_public_key = opts.company_public_key ? opts.company_public_key : ''
- var total_gas_fee = opts.collectCoinsTotalGasFee ? opts.collectCoinsTotalGasFee : ''
- var status = opts.status
- var resposes = opts.collects ? opts.collects : ''
- var error_msg = opts.errMsg ? opts.errMsg : ''
- var create_time = opts.createTime ? opts.createTime : utils.getCurrentDate()
- var update_time = utils.getCurrentDate()
- var user_address = opts.user_address ? opts.user_address : ''
- 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)' +
- 'VALUES(?,?,?,?,?,?,?,?,?,?,?)'
- 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 : '']
- logger.log('update_collect_coins_task update_collect_coins_task_sql', create_withdraw_sql, create_withdraw_params);
- return new Promise((resolve) => {
- mysql.getMySqlInstance().getConnection(function (err, connection) {
- if (err) {
- logger.error('update_collect_coins_task', err)
- logger.error('update_collect_coins_task_sql', create_withdraw_sql)
- resolve(null);
- return;
- }
- connection.query(
- create_withdraw_sql, create_withdraw_params,
- function selectCb(error, results) {
- if (error) {
- logger.error('update_collect_coins_task', error, create_withdraw_sql, create_withdraw_params)
- resolve(null);
- return;
- }
- logger.log('update_collect_coins_task ret=', error, results);
- //用完当前连接需要释放,归还给连接池
- connection.release();
- resolve({
- err: error,
- results: results.insertId
- });
- }
- );
- })
- })
- }
- module.exports = {
- create_collect_coins_task,
- update_collect_coins_task,
- query_collect_total_fee,
- query_collect_hash,
- }
|