PR

【12/16】戦争参加でプレミアムコインガチャチケットスタンプ #4419

kouho opened this at 2025-12-10T18:10:33; closed

Description

opened by kouho at 2025-12-10T18:10:33; updated 2025-12-17T10:34:30

概要

https://docs.google.com/spreadsheets/d/1jhtY8_AcsmRb4pTF_WE2_Hc73JxPTrXGHIaxEpXmRTA/edit?gid=805506774#gid=805506774

備考

  • lib/ajax/teamWar_default.inc lib/public/TeamWar-Result.inc バナー表示判定を修正
  • 戦争参加しただけのユーザーにも配布できるように対応
  • 告知は予告のみ掲載
  • 終了バナーは表示させない
  • プレミアムガチャチケットスタンププレゼントBOX受け取り対応

TODO

  • [x] 告知画像
  • [x] バナー画像はとくぱんの時のものを仮で
  • [x] 目立たせるためswfも掲載予定
  • [x] cron設定記載
  • [x] 不戦勝時挙動確認 → 対応必要 → 対応済み(この対応のため、マッチングスクリプトでも修正あり)
  • [x] 参加者同数時の挙動確認
  • [x] 本家はTeamWarJCoinConfig.classを使って関連の専用ページも作成していたが、こちらでは最小限の配布対応のみで今回は対応する。

cron( ~~TODO~~ )

下記コメントアウトを外す。12/17デプロイ後

#5 11 * * * ENVIRONMENT=${JR_ENV} PF=yamada ${JR_DIR}/lib/exec/event_teamwar_gachaticket_present.sh
#5 16 * * 6,7 ENVIRONMENT=${JR_ENV} PF=yamada ${JR_DIR}/lib/exec/event_teamwar_gachaticket_present.sh

SQL

ALTER TABLE teamWar_info  ALTER COLUMN point SET DEFAULT 0;

確認方法

  • jrye_teamWar.teamWar_info のテーブルに今日の分の戦争データがないことを確認
  • ローカル環境のマッチングするチームの個数を奇数に
  • マッチング
ENVIRONMENT=development PF=yamada IS_DOCKER=true   php matching_team_battle.php
  • teamWar_userDetailに不戦勝データが入っていることを確認
  • ローカル環境を動かして参加データの作成
  • 報酬配布と確認
ENVIRONMENT=development PF=yamada IS_DOCKER=true   php event_teamwar_gachaticket_present.inc
kouho change_title at 2025-12-11T11:16:51: [WIP]戦争参加でプレミアムガチャチケット [WIP]戦争参加でプレミアムガチャチケットスタンプ
kouho change_title at 2025-12-12T10:01:49: [WIP]戦争参加でプレミアムガチャチケットスタンプ 戦争参加でプレミアムガチャチケットスタンプ

Comment

#43501 by kouho at 2025-12-12T10:02:20; updated 2025-12-12T10:20:28

@wada
画像は足りませんが、コードレビューをお願いいたします

kouho change_title at 2025-12-12T10:19:44: 戦争参加でプレミアムガチャチケットスタンプ 【12/16】戦争参加でプレミアムガチャチケットスタンプ

Comment

#43512 by kouho at 2025-12-12T16:05:44; updated 2025-12-12T16:05:44

@wada
不戦勝対応を入れました。
また、確認方法について記載しました。

kouho change_title at 2025-12-16T11:19:27: 【12/16】戦争参加でプレミアムガチャチケットスタンプ 【12/16】戦争参加でプレミアムコインガチャチケットスタンプ

Comment

#43537 by kouho at 2025-12-16T11:19:48; updated 2025-12-16T11:19:48

@wada
確認ありがとうございます。修正しました。
> プレミアムコインガチャチケットスタンプ がmaster_itemのitem_nameです。

Comment

#43549 by kouho at 2025-12-16T14:33:19; updated 2025-12-16T14:33:19

@wada
確認ありがとうございます。

こちらの指摘は対応を入れてみましたが、不戦勝の時もtxtにログ書き出しをした方がいいということであっていますでしょうか?

> 後ろの処理で実行されますが、念の為foreachを抜けた直後に残った$sqlの実行もしておいたほうが安全です。
▼しておいたほうが良い処理

Comment

#43552 by wada at 2025-12-16T15:20:23; updated 2025-12-16T15:21:03

@kouho
違います。

lib/exec/event_teamwar_gachaticket_present.inc#133-150行目でif($i > 500){になったらSQLを実行していますが、$iが500を超えなかった場合に実行されません。
145行目以降の処理でもう一度$sqlにクエリを格納して実行しているため今のところ問題はありません。

念の為というのは、もしも145行目以降の処理が実行されなかった場合でも、$sqlが実行されるようにforeachを抜けた143行目にも213-221行目の処理を記載しておいた方が良いということです。

> こちらの指摘は対応を入れてみましたが、不戦勝の時もtxtにログ書き出しをした方がいいということであっていますでしょうか?

wada add_label at 2025-12-16T16:17:46: 和田 LGTM

Comment

#43562 by kouho at 2025-12-16T16:29:51; updated 2025-12-16T16:29:51

@wada
確認・ご指摘ありがとうございます。以下の修正を適用しました。
> 違います。

lib/exec/event_teamwar_gachaticket_present.inc#133-150行目でif($i > 500){になったらSQLを実行していますが、$iが500を超えなかった場合に実行されません。
145行目以降の処理でもう一度$sqlにクエリを格納して実行しているため今のところ問題はありません。
>
念の為というのは、もしも145行目以降の処理が実行されなかった場合でも、$sqlが実行されるようにforeachを抜けた143行目にも213-221行目の処理を記載しておいた方が良いということです。
>
こちらの指摘は対応を入れてみましたが、不戦勝の時もtxtにログ書き出しをした方がいいということであっていますでしょうか?

kouho merge at 2025-12-17T10:34:30: 【12/16】戦争参加でプレミアムコインガチャチケットスタンプ
kouho close at 2025-12-17T10:34:30: Close

commit comment

#313 by wada at 2025-12-16T11:13:28; lib/conf/class/TeamwarGachaTicketConfig.class.php / old:None new:17
d818d97143b1df6dfa0094bb19d714dc18971a3e

@kouho
プレミアムコインガチャチケットスタンプ がmaster_itemのitem_nameです。

commit comment

#315 by wada at 2025-12-16T11:45:40; lib/exec/event_teamwar_gachaticket_present.inc / old:None new:142
609a8bc132d886cbf48ab78139b3a5d7edbd0c4f

@kouho
後ろの処理で実行されますが、念の為foreachを抜けた直後に残った$sqlの実行もしておいたほうが安全です。

▼しておいたほうが良い処理

//lib/exec/event_teamwar_gachaticket_present.inc#L213-221
if($sql){
	S_error_log(print_r($sql,1),'teamwar_present'.date("Ymd").'.txt');
	//プレゼントボックスに入れる
	if($debug_flg == 0){
		S_SetUserPresentSend($sql);
	}
	$i = 0;
	unset($sql);
}

Commit range

base03557c2b178a2c4243ce5b55bfad06d00e9fa37a
head609a8bc132d886cbf48ab78139b3a5d7edbd0c4f
base branchjolly/jr-web:master
head branchjolly/jr-web:war_bonus_202512

View commits

Commit details are loaded from Git when a dynamic archive server is running, or can be embedded with --include-commits.
Files changed22 filesView patch
statusfile
modifiedlib/ajax/teamWar_default.inc
modifiedlib/class/present_box/PresentBoxManager.class.php
modifiedlib/conf/class/TeamwarGachaTicketConfig.class.php
modifiedlib/exec/event_teamwar_gachaticket_present.inc
modifiedlib/exec/matching_team_battle.php
modifiedlib/models/Present_receive.php
modifiedlib/public/TeamWar-Result.inc
addedpublic_html/img/banner/team_war/banner_teamwar_event_gachaticket2_1.jpg
addedpublic_html/img/banner/team_war/banner_teamwar_event_gachaticket2_2.jpg
addedpublic_html/img/info_event/info_event_1632_1.jpg
addedpublic_html/img/info_event/info_event_1632_2.jpg
addedpublic_html/img/info_jrye/5255/bg.jpg
addedpublic_html/img/info_jrye/5255/botton90.png
addedpublic_html/img/info_jrye/5255/info1.jpg
addedpublic_html/img/info_jrye/5255/info2.jpg
addedpublic_html/img/info_jrye/5255/info2_2.jpg
addedpublic_html/img/info_jrye/5255/info3.jpg
addedpublic_html/img/info_jrye/5255/info4.jpg
modifiedpublic_html/js/JOLLYROGER.js
modifiedpublic_html/js/jr_main.min.js
modifiedpublic_html/template/TeamWar.tpl
modifiedpublic_html/template/header_sp.tpl
Patch body is stored as a separate file to keep this page lightweight.

Review comment

#313 by wada at 2025-12-16T11:13:28; lib/conf/class/TeamwarGachaTicketConfig.class.php / old:None new:17
d818d97143b1df6dfa0094bb19d714dc18971a3e

@kouho
プレミアムコインガチャチケットスタンプ がmaster_itemのitem_nameです。

Review comment

#315 by wada at 2025-12-16T11:45:40; lib/exec/event_teamwar_gachaticket_present.inc / old:None new:142
609a8bc132d886cbf48ab78139b3a5d7edbd0c4f

@kouho
後ろの処理で実行されますが、念の為foreachを抜けた直後に残った$sqlの実行もしておいたほうが安全です。

▼しておいたほうが良い処理

//lib/exec/event_teamwar_gachaticket_present.inc#L213-221
if($sql){
	S_error_log(print_r($sql,1),'teamwar_present'.date("Ymd").'.txt');
	//プレゼントボックスに入れる
	if($debug_flg == 0){
		S_SetUserPresentSend($sql);
	}
	$i = 0;
	unset($sql);
}