feat: uuid 生成加锁

main
13009 2024-07-26 11:03:02 +08:00
parent 8919703be4
commit 4edcc0bca2
3 changed files with 36 additions and 4 deletions

View File

@ -7,6 +7,7 @@ import java.util.UUID;
* @since 2.0.0 * @since 2.0.0
*/ */
public class Nonce { public class Nonce {
private static final Object lock = new Object();
private Nonce() { private Nonce() {
} }
@ -15,6 +16,8 @@ public class Nonce {
* @return nonce * @return nonce
*/ */
public static String ofNonce() { public static String ofNonce() {
return UUID.randomUUID().toString().replace("-", "").toLowerCase(); synchronized (lock) {
return UUID.randomUUID().toString().replace("-", "").toLowerCase();
}
} }
} }

View File

@ -3,10 +3,25 @@ package com.czcb.scfs.api.core.util;
import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import java.util.HashSet;
import java.util.Set;
class NonceTest { class NonceTest {
@Test @Test
void ofNonce() { void ofNonce() {
Assertions.assertEquals(32, Nonce.ofNonce().length()); Assertions.assertEquals(32, Nonce.ofNonce().length());
} }
@Test
void ifNonceTest() {
Set<String> strings = new HashSet<>();
for (int j = 0; j < 1000000; j++) {
String s = Nonce.ofNonce();
strings.add(s);
}
Assertions.assertEquals(1000000, strings.size());
}
} }

View File

@ -1,16 +1,16 @@
package com.czcb.scfs.api.test.service; package com.czcb.scfs.api.test.service;
import com.czcb.scfs.api.service.v2.invoice.InvoiceService; import com.czcb.scfs.api.service.v2.invoice.InvoiceService;
import com.czcb.scfs.api.service.v2.invoice.model.InvoiceDepositQueryRequest;
import com.czcb.scfs.api.service.v2.invoice.model.InvoiceDepositQueryResponse;
import com.czcb.scfs.api.service.v2.invoice.model.InvoiceInfoSaveRequest; import com.czcb.scfs.api.service.v2.invoice.model.InvoiceInfoSaveRequest;
import com.czcb.scfs.api.service.v2.invoice.model.InvoiceSettleMatchRequest; import com.czcb.scfs.api.service.v2.invoice.model.InvoiceSettleMatchRequest;
import org.junit.jupiter.api.ClassOrderer;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@ -26,8 +26,9 @@ class InvoiceServiceTest {
void addTest() { void addTest() {
invoiceService.add(new InvoiceInfoSaveRequest()); invoiceService.add(new InvoiceInfoSaveRequest());
} }
@Test @Test
void matchTest(){ void matchTest() {
InvoiceSettleMatchRequest request = new InvoiceSettleMatchRequest(); InvoiceSettleMatchRequest request = new InvoiceSettleMatchRequest();
request.setChannelNo("1039"); request.setChannelNo("1039");
request.setAppNo("21"); request.setAppNo("21");
@ -46,4 +47,17 @@ class InvoiceServiceTest {
request.setMatchType("1"); request.setMatchType("1");
invoiceService.settleMatch(request); invoiceService.settleMatch(request);
} }
@Test
void invoiceDepositQuery() {
InvoiceDepositQueryRequest request = new InvoiceDepositQueryRequest();
request.setChannelNo("1039");
request.setAppNo("21");
request.setSerialNo("123456");
request.setTransDate("2024-07-24");
request.setTransTradeTime("2024-07-24 15:52:11");
InvoiceDepositQueryResponse response = invoiceService.invoiceDepositQuery(request);
System.out.println(response);
}
} }