update 删除部分未用到的引用
This commit is contained in:
@@ -35,6 +35,7 @@ public class ProductMachineForWalletConfigVo {
|
|||||||
@ApiModelProperty(value = "支付币种,可以多个以逗号隔开")
|
@ApiModelProperty(value = "支付币种,可以多个以逗号隔开")
|
||||||
private String symbol;
|
private String symbol;
|
||||||
|
|
||||||
|
|
||||||
@ApiModelProperty(value = "价格列表")
|
@ApiModelProperty(value = "价格列表")
|
||||||
private List<PriceVo> productMachineForWalletConfigVoList;
|
private List<PriceVo> productMachineForWalletConfigVoList;
|
||||||
|
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ public interface LeaseMachineMapper extends BaseMapper<LeaseMachine> {
|
|||||||
* @param machineIds
|
* @param machineIds
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<CartMachineInfoDto> getMachinesByIds(@Param("machineIds") List<Long> machineIds);
|
List<CartMachineInfoDto> getMachinesByIds(@Param("machineIds") List<Long> machineIds, @Param("userId") String username);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -19,10 +19,7 @@ import com.m2pool.lease.mapper.*;
|
|||||||
import com.m2pool.lease.netty.handler.ChannelManager;
|
import com.m2pool.lease.netty.handler.ChannelManager;
|
||||||
import com.m2pool.lease.netty.message.ClientMessage;
|
import com.m2pool.lease.netty.message.ClientMessage;
|
||||||
import com.m2pool.lease.redis.service.RedisService;
|
import com.m2pool.lease.redis.service.RedisService;
|
||||||
import com.m2pool.lease.service.LeaseOrderInfoService;
|
import com.m2pool.lease.service.*;
|
||||||
import com.m2pool.lease.service.LeaseOrderItemService;
|
|
||||||
import com.m2pool.lease.service.LeaseProductService;
|
|
||||||
import com.m2pool.lease.service.LeaseUserOwnedProductService;
|
|
||||||
import com.m2pool.lease.utils.DateUtils;
|
import com.m2pool.lease.utils.DateUtils;
|
||||||
import com.m2pool.lease.utils.SecurityUtils;
|
import com.m2pool.lease.utils.SecurityUtils;
|
||||||
import com.m2pool.lease.utils.UuidGeneratorUtil;
|
import com.m2pool.lease.utils.UuidGeneratorUtil;
|
||||||
@@ -69,6 +66,9 @@ public class LeaseOrderInfoServiceImpl extends ServiceImpl<LeaseOrderInfoMapper,
|
|||||||
@Resource
|
@Resource
|
||||||
private LeaseShopMapper leaseShopMapper;
|
private LeaseShopMapper leaseShopMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private LeaseShopService leaseShopService;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private LeasePaymentRecordMapper leasePaymentRecordMapper;
|
private LeasePaymentRecordMapper leasePaymentRecordMapper;
|
||||||
|
|
||||||
@@ -864,6 +864,7 @@ public class LeaseOrderInfoServiceImpl extends ServiceImpl<LeaseOrderInfoMapper,
|
|||||||
LeaseShop leaseShop = shopMap.get(leaseMachine.getShopId());
|
LeaseShop leaseShop = shopMap.get(leaseMachine.getShopId());
|
||||||
leaseShop.setSaleNumber(leaseShop.getSaleNumber() + orderInfoVo.getNumbers());
|
leaseShop.setSaleNumber(leaseShop.getSaleNumber() + orderInfoVo.getNumbers());
|
||||||
|
|
||||||
|
|
||||||
LeaseOrderItem build = LeaseOrderItem.builder()
|
LeaseOrderItem build = LeaseOrderItem.builder()
|
||||||
.userId(userEmail)
|
.userId(userEmail)
|
||||||
.orderId(leaseOrderInfo.getId())
|
.orderId(leaseOrderInfo.getId())
|
||||||
@@ -895,6 +896,9 @@ public class LeaseOrderInfoServiceImpl extends ServiceImpl<LeaseOrderInfoMapper,
|
|||||||
//获取itemId
|
//获取itemId
|
||||||
machineOrderItemIdMap.put(machineId,build.getId());
|
machineOrderItemIdMap.put(machineId,build.getId());
|
||||||
}
|
}
|
||||||
|
//修改商铺出售机器
|
||||||
|
leaseShopService.updateBatchById(shopMap.values());
|
||||||
|
|
||||||
//开始生成支付订单并返回
|
//开始生成支付订单并返回
|
||||||
checkBalanceAndSetBlockBalance(fromAddressMap,leaseOrderInfoList);
|
checkBalanceAndSetBlockBalance(fromAddressMap,leaseOrderInfoList);
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import com.m2pool.lease.entity.*;
|
|||||||
import com.m2pool.lease.exception.ProductSoldOutException;
|
import com.m2pool.lease.exception.ProductSoldOutException;
|
||||||
import com.m2pool.lease.mapper.*;
|
import com.m2pool.lease.mapper.*;
|
||||||
import com.m2pool.lease.redis.service.RedisService;
|
import com.m2pool.lease.redis.service.RedisService;
|
||||||
|
import com.m2pool.lease.service.LeaseMachinePriceService;
|
||||||
import com.m2pool.lease.service.LeaseProductMachinePriceService;
|
import com.m2pool.lease.service.LeaseProductMachinePriceService;
|
||||||
import com.m2pool.lease.service.LeaseProductService;
|
import com.m2pool.lease.service.LeaseProductService;
|
||||||
import com.m2pool.lease.service.LeaseShopConfigService;
|
import com.m2pool.lease.service.LeaseShopConfigService;
|
||||||
@@ -68,6 +69,8 @@ public class LeaseProductServiceImpl extends ServiceImpl<LeaseProductMapper, Lea
|
|||||||
@Resource
|
@Resource
|
||||||
private LeaseProductMachinePriceMapper leaseProductMachinePriceMapper;
|
private LeaseProductMachinePriceMapper leaseProductMachinePriceMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private LeaseMachinePriceService leaseMachinePriceService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageResult<ProductDto> getProductList(ProductPageVo productPageVo) {
|
public PageResult<ProductDto> getProductList(ProductPageVo productPageVo) {
|
||||||
@@ -478,22 +481,23 @@ public class LeaseProductServiceImpl extends ServiceImpl<LeaseProductMapper, Lea
|
|||||||
}
|
}
|
||||||
String[] symbolList = productMachineForWalletConfigVo.getSymbol().split(",");
|
String[] symbolList = productMachineForWalletConfigVo.getSymbol().split(",");
|
||||||
List<ProductMachineForWalletConfigVo.PriceVo> priceAndIdList = productMachineForWalletConfigVo.getProductMachineForWalletConfigVoList();
|
List<ProductMachineForWalletConfigVo.PriceVo> priceAndIdList = productMachineForWalletConfigVo.getProductMachineForWalletConfigVoList();
|
||||||
List<LeaseProductMachinePrice> leaseProductMachinePriceList = new ArrayList<>();
|
List<LeaseMachinePrice> leaseProductMachinePriceList = new ArrayList<>();
|
||||||
for (ProductMachineForWalletConfigVo.PriceVo priceVo : priceAndIdList) {
|
for (ProductMachineForWalletConfigVo.PriceVo priceVo : priceAndIdList) {
|
||||||
String[] priceList = priceVo.getPrice().split(",");
|
String[] priceList = priceVo.getPrice().split(",");
|
||||||
if (priceList.length != symbolList.length){
|
if (priceList.length != symbolList.length){
|
||||||
return Result.fail("绑定钱包失败,存在商品矿机未设置新钱包售价");
|
return Result.fail("绑定钱包失败,存在商品矿机未设置新钱包售价");
|
||||||
}
|
}
|
||||||
for (int i = 0; i < priceList.length; i++) {
|
for (int i = 0; i < priceList.length; i++) {
|
||||||
leaseProductMachinePriceList.add(LeaseProductMachinePrice.builder()
|
leaseProductMachinePriceList.add(LeaseMachinePrice.builder()
|
||||||
.productMachineId(priceVo.getProductMachineId())
|
.machineId(priceVo.getProductMachineId())
|
||||||
.price(new BigDecimal(priceList[i]))
|
.price(new BigDecimal(priceList[i]))
|
||||||
.coin(symbolList[i])
|
.coin(symbolList[i])
|
||||||
.chain(chain)
|
.chain(chain)
|
||||||
.build());
|
.build());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
boolean b = leaseProductMachinePriceService.saveBatch(leaseProductMachinePriceList);
|
|
||||||
|
boolean b = leaseMachinePriceService.saveBatch(leaseProductMachinePriceList);
|
||||||
if (b || leaseProductMachinePriceList.isEmpty()){
|
if (b || leaseProductMachinePriceList.isEmpty()){
|
||||||
//绑定钱包新钱包
|
//绑定钱包新钱包
|
||||||
List<LeaseShopConfig> shopConfigList = leaseShopConfigMapper.getCoinIconByChainAndCoin(chain, payCoinsList);
|
List<LeaseShopConfig> shopConfigList = leaseShopConfigMapper.getCoinIconByChainAndCoin(chain, payCoinsList);
|
||||||
|
|||||||
@@ -445,7 +445,7 @@ public class LeaseShoppingCartServiceImpl extends ServiceImpl<LeaseShoppingCartM
|
|||||||
.collect(Collectors.groupingBy(MachinePayTypeDto::getProductMachineId));
|
.collect(Collectors.groupingBy(MachinePayTypeDto::getProductMachineId));
|
||||||
|
|
||||||
//查询店铺中机器详情
|
//查询店铺中机器详情
|
||||||
List<CartMachineInfoDto> leaseProductMachines = leaseMachineMapper.getMachinesByIds(machineIds);
|
List<CartMachineInfoDto> leaseProductMachines = leaseMachineMapper.getMachinesByIds(machineIds,userId);
|
||||||
|
|
||||||
//设置每个矿机的售价,并按店铺分组
|
//设置每个矿机的售价,并按店铺分组
|
||||||
Map<Long, List<CartMachineInfoDto>> shopIdAndMachineInfoMap = leaseProductMachines.stream()
|
Map<Long, List<CartMachineInfoDto>> shopIdAndMachineInfoMap = leaseProductMachines.stream()
|
||||||
|
|||||||
@@ -378,9 +378,10 @@ public class LeaseUserServiceImpl extends ServiceImpl<LeaseUserMapper, LeaseUser
|
|||||||
@Transactional
|
@Transactional
|
||||||
public Result<String> closeAccount(CloseAccountVo closeAccountVo) {
|
public Result<String> closeAccount(CloseAccountVo closeAccountVo) {
|
||||||
String userEmail = SecurityUtils.getUsername();
|
String userEmail = SecurityUtils.getUsername();
|
||||||
//1.谷歌验证 和邮箱验证码验证
|
//1.
|
||||||
GoogleInfo googleInfo = leaseUserMapper.getGoogleInfoByEmail(userEmail);
|
GoogleInfo googleInfo = leaseUserMapper.getGoogleInfoByEmail(userEmail);
|
||||||
// 开发环境
|
// 开发环境
|
||||||
|
//1.1谷歌验证
|
||||||
//if(googleInfo == null || StringUtils.isBlank(googleInfo.getSecret())){
|
//if(googleInfo == null || StringUtils.isBlank(googleInfo.getSecret())){
|
||||||
// //未绑定定谷歌验证器
|
// //未绑定定谷歌验证器
|
||||||
// return Result.fail("您的账号未开启双重验证,请先开启验证!");
|
// return Result.fail("您的账号未开启双重验证,请先开启验证!");
|
||||||
@@ -388,8 +389,12 @@ public class LeaseUserServiceImpl extends ServiceImpl<LeaseUserMapper, LeaseUser
|
|||||||
//if(!GoogleAuthenticator.checkCode(googleInfo.getSecret(), closeAccountVo.getGCode(), System.currentTimeMillis())){
|
//if(!GoogleAuthenticator.checkCode(googleInfo.getSecret(), closeAccountVo.getGCode(), System.currentTimeMillis())){
|
||||||
// return Result.fail("谷歌验证码错误");
|
// return Result.fail("谷歌验证码错误");
|
||||||
//}
|
//}
|
||||||
|
//1.2邮箱验证码验证
|
||||||
verifyCode(RedisAuthKey.getCloseAccountKey(userEmail),closeAccountVo.getECode());
|
verifyCode(RedisAuthKey.getCloseAccountKey(userEmail),closeAccountVo.getECode());
|
||||||
|
|
||||||
|
//1.3订单,钱包余额校验
|
||||||
|
|
||||||
|
|
||||||
//2.删除用户信息
|
//2.删除用户信息
|
||||||
int update = leaseUserMapper.update(LeaseUser.builder().del(true).build(), new LambdaUpdateWrapper<LeaseUser>()
|
int update = leaseUserMapper.update(LeaseUser.builder().del(true).build(), new LambdaUpdateWrapper<LeaseUser>()
|
||||||
.eq(LeaseUser::getUserId, userEmail));
|
.eq(LeaseUser::getUserId, userEmail));
|
||||||
|
|||||||
@@ -138,7 +138,7 @@ public class OrderAndPayTask {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Scheduled(cron = "0 0/2 * * * ? ")
|
@Scheduled(cron = "0 0/1 * * * ? ")
|
||||||
@Async("scheduledTaskExecutor")
|
@Async("scheduledTaskExecutor")
|
||||||
@DSTransactional
|
@DSTransactional
|
||||||
public void paymentTaskV2(){
|
public void paymentTaskV2(){
|
||||||
@@ -303,10 +303,9 @@ public class OrderAndPayTask {
|
|||||||
//LocalDateTime endTime = orderTimeInfoDto.getCreateTime().plusDays(orderTimeInfoDto.getLeaseTime());
|
//LocalDateTime endTime = orderTimeInfoDto.getCreateTime().plusDays(orderTimeInfoDto.getLeaseTime());
|
||||||
|
|
||||||
//TODO 开发环境测试用1分钟当一天 差值改为差1分钟
|
//TODO 开发环境测试用1分钟当一天 差值改为差1分钟
|
||||||
LocalDateTime endTime = orderTimeInfoDto.getCreateTime().plusMinutes(orderTimeInfoDto.getLeaseTime() * 2);
|
LocalDateTime endTime = orderTimeInfoDto.getCreateTime().plusMinutes(orderTimeInfoDto.getLeaseTime() );
|
||||||
System.out.println("支付开始"+"开始时间"+now+ "结束时间"+endTime+ "差值:"+Duration.between(now, endTime).toMinutes());
|
|
||||||
// 获取订单完成的订单详情:比较 now 和 endTime 的年月日时分秒差值是否小于30分
|
// 获取订单完成的订单详情:比较 now 和 endTime 的年月日时分秒差值是否小于30分
|
||||||
if (Duration.between(now, endTime).toMinutes() <= 2) {
|
if (Duration.between(now, endTime).toMinutes() <= 1) {
|
||||||
completeMachines.add(LeaseMachine.builder()
|
completeMachines.add(LeaseMachine.builder()
|
||||||
.id(orderTimeInfoDto.getProductMachineId())
|
.id(orderTimeInfoDto.getProductMachineId())
|
||||||
.canSaleNumbers(orderTimeInfoDto.getNumbers())
|
.canSaleNumbers(orderTimeInfoDto.getNumbers())
|
||||||
@@ -427,12 +426,77 @@ public class OrderAndPayTask {
|
|||||||
leaseOrderItemMapper.update(LeaseOrderItem.builder().status(0).build(), new LambdaUpdateWrapper<LeaseOrderItem>()
|
leaseOrderItemMapper.update(LeaseOrderItem.builder().status(0).build(), new LambdaUpdateWrapper<LeaseOrderItem>()
|
||||||
.in(LeaseOrderItem::getId, itemIds));
|
.in(LeaseOrderItem::getId, itemIds));
|
||||||
//修改商品库存矿机表 矿机状态为 0 未售出
|
//修改商品库存矿机表 矿机状态为 0 未售出
|
||||||
leaseMachineMapper.updateBatchSaleNumbers(completeMachines);
|
System.out.println("打印"+JSONUtil.toJsonPrettyStr(completeMachines));
|
||||||
|
// 合并相同 id 的机器,避免 SQL CASE WHEN 只执行第一条的问题
|
||||||
|
List<LeaseMachine> mergedMachines = mergeMachines(completeMachines);
|
||||||
|
leaseMachineMapper.updateBatchSaleNumbers(mergedMachines);
|
||||||
//挖矿订单信息 改为状态0 租约已过期
|
//挖矿订单信息 改为状态0 租约已过期
|
||||||
leaseOrderMiningMapper.update(LeaseOrderMining.builder().status(false).build(), new LambdaUpdateWrapper<LeaseOrderMining>()
|
leaseOrderMiningMapper.update(LeaseOrderMining.builder().status(false).build(), new LambdaUpdateWrapper<LeaseOrderMining>()
|
||||||
.in(LeaseOrderMining::getOrderItemId, itemIds));
|
.in(LeaseOrderMining::getOrderItemId, itemIds));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合并相同 id 的机器,避免 SQL CASE WHEN 只执行第一条的问题
|
||||||
|
* @param machines 机器列表
|
||||||
|
* @return 合并后的机器列表
|
||||||
|
*/
|
||||||
|
private List<LeaseMachine> mergeMachines(List<LeaseMachine> machines) {
|
||||||
|
if (machines == null || machines.isEmpty()) {
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
return new ArrayList<>(machines.stream()
|
||||||
|
.collect(Collectors.groupingBy(
|
||||||
|
LeaseMachine::getId,
|
||||||
|
Collectors.collectingAndThen(
|
||||||
|
Collectors.toList(),
|
||||||
|
list -> {
|
||||||
|
LeaseMachine merged = list.get(0);
|
||||||
|
Integer totalSaleOutNumbers = list.stream()
|
||||||
|
.mapToInt(m -> m.getSaleOutNumbers() != null ? m.getSaleOutNumbers() : 0)
|
||||||
|
.sum();
|
||||||
|
Integer totalCanSaleNumbers = list.stream()
|
||||||
|
.mapToInt(m -> m.getCanSaleNumbers() != null ? m.getCanSaleNumbers() : 0)
|
||||||
|
.sum();
|
||||||
|
merged.setSaleOutNumbers(totalSaleOutNumbers);
|
||||||
|
merged.setCanSaleNumbers(totalCanSaleNumbers);
|
||||||
|
return merged;
|
||||||
|
}
|
||||||
|
)
|
||||||
|
))
|
||||||
|
.values());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合并相同查询条件的支付记录消息,避免 SQL CASE WHEN 只执行第一条的问题
|
||||||
|
* @param records 支付记录消息列表
|
||||||
|
* @return 合并后的支付记录消息列表
|
||||||
|
*/
|
||||||
|
private List<LeasePayRecordMessage> mergePayRecordMessages(List<LeasePayRecordMessage> records) {
|
||||||
|
if (records == null || records.isEmpty()) {
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
return new ArrayList<>(records.stream()
|
||||||
|
.collect(Collectors.groupingBy(
|
||||||
|
r -> r.getFromAddress() + "_" + r.getFromSymbol() + "_" + r.getFromChain(),
|
||||||
|
Collectors.collectingAndThen(
|
||||||
|
Collectors.toList(),
|
||||||
|
list -> {
|
||||||
|
LeasePayRecordMessage merged = list.get(0);
|
||||||
|
BigDecimal totalRealAmount = list.stream()
|
||||||
|
.map(r -> r.getRealAmount() != null ? r.getRealAmount() : BigDecimal.ZERO)
|
||||||
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
BigDecimal totalBlockAmount = list.stream()
|
||||||
|
.map(r -> r.getBlockAmount() != null ? r.getBlockAmount() : BigDecimal.ZERO)
|
||||||
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
merged.setRealAmount(totalRealAmount);
|
||||||
|
merged.setBlockAmount(totalBlockAmount);
|
||||||
|
return merged;
|
||||||
|
}
|
||||||
|
)
|
||||||
|
))
|
||||||
|
.values());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 支付 定时任务
|
* 支付 定时任务
|
||||||
*/
|
*/
|
||||||
@@ -819,8 +883,11 @@ public class OrderAndPayTask {
|
|||||||
});
|
});
|
||||||
System.out.println("部分完成"+JSONUtil.toJsonPrettyStr(reocrdList));
|
System.out.println("部分完成"+JSONUtil.toJsonPrettyStr(reocrdList));
|
||||||
leasePayRecordMessageService.saveBatch(reocrdList);
|
leasePayRecordMessageService.saveBatch(reocrdList);
|
||||||
int buyerUpdate = leaseUserWalletDataMapper.updateBalanceAndBlockBalance(reocrdList);
|
|
||||||
int sellerUpdate = leaseShopConfigMapper.updateBalance(reocrdList);
|
// 合并相同查询条件的记录,避免 SQL CASE WHEN 只执行第一条的问题
|
||||||
|
List<LeasePayRecordMessage> mergedRecordList = mergePayRecordMessages(reocrdList);
|
||||||
|
int buyerUpdate = leaseUserWalletDataMapper.updateBalanceAndBlockBalance(mergedRecordList);
|
||||||
|
int sellerUpdate = leaseShopConfigMapper.updateBalance(mergedRecordList);
|
||||||
|
|
||||||
if (buyerUpdate > 0 && sellerUpdate > 0){
|
if (buyerUpdate > 0 && sellerUpdate > 0){
|
||||||
for (LeasePayRecordMessage item : reocrdList) {
|
for (LeasePayRecordMessage item : reocrdList) {
|
||||||
|
|||||||
@@ -304,7 +304,7 @@
|
|||||||
gpc.coin,
|
gpc.coin,
|
||||||
gpc.`algorithm`
|
gpc.`algorithm`
|
||||||
) sub
|
) sub
|
||||||
JOIN lease_shopping_cart_info ci ON sub.id = ci.product_machine_id
|
JOIN lease_shopping_cart_info ci ON sub.id = ci.product_machine_id AND ci.user_id = #{userId}
|
||||||
AND ci.version = 1
|
AND ci.version = 1
|
||||||
WHERE
|
WHERE
|
||||||
sub.id IN
|
sub.id IN
|
||||||
|
|||||||
Reference in New Issue
Block a user