From 190f77529aa2d0f83361c01a97b3072d1cb95363 Mon Sep 17 00:00:00 2001 From: huchuansai Date: Sat, 27 Sep 2025 17:09:26 +0800 Subject: [PATCH] fix --- .../com/starry/admin/modules/order/job/OrderJob.java | 11 +++++++++++ .../order/service/impl/PlayOrderInfoServiceImpl.java | 6 +++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/job/OrderJob.java b/play-admin/src/main/java/com/starry/admin/modules/order/job/OrderJob.java index c001e39..43cfc13 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/order/job/OrderJob.java +++ b/play-admin/src/main/java/com/starry/admin/modules/order/job/OrderJob.java @@ -10,12 +10,15 @@ import com.starry.admin.modules.clerk.service.IPlayClerkUserInfoService; import com.starry.admin.modules.order.mapper.PlayOrderInfoMapper; import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity; import com.starry.admin.modules.weichat.service.WxCustomMpService; +import com.starry.common.redis.RedisCache; import java.time.LocalDateTime; import java.util.Arrays; import java.util.Date; import java.util.List; import javax.annotation.Resource; import lombok.extern.slf4j.Slf4j; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @@ -29,6 +32,8 @@ public class OrderJob { private WxCustomMpService wxCustomMpService; @Resource private IPlayClerkUserInfoService clerkUserInfoService; + @Resource + public RedisTemplate redisTemplate; /** @@ -82,6 +87,12 @@ public class OrderJob { orderInfoEntityList.forEach(orderInfo -> { try { + // 半小时只能发一次,使用redis做频次限制 + if (Boolean.TRUE.equals(redisTemplate.hasKey("order_notice_" + orderInfo.getId()))) { + log.error("订单已催促,执行跳过:{}", orderInfo.getOrderNo()); + return; + } + redisTemplate.opsForValue().set("order_notice_" + orderInfo.getId(), "1", 30, java.util.concurrent.TimeUnit.MINUTES); List clerkList = clerkUserInfoService.list(Wrappers.lambdaQuery(PlayClerkUserInfoEntity.class).isNotNull(PlayClerkUserInfoEntity::getOpenid).eq(PlayClerkUserInfoEntity::getLevelId, orderInfo.getLevelId()).eq(PlayClerkUserInfoEntity::getClerkState, "1") .eq(PlayClerkUserInfoEntity::getSex, orderInfo.getSex()).eq(PlayClerkUserInfoEntity::getTenantId, orderInfo.getTenantId())); wxCustomMpService.sendCreateOrderMessageBatch(clerkList, orderInfo.getOrderNo(), orderInfo.getOrderMoney().toString(), orderInfo.getCommodityName(), orderInfo.getId()); diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/service/impl/PlayOrderInfoServiceImpl.java b/play-admin/src/main/java/com/starry/admin/modules/order/service/impl/PlayOrderInfoServiceImpl.java index 9df52c9..9aa314a 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/order/service/impl/PlayOrderInfoServiceImpl.java +++ b/play-admin/src/main/java/com/starry/admin/modules/order/service/impl/PlayOrderInfoServiceImpl.java @@ -585,7 +585,7 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.eq(PlayOrderInfoEntity::getPlaceType, "1"); lambdaQueryWrapper.eq(PlayOrderInfoEntity::getOrderStatus, "0"); - lambdaQueryWrapper.eq(PlayOrderInfoEntity::getLevelId, entity.getLevelId()); +// lambdaQueryWrapper.eq(PlayOrderInfoEntity::getLevelId, entity.getLevelId()); lambdaQueryWrapper.eq(PlayOrderInfoEntity::getSex, entity.getSex()); lambdaQueryWrapper.eq(PlayOrderInfoEntity::getExcludeHistory, "0") .or(wrapper1 -> wrapper1.ne(PlayOrderInfoEntity::getAcceptBy, clerkId) @@ -817,10 +817,10 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl