diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/gift/Lucky24GiftSendService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/gift/Lucky24GiftSendService.java index 69cc7a939..c4f605ffa 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/gift/Lucky24GiftSendService.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/gift/Lucky24GiftSendService.java @@ -208,12 +208,10 @@ public class Lucky24GiftSendService { private void sendMq(Map recordMap) { Map caches = new HashMap<>(recordMap.size()); List messageList = new ArrayList<>(); - - DefaultIdentifierGenerator idGenerator = DefaultIdentifierGenerator.getInstance(); - + for (Lucky24Record record: recordMap.values()){ - long id = identifierGenerator.nextId(null).longValue(); - String messId = idGenerator.nextUUID(null); + Long id = identifierGenerator.nextId(null).longValue(); + String messId = id.toString(); Lucky24Message message = new Lucky24Message(); message.setId(id); diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/gift/Lucky24MessageService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/gift/Lucky24MessageService.java index 713401fea..8ab00ac89 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/gift/Lucky24MessageService.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/gift/Lucky24MessageService.java @@ -60,12 +60,18 @@ public class Lucky24MessageService implements InitializingBean { public void handleMessage(Lucky24Message giftMessage) { - Room room = null != giftMessage.getRoomUid()? roomService.getRoomByUid(giftMessage.getRoomUid()): null; + log.info("【处理lucky24 mq】 开始处理 giftMessage: {}", JSON.toJSONString(giftMessage)); + + Lucky24Record record = buildLucky24Record(giftMessage); + int row = insertLucky24RecordIgnore(giftMessage, record); + if (row <= 0){ + return; + } + + Room room = null != giftMessage.getRoomUid() ? roomService.getRoomByUid(giftMessage.getRoomUid()) : null; Gift gift = giftService.getGiftById(giftMessage.getGiftId()); Date createTime = new Date(giftMessage.getCreateTime()); - Lucky24Record record = insertRecordIgnore(giftMessage); - // 收礼者收益 Lucky24GiftConfig config = sendService.getConfig(); Lucky24GiftConfig partitionConfig = config.getRatioByPartitionId(giftMessage.getPartitionId()); @@ -75,7 +81,7 @@ public class Lucky24MessageService implements InitializingBean { log.info("【处理lucky24 mq】 收礼收益已发放 messId: {} incomeAllot: {}", giftMessage.getMessId(), JSON.toJSONString(receiverIncomeAllot)); // 异步,报错不会触发mq重试 - if (!CollectionUtils.isEmpty(config.getFollowUidList()) && config.getFollowUidList().contains(record.getUid())){ + if (!CollectionUtils.isEmpty(config.getFollowUidList()) && config.getFollowUidList().contains(record.getUid())) { robotMsgService.pushFollowUser(record.getUid(), record.getReceiverUid(), record.getRoomUid()); } @@ -86,16 +92,11 @@ public class Lucky24MessageService implements InitializingBean { recordMessMap.fastRemove(giftMessage.getMessId()); } - private Lucky24Record insertRecordIgnore(Lucky24Message giftMessage) { - - long startTime = System.currentTimeMillis(); - long getPoolTime = 0; - long insertTime = 0; - + private Lucky24Record buildLucky24Record(Lucky24Message giftMessage) { Lucky24Record record = new Lucky24Record(); - if (null == giftMessage.getId()){ - giftMessage.setId(identifierGenerator.nextId( null).longValue()); + if (null == giftMessage.getId()) { + giftMessage.setId(identifierGenerator.nextId(null).longValue()); } record.setId(giftMessage.getId()); @@ -110,12 +111,11 @@ public class Lucky24MessageService implements InitializingBean { record.setPoolType(giftMessage.getPoolType()); record.setPoolId(giftMessage.getPoolId()); - if (null == giftMessage.getPoolType() && null != giftMessage.getPoolId()){ + if (null == giftMessage.getPoolType() && null != giftMessage.getPoolId()) { Lucky24Pool pool = poolMapper.selectById(giftMessage.getPoolId()); - if (null != pool){ + if (null != pool) { record.setPoolType(pool.getType()); } - getPoolTime = System.currentTimeMillis(); } record.setIsSupplement(giftMessage.getIsSupplement()); @@ -125,13 +125,16 @@ public class Lucky24MessageService implements InitializingBean { record.setCreateTime(new Date(giftMessage.getCreateTime())); record.setStockResult(giftMessage.getStockResult()); + return record; + } + + private int insertLucky24RecordIgnore(Lucky24Message giftMessage, Lucky24Record record) { + long startTime = System.currentTimeMillis(); int insertRow = recordService.insertRecordIgnore(record); long endTime = System.currentTimeMillis(); - log.info("insertLucky24RecordIgnore row {} performance - getPool: {}ms, insert: {}ms, total: {}ms", + log.info("insertLucky24RecordIgnore row {} performance - total: {}ms", insertRow, - getPoolTime - startTime, - insertTime - getPoolTime, endTime - startTime); if (insertRow > 0){ @@ -139,7 +142,7 @@ public class Lucky24MessageService implements InitializingBean { giftMessage.getMessId(), record.getId(), JSON.toJSONString(record)); } - return record; + return insertRow; } @Override @@ -147,4 +150,4 @@ public class Lucky24MessageService implements InitializingBean { recordMessMap = redissonClient.getMap(RedisKey.lucky_24_record_message.getKey()); } -} +} \ No newline at end of file