PR

【4/16】レイドイベント終了後に蒼玉をゴールドに変換 #732

wada opened this at 2021-04-13T12:38:41; closed

Description

opened by wada at 2021-04-13T12:38:41; updated 2024-05-10T17:15:18

概要

レイドイベント終了翌日に期限付きの蒼玉を10,000GOLDに変換する

変換方法

所持している場合:直接ゴールドを付与
プレゼントにある場合:プレゼントをゴールドに変換
未受け取りの報酬の場合:受け取り時にゴールドに変換

処理

ランキング報酬配布前後にスクリプト実行

ローカル

確認時にイベントが終了している必要があるため、レイド開催期間の調整が必要

ENVIRONMENT=develop PF=yamada HTTP_HOST=127.0.0.1 IS_DOCKER=true php event_item_change_gold.inc

開発

ENVIRONMENT=develop PF=yamada php event_item_change_gold.inc

本番

ENVIRONMENT=production PF=yamada php event_item_change_gold.inc
wada change_title at 2021-04-13T12:42:47: レイドイベント終了後に蒼玉をゴールドに変換 【4/16】レイドイベント終了後に蒼玉をゴールドに変換

Comment

#10292 by wada at 2021-04-13T12:49:51; updated 2021-04-13T12:49:51

@iwamoto @kouho
レビューお願いします。

ゴールド変換される箇所は4箇所です。
・所持アイテム
・プレゼント
・討伐済レイドの報酬受け取り
・討伐済チームレイドの報酬受け取り

討伐済レイドの確認をする場合、討伐後に報酬を受け取らずにイベント期間を調整した後で受け取る必要があります。

Comment

#10304 by kouho at 2021-04-13T17:24:46; updated 2021-04-13T17:24:46

@wada
イベント期間終了後に期限付き蒼玉リカバリをプレゼントから受け取ると、
GOLDが増えるわけでもなく消失してしまったように見えます。

また、本番では大丈夫だと思いますが、所持アイテムに期限付き蒼玉リカバリを所持したユーザーがいない状態で変換バッチを実行した場合にmysqlエラーとなりましたのでこちらは一応修正している方が良いかもしれません。

Comment

#10305 by wada at 2021-04-13T17:29:59; updated 2021-04-13T17:29:59

@kouho
蒼玉をプレゼントから受け取った際の挙動について教えてください。
・期限はいつまでか
・GOLD置換前か
・なぜ消失したように見えるか
・アイテム一覧に表示されているか
・GOLD置換はされたか

Comment

#10308 by kouho at 2021-04-13T17:44:45; updated 2021-04-13T18:12:37

@wada
すみません、どうやら勘違いと確認の手順が誤っていたようです。

~~期限付き蒼玉リカバリのIDを間違えていて、
水曜日までと日曜日までどちら両方ともで確認していましたが、
user_itemのitem_noとmaster_itemのitem_noが一致しているわけではないことに気付かず
プレゼントから期限付き蒼玉リカバリ206と207を受け取った後にuser_itemで206と207を探していました。~~

item_noが間違えていたわけではなく、参照しているテーブルが異なっていた

Comment

#10309 by kouho at 2021-04-13T17:55:48; updated 2021-04-13T18:01:17

@wada
度々すみません。僕の勘違いもあったのですが、
所持している期限付きアイテムはuser_itemではなくuser_weekday_limited_itemに入っているため
event_item_change_gold.incスクリプトのhas_item関数とdel_target_item_by_all_user関数を修正する必要があると思います。

Comment

#10311 by kouho at 2021-04-13T18:58:39; updated 2021-04-13T18:58:39

@wada
・討伐済レイドの報酬受け取り
・討伐済チームレイドの報酬受け取り
こちら確認しました。問題ないかと思います。

Comment

#10316 by iwamoto at 2021-04-13T19:57:52; updated 2021-04-13T19:57:52

@wada
レビュー対応行いました。
プレゼントをゴールドに変換は問題ないおもます。

上記で上がっている指摘を除きまして1点修正が必要かと思います。
1.レイドの報酬受け取り
こちらの条件式では期間外に受け取りをした場合、他の期限付きアイテムも10000GOLDに変換されてしまいます。

# Raid-GetMedal.inc(175) / Raid-GetMedalVs.inc(112)
 
if ($present_item['item_type'] == PresentBoxContent::TYPE_ITEM && WeekdayLimitedItemConfig::get()->isLimitedItem($present_item['item_no'])){
wada assign at 2021-04-14T10:54:47: Not assigned:wada

Comment

#10326 by wada at 2021-04-14T10:57:46; updated 2021-04-14T10:57:46

@iwamoto @kouho
2点修正しました。
・イベント終了後のダメージポイント報酬受け取り時の期限付きアイテム判定
・ゴールド変換バッチの期限付きアイテムテーブルの切り分け
確認お願いします。

Comment

#10328 by iwamoto at 2021-04-14T11:50:10; updated 2021-04-14T11:50:10

@wada
2点の修正を確認しました。
いずれも問題ないと思います。

Comment

#10333 by kouho at 2021-04-14T13:48:52; updated 2021-04-14T13:48:52

@wada
修正確認しました。問題ないかと思います。

kouho add_label at 2021-04-14T16:17:34: 皇甫 LGTM
wada merge at 2021-04-14T18:31:36: 【4/16】レイドイベント終了後に蒼玉をゴールドに変換
wada close at 2021-04-14T18:31:36: Close

Commit range

base9fe9e691a14d2a4a48a0bf800b201e604c26d6bc
head02677bbcc3c2b8e5716675c7dd8eef16a568c654
base branchjolly/jr-web:develop
head branchjolly/jr-web:convert_gold

View commits

Commit details are loaded from Git when a dynamic archive server is running, or can be embedded with --include-commits.
Files changed7 filesView patch
statusfile
modifiedlib/class/platform/yamada/YamadaPlatformService.class.php
modifiedlib/conf/class/RaidMonsterConfig.class.php
modifiedlib/exec/event_item_change_gold.inc
modifiedlib/public/Raid-GetMedal.inc
modifiedlib/public/Raid-GetMedalVs.inc
modifiedpublic_html/template/Raid-GetMedal.tpl
modifiedpublic_html/template/Raid-GetMedalVs.tpl
Patch body is stored as a separate file to keep this page lightweight.