Description
戦争に参加できるようにチーム人数がすくないチームを合併する
- [x] team_merge_submit.inc
- [x] cpanel_team_merge.inc
戦争に参加できるようにチーム人数がすくないチームを合併する
紅玉消費量: 100
ボーダチーム人数: 11
チーム最大人数: 15
チーム最小人数: 3
現状のチームデータを確認し、条件に応じて統合予約から削除されるチーム
・チーム統合拒否もしくは、承認制
・ボーダチーム人数を超えた
統合予約に追加されるチーム
・メンバー数が最小人数から最大人数かつ、承認なし
登録後、2.5日経過したチーム
削除ユーザ
・紅玉消費量が指定以下かつ、チュートリアル突破後1日以上経過
newユーザ
・チュートリアル突破後1日以内
削除ユーザに対して実行
・チームリーダを取得
・統合対象から除外
・チーム情報を削除
・チームリーダ交代
チームを分類
・ユーザ数4名以上
・ユーザ数4名未満
・ユーザ数0
ユーザ数0のチームを削除
ユーザ数4名未満のチームと4名以上のチームに統合
どちらかのチームが0になるまで実行
Lvが高い方が親になる
親でないチームのユーザを親チームに移籍
親でないチームを削除
親チームの人数を変更
テストレコードを追加後、バッチ実行で以下の状態になる
500は合併後に、規定人数をクリアいていないため引き続き予約状態
docker-compose exec web bash
cd /home/web/jr-web/lib/exec
ENVIRONMENT=development PF=yamada HTTP_HOST=127.0.0.1 IS_DOCKER=true php team_merge_submit.inc# チームデータ
INSERT INTO `team_data` (`team_no`, `team_name`, `team_message`, `lv`, `total_exp`, `join_type`, `member`, `leader_no`, `leader_type`, `team_receive`, `team_move`, `reg_date` )
VALUES
(100, '合併拒否' , '', 1, 0, 0, 1 , 10000, 0, 0, 1, 1591065081),
(200, '承認制' , '', 1, 0, 1, 1 , 20000, 0, 0, 0, 1591065081),
(300, 'ボーダ人数クリア' , '', 1, 0, 0, 11, 30000, 0, 0, 0, 1591065081),
(400, 'ユーザ4人以上' , '', 1, 0, 0, 10, 40001, 0, 0, 0, 1591065081),
(500, 'ユーザ4人以上(削除後)' , '', 1, 0, 0, 7 , 50001, 0, 0, 0, 1591065081),
(600, 'ユーザ4人未満' , '', 1, 0, 0, 3 , 60001, 0, 0, 0, 1591065081),
(700, 'ユーザ4人未満(削除後)' , '', 2, 0, 0, 4 , 70001, 0, 0, 0, 1591065081),
(800, 'ユーザ0人(削除後)' , '', 1, 0, 0, 1 , 80001, 0, 0, 0, 1591065081),
(900, '合併予約' , '', 1, 0, 0, 5 , 90001, 0, 0, 0, 1591065081);
# チーム合併予約情報
INSERT INTO `team_merge_reserve` (`team_no`, `reg_date`)
VALUES
(100, 1591065081),
(200, 1591065081),
(300, 1591065081),
(400, 1591065081),
(500, 1591065081),
(600, 1591065081),
(700, 1591065081),
(800, 1591065081);
# ユーザデータ
INSERT INTO `user_info` (`user_no`, `nickname`, `team_no`, `reg_date`, `uuid`)
VALUES
(40001, 'ユーザ4人以上1リーダ', 400, 1591065081, ''),
(40002, 'ユーザ4人以上2', 400, 1591065081, ''),
(40003, 'ユーザ4人以上3', 400, 1591065081, ''),
(40004, 'ユーザ4人以上4', 400, 1591065081, ''),
(40005, 'ユーザ4人以上5', 400, 1591065081, ''),
(40006, 'ユーザ4人以上6', 400, 1591065081, ''),
(40007, 'ユーザ4人以上7', 400, 1591065081, ''),
(40008, 'ユーザ4人以上8', 400, 1591065081, ''),
(40009, 'ユーザ4人以上9', 400, 1591065081, ''),
(40010, 'ユーザ4人以上10', 400, 1591065081, ''),
(50001, 'ユーザ4人以上(削除後)リーダ(削除)', 500, 1591065081, ''),
(50002, 'ユーザ4人以上(削除後)(削除)', 500, 1591065081, ''),
(50003, 'ユーザ4人以上(削除後)', 500, 1591065081, ''),
(50004, 'ユーザ4人以上(削除後)', 500, 1591065081, ''),
(50005, 'ユーザ4人以上(削除後)', 500, 1591065081, ''),
(50006, 'ユーザ4人以上(削除後)', 500, 1591065081, ''),
(50007, 'ユーザ4人以上(削除後)', 500, 1591065081, ''),
(60001, 'ユーザ4人未満1リーダ', 600, 1591065081, ''),
(60002, 'ユーザ4人未満2', 600, 1591065081, ''),
(60003, 'ユーザ4人未満3', 600, 1591065081, ''),
(70001, 'ユーザ4人未満(削除後)1リーダ', 700, 1591065081, ''),
(70002, 'ユーザ4人未満(削除後)2(削除)', 700, 1591065081, ''),
(70003, 'ユーザ4人未満(削除後)3', 700, 1591065081, ''),
(70004, 'ユーザ4人未満(削除後)4', 700, 1591065081, ''),
(80001, 'ユーザ0人(削除後)1(削除)', 800, 1591065081, '');
# チュートリアル終了時間参照用
INSERT INTO `user_setting` (`user_no`, `tutorial_fin_time`)
VALUES
(40001, 1592281778),
(40002, 1592281778),
(40003, 1592281778),
(40004, 1592281778),
(40005, 1592281778),
(40006, 1592281778),
(40007, 1592281778),
(40008, 1592281778),
(40009, 1592281778),
(40010, 1592281778),
(50001, 1592281778),
(50002, 1592281778),
(50003, 1592281778),
(50004, 1592281778),
(50005, 1592281778),
(50006, 1592281778),
(50007, 1592281778),
(60001, 1592281778),
(60002, 1592281778),
(60003, 1592281778),
(70001, 1592281778),
(70002, 1592281778),
(70003, 1592281778),
(70004, 1592281778),
(80001, 1592281778);
# 紅玉消費数参照用
INSERT INTO `user_mission` (`user_no`, `total_stamina`)
VALUES
(40001, 102),
(40002, 102),
(40003, 102),
(40004, 102),
(40005, 102),
(40006, 102),
(40007, 102),
(40008, 102),
(40009, 102),
(40010, 102),
(50001, 100),
(50002, 100),
(50003, 102),
(50004, 102),
(50005, 102),
(50006, 102),
(50007, 102),
(60001, 102),
(60002, 102),
(60003, 102),
(70001, 102),
(70002, 10),
(70003, 102),
(70004, 102),
(80001, 0);# テスト用チーム情報を削除
DELETE FROM `team_data` WHERE `team_no` BETWEEN 100 AND 900;
# 合併予約情報を削除
TRUNCATE TABLE `team_merge_reserve`;
# テスト用ユーザ情報を削除
DELETE FROM `user_info` WHERE `user_no` BETWEEN 40001 AND 80001;
# 合併ログを削除
TRUNCATE TABLE `log_team_merge`;
# 以下のtableのsqlを再度実行
`team_data`, `team_merge_reserve`, `user_info`合併予約状態になると、チームページ上部に「連合合併」ボタンが追加されるので、team_merge_reserveに自分のチームを追加して、確認してみてください。
合併ボタンから、合併のON/OFFができます。
@wada
こちらレビューを行いました。
バッチ実行後の動作も問題ないと思います。