From 00fc77ad789485aab32c82caea6086835c8a9287 Mon Sep 17 00:00:00 2001
From: 侯瑞军 <411269194@kidgrow.com>
Date: Wed, 01 Apr 2020 16:57:15 +0800
Subject: [PATCH] 因采用了hashmap的实体映射方式,导致longint类型的数据后三位取整,造成数据不一致,需要在longint类型的实体字段上增加 toString()处理:  Map<String, Object> authTree = new HashMap<>(); authTree.put("id", sysMenu.getId().toString());

---
 kidgrow-commons/kidgrow-db-spring-boot-starter/src/main/java/com/kidgrow/db/sharding/HashModTableSuffix.java |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/kidgrow-commons/kidgrow-db-spring-boot-starter/src/main/java/com/kidgrow/db/sharding/HashModTableSuffix.java b/kidgrow-commons/kidgrow-db-spring-boot-starter/src/main/java/com/kidgrow/db/sharding/HashModTableSuffix.java
index 7304b90..14a5d3d 100644
--- a/kidgrow-commons/kidgrow-db-spring-boot-starter/src/main/java/com/kidgrow/db/sharding/HashModTableSuffix.java
+++ b/kidgrow-commons/kidgrow-db-spring-boot-starter/src/main/java/com/kidgrow/db/sharding/HashModTableSuffix.java
@@ -13,17 +13,21 @@
 public class HashModTableSuffix implements TableSuffix {
 
     private String hash;
-    private static final int MOD = 100;
+    private Long tableSize = 64L;
+    private String tableSuffix="-000";
 
-    public HashModTableSuffix(String hash) {
+    public HashModTableSuffix(String hash,long tableSize, String tableSuffix) {
         if (StringUtils.isEmpty(hash)) {
             throw new IllegalArgumentException("hash should not be null or empty");
         }
         this.hash = hash;
+        this.tableSize=tableSize;
+        this.tableSuffix=tableSuffix;
     }
 
     @Override
     public String getSuffix() {
-        return String.format("_%d", hash.hashCode() / MOD);
+        String format = "%0" + (tableSuffix.length() - 1) + "d";
+        return "_"+String.format(format, Math.abs(hash.hashCode()) % tableSize);
     }
 }

--
Gitblit v1.8.0