Browse Source

Implement trans query condition: Status, TransType, CreateTime.

pull/428/head
徐云金YunjinXu 3 years ago
parent
commit
1b950fddf1
  1. 7
      dtmsvr/storage/boltdb/boltdb.go
  2. 8
      dtmsvr/storage/redis/redis.go
  3. 18
      dtmsvr/storage/sql/sql.go

7
dtmsvr/storage/boltdb/boltdb.go

@ -321,8 +321,13 @@ func (s *Store) ScanTransGlobalStores(position *string, limit int64, condition s
}
g := storage.TransGlobalStore{}
dtmimp.MustUnmarshal(v, &g)
if !((condition.Status == "" || g.Status == condition.Status) &&
(condition.TransType == "" || g.TransType == condition.TransType) &&
(condition.CreateTimeStart.IsZero() || g.CreateTime.After(condition.CreateTimeStart)) &&
(condition.CreateTimeEnd.IsZero() || g.CreateTime.Before(condition.CreateTimeEnd))) {
continue
}
globals = append(globals, g)
// todo condition
if len(globals) == int(limit) {
break
}

8
dtmsvr/storage/redis/redis.go

@ -80,8 +80,12 @@ func (s *Store) ScanTransGlobalStores(position *string, limit int64, condition s
for _, v := range values {
global := storage.TransGlobalStore{}
dtmimp.MustUnmarshalString(v.(string), &global)
// todo condition
globals = append(globals, global)
if (condition.Status == "" || global.Status == condition.Status) &&
(condition.TransType == "" || global.TransType == condition.TransType) &&
(condition.CreateTimeStart.IsZero() || global.CreateTime.After(condition.CreateTimeStart)) &&
(condition.CreateTimeEnd.IsZero() || global.CreateTime.Before(condition.CreateTimeEnd)) {
globals = append(globals, global)
}
if len(globals) == int(limit) {
break
}

18
dtmsvr/storage/sql/sql.go

@ -58,8 +58,22 @@ func (s *Store) ScanTransGlobalStores(position *string, limit int64, condition s
if *position != "" {
lid = dtmimp.MustAtoi(*position)
}
// todo condition
dbr := dbGet().Must().Where("id < ?", lid).Order("id desc").Limit(int(limit)).Find(&globals)
query := dbGet().Must().Where("id < ?", lid)
if condition.Status != "" {
query = query.Where("status = ?", condition.Status)
}
if condition.TransType != "" {
query = query.Where("trans_type = ?", condition.TransType)
}
if !condition.CreateTimeStart.IsZero() {
query = query.Where("create_time >= ?", condition.CreateTimeStart.Format("2006-01-02 15:04:05"))
}
if !condition.CreateTimeEnd.IsZero() {
query = query.Where("create_time <= ?", condition.CreateTimeEnd.Format("2006-01-02 15:04:05"))
}
dbr := query.Order("id desc").Limit(int(limit)).Find(&globals)
if dbr.RowsAffected < limit {
*position = ""
} else {

Loading…
Cancel
Save