This commit is contained in:
2024-01-17 10:09:53 +08:00
parent 473d79a1aa
commit 27efb57060
2 changed files with 49 additions and 8 deletions

View File

@@ -2,14 +2,17 @@ package com.jsowell.pile.service.impl;
import com.jsowell.common.constant.CacheConstants;
import com.jsowell.common.core.redis.RedisCache;
import com.jsowell.common.util.id.IdUtils;
import com.jsowell.pile.domain.OrderMonitorData;
import com.jsowell.pile.mapper.OrderMonitorDataMapper;
import com.jsowell.pile.service.OrderMonitorDataService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Slf4j
@Service
public class OrderMonitorDataServiceImpl implements OrderMonitorDataService {
@@ -26,8 +29,30 @@ public class OrderMonitorDataServiceImpl implements OrderMonitorDataService {
@Override
public int insertSelective(OrderMonitorData record) {
// 防止重复入库
return orderMonitorDataMapper.insertSelective(record);
int i = 0;
// 获取锁
String key = CacheConstants.INSERT_ORDER_MONITOR_DATA + record.getOrderCode();
try {
Boolean setnx = redisCache.setnx(key, IdUtils.fastSimpleUUID(), 30);
if (!setnx) {
return i;
}
// 防止重复入库
OrderMonitorData orderMonitorData = selectByOrderCode(record.getOrderCode());
if (orderMonitorData != null) {
return i;
}
i = orderMonitorDataMapper.insertSelective(record);
if (i > 0) {
setRedisCache(record);
}
} catch (Exception e) {
log.error("保存OrderMonitorData异常", e);
} finally {
redisCache.deleteObject(key);
}
return i;
}
@Override
@@ -43,9 +68,10 @@ public class OrderMonitorDataServiceImpl implements OrderMonitorDataService {
orderMonitorData = orderMonitorDataMapper.selectByOrderCode(orderCode);
if (orderMonitorData != null) {
// 放缓存
redisCache.setCacheObject(redisKey, orderMonitorData, CacheConstants.cache_expire_time_12h);
String redisKey2 = CacheConstants.ORDER_MONITOR_DATA_BY_TRANSACTION_CODE + orderMonitorData.getTransactionCode();
redisCache.setCacheObject(redisKey2, orderMonitorData, CacheConstants.cache_expire_time_12h);
setRedisCache(orderMonitorData);
// redisCache.setCacheObject(redisKey, orderMonitorData, CacheConstants.cache_expire_time_12h);
// String redisKey2 = CacheConstants.ORDER_MONITOR_DATA_BY_TRANSACTION_CODE + orderMonitorData.getTransactionCode();
// redisCache.setCacheObject(redisKey2, orderMonitorData, CacheConstants.cache_expire_time_12h);
}
}
return orderMonitorData;
@@ -59,12 +85,24 @@ public class OrderMonitorDataServiceImpl implements OrderMonitorDataService {
orderMonitorData = orderMonitorDataMapper.selectByTransactionCode(transactionCode);
if (orderMonitorData != null) {
// 放缓存
redisCache.setCacheObject(redisKey, orderMonitorData, CacheConstants.cache_expire_time_12h);
String redisKey2 = CacheConstants.ORDER_MONITOR_DATA_BY_ORDER_CODE + orderMonitorData.getOrderCode();
redisCache.setCacheObject(redisKey2, orderMonitorData, CacheConstants.cache_expire_time_12h);
setRedisCache(orderMonitorData);
// redisCache.setCacheObject(redisKey, orderMonitorData, CacheConstants.cache_expire_time_12h);
// String redisKey2 = CacheConstants.ORDER_MONITOR_DATA_BY_ORDER_CODE + orderMonitorData.getOrderCode();
// redisCache.setCacheObject(redisKey2, orderMonitorData, CacheConstants.cache_expire_time_12h);
}
}
return orderMonitorData;
}
// 放缓存
private void setRedisCache(OrderMonitorData orderMonitorData) {
if (orderMonitorData == null) {
return;
}
String redisKey = CacheConstants.ORDER_MONITOR_DATA_BY_ORDER_CODE + orderMonitorData.getOrderCode();
redisCache.setCacheObject(redisKey, orderMonitorData, CacheConstants.cache_expire_time_12h);
String redisKey2 = CacheConstants.ORDER_MONITOR_DATA_BY_TRANSACTION_CODE + orderMonitorData.getTransactionCode();
redisCache.setCacheObject(redisKey2, orderMonitorData, CacheConstants.cache_expire_time_12h);
}
}