バグ #111
安治 博之 さんが3ヶ月前に更新
本日の配布済の枚数と、取得者一覧の枚数が一致しない原因事態はわかりました
取得者一覧は、
1.ticketsテーブルから、チケットボックスIDのレコードを取得
2.ticket_logsテーブルから、取得したチケットIDのデータを取得
3.accountsテーブル、agreementsテーブルから取得者を取得
といった流れで表示しています
今回、2のticket_logsテーブル取得した際、条件が不足していたため、
違う操作のログと思われるレコードが取得された為に、配布済と取得者一覧が一致しておりませんでした
チケットログテーブルには、同じチケットIDのログが複数ありました
select id, action_type, loggable_id, loggable_type, ticket_id, actionable_id, actionable_type, buy_history_id, ticket_boxes_id, ticket_pickup_date, created_at, updated_at from ticket_logs where ticket_id in (8651, 8652, 8653, 8654, 8655, 8656, 8657, 8658, 8659, 8660, 8661, 8662, 8663, 8664, 8665, 8666, 8667, 8668, 8669, 8670)
!clipboard-202503041749-jwaa1.png!
上記のログのうち、受け取り時のログは、IDが2625,2626のログなのですが、同じチケットIDのログである2627,2653のログも取得してしまい、不一致を起こしておりました
!clipboard-202503041751-s5rp2.png!
!clipboard-202503041752-op92a.png!
取得者一覧は、以下の条件で取得する事で、正しい表示になると考えております
条件
・action_typeが6の企業受け取り
・loggable_typeが、Account
・actionable_typeが、Company
・チケットボックスIDが、該当のチケットボックス
そこでなのですが、今回チケットログに、loggable_typeがAccount、actionable_typeもAccountのデータが作成された経緯が分かっておりません
チケット送付を行うと、確かに、そうようなログになるのですが、送付バッチのテーブルであるticket_send_reservationsには、チケットID、8651,8652のデータはありませんでした
もし、チケットログに、_Account、Accountで作成する処理がお分かりになれば、ご教授下さい
よろしくお願い致します
なお、チケット送付の予約(バッチ処理テーブルに登録、チケットテーブルのステータスは99にして置き、他で使用されないようにガード)後に、
同じチケットボックスからの受け取では、ちゃんと、予約したチケットをさけて、受け取りをしていることは確認しております
しかしながら、チケットログテーブルから見ると、
同じチケットを、受け取りもし、送付もしたように見えており、発生した事象の解析には至っておりません
戻る