PLT-25 fixing stats for postgres
Этот коммит содержится в:
@@ -630,7 +630,7 @@ func (s SqlPostStore) AnalyticsUserCountsWithPostsByDay(teamId string) StoreChan
|
|||||||
if utils.Cfg.SqlSettings.DriverName == model.DATABASE_DRIVER_POSTGRES {
|
if utils.Cfg.SqlSettings.DriverName == model.DATABASE_DRIVER_POSTGRES {
|
||||||
query =
|
query =
|
||||||
`SELECT
|
`SELECT
|
||||||
t1.Name, COUNT(t1.UserId) AS Value
|
TO_CHAR(t1.Name, 'YYYY-MM-DD') AS Name, COUNT(t1.UserId) AS Value
|
||||||
FROM
|
FROM
|
||||||
(SELECT DISTINCT
|
(SELECT DISTINCT
|
||||||
DATE(TO_TIMESTAMP(Posts.CreateAt / 1000)) AS Name,
|
DATE(TO_TIMESTAMP(Posts.CreateAt / 1000)) AS Name,
|
||||||
@@ -650,7 +650,7 @@ func (s SqlPostStore) AnalyticsUserCountsWithPostsByDay(teamId string) StoreChan
|
|||||||
_, err := s.GetReplica().Select(
|
_, err := s.GetReplica().Select(
|
||||||
&rows,
|
&rows,
|
||||||
query,
|
query,
|
||||||
map[string]interface{}{"TeamId": teamId})
|
map[string]interface{}{"TeamId": teamId, "Time": model.GetMillis() - 1000*60*60*24*31})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
result.Err = model.NewAppError("SqlPostStore.AnalyticsUserCountsWithPostsByDay", "We couldn't get user counts with posts", err.Error())
|
result.Err = model.NewAppError("SqlPostStore.AnalyticsUserCountsWithPostsByDay", "We couldn't get user counts with posts", err.Error())
|
||||||
} else {
|
} else {
|
||||||
@@ -672,14 +672,17 @@ func (s SqlPostStore) AnalyticsPostCountsByDay(teamId string) StoreChannel {
|
|||||||
|
|
||||||
query :=
|
query :=
|
||||||
`SELECT
|
`SELECT
|
||||||
DATE(FROM_UNIXTIME(Posts.CreateAt / 1000)) AS Name,
|
Name, COUNT(Value) AS Value
|
||||||
COUNT(Posts.Id) AS Value
|
|
||||||
FROM
|
FROM
|
||||||
Posts,
|
(SELECT
|
||||||
Channels
|
DATE(FROM_UNIXTIME(Posts.CreateAt / 1000)) AS Name,
|
||||||
WHERE
|
'1' AS Value
|
||||||
Posts.ChannelId = Channels.Id
|
FROM
|
||||||
AND Channels.TeamId = :TeamId
|
Posts, Channels
|
||||||
|
WHERE
|
||||||
|
Posts.ChannelId = Channels.Id
|
||||||
|
AND Channels.TeamId = :TeamId
|
||||||
|
AND Posts.CreateAt >:Time) AS t1
|
||||||
GROUP BY Name
|
GROUP BY Name
|
||||||
ORDER BY Name DESC
|
ORDER BY Name DESC
|
||||||
LIMIT 30`
|
LIMIT 30`
|
||||||
@@ -687,14 +690,17 @@ func (s SqlPostStore) AnalyticsPostCountsByDay(teamId string) StoreChannel {
|
|||||||
if utils.Cfg.SqlSettings.DriverName == model.DATABASE_DRIVER_POSTGRES {
|
if utils.Cfg.SqlSettings.DriverName == model.DATABASE_DRIVER_POSTGRES {
|
||||||
query =
|
query =
|
||||||
`SELECT
|
`SELECT
|
||||||
DATE(TO_TIMESTAMP(Posts.CreateAt / 1000)) AS Name,
|
Name, COUNT(Value) AS Value
|
||||||
COUNT(Posts.Id) AS Value
|
|
||||||
FROM
|
FROM
|
||||||
Posts,
|
(SELECT
|
||||||
Channels
|
TO_CHAR(DATE(TO_TIMESTAMP(Posts.CreateAt / 1000)), 'YYYY-MM-DD') AS Name,
|
||||||
WHERE
|
'1' AS Value
|
||||||
Posts.ChannelId = Channels.Id
|
FROM
|
||||||
AND Channels.TeamId = :TeamId
|
Posts, Channels
|
||||||
|
WHERE
|
||||||
|
Posts.ChannelId = Channels.Id
|
||||||
|
AND Channels.TeamId = :TeamId
|
||||||
|
AND Posts.CreateAt > :Time) AS t1
|
||||||
GROUP BY Name
|
GROUP BY Name
|
||||||
ORDER BY Name DESC
|
ORDER BY Name DESC
|
||||||
LIMIT 30`
|
LIMIT 30`
|
||||||
@@ -704,7 +710,7 @@ func (s SqlPostStore) AnalyticsPostCountsByDay(teamId string) StoreChannel {
|
|||||||
_, err := s.GetReplica().Select(
|
_, err := s.GetReplica().Select(
|
||||||
&rows,
|
&rows,
|
||||||
query,
|
query,
|
||||||
map[string]interface{}{"TeamId": teamId})
|
map[string]interface{}{"TeamId": teamId, "Time": model.GetMillis() - 1000*60*60*24*31})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
result.Err = model.NewAppError("SqlPostStore.AnalyticsPostCountsByDay", "We couldn't get post counts by day", err.Error())
|
result.Err = model.NewAppError("SqlPostStore.AnalyticsPostCountsByDay", "We couldn't get post counts by day", err.Error())
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -672,21 +672,22 @@ func TestPostCountsByDay(t *testing.T) {
|
|||||||
o1a.Message = "a" + model.NewId() + "b"
|
o1a.Message = "a" + model.NewId() + "b"
|
||||||
o1a = Must(store.Post().Save(o1a)).(*model.Post)
|
o1a = Must(store.Post().Save(o1a)).(*model.Post)
|
||||||
|
|
||||||
// o2 := &model.Post{}
|
o2 := &model.Post{}
|
||||||
// o2.ChannelId = c1.Id
|
o2.ChannelId = c1.Id
|
||||||
// o2.UserId = model.NewId()
|
o2.UserId = model.NewId()
|
||||||
// o2.CreateAt = o1.CreateAt - (1000 * 60 * 60 * 24 * 2)
|
o2.CreateAt = o1.CreateAt - (1000 * 60 * 60 * 24 * 2)
|
||||||
// o2.Message = "a" + model.NewId() + "b"
|
o2.Message = "a" + model.NewId() + "b"
|
||||||
// o2 = Must(store.Post().Save(o2)).(*model.Post)
|
o2 = Must(store.Post().Save(o2)).(*model.Post)
|
||||||
|
|
||||||
// o2a := &model.Post{}
|
o2a := &model.Post{}
|
||||||
// o2a.ChannelId = c1.Id
|
o2a.ChannelId = c1.Id
|
||||||
// o2a.UserId = o2.UserId
|
o2a.UserId = o2.UserId
|
||||||
// o2a.CreateAt = o1.CreateAt - (1000 * 60 * 60 * 24 * 2)
|
o2a.CreateAt = o1.CreateAt - (1000 * 60 * 60 * 24 * 2)
|
||||||
// o2a.Message = "a" + model.NewId() + "b"
|
o2a.Message = "a" + model.NewId() + "b"
|
||||||
// o2a = Must(store.Post().Save(o2a)).(*model.Post)
|
o2a = Must(store.Post().Save(o2a)).(*model.Post)
|
||||||
|
|
||||||
time.Sleep(1 * time.Second)
|
time.Sleep(1 * time.Second)
|
||||||
|
t.Log(t1.Id)
|
||||||
|
|
||||||
if r1 := <-store.Post().AnalyticsPostCountsByDay(t1.Id); r1.Err != nil {
|
if r1 := <-store.Post().AnalyticsPostCountsByDay(t1.Id); r1.Err != nil {
|
||||||
t.Fatal(r1.Err)
|
t.Fatal(r1.Err)
|
||||||
@@ -697,20 +698,16 @@ func TestPostCountsByDay(t *testing.T) {
|
|||||||
t.Fatal("wrong value")
|
t.Fatal("wrong value")
|
||||||
}
|
}
|
||||||
|
|
||||||
// row2 := r1.Data.(model.AnalyticsRows)[1]
|
row2 := r1.Data.(model.AnalyticsRows)[1]
|
||||||
// if row2.Value != 2 {
|
if row2.Value != 2 {
|
||||||
// t.Fatal("wrong value")
|
t.Fatal("wrong value")
|
||||||
// }
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if r1 := <-store.Post().AnalyticsPostCount(t1.Id); r1.Err != nil {
|
if r1 := <-store.Post().AnalyticsPostCount(t1.Id); r1.Err != nil {
|
||||||
t.Fatal(r1.Err)
|
t.Fatal(r1.Err)
|
||||||
} else {
|
} else {
|
||||||
// if r1.Data.(int64) != 4 {
|
if r1.Data.(int64) != 4 {
|
||||||
// t.Fatal("wrong value")
|
|
||||||
// }
|
|
||||||
|
|
||||||
if r1.Data.(int64) != 2 {
|
|
||||||
t.Fatal("wrong value")
|
t.Fatal("wrong value")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user