This commit is contained in:
huchuansai
2025-09-27 17:09:26 +08:00
parent b803e836eb
commit 190f77529a
2 changed files with 14 additions and 3 deletions

View File

@@ -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.mapper.PlayOrderInfoMapper;
import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity; import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity;
import com.starry.admin.modules.weichat.service.WxCustomMpService; import com.starry.admin.modules.weichat.service.WxCustomMpService;
import com.starry.common.redis.RedisCache;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import javax.annotation.Resource; import javax.annotation.Resource;
import lombok.extern.slf4j.Slf4j; 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.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@@ -29,6 +32,8 @@ public class OrderJob {
private WxCustomMpService wxCustomMpService; private WxCustomMpService wxCustomMpService;
@Resource @Resource
private IPlayClerkUserInfoService clerkUserInfoService; private IPlayClerkUserInfoService clerkUserInfoService;
@Resource
public RedisTemplate<String, Object> redisTemplate;
/** /**
@@ -82,6 +87,12 @@ public class OrderJob {
orderInfoEntityList.forEach(orderInfo -> { orderInfoEntityList.forEach(orderInfo -> {
try { 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<PlayClerkUserInfoEntity> clerkList = clerkUserInfoService.list(Wrappers.lambdaQuery(PlayClerkUserInfoEntity.class).isNotNull(PlayClerkUserInfoEntity::getOpenid).eq(PlayClerkUserInfoEntity::getLevelId, orderInfo.getLevelId()).eq(PlayClerkUserInfoEntity::getClerkState, "1") List<PlayClerkUserInfoEntity> 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())); .eq(PlayClerkUserInfoEntity::getSex, orderInfo.getSex()).eq(PlayClerkUserInfoEntity::getTenantId, orderInfo.getTenantId()));
wxCustomMpService.sendCreateOrderMessageBatch(clerkList, orderInfo.getOrderNo(), orderInfo.getOrderMoney().toString(), orderInfo.getCommodityName(), orderInfo.getId()); wxCustomMpService.sendCreateOrderMessageBatch(clerkList, orderInfo.getOrderNo(), orderInfo.getOrderMoney().toString(), orderInfo.getCommodityName(), orderInfo.getId());

View File

@@ -585,7 +585,7 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
LambdaQueryWrapper<PlayOrderInfoEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PlayOrderInfoEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(PlayOrderInfoEntity::getPlaceType, "1"); lambdaQueryWrapper.eq(PlayOrderInfoEntity::getPlaceType, "1");
lambdaQueryWrapper.eq(PlayOrderInfoEntity::getOrderStatus, "0"); 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::getSex, entity.getSex());
lambdaQueryWrapper.eq(PlayOrderInfoEntity::getExcludeHistory, "0") lambdaQueryWrapper.eq(PlayOrderInfoEntity::getExcludeHistory, "0")
.or(wrapper1 -> wrapper1.ne(PlayOrderInfoEntity::getAcceptBy, clerkId) .or(wrapper1 -> wrapper1.ne(PlayOrderInfoEntity::getAcceptBy, clerkId)
@@ -817,10 +817,10 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
if (orderInfo.getLevelId().equals(clerkUserInfoEntity.getLevelId())) { if (orderInfo.getLevelId().equals(clerkUserInfoEntity.getLevelId())) {
PlayClerkLevelInfoEntity levelInfo = playClerkLevelInfoService PlayClerkLevelInfoEntity levelInfo = playClerkLevelInfoService
.selectPlayClerkLevelInfoById(orderInfo.getLevelId()); .selectPlayClerkLevelInfoById(orderInfo.getLevelId());
throw new CustomException("等级为" + levelInfo.getName() + "的店员才可接单"); // throw new CustomException("等级为" + levelInfo.getName() + "的店员才可接单");
} }
// 判断店员性别是否符合规则 // 判断店员性别是否符合规则
if (orderInfo.getSex().equals(clerkUserInfoEntity.getSex())) { if (!orderInfo.getSex().equals(clerkUserInfoEntity.getSex())) {
String sex = "0".equals(orderInfo.getSex()) ? "未知" : "1".equals(orderInfo.getSex()) ? "" : ""; String sex = "0".equals(orderInfo.getSex()) ? "未知" : "1".equals(orderInfo.getSex()) ? "" : "";
throw new CustomException("性别为" + sex + "的店员才可接单"); throw new CustomException("性别为" + sex + "的店员才可接单");
} }