package mgo import ( "eta/eta_mobile/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 }