Description
概要
下記API仕様書に基づく実装
簡易仕様説明
毎日ミッション達成時にAPIが実行
ヤマダゲームプラットフォーム側のページにてミッションの達成状況を確認でき、達成していたらチケットが付与されている
付与されたチケットを使いガチャを回すことで景品をGET(回す際にはLINE連携が必要)
各ミッションとコード
・ベルガチャを回そう
ガチャ酒場にてベルガチャを回す
➡ gacha
・冒険を進めよう
冒険して紅玉3個消費する
➡ forward
・海賊島で集金しよう
海賊島で1回集金をする
➡ collectブランチ
DBブランチ
jolly/jrye-db#1187
実装メモ
- Yamada_game_marathonクラスをベースにしたが、仕様が異なるため不要関数等は削除
- ゲストユーザー参加不可
- LINE連携判定はゲーム側では不要
- ゲーム側で進捗確認は不要
- ゲーム内お知らせは不要
- ヤマダゲーム版判定の中で対応
TODO
- [x] Banner.php 対応必要なら対応
SQL
- user_yamada_point_hunt (ユーザーのミッション進捗管理テーブル)
CREATE TABLE `user_yamada_point_hunt` (
`user_no` int unsigned NOT NULL,
`hunt_id` smallint unsigned NOT NULL,
`date` date NOT NULL,
`code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`count` int unsigned NOT NULL,
PRIMARY KEY (`user_no`,`hunt_id`,`date`,`code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;- log_user_yamada_point_hunt(ユーザーのミッション進行ログ)
reg_dateからdateを自動作成する形で対応
CREATE TABLE `log_user_yamada_point_hunt` (
`id` int unsigned NOT NULL AUTO_INCREMENT,
`user_no` int unsigned NOT NULL,
`hunt_id` smallint unsigned NOT NULL,
`date` date GENERATED ALWAYS AS (cast(`reg_date` as date)) STORED,
`code` varchar(50) NOT NULL DEFAULT '',
`send_api` tinyint unsigned NOT NULL,
`reg_date` datetime NOT NULL,
PRIMARY KEY (`id`),
KEY `marathon_days` (`hunt_id`),
KEY `idx_date_hunt` (`date`,`hunt_id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;