where('send_order_id', $params['send_order_id']); } if (isset($params['start_time']) && $params['start_time']) { $search_object->where('send_time', '>=', $params['start_time']); } if (isset($params['end_time']) && $params['end_time']) { $search_object->where('send_time', '<=', $params['end_time']); } if ($isAll) { return $search_object->get(); } else { return $search_object->paginate(); } } function getSendOrderIdFromOrigin($start, $end) { $result = DB::Table('orders')->join('users', 'orders.uid', 'users.id') ->where('orders.created_at', '>=', $start) ->where('orders.created_at', '<', $end) ->where('orders.status', '=', 'paid') ->where('users.send_order_id', '>', 0) ->select(DB::raw('distinct(users.send_order_id)')) ->get(); return $result ? $result->toArray() : []; } /** * 删除记录 * @param $ids */ function deleteRecs($ids=[]) { if(count($ids)<1) return; $idstr = collect($ids)->implode('send_order_id', ','); $result = self::whereIn('send_order_id', $ids) ->delete(); } /** * @param $params * @param bool $isAll * @return mixed */ function getSendOrderByRegistList($params, $isAll = false) { $fields = ["send_orders.id", "send_orders.distribution_channel_id", "distribution_channels.nickname", "send_orders.send_time", "send_orders.book_id", "send_orders.book_name", "send_orders_stats.register_user_num", "send_orders_stats.uv", "send_orders_stats.force_user_num", "send_orders.cost", "send_orders_by_regist.success_user_count", "send_orders_by_regist.success_order_count", "send_orders_by_regist.total_amount", "send_orders_by_regist.first_pay_count", "send_orders_by_regist.first_pay_amount", "send_orders_by_regist.hour_24", "send_orders_by_regist.hour_24_first_count", "send_orders_by_regist.hour_24_not_first_count", "send_orders_by_regist.day_3", "send_orders_by_regist.day_3_first_count", "send_orders_by_regist.day_3_not_first_count", "send_orders_by_regist.day_7", "send_orders_by_regist.day_7_first_count", "send_orders_by_regist.day_7_not_first_count"]; $search_object = self::join('send_orders', 'send_orders.id', 'send_orders_by_regist.send_order_id') ->join('send_orders_stats', 'send_orders.id', 'send_orders_stats.send_order_id') ->join('distribution_channels', 'send_orders.distribution_channel_id', 'distribution_channels.id') ->where('send_orders_by_regist.first_pay_count', '>', 0) ->select($fields); if (isset($params['send_order_id']) && $params['send_order_id']) { $search_object->where('send_orders.id', $params['send_order_id']); } if (isset($params['start_time']) && $params['start_time']) { $search_object->where('send_orders.send_time', '>=', $params['start_time']); } if (isset($params['end_time']) && $params['end_time']) { $search_object->where('send_orders.send_time', '<=', $params['end_time']); } if (isset($params['company_name']) && $params['company_name']) { $search_object->where('distribution_channels.nickname', '=', $params['company_name']); } if (isset($params['book_id']) && $params['book_id']) { $search_object->where('send_orders.book_id', '=', $params['book_id']); } if (isset($params['book_name']) && $params['book_name']) { $search_object->where('send_orders.book_name', '=', $params['book_name']); } if (isset($params['uv_min']) && $params['uv_min']) { $search_object->where('send_orders.uv', '>=', $params['uv_min']); } if (isset($params['uv_max']) && $params['uv_max']) { $search_object->where('send_orders.uv', '<=', $params['uv_max']); } if ($isAll) { return $search_object->get(); } else { return $search_object->paginate(); } } }