* @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; } }