|
@@ -0,0 +1,70 @@
|
|
|
+package com.elab.mongodb.utils;
|
|
|
+
|
|
|
+import org.apache.commons.lang3.time.DateFormatUtils;
|
|
|
+
|
|
|
+import java.util.Date;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 分片工具类
|
|
|
+ *
|
|
|
+ * @author liukaixiong
|
|
|
+ * @date 2022/9/28 - 10:30
|
|
|
+ */
|
|
|
+public class ShardingUtils {
|
|
|
+
|
|
|
+ private static String date(String collectName, Date date, String format) {
|
|
|
+ String id = DateFormatUtils.format(date, format);
|
|
|
+ return collectName + "_" + id;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 按照天的纬度划分
|
|
|
+ *
|
|
|
+ * @param collectName 表名称
|
|
|
+ * @param date 时间纬度
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static String day(String collectName, Date date) {
|
|
|
+ return date(collectName, date, "yyMMdd");
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 天纬度
|
|
|
+ *
|
|
|
+ * @param collectName
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static String day(String collectName) {
|
|
|
+ return day(collectName, new Date());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 小时纬度
|
|
|
+ *
|
|
|
+ * @param collectName
|
|
|
+ * @param date
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static String hours(String collectName, Date date) {
|
|
|
+ return date(collectName, date, "yyMMddhh");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 小时纬度
|
|
|
+ *
|
|
|
+ * @param collectName
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static String hours(String collectName) {
|
|
|
+ return date(collectName, new Date(), "yyMMddhh");
|
|
|
+ }
|
|
|
+
|
|
|
+ public static String month(String collectName) {
|
|
|
+ return date(collectName, new Date(), "yyMM");
|
|
|
+ }
|
|
|
+
|
|
|
+ public static String month(String collectName, Date date) {
|
|
|
+ return date(collectName, date, "yyMM");
|
|
|
+ }
|
|
|
+}
|