|
@@ -0,0 +1,58 @@
|
|
|
+package mgo
|
|
|
+
|
|
|
+import (
|
|
|
+ "eta/eta_chart_lib/utils"
|
|
|
+ "go.mongodb.org/mongo-driver/bson"
|
|
|
+ "time"
|
|
|
+)
|
|
|
+
|
|
|
+// BuildDateCondition
|
|
|
+// @Description: 构建日期查询条件
|
|
|
+// @author: Roc
|
|
|
+// @datetime 2024-06-03 09:41:19
|
|
|
+// @param start string
|
|
|
+// @param end string
|
|
|
+// @return condition bson.M
|
|
|
+// @return err error
|
|
|
+func BuildDateCondition(start, end string) (condition bson.M, err error) {
|
|
|
+ var startDateTime, endDateTime time.Time
|
|
|
+ if start != "" {
|
|
|
+ // 使用开始日期条件
|
|
|
+ startDateTime, err = time.ParseInLocation(utils.FormatDate, start, time.Local)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if end != "" {
|
|
|
+ // 使用结束日期条件
|
|
|
+ endDateTime, err = time.ParseInLocation(utils.FormatDate, end, time.Local)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return BuildDateTimeCondition(startDateTime, endDateTime)
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+// BuildDateTimeCondition
|
|
|
+// @Description: 构建日期查询条件
|
|
|
+// @author: Roc
|
|
|
+// @datetime 2024-06-03 09:47:32
|
|
|
+// @param startDateTime time.Time
|
|
|
+// @param endDateTime time.Time
|
|
|
+// @return condition bson.M
|
|
|
+// @return err error
|
|
|
+func BuildDateTimeCondition(startDateTime, endDateTime time.Time) (condition bson.M, err error) {
|
|
|
+ if !startDateTime.IsZero() && !endDateTime.IsZero() {
|
|
|
+ condition = bson.M{utils.DateConvMysqlConvMongo(">="): startDateTime, utils.DateConvMysqlConvMongo("<="): endDateTime}
|
|
|
+ } else if !startDateTime.IsZero() {
|
|
|
+ cond := utils.DateConvMysqlConvMongo(">=")
|
|
|
+ condition = bson.M{cond: startDateTime}
|
|
|
+ } else if !endDateTime.IsZero() {
|
|
|
+ cond := utils.DateConvMysqlConvMongo("<=")
|
|
|
+ condition = bson.M{cond: endDateTime}
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|