fix: 优化收益计算、地址校验和提现逻辑

- 修正收益计算将月收益改为日收益,格式化显示为'(币种)'
- 统一NEXA地址校验规则,必须带'nexa:'前缀
- 修复提现金额计算逻辑,改为从余额中减去提现金额和手续费
- 优化SQL查询,使用ROW_NUMBER替代变量排序
- 添加用户权限校验,算力保留两位小数并添加单位字段
- 添加空字符串校验和调试日志输出
- 启用提现队列监听功能
This commit is contained in:
yyb
2026-01-26 09:54:07 +08:00
parent 8ed6c07694
commit 2830c57af2
17 changed files with 223 additions and 506 deletions

View File

@@ -128,6 +128,7 @@ public class LeaseMachineServiceImpl extends ServiceImpl<LeaseMachineMapper, Lea
.collect(Collectors.groupingBy(PowerIncomeInfoDto::getMachineId));
for (MachineInfoDto machineInfo : machineInfoDtoList) {
machineInfo.setPriceList(machinePriceMap.get(machineInfo.getId()));
machineInfo.setMonthIncome("$"+machineInfo.getMonthIncome()+"("+machineInfo.getCoin()+")");
List<PowerIncomeInfoDto> powerIncomeInfoDtoList = collect.get(machineInfo.getId());
for (int i = 0; i < powerIncomeInfoDtoList.size(); i++) {
PowerIncomeInfoDto powerIncomeInfoDto = powerIncomeInfoDtoList.get(i);

View File

@@ -1022,9 +1022,6 @@ public class LeaseOrderInfoServiceImpl extends ServiceImpl<LeaseOrderInfoMapper,
for (OrderMiningInfoDto addressInfo : orderMiningInfoDtoList) {
String coin = addressInfo.getCoin();
String walletAddress = addressInfo.getWalletAddress();
if(coin.equalsIgnoreCase("NEXA") && walletAddress.startsWith("nexa:")){
addressInfo.setWalletAddress(walletAddress.substring(5));
}
if (!WalletRuleCheckUtils.checkAddress(coin,walletAddress)){
addressVerify = addressInfo.getWalletAddress() + "钱包地址格式错误";
break;
@@ -1140,9 +1137,11 @@ public class LeaseOrderInfoServiceImpl extends ServiceImpl<LeaseOrderInfoMapper,
@Override
@DSTransactional
public Result<MiningConfigInfoDto> getPurchasedInfo(BaseVo baseVo) {
Long authId = SecurityUtils.getUserId();
//找到miner 和钱包 ,pool 矿池名
MiningConfigInfoDto info = leaseOrderMiningMapper.getPurchasedInfo(baseVo.getId());
List<PurchasedMachineDto> list = leaseOrderMiningMapper.getPurchasedMachineInfo(info);
List<PurchasedMachineDto> list = leaseOrderMiningMapper.getPurchasedMachineInfo(info,authId);
//根据钱包 + 币种 + 矿工号 查询 pool 库 pool.kryptex 表 中对应 算力
@@ -1153,7 +1152,8 @@ public class LeaseOrderInfoServiceImpl extends ServiceImpl<LeaseOrderInfoMapper,
MiningHashrateInfoDto miningHashrateInfoDto = recentlyHashRateMap.get(purchasedMachineDto.getWorkerId());
if (miningHashrateInfoDto != null){
purchasedMachineDto.setRecordTime(miningHashrateInfoDto.getRecordTime());
purchasedMachineDto.setPower(miningHashrateInfoDto.getPower());
purchasedMachineDto.setPower(miningHashrateInfoDto.getPower().setScale(2, RoundingMode.HALF_UP));
purchasedMachineDto.setUnit(miningHashrateInfoDto.getUnit());
}
}
}