yoshikouki / dividend-portal

1 stars 1 forks source link

最新配当金が取得した情報を全て最新と判定するバグについて #48

Closed yoshikouki closed 3 years ago

yoshikouki commented 3 years ago

ローカル

irb(Dividend::Recent):032:0> u=Dividend::Recent.update_us_to_latest
irb(Dividend::Recent):033:0> Dividend.all.count irb(Dividend::Recent):033:0> Dividend.all.count
   (0.9ms)  SELECT COUNT(*) FROM "dividends"
=> 1075

irb(Dividend::Recent):036:0> u=Dividend::Recent.update_us_to_latest
irb(Dividend::Recent):037:0> Dividend.all.count
   (0.8ms)  SELECT COUNT(*) FROM "dividends"
=> 1126
irb(Dividend::Recent):038:0> u.count
=> 558
irb(Dividend::Recent):040:0> dividend_calendars = Dividend::Api.recent
=>
[{:ex_dividend_on=>"2021-08-20",
...
irb(Dividend::Recent):041:0> dividend_calendars.count
=> 634
yoshikouki commented 3 years ago

本番

irb(main):004:0> n=Dividend.not_notified
=>
[#<Dividend:0x0000558e7da473e0
...
irb(main):005:0> n.count
=> 610
irb(main):007:0> n=Dividend.last
=>
#<Dividend:0x0000558e7b9dd190
...
irb(main):008:0> n
=>
#<Dividend:0x0000558e7b9dd190
 id: 2361,
 ex_dividend_on: Fri, 06 Aug 2021,
 records_on: Mon, 09 Aug 2021,
 pays_on: Thu, 19 Aug 2021,
 declares_on: nil,
 symbol: "WVFC",
 dividend: 0.1e0,
 adjusted_dividend: 0.1e0,
 created_at: Sun, 08 Aug 2021 12:01:00.319320000 JST +09:00,
 updated_at: Sun, 08 Aug 2021 12:01:00.319320000 JST +09:00,

irb(main):014:0> Dividend.where symbol: "WVFC"
=>
[#<Dividend:0x0000558e7df92a98
  id: 876,
  ex_dividend_on: Fri, 06 Aug 2021,
  records_on: nil,
  pays_on: nil,
  declares_on: nil,
  symbol: "WVFC",
  dividend: 0.1e0,
  adjusted_dividend: nil,
  created_at: Thu, 29 Jul 2021 12:02:09.171454000 JST +09:00,
  updated_at: Thu, 29 Jul 2021 12:02:09.171454000 JST +09:00,
  notified: true>,
 #<Dividend:0x0000558e7df929d0
  id: 2243,
  ex_dividend_on: Fri, 06 Aug 2021,
  records_on: Mon, 09 Aug 2021,
  pays_on: Thu, 19 Aug 2021,
  declares_on: nil,
  symbol: "WVFC",
  dividend: 0.1e0,
  adjusted_dividend: 0.1e0,
  created_at: Sat, 07 Aug 2021 12:00:40.614979000 JST +09:00,
  updated_at: Sat, 07 Aug 2021 12:00:40.614979000 JST +09:00,
  notified: false>,
 #<Dividend:0x0000558e7df92908
  id: 2361,
  ex_dividend_on: Fri, 06 Aug 2021,
  records_on: Mon, 09 Aug 2021,
  pays_on: Thu, 19 Aug 2021,
  declares_on: nil,
  symbol: "WVFC",
  dividend: 0.1e0,
  adjusted_dividend: 0.1e0,
  created_at: Sun, 08 Aug 2021 12:01:00.319320000 JST +09:00,
  updated_at: Sun, 08 Aug 2021 12:01:00.319320000 JST +09:00,
  notified: false>]
yoshikouki commented 3 years ago
irb(Dividend::Recent):045:0> dividend_calendars.filter {|c| c[:symbol] == "WVFC"}
=> [{:ex_dividend_on=>"2021-08-06", :records_on=>"2021-08-09", :pays_on=>"2021-08-19", :declares_on=>"", :symbol=>"WVFC", :dividend=>0.1, :adjusted_dividend=>0.1}]
yoshikouki commented 3 years ago

API レスポンスが nil の際に空文字になってしまっている部分が原因なことが分かった

irb(Dividend::Recent):056:0> Dividend.find_by(:pays_on=>"2021-08-19", :declares_on=>"", :symbol=>"WVFC")
  Dividend Load (0.3ms)  SELECT "dividends".* FROM "dividends" WHERE "dividends"."pays_on" = $1 AND "dividends"."declares_on" = $2 AND "dividends"."symbol" = $3 LIMIT $4  [["pays_on", "2021-08-19"], ["declares_on", nil], ["symbol", "WVFC"], ["LIMIT", 1]]
=> nil
irb(Dividend::Recent):057:0> Dividend.find_by(:pays_on=>"2021-08-19", :symbol=>"WVFC")
  Dividend Load (0.6ms)  SELECT "dividends".* FROM "dividends" WHERE "dividends"."pays_on" = $1 AND "dividends"."symbol" = $2 LIMIT $3  [["pays_on", "2021-08-19"], ["symbol", "WVFC"], ["LIMIT", 1]]
=>
#<Dividend:0x0000558aa745fdf8
 id: 545,
 ex_dividend_on: Fri, 06 Aug 2021,
 records_on: Mon, 09 Aug 2021,
 pays_on: Thu, 19 Aug 2021,
 declares_on: nil,
 symbol: "WVFC",
 dividend: 0.1,
 adjusted_dividend: 0.1,
 created_at: Sat, 07 Aug 2021 18:19:40.970194000 JST +09:00,
 updated_at: Sat, 07 Aug 2021 18:19:40.970204000 JST +09:00,
 notified: false>
yoshikouki commented 3 years ago

https://twitter.com/dividend_portal/status/1424566555682164737

PixelSnap 2021-08-09 at 18 24 56@2x