diff --git a/src/main/java/com/m2pool/lease/config/LoginInterceptor.java b/src/main/java/com/m2pool/lease/config/LoginInterceptor.java index 8978b97..74bcfd6 100644 --- a/src/main/java/com/m2pool/lease/config/LoginInterceptor.java +++ b/src/main/java/com/m2pool/lease/config/LoginInterceptor.java @@ -71,7 +71,6 @@ public class LoginInterceptor implements HandlerInterceptor { } String userEmail = JwtUtils.getUserName(token); String getUserId = JwtUtils.getUserId(token); - System.out.println("本地线程:用户ID"+getUserId + "用户邮箱"+userEmail); //1.把userEmail存入ThreadLocal 本地线程变量中 SecurityUtils.setUserEmail(userEmail); SecurityUtils.setUserId(Long.valueOf(getUserId)); diff --git a/src/main/java/com/m2pool/lease/dto/ShopDto.java b/src/main/java/com/m2pool/lease/dto/ShopDto.java index b445851..478cc31 100644 --- a/src/main/java/com/m2pool/lease/dto/ShopDto.java +++ b/src/main/java/com/m2pool/lease/dto/ShopDto.java @@ -60,4 +60,13 @@ public class ShopDto { @ApiModelProperty(value = "店铺手续费比例 范围0.01-0.1",example = "0.01") private BigDecimal feeRate; + + + + @ApiModelProperty(value = "专用网络手续费率") + private BigDecimal networkFee; + + + @ApiModelProperty(value = "专用网络是否开启 false 否 true 是") + private Boolean isOpen; } diff --git a/src/main/java/com/m2pool/lease/entity/LeaseShop.java b/src/main/java/com/m2pool/lease/entity/LeaseShop.java index ea78c39..facac45 100644 --- a/src/main/java/com/m2pool/lease/entity/LeaseShop.java +++ b/src/main/java/com/m2pool/lease/entity/LeaseShop.java @@ -89,4 +89,13 @@ public class LeaseShop implements Serializable { */ private Integer saleNumber; + /** + * 专用网络手续费率 + */ + private BigDecimal networkFee; + + /** + * 专用网络是否开启 0 否 1 是 + */ + private Boolean isOpen; } diff --git a/src/main/java/com/m2pool/lease/service/impl/LeaseShopServiceImpl.java b/src/main/java/com/m2pool/lease/service/impl/LeaseShopServiceImpl.java index 9d3beed..69a1d36 100644 --- a/src/main/java/com/m2pool/lease/service/impl/LeaseShopServiceImpl.java +++ b/src/main/java/com/m2pool/lease/service/impl/LeaseShopServiceImpl.java @@ -100,12 +100,18 @@ public class LeaseShopServiceImpl extends ServiceImpl 0) { - throw new MachineException("注销失败,店铺钱包存在未完成的订单"); + if (!leaseShopConfigs.isEmpty()){ + long runningOrderCount = leaseOrderItemMapper.checkShopExistRunningOrderNumbers(leaseShopConfigs); + if (runningOrderCount > 0) { + throw new MachineException("注销失败,店铺钱包存在未完成的订单"); + } } + leaseMachineMapper.update(LeaseMachine.builder().del(true).build(), new LambdaUpdateWrapper() .eq(LeaseMachine::getShopId, shopId)); diff --git a/src/main/java/com/m2pool/lease/service/impl/LeaseUserServiceImpl.java b/src/main/java/com/m2pool/lease/service/impl/LeaseUserServiceImpl.java index 42e281f..d53133d 100644 --- a/src/main/java/com/m2pool/lease/service/impl/LeaseUserServiceImpl.java +++ b/src/main/java/com/m2pool/lease/service/impl/LeaseUserServiceImpl.java @@ -1288,7 +1288,8 @@ public class LeaseUserServiceImpl extends ServiceImpl() - .eq(LeaseUserWalletData::getBlockedBalance, userWalletDataDto.getBlockedBalance())); + .eq(LeaseUserWalletData::getBlockedBalance, userWalletDataDto.getBlockedBalance()) + .eq(LeaseUserWalletData::getId,build.getId())); if (insert > 0 && i > 0){ //发送mq消息到队列 RabbitmqPayWithdrawMessage message = RabbitmqPayWithdrawMessage.builder() diff --git a/src/main/java/com/m2pool/lease/task/OrderAndPayTask.java b/src/main/java/com/m2pool/lease/task/OrderAndPayTask.java index 83ea0d2..3633bef 100644 --- a/src/main/java/com/m2pool/lease/task/OrderAndPayTask.java +++ b/src/main/java/com/m2pool/lease/task/OrderAndPayTask.java @@ -1095,11 +1095,32 @@ public class OrderAndPayTask { public void withdrawTimeout(){ List leasePayWithdrawMessages = leasePayWithdrawMessageMapper.selectList(new LambdaQueryWrapper() .eq(LeasePayWithdrawMessage::getStatus, 2) + .eq(LeasePayWithdrawMessage::getShopId, 0) .le(LeasePayWithdrawMessage::getCreateTime, LocalDateTime.now().minusMinutes(10))); if (!leasePayWithdrawMessages.isEmpty()){ - for (LeasePayWithdrawMessage leasePayWithdrawMessage : leasePayWithdrawMessages) { - leasePayWithdrawMessage.setStatus(0); - leasePayWithdrawMessageMapper.updateById(leasePayWithdrawMessage); + + for (LeasePayWithdrawMessage withdrawMessage : leasePayWithdrawMessages) { + // 查询对应的钱包记录 + LeaseUserWalletData userWalletData = leaseUserWalletDataMapper.selectOne(new LambdaQueryWrapper() + .eq(LeaseUserWalletData::getFromAddress, withdrawMessage.getFromAddress()) + .eq(LeaseUserWalletData::getFromChain, withdrawMessage.getFromChain()) + .eq(LeaseUserWalletData::getFromSymbol, withdrawMessage.getFromSymbol()) + .eq(LeaseUserWalletData::getAuthId, withdrawMessage.getAuthId())); + + if (userWalletData != null) { + // 使用 blockedBalance 作为乐观锁,释放冻结余额 + int updateWallet = leaseUserWalletDataMapper.update(null, + new LambdaUpdateWrapper() + .set(LeaseUserWalletData::getBlockedBalance, userWalletData.getBlockedBalance().subtract(withdrawMessage.getAmount())) + .eq(LeaseUserWalletData::getId, userWalletData.getId()) + .eq(LeaseUserWalletData::getBlockedBalance, userWalletData.getBlockedBalance())); + + if (updateWallet > 0) { + // 更新提现记录状态为失败 + withdrawMessage.setStatus(0); + leasePayWithdrawMessageMapper.updateById(withdrawMessage); + } + } } } } diff --git a/src/main/java/com/m2pool/lease/vo/ShopVo.java b/src/main/java/com/m2pool/lease/vo/ShopVo.java index cf5bc5b..847337d 100644 --- a/src/main/java/com/m2pool/lease/vo/ShopVo.java +++ b/src/main/java/com/m2pool/lease/vo/ShopVo.java @@ -62,4 +62,8 @@ public class ShopVo extends BaseVo{ @ApiModelProperty(value = "谷歌验证码") @JsonProperty("gCode") private Long gCode; + + + @ApiModelProperty(value = "专用网络是否开启 false 关闭 true 开启",example = "1") + private Boolean isOpen; }