123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- <?php
- /**
- * RemainDataLogic.php UTF-8
- * 留存逻辑处理
- *
- * @date : 2018/5/21 18:55
- *
- * @license 这不是一个自由软件,未经授权不许任何使用和传播。
- * @author : wuyonghong <wyh@huosdk.com>
- * @version : HUOSDK 8.0
- */
- namespace huo\logic\data;
- use huo\model\common\CommonModel;
- use huo\model\data\DayAgentModel;
- use huo\model\data\DayGameAgentModel;
- use huo\model\data\DayGameModel;
- use huo\model\data\DayModel;
- class RemainDataLogic extends CommonModel {
- private $base_field
- = [
- 'date',
- 'reg_cnt',
- 'reg_sum_money',
- 'day2',
- 'day3',
- 'day4',
- 'day5',
- 'day6',
- 'day7',
- 'day15',
- 'day30',
- ];
- private $base_sum_field
- = [
- 'date' => 'date',
- 'sum(reg_cnt)' => 'reg_cnt',
- 'sum(reg_sum_money)' => 'reg_sum_money',
- 'sum(day2)' => 'day2',
- 'sum(day3)' => 'day3',
- 'sum(day4)' => 'day4',
- 'sum(day5)' => 'day5',
- 'sum(day6)' => 'day6',
- 'sum(day7)' => 'day7',
- 'sum(day15)' => 'day15',
- 'sum(day30)' => 'day30',
- ];
- /**
- * @param array $param
- *
- * @return array
- */
- protected function getWhere($param = []) {
- $_map = [];
- if (!empty($param['start_time']) && !empty($param['end_time'])) {
- $_map['date'] = ['between', [$param['start_time'], $param['end_time']]];
- } elseif (!empty($param['start_time'])) {
- $_map['date'] = ['egt', $param['start_time']];
- } elseif (!empty($param['end_time'])) {
- $_map['date'] = ['elt', $param['end_time']];
- }
- if (!empty($param['agent_id'])) {
- $_map['agent_id'] = $param['agent_id'];
- }
- if (!empty($param['app_id'])) {
- $_map['app_id'] = $param['app_id'];
- }
- return $_map;
- }
- public function main($param, $order = '-date', $get_sum = false) {
- $_map = $this->getWhere($param);
- $_filed = $this->base_field;
- $_model = new DayModel();
- $_order = $this->orderFilter($order);
- $_items = $_model->field($_filed)->where($_map)->order($_order)->paginate();
- if (true === $get_sum) {
- $_sum_data = $this->getSumData($_model, $_map);
- return [$_items, $_sum_data];
- }
- return $_items;
- }
- public function game($param, $order = '-date', $get_sum = false) {
- $_map = $this->getWhere($param);
- $_filed = $this->base_field;
- $_filed['app_id'] = 'app_id';
- $_model = new DayGameModel();
- $_order = $this->orderFilter($order);
- $_items = $_model->field($_filed)->where($_map)->order($_order)->paginate();
- if (true === $get_sum) {
- $_sum_data = $this->getSumData($_model, $_map);
- return [$_items, $_sum_data];
- }
- return $_items;
- }
- public function agent($param, $order = '-date', $get_sum = false) {
- $_map = $this->getWhere($param);
- $_filed = $this->base_field;
- $_filed['agent_id'] = 'agent_id';
- $_model = new DayAgentModel();
- $_order = $this->orderFilter($order);
- if (isset($_map['agent_id']) && -1 == $_map['agent_id']) {
- $_map['agent_id'] = 0;
- }
- $_items = $_model->field($_filed)->where($_map)->order($_order)->paginate();
- if (true === $get_sum) {
- $_sum_data = $this->getSumData($_model, $_map);
- return [$_items, $_sum_data];
- }
- return $_items;
- }
- public function gameAgent($param, $order = '-date', $get_sum = false) {
- $_map = $this->getWhere($param);
- $_filed = $this->base_field;
- $_filed['agent_id'] = 'agent_id';
- $_filed['app_id'] = 'app_id';
- if (isset($_map['agent_id']) && -1 == $_map['agent_id']) {
- $_map['agent_id'] = 0;
- }
- $_model = new DayGameAgentModel();
- $_order = $this->orderFilter($order);
- $_items = $_model->field($_filed)->where($_map)->order($_order)->paginate();
- if (true === $get_sum) {
- $_sum_data = $this->getSumData($_model, $_map);
- return [$_items, $_sum_data];
- }
- return $_items;
- }
- /**
- * 获取汇总数据
- *
- * @param $model
- * @param $map
- *
- * @return array
- */
- public function getSumData($model, $map) {
- $_sum_field = $this->base_sum_field;
- $_sum_data = $model
- ->field($_sum_field)
- ->where($map)
- ->find();
- if (is_object($_sum_data)) {
- $_sum_data = $_sum_data->toArray();
- }
- return $_sum_data;
- }
- }
|