From 118e7590e59e31f1d21312584311a7febfe10c55 Mon Sep 17 00:00:00 2001 From: jaysunxiao Date: Tue, 12 Oct 2021 10:42:32 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix[orm]:=20=E4=BF=AE=E5=A4=8D=E5=BD=93?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93key=E4=B8=8D=E5=AD=98=E5=9C=A8?= =?UTF-8?q?=E7=9A=84=E6=97=B6=E5=80=99=E6=97=A0=E6=B3=95set=E6=95=B0?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/zfoo/orm/util/MongoIdUtils.java | 23 ++++++++++++------- .../com/zfoo/orm/util/MongoIdUtilsTest.java | 4 +--- .../com/zfoo/protocol/util/StringUtils.java | 2 +- 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/orm/src/main/java/com/zfoo/orm/util/MongoIdUtils.java b/orm/src/main/java/com/zfoo/orm/util/MongoIdUtils.java index 5201855d..fde8d35c 100644 --- a/orm/src/main/java/com/zfoo/orm/util/MongoIdUtils.java +++ b/orm/src/main/java/com/zfoo/orm/util/MongoIdUtils.java @@ -16,6 +16,7 @@ package com.zfoo.orm.util; import com.mongodb.client.model.Filters; import com.zfoo.orm.OrmContext; import com.zfoo.protocol.collection.CollectionUtils; +import com.zfoo.protocol.util.AssertionUtils; import com.zfoo.protocol.util.StringUtils; import org.bson.Document; @@ -54,7 +55,8 @@ public abstract class MongoIdUtils { , new Document("$inc", new Document(COUNT, 1L))); if (document == null) { - collection.insertOne(new Document("_id", documentName).append(COUNT, INIT_ID)); + var result = collection.insertOne(new Document("_id", documentName).append(COUNT, INIT_ID)); + AssertionUtils.notNull(result.getInsertedId()); return INIT_ID; } @@ -78,20 +80,25 @@ public abstract class MongoIdUtils { * @param documentName 档id */ public static void resetIncrementIdFromMongoDefault(String documentName) { - setIncrementIdFromMongo(0L, COLLECTION_NAME, documentName); + setIncrementIdFromMongo(COLLECTION_NAME, documentName, 0L); } - public static void setIncrementIdFromMongo(long value, Class clazz) { - setIncrementIdFromMongo(value, COLLECTION_NAME, StringUtils.uncapitalize(clazz.getSimpleName())); + public static void setIncrementIdFromMongo(Class clazz, long value) { + setIncrementIdFromMongo(COLLECTION_NAME, StringUtils.uncapitalize(clazz.getSimpleName()), value); } - public static void setIncrementIdFromMongo(long value, String documentName) { - setIncrementIdFromMongo(value, COLLECTION_NAME, documentName); + public static void setIncrementIdFromMongo(String documentName, long value) { + setIncrementIdFromMongo(COLLECTION_NAME, documentName, value); } - public static void setIncrementIdFromMongo(long value, String collectionName, String documentName) { + public static void setIncrementIdFromMongo(String collectionName, String documentName, long value) { var collection = OrmContext.getOrmManager().getCollection(collectionName); - collection.findOneAndUpdate(Filters.eq("_id", documentName), new Document("$set", new Document(COUNT, value))); + var document = collection.findOneAndUpdate(Filters.eq("_id", documentName), new Document("$set", new Document(COUNT, value))); + + if (document == null) { + var result = collection.insertOne(new Document("_id", documentName).append(COUNT, value)); + AssertionUtils.notNull(result.getInsertedId()); + } } diff --git a/orm/src/test/java/com/zfoo/orm/util/MongoIdUtilsTest.java b/orm/src/test/java/com/zfoo/orm/util/MongoIdUtilsTest.java index 2b46a20e..16d934e5 100644 --- a/orm/src/test/java/com/zfoo/orm/util/MongoIdUtilsTest.java +++ b/orm/src/test/java/com/zfoo/orm/util/MongoIdUtilsTest.java @@ -81,8 +81,6 @@ public class MongoIdUtilsTest { @Test public void set() { var context = new ClassPathXmlApplicationContext("application.xml"); - var id = MongoIdUtils.getIncrementIdFromMongoDefault("myDocument"); - System.out.println(id); - MongoIdUtils.setIncrementIdFromMongo(100, "myDocument"); + MongoIdUtils.setIncrementIdFromMongo("myDocument", 100); } } diff --git a/protocol/src/main/java/com/zfoo/protocol/util/StringUtils.java b/protocol/src/main/java/com/zfoo/protocol/util/StringUtils.java index 577fb8cf..641c5c0a 100644 --- a/protocol/src/main/java/com/zfoo/protocol/util/StringUtils.java +++ b/protocol/src/main/java/com/zfoo/protocol/util/StringUtils.java @@ -35,7 +35,7 @@ public abstract class StringUtils { public static final String SPACE = " "; public static final String TAB = " "; - + public static final String TAB_ASCII = "\t"; public static final String COMMA = ",";// [com·ma || 'kɒmə] n. 逗点; 逗号 public static final String COMMA_REGEX = ",|,"; From 99348ad738f924a51d8c907a81fbe0cfd506366c Mon Sep 17 00:00:00 2001 From: jaysunxiao Date: Wed, 13 Oct 2021 11:48:54 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix[protocol]:=20=E4=BF=AE=E5=A4=8DC#?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=86=99=E7=B4=A2=E5=BC=95=E7=9A=84=E5=88=A4?= =?UTF-8?q?=E6=96=AD=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- protocol/src/main/resources/cs/Buffer/ByteBuffer.cs | 2 +- .../src/test/resources/csTest/CsProtocol/Buffer/ByteBuffer.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/protocol/src/main/resources/cs/Buffer/ByteBuffer.cs b/protocol/src/main/resources/cs/Buffer/ByteBuffer.cs index faf82c58..cfd6f428 100644 --- a/protocol/src/main/resources/cs/Buffer/ByteBuffer.cs +++ b/protocol/src/main/resources/cs/Buffer/ByteBuffer.cs @@ -58,7 +58,7 @@ namespace CsProtocol.Buffer public void SetWriteOffset(int writeIndex) { - if (writeOffset > buffer.Length) + if (writeIndex > buffer.Length) { throw new Exception("writeIndex[" + writeIndex + "] out of bounds exception: readerIndex: " + readOffset + ", writerIndex: " + writeOffset + diff --git a/protocol/src/test/resources/csTest/CsProtocol/Buffer/ByteBuffer.cs b/protocol/src/test/resources/csTest/CsProtocol/Buffer/ByteBuffer.cs index a86da2ef..0a1257ac 100644 --- a/protocol/src/test/resources/csTest/CsProtocol/Buffer/ByteBuffer.cs +++ b/protocol/src/test/resources/csTest/CsProtocol/Buffer/ByteBuffer.cs @@ -56,7 +56,7 @@ namespace CsProtocol.Buffer public void SetWriteOffset(int writeIndex) { - if (writeOffset > buffer.Length) + if (writeIndex > buffer.Length) { throw new Exception("writeIndex[" + writeIndex + "] out of bounds exception: readerIndex: " + readOffset + ", writerIndex: " + writeOffset +