123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268 |
- <?php
- /**
- * PtbAgentOrder.php UTF-8
- * 渠道订单
- *
- * @date : 2018/5/18 18:16
- *
- * @license 这不是一个自由软件,未经授权不许任何使用和传播。
- * @author : wuyonghong <wyh@huosdk.com>
- * @version : HUOSDK 8.0
- */
- namespace huo\logic\finance;
- use huo\controller\member\Member;
- use huo\logic\agent\AgentLogic;
- use huo\logic\member\MemberLogic;
- use huo\model\common\CommonModel;
- use huo\model\finance\PtbAgentOrderModel;
- use huolib\constant\AgentConst;
- use huolib\constant\CommonConst;
- use huolib\tool\StrUtils;
- class PtbAgentOrder extends CommonModel {
- /**
- * @param array $param
- *
- * @return array
- */
- protected function getWhere($param = []) {
- $_map = [];
- if (!empty($param['start_time']) && !empty($param['start_time'])) {
- $_map['ptb_agent_order_model.create_time'] = ['between', [strtotime($param['start_time']),
- CommonConst::CONST_DAY_SECONDS + strtotime(
- $param['end_time']
- )]];
- } else if (!empty($param['start_time'])) {
- $_map['ptb_agent_order_model.create_time'] = ['gt', strtotime($param['start_time'])];
- } else if (!empty($param['end_time'])) {
- $_map['ptb_agent_order_model.create_time'] = ['lt', CommonConst::CONST_DAY_SECONDS + strtotime(
- $param['end_time']
- )];
- }
- if (!empty($param['order_id'])) {
- $_map['order_id'] = $param['order_id'];
- }
- if (!empty($param['agent_id'])) {
- $_map['ptb_agent_order_model.agent_id'] = $param['agent_id'];
- }
- if (!empty($param['to_agent_id'])) {
- $_map['ptb_agent_order_model.to_agent_id'] = $param['to_agent_id'];
- }
- if (!empty($param['mem_id'])) {
- $_map['ptb_agent_order_model.to_mem_id'] = $param['mem_id'];
- }
- if (!empty($param['parent_id'])) {
- $_agent_ids = (new AgentLogic())->getAgentIds($param['parent_id']);
- $_map['ptb_agent_order_model.agent_id'] = ['in', $_agent_ids];
- }
- if (!empty($param['username'])) {
- $_mem_ids = (new MemberLogic())->getIdsByUsername($param['username']);
- $_map['ptb_agent_order_model.to_mem_id'] = ['in', $_mem_ids];
- }
- if (!empty($param['cost_type'])) {
- if ($param['cost_type'] == AgentConst::IS_AGENT) {
- $_map['ptb_agent_order_model.to_agent_id'] = ['>', 0];
- } else if ($param['cost_type'] == AgentConst::IS_MEMBER) {
- $_map['ptb_agent_order_model.to_mem_id'] = ['>', 0];
- }
- }
- return $_map;
- }
- public function getField($agent_id) {
- return [];
- }
- /**
- * 获取获取记录
- *
- * @param $agent_id
- * @param $param
- * @param string $page
- * @param string $order
- *
- * @return array
- */
- public function getAgentList($agent_id, $param, $page = '1,10', $order = '-create_time') {
- $_map = $this->getWhere($param);
- $field = $this->getField($agent_id);
- $_map['to_mem_id'] = 0;
- $_map['to_agent_id'] = ['gt', 0];
- if (!empty($agent_id)) {
- $_map['agent_id'] = $agent_id;
- }
- return $this->getList($field, $_map, $page, $order);
- }
- /**
- * 获取获取记录
- *
- * @param $agent_id
- * @param $param
- * @param string $page
- * @param string $order
- *
- * @return array
- */
- public function getMemList($agent_id, $param, $page = '1,10', $order = '-create_time') {
- $_map = $this->getWhere($param);
- $field = $this->getField($agent_id);
- $_map['to_agent_id'] = 0;
- $_map['to_mem_id'] = ['gt', 0];
- $_map['ptb_cnt'] = ['gt', 0];
- if (!empty($agent_id)) {
- $_map['agent_id'] = $agent_id;
- }
- if (!empty($param['username'])) {
- $_to_mem_id = (new Member())->getIdByName($param['username']);
- if (empty($_to_mem_id)) {
- return [
- 'count' => 0,
- 'sum' => [],
- 'list' => []
- ];
- }
- $_map['to_mem_id'] = $_to_mem_id;
- }
- return $this->getList($field, $_map, $page, $order);
- }
- /**
- * 获取获取记录
- *
- * @param $agent_id
- * @param $param
- * @param string $page
- * @param string $order
- *
- * @return array
- */
- public function getMemGmList($agent_id, $param, $page = '1,10', $order = '-create_time') {
- $_map = $this->getWhere($param);
- $field = $this->getField($agent_id);
- $_map['to_agent_id'] = 0;
- $_map['to_mem_id'] = ['gt', 0];
- $_map['gm_cnt'] = ['gt', 0];
- $_map['app_id'] = ['gt', 0];
- if (!empty($param['app_id'])) {
- $_map['app_id'] = $param['app_id'];
- }
- if (!empty($agent_id)) {
- $_map['agent_id'] = $agent_id;
- }
- if (!empty($param['username'])) {
- $_to_mem_id = (new Member())->getIdByName($param['username']);
- if (empty($_to_mem_id)) {
- return [
- 'count' => 0,
- 'sum' => [],
- 'list' => []
- ];
- }
- $_map['to_mem_id'] = $_to_mem_id;
- }
- return $this->getList($field, $_map, $page, $order);
- }
- /**
- * 获取消费列表
- *
- * @param array $field
- * @param array $where
- * @param string $page
- * @param string $order
- *
- * @return array
- */
- public function getList($field = [], $where, $page = '1,10', $order = '-create_time') {
- $_map = $where;
- $_model = new PtbAgentOrderModel();
- $_count = $_model->alias('ptb_agent_order_model')->where($_map)->count();
- if (empty($_count)) {
- return [
- 'count' => 0,
- 'sum' => [],
- 'list' => []
- ];
- }
- $_sum_field = [
- 'sum(amount)' => 'sum_amount',
- 'sum(real_amount)' => 'sum_real_amount',
- 'sum(rebate_cnt)' => 'sum_rebate_cnt',
- 'sum(ptb_cnt)' => 'sum_ptb_cnt',
- 'sum(gm_cnt)' => 'sum_gm_cnt',
- 'sum(cost_ptb_cnt)' => 'sum_cost_ptb_cnt'
- ];
- $_sum_data = $_model
- ->alias('ptb_agent_order_model')
- ->field($_sum_field)
- ->where($where)
- ->find();
- if (is_object($_sum_data)) {
- $_sum_data = $_sum_data->toArray();
- }
- $_sum = [];
- foreach ($_sum_data as $_k => $_v) {
- $_sum[$_k] = StrUtils::formatNumber($_v);
- }
- $_field = $field;
- if (empty($field)) {
- $_field = [];
- }
- $_order = $_model->orderFilter($order);
- $_datas = $_model
- ->alias('ptb_agent_order_model')
- ->with('mem')
- ->with('agent')
- ->with('toagent')
- ->with('game')
- ->where($where)
- ->field($_field)
- ->order($_order)
- ->page($page)
- ->select();
- if (is_object($_datas)) {
- $_datas = $_datas->toArray();
- }
- if (empty($_datas)) {
- return [
- 'count' => $_count,
- 'sum' => $_sum,
- 'list' => []
- ];
- }
- foreach ($_datas as $_k => $_v) {
- $_datas[$_k]['to_agent_name'] = !empty($_v['toagent']) ? $_v['toagent']['user_login'] : '';
- $_datas[$_k]['username'] = !empty($_v['mem']) ? $_v['mem']['username'] : '';
- $_datas[$_k]['gamename'] = !empty($_v['game']) ? $_v['game']['name'] : '';
- }
- return [
- 'count' => $_count,
- 'sum' => $_sum,
- 'list' => $_datas
- ];
- }
- /**
- * 获取消费列表
- *
- * @param array $where
- * @param string $page
- * @param string $order
- *
- * @return array
- */
- public function getCostList($where = [], $page = '1,10', $order = '-create_time') {
- $_map = $this->getWhere($where);
- $_field = [];
- return $this->getList($_field, $_map, $page, $order);
- }
- }
|