'回传金额过滤', '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']; } } }