实现tg会员批量充值代码,界面监听地址增加别名和备注

pull/520/head
dorion 2024-05-15 21:48:44 +08:00
parent b5737a75c4
commit e9cfc770c5
26 changed files with 371 additions and 159 deletions

View File

@ -147,7 +147,7 @@
</plugin> -->
</plugins>
<finalName>${project.artifactId}</finalName>
<resources>
<!-- <resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
@ -155,7 +155,7 @@
<exclude>*.xml</exclude>
</excludes>
</resource>
</resources>
</resources>-->
</build>

View File

@ -8,6 +8,7 @@ import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.telegram.telegrambots.meta.TelegramBotsApi;
import org.telegram.telegrambots.updatesreceivers.DefaultBotSession;
@ -19,6 +20,7 @@ import org.telegram.telegrambots.updatesreceivers.DefaultBotSession;
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
@MapperScan("com.ruoyi.system.mapper")
@Slf4j
@EnableAsync
public class RuoYiApplication implements CommandLineRunner
{
@Autowired(required = false)

View File

@ -34,7 +34,7 @@ server:
# 日志配置
logging:
level:
com.ruoyi: info
com.ruoyi: debug
org.springframework: warn
# 用户配置

View File

@ -1,103 +1,111 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<th:block th:include="include :: header('trx兑能量记录列表')" />
<th:block th:include="include :: header('trx兑能量记录列表')"/>
</head>
<body class="gray-bg">
<div class="container-div">
<div class="row">
<div class="col-sm-12 search-collapse">
<form id="formId">
<div class="select-list">
<ul>
<li>
<label>交易账户:</label>
<input type="text" name="fromAddress"/>
</li>
<li>
<label>转入账户:</label>
<input type="text" name="toAddress"/>
</li>
<!-- <li>
<label>实际出账账户:</label>
<input type="text" name="accountAddress"/>
</li>-->
<div class="container-div">
<div class="row">
<div class="col-sm-12 search-collapse">
<form id="formId">
<div class="select-list">
<ul>
<li>
<label>交易账户:</label>
<input type="text" name="fromAddress"/>
</li>
<li>
<label>转入账户:</label>
<input type="text" name="toAddress"/>
</li>
<!-- <li>
<label>实际出账账户:</label>
<input type="text" name="accountAddress"/>
</li>-->
<li>
<label>TRX订单</label>
<input type="text" name="trxTxId"/>
</li>
<li>
<label>TRX订单</label>
<input type="text" name="trxTxId"/>
</li>
<!-- <li>
<label>能量交易订单:</label>
<input type="text" name="delegateTxId"/>
</li>-->
<li>
<label>资源委托状态:</label>
<select class="form-control" name="delegateStatus" th:with="type=${@dict.getType('sys_delegate_status')}">
<option value="">全部</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" ></option>
</select>
</li>
<!-- <br/> <br/> <br/>-->
<!--
<li>
<label>回收资源交易:</label>
<input type="text" name="unDelegateTxId"/>
</li>-->
<li>
<label>创建时间:</label>
<input type="text" class="time-input" placeholder="请选择创建时间" name="fcd"/>
</li>
<!-- <li>
<label>能量交易订单:</label>
<input type="text" name="delegateTxId"/>
</li>-->
<li>
<label>资源委托状态:</label>
<select class="form-control" name="delegateStatus"
th:with="type=${@dict.getType('sys_delegate_status')}">
<option value="">全部</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}"
th:value="${dict.dictValue}"></option>
</select>
</li>
<!-- <br/> <br/> <br/>-->
<!--
<li>
<label>回收资源交易:</label>
<input type="text" name="unDelegateTxId"/>
</li>-->
<li class="select-time">
<label>创建时间:</label>
<input type="text" class="time-input" id="startTime" placeholder="开始时间" name="params[beginFcd]"/>
<span>-</span>
<input type="text" class="time-input" id="endTime" placeholder="结束时间" name="params[endFcd]"/>
</li>
<li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
</li>
</ul>
</div>
</form>
</div>
<li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i
class="fa fa-search"></i>&nbsp;搜索</a>
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i
class="fa fa-refresh"></i>&nbsp;重置</a>
</li>
</ul>
</div>
</form>
</div>
<div class="btn-group-sm" id="toolbar" role="group">
<a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="trx2Energy:exchange:add">
<i class="fa fa-plus"></i> 手动委托资源
</a>
<a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="trx2Energy:exchange:edit">
<i class="fa fa-edit"></i> 修改
</a>
<a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="trx2Energy:exchange:remove">
<i class="fa fa-remove"></i> 删除
</a>
<a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="trx2Energy:exchange:export">
<i class="fa fa-download"></i> 导出
</a>
</div>
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table"></table>
</div>
<div class="btn-group-sm" id="toolbar" role="group">
<a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="trx2Energy:exchange:add">
<i class="fa fa-plus"></i> 手动委托资源
</a>
<a class="btn btn-primary single disabled" onclick="$.operate.edit()"
shiro:hasPermission="trx2Energy:exchange:edit">
<i class="fa fa-edit"></i> 修改
</a>
<a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()"
shiro:hasPermission="trx2Energy:exchange:remove">
<i class="fa fa-remove"></i> 删除
</a>
<a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="trx2Energy:exchange:export">
<i class="fa fa-download"></i> 导出
</a>
</div>
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table"></table>
</div>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var editFlag = [[${@permission.hasPermi('trx2Energy:exchange:edit')}]];
var removeFlag = [[${@permission.hasPermi('trx2Energy:exchange:remove')}]];
var prefix = ctx + "trx2Energy/exchange";
var datas = [[${@dict.getType('sys_delegate_status')}]];
var tranferCountDatas = [[${@dict.getType('sys_transfer_number')}]];
var sysEnergyBusiTypeDatas = [[${@dict.getType('sys_energy_busi_type')}]];
var lockPeriodDatas = [[${@dict.getType('sys_lock_period')}]];
$(function() {
var options = {
url: prefix + "/list",
createUrl: prefix + "/add",
updateUrl: prefix + "/edit/{id}",
removeUrl: prefix + "/remove",
exportUrl: prefix + "/export",
modalName: "trx兑能量记录",
columns: [{
checkbox: true
},
</div>
<th:block th:include="include :: footer"/>
<script th:inline="javascript">
var editFlag = [[${@permission.hasPermi('trx2Energy:exchange:edit')}]];
var removeFlag = [[${@permission.hasPermi('trx2Energy:exchange:remove')}]];
var prefix = ctx + "trx2Energy/exchange";
var datas = [[${@dict.getType('sys_delegate_status')}]];
var tranferCountDatas = [[${@dict.getType('sys_transfer_number')}]];
var sysEnergyBusiTypeDatas = [[${@dict.getType('sys_energy_busi_type')}]];
var lockPeriodDatas = [[${@dict.getType('sys_lock_period')}]];
$(function () {
var options = {
url: prefix + "/list",
createUrl: prefix + "/add",
updateUrl: prefix + "/edit/{id}",
removeUrl: prefix + "/remove",
exportUrl: prefix + "/export",
modalName: "trx兑能量记录",
columns: [{
checkbox: true
},
{
field: 'idTrxExchangeInfo',
title: 'trx进账表',
@ -105,19 +113,29 @@
},
{
field: 'fromAddress',
title: '交易账户',
formatter:function(value, row, index) {
return "<a href='https://www.oklink.com/zh-hans/trx/address/"+value+"' target='_blank'>" + value + "</a>";
title: '付款账户',
formatter: function (value, row, index) {
return "<a href='https://www.oklink.com/zh-hans/trx/address/" + value + "' target='_blank'>" + value + "</a>";
}
},
{
field: 'toAddress',
title: '转入账户'
title: '收款账户',
visible: false
}, {
field: 'monitorAddressName',
title: '收款账户别名',
formatter: function (value, row, index) {
if (value == null) {
return value;
}
return "<a href='https://www.oklink.com/zh-hans/trx/address/" + row['toAddress'] + "' target='_blank'>" + value + "</a>";
}
},
/* {
field: 'accountAddress',
title: '实际出账账户'
},*/
/* {
field: 'accountAddress',
title: '实际出账账户'
},*/
{
field: 'price',
title: '单价'
@ -127,20 +145,20 @@
title: 'TRX订单',
visible: false
},
{
field: 'tranferCount',
title: '笔数',
formatter: function(value, row, index) {
return $.table.selectDictLabel(tranferCountDatas, value);
}
},
{
field: 'energyBusiType',
title: '业务类型',
formatter: function(value, row, index) {
return $.table.selectDictLabel(sysEnergyBusiTypeDatas, value);
}
},
{
field: 'tranferCount',
title: '笔数',
formatter: function (value, row, index) {
return $.table.selectDictLabel(tranferCountDatas, value);
}
},
{
field: 'energyBusiType',
title: '业务类型',
formatter: function (value, row, index) {
return $.table.selectDictLabel(sysEnergyBusiTypeDatas, value);
}
},
{
field: 'trxAmount',
title: '转入TRX'
@ -157,14 +175,14 @@
{
field: 'lockPeriod',
title: '锁定周期',
formatter: function(value, row, index) {
formatter: function (value, row, index) {
return $.table.selectDictLabel(lockPeriodDatas, value);
}
},
{
field: 'delegateStatus',
title: '资源状态',
formatter: function(value, item, index) {
formatter: function (value, item, index) {
return $.table.selectDictLabel(datas, item.delegateStatus);
}
},
@ -177,10 +195,10 @@
field: 'fcd',
title: '创建时间'
},
/* {
field: 'fcu',
title: '创建用户'
},*/
/* {
field: 'fcu',
title: '创建用户'
},*/
{
field: 'lcd',
title: '更新时间',
@ -193,16 +211,16 @@
{
title: '操作',
align: 'center',
formatter: function(value, row, index) {
formatter: function (value, row, index) {
var actions = [];
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.idTrxExchangeInfo + '\')"><i class="fa fa-edit"></i>编辑</a> ');
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.idTrxExchangeInfo + '\')"><i class="fa fa-remove"></i>删除</a>');
return actions.join('');
}
}]
};
$.table.init(options);
});
</script>
};
$.table.init(options);
});
</script>
</body>
</html>

View File

@ -15,10 +15,16 @@
</select>
</div>
</div>-->
<div class="form-group">
<label class="col-sm-3 control-label">地址别名:</label>
<div class="col-sm-8">
<input name="monitorAddressName" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">监听地址:</label>
<div class="col-sm-8">
<input name="monitorAddress" class="form-control" type="text">
<input name="monitorAddress" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
@ -33,7 +39,7 @@
<div class="form-group">
<label class="col-sm-3 control-label">TRX兑换单价/TRX</label>
<div class="col-sm-8">
<input name="trxPrice" class="form-control" type="text">
<input name="trxPrice" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
@ -60,6 +66,12 @@
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">备注:</label>
<div class="col-sm-8">
<input name="comment" class="form-control" type="text">
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer"/>

View File

@ -8,14 +8,13 @@
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-monitor-edit" th:object="${monitorAddressInfo}">
<input name="idMonitorAddress" th:field="*{idMonitorAddress}" type="hidden">
<!-- <div class="form-group">
<label class="col-sm-3 control-label">业务类型:</label>
<div class="form-group">
<label class="col-sm-3 control-label">地址别名:</label>
<div class="col-sm-8">
<select name="busiType" class="form-control m-b" th:with="type=${@dict.getType('sys_busi_type')}">
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{busiType}"></option>
</select>
<input name="monitorAddressName" th:field="*{monitorAddressName}" class="form-control" type="text">
</div>
</div>-->
</div>
<div class="form-group">
<label class="col-sm-3 control-label">监听地址:</label>
<div class="col-sm-8">
@ -71,6 +70,12 @@
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">备注:</label>
<div class="col-sm-8">
<input name="comment" th:field="*{comment}" class="form-control" type="text">
</div>
</div>
</form>
</div>

View File

@ -36,9 +36,11 @@
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li>
<li>
<li class="select-time">
<label>创建时间:</label>
<input type="text" class="time-input" placeholder="请选择创建时间" name="fcd"/>
<input type="text" class="time-input" id="startTime" placeholder="开始时间" name="params[beginFcd]"/>
<span>-</span>
<input type="text" class="time-input" id="endTime" placeholder="结束时间" name="params[endFcd]"/>
</li>
<li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
@ -93,6 +95,10 @@
title: '主键',
visible: false
},
{
field: 'monitorAddressName',
title: '地址别名'
},
{
field: 'monitorAddress',
title: '监听地址'
@ -148,7 +154,10 @@
formatter: function(value, item, index) {
return $.table.selectDictLabel(datas, item.isValid);
}
},
}, {
field: 'comment',
title: '备注'
},
{
field: 'fcd',
title: '创建时间',

View File

@ -8,7 +8,7 @@
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-usdt-add">
<div class="form-group">
<label class="col-sm-3 control-label">转入地址:</label>
<label class="col-sm-3 control-label">付款地址:</label>
<div class="col-sm-8">
<input name="fromAddress" class="form-control" type="text">
</div>

View File

@ -23,9 +23,11 @@
<input type="text" name="usdtTxId"/>
</li>
<li>
<li class="select-time">
<label>创建时间:</label>
<input type="text" class="time-input" placeholder="请选择创建时间" name="fcd"/>
<input type="text" class="time-input" id="startTime" placeholder="开始时间" name="params[beginFcd]"/>
<span>-</span>
<input type="text" class="time-input" id="endTime" placeholder="结束时间" name="params[endFcd]"/>
</li>
<li>
@ -80,15 +82,25 @@
},
{
field: 'fromAddress',
title: '交易地址',
title: '付款账户',
formatter:function(value, row, index) {
return "<a href='https://www.oklink.com/zh-hans/trx/address/"+value+"' target='_blank'>" + value + "</a>";
}
},
{
field: 'toAddress',
title: '转入地址'
},
{
field: 'toAddress',
title: '收款账户',
visible: false
}, {
field: 'monitorAddressName',
title: '收款账户别名',
formatter: function (value, row, index) {
if (value == null) {
return value;
}
return "<a href='https://www.oklink.com/zh-hans/trx/address/" + row['toAddress'] + "' target='_blank'>" + value + "</a>";
}
},
{
field: 'usdtTxId',
title: '交易订单'

View File

@ -15,6 +15,12 @@
</select>
</div>
</div>-->
<div class="form-group">
<label class="col-sm-3 control-label">地址别名:</label>
<div class="col-sm-8">
<input name="monitorAddressName" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">监听地址:</label>
<div class="col-sm-8">
@ -40,6 +46,12 @@
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">备注:</label>
<div class="col-sm-8">
<input name="comment" class="form-control" type="text">
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer"/>

View File

@ -16,6 +16,12 @@
</select>
</div>
</div>-->
<div class="form-group">
<label class="col-sm-3 control-label">地址别名:</label>
<div class="col-sm-8">
<input name="monitorAddressName" th:field="*{monitorAddressName}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">监听地址:</label>
<div class="col-sm-8">
@ -51,6 +57,13 @@
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">备注:</label>
<div class="col-sm-8">
<input name="comment" th:field="*{comment}" class="form-control" type="text">
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer" />

View File

@ -36,9 +36,11 @@
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li>
<li>
<li class="select-time">
<label>创建时间:</label>
<input type="text" class="time-input" placeholder="请选择创建时间" name="fcd"/>
<input type="text" class="time-input" id="startTime" placeholder="开始时间" name="params[beginFcd]"/>
<span>-</span>
<input type="text" class="time-input" id="endTime" placeholder="结束时间" name="params[endFcd]"/>
</li>
<li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
@ -93,6 +95,10 @@
title: '主键',
visible: false
},
{
field: 'monitorAddressName',
title: '地址别名'
},
{
field: 'monitorAddress',
title: '监听地址'
@ -121,7 +127,10 @@
formatter: function(value, item, index) {
return $.table.selectDictLabel(datas, item.isValid);
}
},
},{
field: 'comment',
title: '备注'
},
{
field: 'fcd',
title: '创建时间',

View File

@ -28,6 +28,10 @@ public class MonitorAddressInfo extends BaseEntity
@Excel(name = "业务类型")
private String busiType;
/** 地址别名 */
@Excel(name = "地址别名")
private String monitorAddressName;
/** 监听地址 */
@Excel(name = "监听地址")
private String monitorAddress;
@ -60,6 +64,9 @@ public class MonitorAddressInfo extends BaseEntity
/** 绑定时长 */
@Excel(name = "绑定时长")
private String bindPeriod;
/** 备注 */
@Excel(name = "备注")
private String comment;
/** 创建时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")

View File

@ -34,6 +34,9 @@ public class TrxExchangeInfo extends BaseEntity
@Sensitive(desensitizedType = DesensitizedType.WALLET_ADDRESS)
private String toAddress;
@Excel(name = "监听账户别名")
private String monitorAddressName;
/** 实际出账账户 */
@Excel(name = "实际出账账户")
@Sensitive(desensitizedType = DesensitizedType.WALLET_ADDRESS)

View File

@ -32,7 +32,8 @@ public class UsdtExchangeInfo extends BaseEntity
@Excel(name = "转入地址")
private String toAddress;
@Excel(name = "收款账号别名")
private String monitorAddressName;
/** 出账地址 */
@Excel(name = "出账地址")
private String accountAddress;

View File

@ -209,7 +209,8 @@ public class FragmentApiImpl implements IFragmentApi {
String formBody = "{\"" + address + "\":\"" + amount + "\"}";
StringEntity requestEntity = new StringEntity(formBody, ContentType.APPLICATION_FORM_URLENCODED);
httpPost.setEntity(requestEntity);
// httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 50000); // 设置连接超时时间为5秒
// httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 50000); // 设置读取超时时间为5秒
// 发送请求并获取响应
HttpResponse response = httpClient.execute(httpPost);
if (response.getStatusLine().getStatusCode() != 200) {

View File

@ -4,12 +4,11 @@ import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.telegram.telegrambots.bots.TelegramLongPollingBot;
import org.telegram.telegrambots.meta.api.objects.Update;
import org.telegram.telegrambots.meta.exceptions.TelegramApiException;
@Component
//@Component
@Slf4j
public class TgLongPollingBot extends TelegramLongPollingBot {

View File

@ -14,6 +14,7 @@ import com.ruoyi.system.mapper.TgPremiumOrderInfoMapper;
import com.ruoyi.system.service.IErrorLogService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import java.io.IOException;
@ -34,10 +35,11 @@ public class TgPremiumTransferHandler {
@Autowired
private TgPremiumOrderInfoMapper tgPremiumOrderInfoMapper;
@Async
public void doRechargeAndUpdate(TgPremiumOrderInfo tgPremiumOrderInfo) {
doRecharge(tgPremiumOrderInfo);
tgPremiumOrderInfo.setLcu("syste");
tgPremiumOrderInfo.setLcu("system");
tgPremiumOrderInfoMapper.updateTgPremiumOrderInfo(tgPremiumOrderInfo);
}
@ -124,7 +126,10 @@ public class TgPremiumTransferHandler {
} while (count < 5);
}
tgPremiumOrderInfo.setTgPaymentStatus("E");
if (count >= 5) {
tgPremiumOrderInfo.setTgPaymentStatus("E");
}
}

View File

@ -66,4 +66,6 @@ public interface TrxExchangeInfoMapper
List<TrxExchangeMonitorAccountInfo> selectTrxExchangeMonitorAccountInfo(TrxExchangeInfo trxExchangeInfo);
List<TransactionLogVO> selectTransactionLogVO();
List<TrxExchangeInfo> selectTrxExchangeInfoAndMonitorNameList(TrxExchangeInfo trxExchangeInfo);
}

View File

@ -60,4 +60,6 @@ public interface UsdtExchangeInfoMapper
* @return
*/
public int deleteUsdtExchangeInfoByIdUsdtExchangeInfos(String[] idUsdtExchangeInfos);
List<UsdtExchangeInfo> selectUsdtExchangeInfoAndMonitorNameList(UsdtExchangeInfo usdtExchangeInfo);
}

View File

@ -14,7 +14,6 @@ import com.ruoyi.system.service.ISysConfigService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.text.StrSubstitutor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.telegram.telegrambots.meta.api.methods.ParseMode;
import org.telegram.telegrambots.meta.api.methods.send.SendMessage;
@ -75,7 +74,6 @@ public class ErrorLogServiceImpl implements IErrorLogService {
* @return
*/
@Override
@Async
public int insertErrorLog(ErrorLog errorLog){
String sysErrorLogTemplate = configService.selectConfigByKey("sys.error.log.template");
String sysErrorLogChatId = configService.selectConfigByKey("sys.error.log.chatid");

View File

@ -68,7 +68,8 @@ public class TrxExchangeInfoServiceImpl implements ITrxExchangeInfoService {
*/
@Override
public List<TrxExchangeInfo> selectTrxExchangeInfoList(TrxExchangeInfo trxExchangeInfo) {
return trxExchangeInfoMapper.selectTrxExchangeInfoList(trxExchangeInfo);
// return trxExchangeInfoMapper.selectTrxExchangeInfoList(trxExchangeInfo);
return trxExchangeInfoMapper.selectTrxExchangeInfoAndMonitorNameList(trxExchangeInfo);
}
/**

View File

@ -58,7 +58,8 @@ public class UsdtExchangeInfoServiceImpl implements IUsdtExchangeInfoService {
*/
@Override
public List<UsdtExchangeInfo> selectUsdtExchangeInfoList(UsdtExchangeInfo usdtExchangeInfo) {
return usdtExchangeInfoMapper.selectUsdtExchangeInfoList(usdtExchangeInfo);
// return usdtExchangeInfoMapper.selectUsdtExchangeInfoList(usdtExchangeInfo);
return usdtExchangeInfoMapper.selectUsdtExchangeInfoAndMonitorNameList(usdtExchangeInfo);
}
/**

View File

@ -4,9 +4,11 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.system.mapper.MonitorAddressInfoMapper">
<resultMap type="MonitorAddressInfo" id="MonitorAddressInfoResult">
<result property="idMonitorAddress" column="id_monitor_address" />
<result property="busiType" column="busi_type" />
<result property="monitorAddressName" column="monitor_address_name" />
<result property="monitorAddress" column="monitor_address" />
<result property="accountAddress" column="account_address" />
<result property="trxPrice" column="trx_price" />
@ -15,6 +17,7 @@
<result property="apiKey" column="api_key" />
<result property="bindPeriod" column="bind_period" />
<result property="isValid" column="is_valid" />
<result property="comment" column="comment" />
<result property="fcd" column="fcd" />
<result property="fcu" column="fcu" />
<result property="lcd" column="lcd" />
@ -22,13 +25,14 @@
</resultMap>
<sql id="selectMonitorAddressInfoVo">
select id_monitor_address, busi_type, monitor_address, account_address, trx_price, usdt_price, monitor_type, api_key, bind_period, is_valid, fcd, fcu, lcd, lcu from monitor_address_info
select id_monitor_address, busi_type, monitor_address_name, monitor_address, account_address, trx_price, usdt_price, monitor_type, api_key, bind_period, is_valid, comment, fcd, fcu, lcd, lcu from monitor_address_info
</sql>
<select id="selectMonitorAddressInfoList" parameterType="MonitorAddressInfo" resultMap="MonitorAddressInfoResult">
<include refid="selectMonitorAddressInfoVo"/>
<where>
<if test="busiType != null and busiType != ''"> and busi_type = #{busiType}</if>
<if test="monitorAddressName != null and monitorAddressName != ''"> and monitor_address_name like concat('%', #{monitorAddressName}, '%')</if>
<if test="monitorAddress != null and monitorAddress != ''"> and monitor_address = #{monitorAddress}</if>
<if test="accountAddress != null and accountAddress != ''"> and account_address = #{accountAddress}</if>
<if test="trxPrice != null "> and trx_price = #{trxPrice}</if>
@ -37,7 +41,8 @@
<if test="apiKey != null and apiKey != ''"> and api_key = #{apiKey}</if>
<if test="bindPeriod != null and bindPeriod != ''"> and bind_period = #{bindPeriod}</if>
<if test="isValid != null and isValid != ''"> and is_valid = #{isValid}</if>
<if test="fcd != null "> and fcd = #{fcd}</if>
<if test="comment != null and comment != ''"> and comment = #{comment}</if>
<if test="params.beginFcd != null and params.beginFcd != '' and params.endFcd != null and params.endFcd != ''"> and fcd between #{params.beginFcd} and #{params.endFcd}</if>
<if test="fcu != null and fcu != ''"> and fcu = #{fcu}</if>
<if test="lcd != null "> and lcd = #{lcd}</if>
<if test="lcu != null and lcu != ''"> and lcu = #{lcu}</if>
@ -53,6 +58,7 @@
insert into monitor_address_info
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="busiType != null">busi_type,</if>
<if test="monitorAddressName != null">monitor_address_name,</if>
<if test="monitorAddress != null">monitor_address,</if>
<if test="accountAddress != null">account_address,</if>
<if test="trxPrice != null">trx_price,</if>
@ -61,6 +67,7 @@
<if test="apiKey != null">api_key,</if>
<if test="bindPeriod != null">bind_period,</if>
<if test="isValid != null">is_valid,</if>
<if test="comment != null">comment,</if>
<if test="fcd != null">fcd,</if>
<if test="fcu != null">fcu,</if>
<if test="lcd != null">lcd,</if>
@ -68,6 +75,7 @@
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="busiType != null">#{busiType},</if>
<if test="monitorAddressName != null">#{monitorAddressName},</if>
<if test="monitorAddress != null">#{monitorAddress},</if>
<if test="accountAddress != null">#{accountAddress},</if>
<if test="trxPrice != null">#{trxPrice},</if>
@ -76,6 +84,7 @@
<if test="apiKey != null">#{apiKey},</if>
<if test="bindPeriod != null">#{bindPeriod},</if>
<if test="isValid != null">#{isValid},</if>
<if test="comment != null">#{comment},</if>
<if test="fcd != null">#{fcd},</if>
<if test="fcu != null">#{fcu},</if>
<if test="lcd != null">#{lcd},</if>
@ -87,6 +96,7 @@
update monitor_address_info
<trim prefix="SET" suffixOverrides=",">
<if test="busiType != null">busi_type = #{busiType},</if>
<if test="monitorAddressName != null">monitor_address_name = #{monitorAddressName},</if>
<if test="monitorAddress != null">monitor_address = #{monitorAddress},</if>
<if test="accountAddress != null">account_address = #{accountAddress},</if>
<if test="trxPrice != null">trx_price = #{trxPrice},</if>
@ -95,6 +105,7 @@
<if test="apiKey != null">api_key = #{apiKey},</if>
<if test="bindPeriod != null">bind_period = #{bindPeriod},</if>
<if test="isValid != null">is_valid = #{isValid},</if>
<if test="comment != null">comment = #{comment},</if>
<if test="fcd != null">fcd = #{fcd},</if>
<if test="fcu != null">fcu = #{fcu},</if>
<if test="lcd != null">lcd = #{lcd},</if>
@ -114,6 +125,7 @@
</foreach>
</delete>
<select id="selectMonitorAddressAccount" resultType="com.ruoyi.system.domain.MonitorAddressAccount" parameterType="MonitorAddressInfo">
select m.monitor_address,
m.account_address,

View File

@ -47,6 +47,7 @@
<if test="delegateStatus != null and delegateStatus != ''"> and delegate_status = #{delegateStatus}</if>
<if test="unDelegateTxId != null and unDelegateTxId != ''"> and un_delegate_tx_id = #{unDelegateTxId}</if>
<if test="fcd != null "> and fcd &gt;= #{fcd}</if>
<if test="params.beginFcd != null and params.beginFcd != '' and params.endFcd != null and params.endFcd != ''"> and fcd between #{params.beginFcd} and #{params.endFcd}</if>
<if test="fcu != null and fcu != ''"> and fcu = #{fcu}</if>
<if test="lcd != null "> and lcd &lt;= #{lcd}</if>
<if test="lcu != null and lcu != ''"> and lcu = #{lcu}</if>
@ -187,4 +188,53 @@
<select id="selectTransactionLogVO" resultType="com.ruoyi.system.domain.vo.TransactionLogVO">
select distinct t.from_address fromAddress,t.tranfer_count count from trx_exchange_info t
</select>
<select id="selectTrxExchangeInfoAndMonitorNameList" parameterType="TrxExchangeInfo" resultType="TrxExchangeInfo" >
SELECT
t.id_trx_exchange_info,
t.from_address,
t.to_address,
m.monitor_address_name,
t.account_address,
t.price,
t.trx_tx_id,
t.tranfer_count,
t.energy_busi_type,
t.trx_amount,
t.delegate_amount_trx,
t.delegate_tx_id,
t.lock_period,
t.delegate_status,
t.un_delegate_tx_id,
t.fcd,
t.fcu,
t.lcd,
t.lcu
FROM
trx_exchange_info t
LEFT JOIN monitor_address_info m
ON t.to_address = m.monitor_address
<where> 1=1
<if test="fromAddress != null and fromAddress != ''"> and t.from_address = #{fromAddress}</if>
<if test="toAddress != null and toAddress != ''"> and t.to_address = #{toAddress}</if>
<if test="accountAddress != null and accountAddress != ''"> and t.account_address = #{accountAddress}</if>
<if test="price != null "> and t.price = #{price}</if>
<if test="trxTxId != null and trxTxId != ''"> and t.trx_tx_id = #{trxTxId}</if>
<if test="tranferCount != null "> and t.tranfer_count = #{tranferCount}</if>
<if test="energyBusiType != null and energyBusiType != ''"> and t.energy_busi_type = #{energyBusiType}</if>
<if test="trxAmount != null "> and t.trx_amount = #{trxAmount}</if>
<if test="delegateAmountTrx != null "> and t.delegate_amount_trx = #{delegateAmountTrx}</if>
<if test="delegateTxId != null and delegateTxId != ''"> and t.delegate_tx_id = #{delegateTxId}</if>
<if test="lockPeriod != null "> and t.lock_period = #{lockPeriod}</if>
<if test="delegateStatus != null and delegateStatus != ''"> and t.delegate_status = #{delegateStatus}</if>
<if test="unDelegateTxId != null and unDelegateTxId != ''"> and t.un_delegate_tx_id = #{unDelegateTxId}</if>
<if test="fcd != null "> and t.fcd &gt;= #{fcd}</if>
<if test="params.beginFcd != null and params.beginFcd != '' and params.endFcd != null and params.endFcd != ''"> and t.fcd between #{params.beginFcd} and #{params.endFcd}</if>
<if test="fcu != null and fcu != ''"> and t.fcu = #{fcu}</if>
<if test="lcd != null "> and lcd &lt;= #{lcd}</if>
<if test="lcu != null and lcu != ''"> and t.lcu = #{lcu}</if>
order by fcd desc
</where>
</select>
</mapper>

View File

@ -114,4 +114,42 @@
</foreach>
</delete>
<select id="selectUsdtExchangeInfoAndMonitorNameList" parameterType="UsdtExchangeInfo" resultType="UsdtExchangeInfo">
SELECT
u.id_usdt_exchange_info idUsdtExchangeInfo,
u.from_address fromAddress,
u.to_address toAddress,
m.monitor_address_name monitorAddressName,
u.account_address accountAddress,
u.usdt_tx_id usdtTxId,
u.usdt_amount usdtAmount,
u.trx_amount trxAmount,
u.exchange_rate exchangeRate,
u.trx_tx_id trxTxId,
u.orginal_exchange_rate orginalExchangeRate,
u.fcd,
u.fcu,
u.lcd,
u.lcu
FROM
usdt_exchange_info u left join monitor_address_info m
on u.to_address=m.monitor_address
<where>
<if test="fromAddress != null and fromAddress != ''"> and u.from_address = #{fromAddress}</if>
<if test="toAddress != null and toAddress != ''"> and u.to_address = #{toAddress}</if>
<if test="accountAddress != null and accountAddress != ''"> and u.account_address = #{accountAddress}</if>
<if test="usdtTxId != null and usdtTxId != ''"> and u.usdt_tx_id = #{usdtTxId}</if>
<if test="usdtAmount != null "> and u.usdt_amount = #{usdtAmount}</if>
<if test="trxAmount != null "> and u.trx_amount = #{trxAmount}</if>
<if test="exchangeRate != null "> and u.exchange_rate = #{exchangeRate}</if>
<if test="trxTxId != null and trxTxId != ''"> and u.trx_tx_id = #{trxTxId}</if>
<if test="orginalExchangeRate != null "> and u.orginal_exchange_rate = #{orginalExchangeRate}</if>
<if test="params.beginFcd != null and params.beginFcd != '' and params.endFcd != null and params.endFcd != ''"> and u.fcd between #{params.beginFcd} and #{params.endFcd}</if>
<if test="fcu != null and fcu != ''"> and u.fcu = #{fcu}</if>
<if test="lcd != null "> and u.lcd = #{lcd}</if>
<if test="lcu != null and lcu != ''"> and u.lcu = #{lcu}</if>
</where>
</select>
</mapper>