1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- <?php
- /**
- * Created by PhpStorm.
- * Date: 2017/3/31
- * Time: 14:02
- */
- namespace General\Controllers\LandingPage\Transformers;
- use General\Models\Order\Order;
- class ReportOrderTramsformer
- {
- const REPORT_TYPE = [
- 'amount_filter' => '回传金额过滤',
- 'register_24_charge' => '充值时间和注册时间必须在24小时以内',
- 'current_day_register' => '注册时间和充值时间必须同一天',
- 'no_user_match' => '无匹配用户(ip切换或者非落地页用户)',
- 'feedback_user' => '已回传用户(非首充)',
- 'percent_filter' => '百分比过滤',
- 'protected_eligible' => '计划保护范围(不算在比例基数里面)',
- 'no_complete_order_before' => '用户之前没有回传过下单',
- ];
- const platform = [
- 'tiktok' => '抖音',
- 'iqiyi' => '爱奇艺',
- 'uc' => 'UC',
- 'uchc' => 'UCHC',
- 'weibo' => '微博粉丝通',
- 'tencent' => '腾讯',
- 'kuaishou' => '快手',
- 'baidu' => '百度',
- 'huawei' => '华为ads',
- 'tx_adq_new' => '腾讯adq新版',
- 'ximalaya' => '喜马拉雅',
- ];
- public function transform($item)
- {
- $reason = $this->getType($item);
- $status = $item->reportOrder ? $item->reportOrder->status : 0;
- if ($status == 1) {
- if(isset($item->reportOrder->content) && $item->reportOrder->content == '手动回传'){
- $reason = $item->reportOrder->content;
- }else{
- $reason = '';
- }
- }
- //注册时间跟充值时间不在同一天
- if($reason == self::REPORT_TYPE['no_user_match'] && isset($item->user) && date('Y-m-d',strtotime($item->user->created_at)) != date('Y-m-d',strtotime($item->created_at)))
- {
- $reason = self::REPORT_TYPE['current_day_register'];
- }
- if('tx_adq_new' == ($item->reportOrder->link_source ?? '')) {
- $reason = ($item->reportOrder->content ?? '') ? $item->reportOrder->content : $reason;
- }
- return [
- 'order_no' => $item->trade_no,
- 'uid' => $item->uid,
- 'register_time' => $item->user ? (string)$item->user->created_at : '',
- 'register_ip' => $item->user ? $item->user->register_ip : '',
- 'amount' => $item->price,
- 'pay_time' => (string)$item->created_at,
- 'charge_ip' => $item->create_ip,
- 'bind_id' => $item->reportUser ? $item->reportUser->id : 0,
- 'adid' => $item->reportUser ? $item->reportUser->adid : 0,
- 'platform' => $this->getPlatform($item),
- 'status' => $status,
- 'type' => $item->reportOrder ? $item->reportOrder->type : '',
- 'content' => $reason,
- 'report_percent' => ($item->reportOrder ? $item->reportOrder->report_percent * 100 : 0) . '%',
- 'config_percent' => ($item->reportOrder ? $item->reportOrder->config_percent * 100 : 0) . '%',
- 'send_order_id' => $item->send_order_id,
- 'nickname' => $item->nickname,
- ];
- }
- private function getPlatform(Order $item)
- {
- if ($item->reportOrder) {
- return isset(self::platform[$item->reportOrder->link_source]) ? self::platform[$item->reportOrder->link_source] : $item->reportOrder->link_source;
- }
- return '';
- }
- private function getType(Order $item)
- {
- if ($item->reportOrder) {
- return array_key_exists($item->reportOrder->type, self::REPORT_TYPE) ? self::REPORT_TYPE[$item->reportOrder->type] : '';
- } else {
- return self::REPORT_TYPE['no_user_match'];
- }
- }
- }
|