feat:消费机重复请求优化

This commit is contained in:
dzc committed 2026-06-16 14:50:32 +08:00
1 parent 8b3b86a679
commit 9bee9781cc
4 files changed
+26 -6

No files matched your search

@@ -224,6 +224,7 @@ public class HardOrderController {
PjcloudUser user = SecurityUtils.getUser();
dto.setUserId(user.getId());
dto.setIsFindCarList(true);
dto.setIsFindApptList(true);
dto.setMchTypeCodes(List.of(MerchantTypeEnum.CANTEEN.getType()));
return R.ok(hardwareOrderService.pagejoin(page, dto));
}
@@ -71,6 +71,7 @@ public interface HardOrderMapper extends PjcloudBaseMapper<HardOrderEntity> {
.in(ObjectUtil.isNotEmpty(dto.getUserIds()), HardOrderEntity::getUserId, dto.getUserIds())
.in(ObjectUtil.isNotEmpty(dto.getMchIds()), HardOrderEntity::getMerchantId, dto.getMchIds())
.in(ObjectUtil.isNotEmpty(dto.getMchTypeCodes()), HardOrderEntity::getMerchantType, dto.getMchTypeCodes())
.in(ObjectUtil.isNotEmpty(dto.getRefundStatusCodes()), HardOrderEntity::getRefundStatus, dto.getRefundStatusCodes())
.between(
ObjectUtil.isNotEmpty(dto.getCreateTimeList()),
HardOrderEntity::getCreateTime,
@@ -159,7 +159,7 @@ public class HardAfterSaleServiceImpl extends ServiceImpl<HardAfterSaleMapper, H
// 更改订单状态为已取消
HardAfterSaleLogEntity last = hardAfterSaleLogMapper.getFirst(afterSale.getId());
if (ObjectUtil.isNotEmpty(last) && ObjectUtil.isNotEmpty(last.getAfterStatus())) {
HardOrderEntity updateOrderObj = HardOrderEntity.builder().id(order.getId()).applyCancelTime(LocalDateTime.now()).orderStatus(last.getBeforeStatus()).build();
HardOrderEntity updateOrderObj = HardOrderEntity.builder().id(order.getId()).applyCancelTime(LocalDateTime.now()).refundStatus(HardRefundStatusEnum.NONE.getStatus()).orderStatus(last.getBeforeStatus()).build();
hardOrderService.updateById(updateOrderObj);
}
// 添加售后进度
@@ -465,7 +465,7 @@ public class HardAfterSaleServiceImpl extends ServiceImpl<HardAfterSaleMapper, H
LambdaUpdateWrapper<HardOrderEntity> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set(HardOrderEntity::getApplyCancelTime, null)
.set(HardOrderEntity::getOrderStatus, HardOrderStatusEnum.REFUND.getType())
.set(HardOrderEntity::getRefundStatus, HardRefundStatusEnum.NONE.getStatus())
.set(HardOrderEntity::getRefundStatus, HardRefundStatusEnum.APPLY.getStatus())
.eq(HardOrderEntity::getId, order.getId());
hardOrderService.update(updateWrapper);
return saveObj;
@@ -137,8 +137,30 @@ public class HardXfjServiceImpl implements HardXfjService {
@Override
public XfjServerTimeVo serverTime(String body, Map<String, String> headers) {
HardXfjLogEntity logger = initLogger(body, headers, "获取服务器时间接口");
XfjServerTimeVo result = new XfjServerTimeVo();
try {
// 是否重复请求
Map<String, String> transitionHeader = new LinkedHashMap<>();
for (Map.Entry<String, String> entry : headers.entrySet()) {
transitionHeader.put(entry.getKey().toUpperCase(), entry.getValue());
}
String deviceId = transitionHeader.get("DEVICE-ID");
if (ObjectUtil.isEmpty(deviceId)) {
throw new RuntimeException("|检查设备并返回配置|错误,deviceId不存在");
}
String lockKey = CacheConstants.HARD_XFJ_WHITE_LIST_LOCK + ":" + deviceId;
// 检查是否存在锁
Boolean hasLock = false;
hasLock = redisTemplate.hasKey(lockKey);
if (ObjectUtil.isNotEmpty(hasLock) && hasLock) {
log.warn("|获取服务器时间接口|设备uniqueCode:{}在30分钟内已查询过,拒绝重复查询", deviceId);
result.setWLUptate(0);
result.setWLPage(1);
return result;
}
HardManagerEntity entity = checkSignAndReturnConfig(body, headers);
logger.setUniqueCode(entity.getUniqueCode());
@@ -164,10 +186,6 @@ public class HardXfjServiceImpl implements HardXfjService {
countDto.setCarNumberLength(10);
Integer carCount = walletService.remoteOpenCardCount(countDto).getData();
String lockKey = CacheConstants.HARD_XFJ_WHITE_LIST_LOCK + ":" + entity.getUniqueCode();
// 检查是否存在锁
Boolean hasLock = false;
hasLock = redisTemplate.hasKey(lockKey);
if (ObjectUtil.isNotEmpty(hasLock) && hasLock && dto.getWLSum() > 0) {
log.warn("|获取服务器时间接口|设备uniqueCode:{}在30分钟内已查询过,拒绝重复查询", entity.getUniqueCode());
result.setWLUptate(0);