账单-雪花主键-mq批量消费-sql
This commit is contained in:
@@ -22,7 +22,11 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.dao.DuplicateKeyException;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
@@ -87,6 +91,31 @@ public class BillMessageService implements InitializingBean {
|
||||
}
|
||||
}
|
||||
|
||||
public void handleBillMessage(List<BillMessage> billMessageList) {
|
||||
List<Long> uidList = billMessageList.stream().map(BillMessage::getUid).distinct().toList();
|
||||
Map<Long, Users> usersMap = usersService.getUsersMapByUids(uidList);
|
||||
|
||||
List<BillRecord> poList = billMessageList.stream().map(billMessage -> {
|
||||
BillRecord billRecord = new BillRecord();
|
||||
BeanUtils.copyProperties(billMessage, billRecord);
|
||||
Users u = usersMap.get(billMessage.getUid());
|
||||
if (null != u){
|
||||
billRecord.setPartitionId(u.getPartitionId());
|
||||
}
|
||||
|
||||
if (null == billRecord.getBillId()){
|
||||
billRecord.setBillId(DefaultIdentifierGenerator.getInstance().nextId(null));
|
||||
}
|
||||
|
||||
return billRecord;
|
||||
}).toList();
|
||||
|
||||
billRecordMapper.insertIgnore(poList);
|
||||
|
||||
String[] messIdList = billMessageList.stream().map(BillMessage::getMessId).toArray(String[]::new);
|
||||
recordMessMap.fastRemove(messIdList);
|
||||
}
|
||||
|
||||
private BillRecord insertBillRecord(BillMessage billMessage) {
|
||||
BillRecord billRecord = new BillRecord();
|
||||
BeanUtils.copyProperties(billMessage, billRecord);
|
||||
|
Reference in New Issue
Block a user