key 过期
订单 超时 取消 定时任务 历史订单 订单取消 队列 redis 序列化
This commit is contained in:
@@ -35,7 +35,6 @@ import com.czg.service.RedisService;
|
||||
import com.czg.service.order.dto.BigDecimalDTO;
|
||||
import com.czg.service.order.enums.OrderStatusEnums;
|
||||
import com.czg.service.order.mapper.OrderInfoMapper;
|
||||
import com.czg.system.entity.SysParams;
|
||||
import com.czg.utils.AssertUtil;
|
||||
import com.czg.utils.CzgStrUtils;
|
||||
import com.czg.utils.PageUtil;
|
||||
@@ -131,13 +130,24 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
|
||||
}
|
||||
|
||||
@Override
|
||||
public HistoryOrderVo historyOrder(Long orderId) {
|
||||
public HistoryOrderVo historyOrder(Long orderId, String tableCode) {
|
||||
if (orderId == null && StrUtil.isBlank(tableCode)) {
|
||||
throw new ValidateException("订单id或台桌码不可为空");
|
||||
}
|
||||
HistoryOrderVo historyOrderVo = new HistoryOrderVo();
|
||||
OrderInfo orderInfo = getById(orderId);
|
||||
OrderInfo orderInfo;
|
||||
if (orderId == null) {
|
||||
orderInfo = queryChain()
|
||||
.select()
|
||||
.eq(OrderInfo::getTableCode, tableCode)
|
||||
.one();
|
||||
} else {
|
||||
orderInfo = getById(orderId);
|
||||
}
|
||||
AssertUtil.isNull(orderInfo, "订单不存在");
|
||||
historyOrderVo.setInfo(orderInfo);
|
||||
List<OrderDetail> orderDetails = orderDetailService.queryChain().select()
|
||||
.eq(OrderDetail::getOrderId, orderId).list();
|
||||
.eq(OrderDetail::getOrderId, orderInfo.getId()).list();
|
||||
Map<Integer, List<OrderDetail>> resultMap = new HashMap<>();
|
||||
// 遍历订单详情列表
|
||||
for (OrderDetail orderDetail : orderDetails) {
|
||||
@@ -208,6 +218,8 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
|
||||
if ("after-pay".equals(orderInfo.getPayMode())) {
|
||||
//发送打票信息
|
||||
rabbitPublisher.sendOrderPrintMsg(orderInfo.getId().toString());
|
||||
} else {
|
||||
redisService.set(RedisCst.classKeyExpired.EXPIRED_ORDER + orderInfo.getId(), "", 60 * 15);
|
||||
}
|
||||
rabbitPublisher.sendOrderStockMsg(orderInfo.getId().toString());
|
||||
return orderInfo;
|
||||
@@ -216,6 +228,13 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
|
||||
@Override
|
||||
public OrderInfo checkOrderPay(CheckOrderPay param) {
|
||||
OrderInfo orderInfo = getById(param.getOrderId());
|
||||
if (!"after-pay".equals(orderInfo.getPayMode())) {
|
||||
if (redisService.hasKey(RedisCst.classKeyExpired.EXPIRED_ORDER + param.getOrderId())) {
|
||||
redisService.set(RedisCst.classKeyExpired.EXPIRED_ORDER + param.getOrderId(), "", 60 * 15);
|
||||
} else {
|
||||
throw new ValidateException("订单已过期,请重新下单");
|
||||
}
|
||||
}
|
||||
log.info("订单信息:{},优惠信息:{}", JSONObject.toJSONString(orderInfo), JSONObject.toJSONString(param));
|
||||
if (!orderInfo.getStatus().equals(OrderStatusEnums.UNPAID.getCode())) {
|
||||
throw new ValidateException("生成支付订单失败,订单不可支付");
|
||||
@@ -433,6 +452,7 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
|
||||
}
|
||||
upOrderInfo(orderInfo, new BigDecimal(czgCallBackDto.getAmount() / 100L),
|
||||
DateUtil.parseLocalDateTime(czgCallBackDto.getPayTime()), payment.getId(), null);
|
||||
redisService.del(RedisCst.classKeyExpired.EXPIRED_ORDER + orderInfo.getId());
|
||||
} else if ("memberIn".equals(payment.getPayType())) {
|
||||
ShopUser shopUser = shopUserService.getById(payment.getSourceId());
|
||||
if (shopUser == null) {
|
||||
@@ -525,6 +545,23 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单到期
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public void expired(Long orderId) {
|
||||
OrderInfo orderInfo = getById(orderId);
|
||||
if (orderInfo.getStatus().equals(OrderStatusEnums.UNPAID.getCode())) {
|
||||
updateChain().set(OrderInfo::getStatus, OrderStatusEnums.CANCELLED.getCode())
|
||||
.where(OrderInfo::getId).eq(orderId)
|
||||
.update();
|
||||
rabbitPublisher.sendOrderCancelMsg(orderId.toString());
|
||||
} else {
|
||||
log.info("订单取消失败,订单Id:{},订状态:{}", orderInfo.getId(), orderInfo.getStatus());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化订单信息
|
||||
*/
|
||||
|
||||
@@ -94,6 +94,7 @@ public class PayServiceImpl implements PayService {
|
||||
OrderInfo orderInfo = checkPay(payParam.getCheckOrderPay());
|
||||
orderInfoService.upOrderInfo(orderInfo, orderInfo.getOrderAmount(),
|
||||
LocalDateTime.now(), null, PayEnums.CREDIT_PAY);
|
||||
redisService.del(RedisCst.classKeyExpired.EXPIRED_ORDER + orderInfo.getId());
|
||||
//TODO 挂账后续逻辑
|
||||
return CzgResult.success();
|
||||
}
|
||||
@@ -104,6 +105,7 @@ public class PayServiceImpl implements PayService {
|
||||
OrderInfo orderInfo = checkPay(payParam.getCheckOrderPay());
|
||||
orderInfoService.upOrderInfo(orderInfo, orderInfo.getOrderAmount(),
|
||||
LocalDateTime.now(), null, PayEnums.CASH_PAY);
|
||||
redisService.del(RedisCst.classKeyExpired.EXPIRED_ORDER + orderInfo.getId());
|
||||
return CzgResult.success();
|
||||
}
|
||||
|
||||
@@ -152,6 +154,7 @@ public class PayServiceImpl implements PayService {
|
||||
Long flowId = shopUserService.updateMoney(shopUser.getShopId(), shopUserMoneyEditDTO);
|
||||
orderInfoService.upOrderInfo(orderInfo, orderInfo.getOrderAmount(),
|
||||
LocalDateTime.now(), flowId, PayEnums.VIP_PAY);
|
||||
redisService.del(RedisCst.classKeyExpired.EXPIRED_ORDER + orderInfo.getId());
|
||||
return CzgResult.success();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user