| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 | <?php/** * DayPayLogic.php UTF-8 * * * @date    : 2017/12/18 11:42 * * @license 这不是一个自由软件,未经授权不许任何使用和传播。 * @author  : liguanglong <lgl@huosdk.com> * @version : HUOSDK 8.0 */namespace huo\logic\data;use huo\model\common\CommonModel;use huo\model\data\PayExtModel;use huo\model\data\PayModel;use huo\model\game\GameModel;use huo\logic\user\UserLogic;class IapDataLogic extends CommonModel {    protected $_id;    protected $_agent_id;    protected $_app_id;    protected $_cp_id;    public function __construct($data = []) {        parent::__construct($data);        List($this->_id, $this->_cp_id, $this->_agent_id, $this->_app_id)            = (new UserLogic())->getRoleLevelID(session('ADMIN_ID'));    }    /**     * iap计费统计     * @param null $start_time     * @param null $end_time     * @param null $order_id     * @param null $phone     * @param null $imei     * @param null $cp     * @param null $app_id     *     * @return array     */    public function iapList($start_time = null, $end_time = null, $order_id = null, $phone = null, $imei = null, $cp = null, $app_id = null){        $_pay_model = new PayModel();        $_pay_ext_model = new PayExtModel();        $_game_model = new GameModel();        $_pay_model = $_pay_model->where('create_time', '>=', $start_time)                                 ->where('create_time', '<=', $end_time);        if($order_id){            $_pay_model = $_pay_model->where('order_id', $order_id);        }        $_pay_model = $_pay_model->with('ext')                                 ->with('game.cp')                                 ->with(['member' => function($query){                                     $query->with('country')->with('operator');                                 }]);        if($imei || $phone){            if($imei){                $_pay_ext_model = $_pay_ext_model->where('device_id', $imei);            }            if($phone){                $_pay_ext_model = $_pay_ext_model->where('device_info', 'like', "%{$phone}%");            }            $_pay_model = $_pay_model->whereIn('id', $_pay_ext_model->column('pay_id'));        }        if($app_id){            $_pay_model = $_pay_model->where('app_id', $app_id);        }        if($cp){            $_pay_model = $_pay_model->whereIn('app_id', $_game_model->where('cp_id', $cp)->column('id'));        }        $_pay_model = $_pay_model->whereIn('app_id', $this->_app_id)                                 ->whereIn('agent_id', $this->_agent_id)                                 ->paginate(10);        $_page = $_pay_model->render();        $_data = $_pay_model->toArray()['data'];        $this->handleData($_data);        return [$_data, $_page];    }    /**     * 封装     * @param $data     */    private function handleData(&$data){        if(!empty($data)){            foreach ($data as &$val){                $val['phone'] = null;                $val['imei'] = null;                $val['game_name'] = null;                $val['product_name'] = null;                $val['is_vip'] = null; //todo                $val['protect_date'] = 'xx';                $val['cp'] = null;                $val['country'] = null;                $val['operator'] = null;                if(!empty($val['ext'])){                    $_to_ext = $val['ext'];                    $val['imei'] = $_to_ext['device_id'];                    $val['product_name'] = $_to_ext['product_name'];                    $val['is_vip'] = $_to_ext['role_vip'] == 0 ? '否' : '是';                    $_device_info = explode('||', $_to_ext['device_info']);                    if(count($_device_info)){                        $val['phone'] = $_device_info[0];                    }                }                if(!empty($val['game'])){                    $_to_game = $val['game'];                    if(!empty($_to_game['cp'])){                        $val['cp'] = $_to_game['cp']['company_name'];                    }                    $val['game_name'] = $val['game']['name'];                }                if(!empty($val['member'])){                    $_to_member = $val['member'];                    if(!empty($_to_member['country'])){                        $val['country'] = $_to_member['country']['en_name_abbr'];                    }                    if(!empty($_to_member['operator'])){                        $val['operator'] = $_to_member['operator']['name'];                    }                }            }        }    }}
 |