PR

集金レポート準備 #786

wada opened this at 2021-05-06T18:24:22; closed

Description

opened by wada at 2021-05-06T18:24:22; updated 2024-07-16T11:01:37

jolly/jr-rzst#23

集金レポート実装準備
以下のバッチを実行してデータを用意

#集金額集計プログラム(cron設定)
daily_user_collect_gold.inc

#全プレイヤー対象に日毎の集金額を取得する
tool_get_all_player_collect.inc

#全プレイヤー対象に過去最高の集金額を取得する
tool_get_all_player_best_gold_collect.inc

テーブル追加

#毎日の集金額
CREATE TABLE `daily_user_collect_gold` (
  `user_no` bigint(20) NOT NULL,
  `date` date NOT NULL,
  `gold` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

ALTER TABLE `daily_user_collect_gold`
  ADD PRIMARY KEY (`user_no`,`date`),
  ADD KEY `date` (`date`);

#秘書コメント
CREATE TABLE `master_gold_collect_report_secretary` (
  `secretary_id` int(11) NOT NULL,
  `gold` int(11) NOT NULL,
  `message_1` char(255) COLLATE utf8_unicode_ci NOT NULL,
  `message_2` char(255) COLLATE utf8_unicode_ci NOT NULL,
  `start_time` datetime NOT NULL,
  `end_time` datetime NOT NULL,
  `limited_flg` tinyint(4) NOT NULL COMMENT '限定フラグ',
  `del_flg` tinyint(4) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

INSERT INTO `master_gold_collect_report_secretary` (`secretary_id`, `gold`, `message_1`, `message_2`, `start_time`, `end_time`, `limited_flg`, `del_flg`) VALUES
(1, 500000, 'この調子で頑張りましょう。', '全て集金し終えました。<br>次の集金時間は<br>【{time}】です。', '2021-03-08 00:00:00', '2037-01-01 00:00:00', 0, 0);

ALTER TABLE `master_gold_collect_report_secretary`
  ADD PRIMARY KEY (`secretary_id`),
  ADD KEY `del_flg` (`del_flg`,`start_time`,`end_time`) USING BTREE;

#ユーザ集金情報
CREATE TABLE `user_gold_collect_report` (
`user_no` bigint(20) NOT NULL,
`secretary_id` int(11) NOT NULL DEFAULT '1',
`best_gold_collect_date` date NOT NULL,
`best_gold_collect` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='集金レポート';

ALTER TABLE `user_gold_collect_report`
ADD PRIMARY KEY (`user_no`);

Comment

#10734 by wada at 2021-05-06T18:25:47; updated 2021-05-06T18:25:47

@iwamoto @kouho
レビューお願いします。
それぞれのバッチファイルを実行してみて問題がないか確認お願いします。

wada refer at 2021-05-07T11:29:18: 788:[WIP]【5/14】集金レポート
wada refer at 2021-05-07T11:31:51: 788:【5/14】集金レポート

Comment

#10755 by wada at 2021-05-07T14:31:38; updated 2021-05-07T14:31:38

@iwamoto
対応しました。確認お願いします。

Comment

#10759 by kouho at 2021-05-07T15:56:51; updated 2021-05-07T15:56:51

@wada
問題ないかと思います。

kouho add_label at 2021-05-07T15:57:01: 皇甫 LGTM

Comment

#10761 by iwamoto at 2021-05-07T15:59:00; updated 2021-05-07T15:59:00

@wada
上記にてこうほさんが指摘されていますが
tool_get_all_player_best_gold_collect.inc でも同様の対応が
あった方がいいかなと思います。

ほかは修正分を含めて確認しました。問題ないと思います。

iwamoto add_label at 2021-05-07T16:00:03: 岩本 LGTM

Comment

#10763 by kouho at 2021-05-07T16:16:56; updated 2021-05-07T16:41:46

@wada
OKと書いた後の指摘となり申し訳ないです。1点toolでの集計のstart_timeを2021-01-01にしているため集金レポートのページを見た際に12月と11月の集金額が0になるという状態になっておりました。5月中に反映させる場合、バッチの方のstart_timeを2020-11-01 にした方が良いかと思いました。
一旦ラベルも外しておきます。

kouho delete_label at 2021-05-07T16:41:31: 皇甫 LGTM

Comment

#10765 by wada at 2021-05-07T17:19:50; updated 2021-05-07T17:19:50

@iwamoto @kouho
noticeエラーについて対応入れました。

Comment

#10766 by kouho at 2021-05-07T17:27:22; updated 2021-05-07T17:27:22

@wada
対応ありがとうございます。修正確認しました。OKかと思います。

kouho add_label at 2021-05-07T17:27:26: 皇甫 LGTM

Comment

#10770 by iwamoto at 2021-05-07T18:01:11; updated 2021-05-07T18:01:11

@wada
ありがとうございます
修正確認しました、問題ないと思います。

wada merge at 2021-05-10T10:47:09: 集金レポート準備
wada close at 2021-05-10T10:47:09: Close
wada refer at 2021-05-10T11:26:14: 792:集金レポート用データの準備

commit comment

#55 by iwamoto at 2021-05-07T12:13:55; lib/exec/daily_user_collect_gold.inc / old:40 new:None
0d8e78ef5a9160e2ec42ee32bee587f5811f1bce

ここで``$_dbc[37]``がリセットされ
下記のcount以降では``S_Query($sqlSt,$_dbc[37],1)``ではじかれています

commit comment

#56 by kouho at 2021-05-07T14:43:52; lib/exec/tool_get_all_player_collect.inc / old:None new:36
0d8e78ef5a9160e2ec42ee32bee587f5811f1bce

一応$collect_data=array();と入れて$collect_dataがundefinedになる可能性をつぶしている方が良いかと思います。

commit comment

#57 by kouho at 2021-05-07T14:46:12; lib/exec/tool_get_all_player_collect.inc / old:None new:37
31a5301322b5b3db4be998d15c15cdff43f3910b

本番で$collect_data[$sqlResult['user_no']][$date]のundefined errorが大量に出そうなので、
if(isset($collect_data[$sqlResult['user_no']][$date]))の判定を加えている方が良いかと思いました。

Commit range

base718b87b0da968696903ff4b59140f2b58aa6b053
head0d8e78ef5a9160e2ec42ee32bee587f5811f1bce
base branchjolly/jr-web:develop
head branchjolly/jr-web:gold_report_preparation

View commits

Commit details are loaded from Git when a dynamic archive server is running, or can be embedded with --include-commits.
Files changed5 filesView patch
statusfile
addedlib/exec/daily_user_collect_gold.inc
addedlib/exec/daily_user_data.sh
modifiedlib/exec/del_log_gold_collect.inc
addedlib/exec/tool_get_all_player_best_gold_collect.inc
addedlib/exec/tool_get_all_player_collect.inc
Patch body is stored as a separate file to keep this page lightweight.

Review comment

#55 by iwamoto at 2021-05-07T12:13:55; lib/exec/daily_user_collect_gold.inc / old:40 new:None
0d8e78ef5a9160e2ec42ee32bee587f5811f1bce

ここで``$_dbc[37]``がリセットされ
下記のcount以降では``S_Query($sqlSt,$_dbc[37],1)``ではじかれています

Review comment

#56 by kouho at 2021-05-07T14:43:52; lib/exec/tool_get_all_player_collect.inc / old:None new:36
0d8e78ef5a9160e2ec42ee32bee587f5811f1bce

一応$collect_data=array();と入れて$collect_dataがundefinedになる可能性をつぶしている方が良いかと思います。

Review comment

#57 by kouho at 2021-05-07T14:46:12; lib/exec/tool_get_all_player_collect.inc / old:None new:37
31a5301322b5b3db4be998d15c15cdff43f3910b

本番で$collect_data[$sqlResult['user_no']][$date]のundefined errorが大量に出そうなので、
if(isset($collect_data[$sqlResult['user_no']][$date]))の判定を加えている方が良いかと思いました。