PR

【9/12】ヤマダポイント発掘隊(マジガチャ) #4250

kouho opened this at 2025-09-08T17:47:41; closed

Description

opened by kouho at 2025-09-08T17:47:41; updated 2025-09-11T13:47:32

概要

下記API仕様書に基づく実装

簡易仕様説明

毎日ミッション達成時にAPIが実行
ヤマダゲームプラットフォーム側のページにてミッションの達成状況を確認でき、達成していたらチケットが付与されている
付与されたチケットを使いガチャを回すことで景品をGET(回す際にはLINE連携が必要)

ヤマダポイント発掘隊ミッション達成API.pdf

各ミッションとコード

・ベルガチャを回そう
ガチャ酒場にてベルガチャを回す
➡ 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;
kouho change_title at 2025-09-08T17:55:55: 【9/12】ヤマダポイント発掘隊 【9/12】ヤマダポイント発掘隊(マジガチャ)

Comment

#42265 by kouho at 2025-09-08T17:57:04; updated 2025-09-08T17:57:04

@wada
レビューお願いいたします

Comment

#42310 by wada at 2025-09-10T15:50:10; updated 2025-09-10T15:50:10

@kouho
開催期間はどこで確認できますか?

Comment

#42313 by kouho at 2025-09-11T11:18:07; updated 2025-09-11T11:18:07

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

> 開催期間はどこで確認できますか?

ヤマダとの直接やり取りで以下の期間で聞いております。

■開催期間について
2025/9/16 11:00 ~ 9/30 23:59
※ミッションは期間中に達成したもののみ、カウントされます。

> get_by_hunt_id()の後ろの引数は不要かと思います。

不要な引数を削除しました。

kouho merge at 2025-09-11T13:47:32: 【9/12】ヤマダポイント発掘隊(マジガチャ)
kouho close at 2025-09-11T13:47:32: Close

commit comment

#306 by wada at 2025-09-10T15:52:16; lib/models/Yamada_point_hunt.php / old:None new:76
c81ec2b1e59a4d6364030b94dcdc600e92c2cd35

@kouho
get_by_hunt_id()の後ろの引数は不要かと思います。

Commit range

basebdc4af85bceffeeee5e6fd9000db93966b535db8
head43cb05d4aeaa893be3f38b6acade7ac947f467d3
base branchjolly/jr-web:master
head branchjolly/jr-web:yamada_point_hunt

View commits

Commit details are loaded from Git when a dynamic archive server is running, or can be embedded with --include-commits.
Files changed14 filesView patch
statusfile
modifiedlib/SubFunc.inc
modifiedlib/class/platform/yamada/YamadaAPI.class.php
modifiedlib/class/platform/yamada/YamadaPlatformService.class.php
modifiedlib/class/platform/yamada/YamadaWithoutAPI.class.php
modifiedlib/conf/class/EventScheduleConfig.class.php
modifiedlib/models/Banner.php
modifiedlib/models/Yamada_campaign.php
addedlib/models/Yamada_point_hunt.php
addedlib/models/dao/log_user_yamada_point_hunt.php
addedlib/models/dao/master_yamada_point_hunt.php
addedlib/models/dao/user_yamada_point_hunt.php
modifiedlib/public/Bar-GachaExecFree.inc
addedpublic_html/img/banner/Campaign/banner_yamada_point_hunt_1_1.jpg
addedpublic_html/img/banner/Campaign/banner_yamada_point_hunt_1_2.jpg
Patch body is stored as a separate file to keep this page lightweight.

Review comment

#306 by wada at 2025-09-10T15:52:16; lib/models/Yamada_point_hunt.php / old:None new:76
c81ec2b1e59a4d6364030b94dcdc600e92c2cd35

@kouho
get_by_hunt_id()の後ろの引数は不要かと思います。