feat:过期扫一扫订单直接删除

This commit is contained in:
dzc committed 2025-09-03 11:44:24 +08:00
1 parent d46f232224
commit 5f4a987c26
2 files changed
+24 -3

No files matched your search

@@ -0,0 +1,18 @@
package com.bsd.pjcloud.hard.redis.config;
import org.springframework.context.annotation.Bean;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.listener.RedisMessageListenerContainer;
import org.springframework.stereotype.Component;
@Component
public class RedisConfig {
@Bean
public RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory) {
RedisMessageListenerContainer container = new RedisMessageListenerContainer();
container.setConnectionFactory(connectionFactory);
return container;
}
}
@@ -5,6 +5,7 @@ import cn.hutool.extra.spring.SpringUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSON;
import com.alipay.api.response.AlipayTradePayResponse;
import com.baomidou.lock.annotation.Lock4j;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -82,6 +83,7 @@ import com.bsd.pjcloud.wallet.api.vo.WalletManageVo;
import com.bsd.pjcloud.wallet.api.vo.WalletSettingVo;
import com.bsd.pjcloud.wallet.api.vo.mch.MchRuleJoinDtoVo;
import jakarta.validation.Valid;
import lombok.Locked;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Lazy;
@@ -413,9 +415,9 @@ public class HardOrderServiceImpl extends ServiceImpl<HardOrderMapper, HardOrder
// String qrCodeData = String.format("https://stgl.pj.gov.cn/h5/#/pages/pay/scanPay?action=harQrCodeScanPay&orderId=%s&mchId=%s", orderObj.getId(), orderObj.getMerchantId());
// 在redis里存储订单id如果30分钟没有支付就删除订单
// 在redis里存储订单id如果5分钟没有支付就删除订单
String redisKey = String.format("%s:%s", CacheConstants.HARDER_ORDER_NON_PAY, orderObj.getId());
redisTemplate.opsForValue().set(redisKey, String.valueOf(orderObj.getId()), 30, TimeUnit.MINUTES);
redisTemplate.opsForValue().set(redisKey, String.valueOf(orderObj.getId()), 300, TimeUnit.SECONDS);
String qrCodeData = String.format("http://192.168.101.173:8889/h5/#/pages/pay/scanPay?action=harQrCodeScanPay&orderId=%s&mchId=%s", orderObj.getId(), orderObj.getMerchantId());
return HardCreateHardQrCodeScanOrderVo.builder().orderId(orderObj.getId()).mchId(orderObj.getMerchantId()).qrCodeData(qrCodeData).build();
@@ -425,6 +427,7 @@ public class HardOrderServiceImpl extends ServiceImpl<HardOrderMapper, HardOrder
* 用户确认设备二维码扫一扫订单
*/
@Override
@Lock4j(keys = {"#dto.orderId"})
@Transactional(rollbackFor = Exception.class)
public void doneHardQrCodeScanOrder(HardDoneHardQrCodeScanOrderDto dto, PjcloudUser user) {
// 查询订单
@@ -466,7 +469,7 @@ public class HardOrderServiceImpl extends ServiceImpl<HardOrderMapper, HardOrder
// 钱包扣款
getSelf().fastReduceBalance(order);
// 在redis里存储订单id如果30分钟没有支付就删除订单(这里删除一下)
// 在redis里存储订单id如果5分钟没有支付就删除订单(这里删除一下)
String redisKey = String.format("%s:%s", CacheConstants.HARDER_ORDER_NON_PAY, order.getId());
redisTemplate.delete(redisKey);
}