|
|
@@ -7,6 +7,7 @@ import com.kym.service.*;
|
|
|
import com.kym.service.cache.KymCache;
|
|
|
import com.kym.service.factory.DiscountStrategyFactory;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
@@ -14,6 +15,7 @@ import java.math.BigDecimal;
|
|
|
import java.time.Duration;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.util.List;
|
|
|
+import java.util.UUID;
|
|
|
|
|
|
/**
|
|
|
* 关闭订单事件(订单结算)
|
|
|
@@ -23,6 +25,8 @@ import java.util.List;
|
|
|
@Slf4j
|
|
|
@Component
|
|
|
public class OrderCloseEventHandler implements AwoaraEventHandler<OrderInfoObject> {
|
|
|
+ @Value("${kym.domain}}")
|
|
|
+ private String domain;
|
|
|
private final WashOrderService washOrderService;
|
|
|
private final WalletDetailService walletDetailService;
|
|
|
private final AccountService accountService;
|
|
|
@@ -139,7 +143,11 @@ public class OrderCloseEventHandler implements AwoaraEventHandler<OrderInfoObjec
|
|
|
// 判断消费金额是否达标,达标发送领取停车优惠券消息
|
|
|
if (orderInfo.getAmount() >= WashOrder.PARKING_COUPON_MIN_AMOUNT) {
|
|
|
var parkingCouponUrl = KymCache.INSTANCE.getParkingQrCodeUrlByStationId(washOrder.getStationId());
|
|
|
- mpMsgTemplateService.sendParkingCouponMsg(washOrder, parkingCouponUrl);
|
|
|
+ // 维码链接做转换防止重复使用,有效期2小时
|
|
|
+ var code = UUID.randomUUID().toString();
|
|
|
+ KymCache.INSTANCE.setParkingCouponCode(code, parkingCouponUrl, LocalDateTime.now().plusHours(2));
|
|
|
+ var url = domain + "/parking-coupon?code=" + code;
|
|
|
+ mpMsgTemplateService.sendParkingCouponMsg(washOrder, url);
|
|
|
} else {
|
|
|
// 发送公众号消息(订单完成)
|
|
|
mpMsgTemplateService.sendOrderCompletedMsg(washOrder, account.getBalance());
|