123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791 |
- <?php
- namespace App\Http\Controllers\Manage\SendOrder;
- use App\Http\Controllers\Controller;
- use App\Http\Controllers\Manage\SendOrder\Transformers\SendOrderStatTransformer;
- use App\Http\Controllers\Manage\SendOrder\Transformers\SendOrderTransformer;
- use App\Modules\Channel\Services\ChannelService;
- use App\Modules\OfficialAccount\Services\ForceSubscribeService;
- use App\Modules\SendOrder\Services\SendOrderService;
- use App\Modules\SendOrder\Services\SendOrderStatService;
- use App\Modules\Statistic\Services\SendStatistics;
- use App\Modules\Subscribe\Services\BookOrderService;
- use App\Modules\Subscribe\Services\ChapterOrderService;
- use App\Modules\Trade\Services\OrderService;
- use App\Modules\User\Services\UserService;
- use Illuminate\Http\Request;
- class SendOrderController extends Controller
- {
-
-
- function getSendOrders(Request $request)
- {
- $name = $request->has('name') ? $request->input('name') : '';
- $bookId = $request->has('book_id') ? $request->input('book_id') : '';
- $orderBy = $request->has('orderBy') ? $request->input('orderBy') : '';
- $orderByType = $request->has('orderByType') ? $request->input('orderByType') : 1;
- $order_status = $request->has('order_status') ? $request->input('order_status') : 0;
- $orderByType = (0 == $orderByType) ? 1 : $orderByType;
- $bookName = $request->has('bookName') ? $request->input('bookName') : '';
- $channel_id = $request->has('channel_id') ? $request->input('channel_id') : '';
- $sendOrderId = $request->has('sendOrder_id') ? $request->input('sendOrder_id') : '';
- $end_time = $request->has('end_time') && !empty($request->input('end_time')) ? $request->input('end_time') : '';
- $start_time = $request->has('start_time') && !empty($request->input('start_time')) ? $request->input('start_time') : '';
- $gender = $request->has('gender') && !empty($request->input('gender')) ? $request->input('gender') : '';
- $params = ['book_id' => $bookId, 'distribution_channel_id' => $channel_id, 'book_name' => $bookName, 'id' => $sendOrderId, 'orderBy' => $orderBy,
- 'order_status' => $order_status, 'orderByType' => $orderByType, 'name' => $name, 'start_time' => $start_time, 'end_time' => $end_time, 'gender' => $gender];
- $data = SendOrderService::getManageSendOrders($params, false);
- foreach ($data as $item) {
- $sendOrderId = $item->id;
- $item->totalChargeAmount = (float)OrderService::getAmount(['send_order_id' => $sendOrderId]);
- $item->registerNum = UserService::getPromotionTotal($sendOrderId);;
- $item->clickNum = SendOrderService::getPv($sendOrderId);
- $item->clickNumUV = SendOrderService::getUv($sendOrderId);
- $item->continue_read_uv = SendOrderService::getContinueTotalReadUv($sendOrderId);
- $item->channel_name = ChannelService::getChannelNicknameById($item->distribution_channel_id);
- $item->fansNum = ForceSubscribeService::getFansNum($sendOrderId);
- $item->payUserNum = OrderService::getPayUserNum($sendOrderId);
- $item->vipPayUserNum = OrderService::getVipPayUserNum($sendOrderId);
- $item->normalPayUserNum = OrderService::getNormaPayUserNum($sendOrderId);
- $bookOrderInfo = BookOrderService::getSendorderTotal($sendOrderId, $start_time, $end_time);
- $chapterOrderInfo = ChapterOrderService::getSendorderTotal($sendOrderId, $start_time, $end_time);
- $item->consumeChargeFee = $bookOrderInfo['charge_balance'] + $chapterOrderInfo['charge_balance'];
- $item->consumeRewardFee = $bookOrderInfo['reward_balance'] + $chapterOrderInfo['reward_balance'];;
- $item->consumeTotalFee = $item->consumeChargeFee + $item->consumeRewardFee;
- $item->toatlOrderCount = OrderService::getOrderCount($sendOrderId);
- $item->vipOrderCount = OrderService::getVipOrderCount($sendOrderId);
- $item->normalOrderCount = OrderService::getNormalOrderCount($sendOrderId);
- $item->firstChargeUserNum = SendOrderService::getFirstChargeUserNum($sendOrderId);
- $item->repetitiousChargeUserNum = SendOrderService::getRepetitiousChargeUserNum($sendOrderId);
- }
- return response()->pagination(new SendOrderTransformer(), $data);
- }
-
- function exportSendOrders(Request $request)
- {
- $name = $request->has('name') ? $request->input('name') : '';
- $bookId = $request->has('book_id') ? $request->input('book_id') : '';
- $orderBy = $request->has('orderBy') ? $request->input('orderBy') : '';
- $orderByType = $request->has('orderByType') ? $request->input('orderByType') : 1;
- $order_status = $request->has('order_status') ? $request->input('order_status') : 0;
- $orderByType = (0 == $orderByType) ? 1 : $orderByType;
- $bookName = $request->has('bookName') ? $request->input('bookName') : '';
- $channel_id = $request->has('channel_id') ? $request->input('channel_id') : '';
- $sendOrderId = $request->has('sendOrder_id') ? $request->input('sendOrder_id') : '';
- $end_time = $request->has('end_time') && !empty($request->input('end_time')) ? $request->input('end_time') : '';
- $start_time = $request->has('start_time') && !empty($request->input('start_time')) ? $request->input('start_time') : '';
- $gender = $request->has('gender') && !empty($request->input('gender')) ? $request->input('gender') : '';
- $params = ['book_id' => $bookId, 'distribution_channel_id' => $channel_id, 'book_name' => $bookName, 'id' => $sendOrderId, 'orderBy' => $orderBy,
- 'order_status' => $order_status, 'orderByType' => $orderByType, 'name' => $name, 'start_time' => $start_time, 'end_time' => $end_time, 'gender' => $gender];
- $data = SendOrderService::getManageSendOrders($params, true);
- header("Content-type:application/vnd.ms-excel");
- header("Content-Disposition:attachment;filename=" . "派单明细" . date("YmdHis") . ".csv");
- echo iconv("UTF-8", "GBK", "\"创建时间\",\"派单时间\",\"渠道ID\",\"派单ID\",\"推广书籍ID\",\"推广书籍名称\",\"书籍类型\",\"消费币的总和\",\"消费的充值币\",\"消费的奖励币\",\"点击人数\",\"继续阅读用户数\",\"注册用户数\",\"关注人数\",\"付费用户数\",\"VIP付费用户数\",\"普通付费用户数\",\"充值金额\",\"7天充值金额\",\"12小时充值金额\",\"UV\",\"累计UV大于20的时间\",\"总订单数\",\"成本\",\"VIP用户订单数\",\"普通用户订单数\"\r\n");
- if ($data) {
- foreach ($data as $item) {
- $sendOrderId = $item->id;
- $item->totalChargeAmount = (float)OrderService::getAmount(['send_order_id' => $sendOrderId]);
- $item->registerNum = UserService::getPromotionTotal($sendOrderId);;
- $item->clickNum = SendOrderService::getPv($sendOrderId);
- $item->clickNumUV = SendOrderService::getUv($sendOrderId);
- $item->payUserNum = OrderService::getPayUserNum($sendOrderId);
- $item->fansNum = ForceSubscribeService::getFansNum($sendOrderId);
- $item->vipPayUserNum = OrderService::getVipPayUserNum($sendOrderId);
- $item->normalPayUserNum = OrderService::getNormaPayUserNum($sendOrderId);
- $item->continue_read_uv = SendOrderService::getContinueTotalReadUv($sendOrderId);
- $bookOrderInfo = BookOrderService::getSendorderTotal($sendOrderId, $start_time, $end_time);
- $chapterOrderInfo = ChapterOrderService::getSendorderTotal($sendOrderId, $start_time, $end_time);
- $item->consumeChargeFee = $bookOrderInfo['charge_balance'] + $chapterOrderInfo['charge_balance'];
- $item->consumeRewardFee = $bookOrderInfo['reward_balance'] + $chapterOrderInfo['reward_balance'];;
- $item->consumeTotalFee = $item->consumeChargeFee + $item->consumeRewardFee;
- $item->toatlOrderCount = OrderService::getOrderCount($sendOrderId);
- $item->vipOrderCount = OrderService::getVipOrderCount($sendOrderId);
- $item->normalOrderCount = OrderService::getNormalOrderCount($sendOrderId);
- echo("\"" . $item->created_at->toDateTimeString() . "\",");
- echo("\"" . iconv("UTF-8", "GBK", ($item->send_time ? $item->$item->send_time : "未填")) . "\",");
- echo("\"" . ($item->distribution_channel_id ? $item->distribution_channel_id : "-1") . "\",");
- echo("\"" . ($item->id ? $item->id : "-1") . "\",");
- echo("\"" . ($item->book_id ? $item->book_id : "-1") . "\",");
- echo("\"" . iconv("UTF-8", "GBK", ($item->book_name ? $item->book_name : "未填")) . "\",");
- echo("\"" . iconv("UTF-8", "GBK", ($item->channel_name ? $item->channel_name : "未填")) . "\",");
- echo("\"" . $item->consumeTotalFee . "\",");
- echo("\"" . $item->consumeChargeFee . "\",");
- echo("\"" . $item->consumeRewardFee . "\",");
- echo("\"" . $item->clickNum . "\",");
- echo("\"" . $item->continue_read_uv . "\",");
- echo("\"" . $item->registerNum . "\",");
- echo("\"" . $item->fansNum . "\",");
- echo("\"" . $item->payUserNum . "\",");
- echo("\"" . $item->vipPayUserNum . "\",");
- echo("\"" . $item->normalPayUserNum . "\",");
- echo("\"" . $item->totalChargeAmount . "\",");
- echo("\"" . ($item->weekend_charge_amount ? $item->weekend_charge_amount : 0) . "\",");
- echo("\"" . ($item->half_day_charge_amount ? $item->half_day_charge_amount : 0) . "\",");
- echo("\"" . $item->clickNumUV . "\",");
- $uv20Time = SendOrderService::getUv20Time($sendOrderId);
- echo("\"" . iconv("UTF-8", "GBK", ($uv20Time ? $uv20Time : "未到20")) . "\",");
- echo("\"" . $item->toatlOrderCount . "\",");
- echo("\"" . $item->cost . "\",");
- echo("\"" . $item->vipOrderCount . "\",");
- echo("\"" . $item->normalOrderCount . "\"\r\n");
- }
- }
- exit();
- }
-
- function getHistorySendOrders(Request $request)
- {
- $name = $request->has('name') ? $request->input('name') : '';
- $bid = $request->has('book_id') ? $request->input('book_id') : '';
- $order_field = $request->has('orderBy') ? $request->input('orderBy') : '';
- $order_type = $request->has('orderByType') && $request->input('orderByType') == 2 ? 'asc' : 'desc';
- $order_status = $request->has('order_status') ? $request->input('order_status') : 0;
- $book_name = $request->has('bookName') ? $request->input('bookName') : '';
- $distribution_channel_id = $request->has('channel_id') ? $request->input('channel_id') : '';
- $send_order_id = $request->has('sendOrder_id') ? $request->input('sendOrder_id') : '';
- $end_time = $request->has('end_time') && !empty($request->input('end_time')) ? date('Y-m-d H:i:s', strtotime($request->input('end_time')) + 86400 - 1) : '';
- $start_time = $request->has('start_time') && !empty($request->input('start_time')) ? $request->input('start_time') : '';
- $gender = $request->has('gender') && !empty($request->input('gender')) ? $request->input('gender') : '';
- $params = compact('name', 'bid', 'book_name', 'distribution_channel_id', 'send_order_id', 'start_time', 'end_time', 'order_status', 'order_type', 'order_field', 'gender');
- $data = SendOrderStatService::getList($params);
-
- foreach ($data as &$v) {
- $v->beforevipuv = 0;
- $v->beforeforcesubuv = 0;
- $res = SendStatistics::getBeforeForceSubAndBeforeVipUv($v->bid, $v->send_order_id, date('Y-m-d', strtotime($v->create_time)), false);
- $v->beforevipuv = $res['before_vip'];
- $v->beforeforcesubuv = $res['before_forcesub'];
- }
- return response()->pagination(new SendOrderStatTransformer(), $data);
- }
-
- function exportHistorySendOrders(Request $request)
- {
- \Log::info($request->all());
- $name = $request->has('name') ? $request->input('name') : '';
- $bid = $request->has('book_id') ? $request->input('book_id') : '';
- $order_field = $request->has('orderBy') ? $request->input('orderBy') : '';
- $order_type = $request->has('orderByType') && $request->input('orderByType') == 2 ? 'asc' : 'desc';
- $order_status = $request->has('order_status') ? $request->input('order_status') : 0;
- $book_name = $request->has('bookName') ? $request->input('bookName') : '';
- $distribution_channel_id = $request->has('channel_id') ? $request->input('channel_id') : '';
- $send_order_id = $request->has('sendOrder_id') ? $request->input('sendOrder_id') : '';
- $end_time = $request->has('end_time') && !empty($request->input('end_time')) ? date('Y-m-d H:i:s', strtotime($request->input('end_time')) + 86400 - 1) : '';
- $start_time = $request->has('start_time') && !empty($request->input('start_time')) ? $request->input('start_time') : '';
- $params = compact('name', 'bid', 'book_name', 'distribution_channel_id', 'send_order_id', 'start_time', 'end_time', 'order_status', 'order_type', 'order_field');
- \Log::info('params is:');
- \Log::info($request->all());
- header("Content-type:application/vnd.ms-excel");
- header("Content-Disposition:attachment;filename=" . "派单历史数据" . date("YmdHis") . ".csv");
- echo iconv("UTF-8", "GBK", "\"创建时间\",\"派单实际发送时间\",\"派单ID\",\"派单名称\",\"渠道ID\",\"推广书籍名称\",\"推广书籍ID\",\"收费方式\",\"充值金额\",\"渠道名称\",\"成本\",\"派单实际发送时间\",\"12小时充值金额\",\"7天充值金额\",\"24小时充值金额\",\"3天充值金额\",\"首充用户数\",\"数据更新时间\",\"粉丝数\",\"注册用户数\",\"付费用户数\",\"成功订单数\",\"失败订单数\",\"首充总数\",\"VIP付费用户数\",\"普通付费用户数\",\"pv\",\"uv\",\"24小时uv\",\"24小时pv\",\"vip前一章uv\",\"强关前一章uv\"\r\n");
- $obj = SendOrderStatService::getObj($params);
- $obj->chunk(2000, function ($send_orders) {
- foreach ($send_orders as $item) {
- $res = SendStatistics::getBeforeForceSubAndBeforeVipUv($item->bid, $item->send_order_id, date('Y-m-d', strtotime($item->create_time)), false);
- echo("\"" . $item->create_time . "\",");
- echo("\"" . $item->send_time . "\",");
- echo("\"" . $item->send_order_id . "\",");
- echo("\"" . mb_convert_encoding(($item->name ? $item->name : "未填"), "GBK") . "\",");
- echo("\"" . $item->distribution_channel_id . "\",");
- echo("\"" . mb_convert_encoding(($item->book_name ? $item->book_name : "未填"), "GBK") . "\",");
- echo("\"" . $item->bid . "\",");
- echo("\"" . $item->charge_type . "\",");
- echo("\"" . $item->recharge_amount . "\",");
- echo("\"" . mb_convert_encoding(($item->distribution_channel_name ? $item->distribution_channel_name : "未填"), "GBK") . "\",");
- echo("\"" . $item->cost . "\",");
- echo("\"" . $item->send_time . "\",");
- echo("\"" . $item->recharge_amount_in_half_day . "\",");
- echo("\"" . $item->recharge_amount_in_two_weeks . "\",");
- echo("\"" . $item->recharge_amount_in_one_day . "\",");
- echo("\"" . $item->recharge_amount_in_three_days . "\",");
- echo("\"" . $item->first_recharge_user_num . "\",");
- echo("\"" . date("Y-m-d H:i:s", strtotime($item->updated_at)) . "\",");
- echo("\"" . $item->force_user_num . "\",");
- echo("\"" . $item->register_user_num . "\",");
- echo("\"" . $item->pay_user_num . "\",");
- echo("\"" . $item->paid_num . "\",");
- echo("\"" . $item->unpaid_num . "\",");
- echo("\"" . $item->first_recharge_amount . "\",");
- echo("\"" . $item->year_recharge_user_num . "\",");
- echo("\"" . $item->ticket_recharge_user_num . "\",");
- echo("\"" . $item->pv . "\",");
- echo("\"" . $item->uv . "\",");
-
- $extra_stat = SendOrderService::getExtraStat($item->send_order_id);
- $uv_one_day = $extra_stat ? $extra_stat->uv_one_day : 0;
- $pv_one_day = $extra_stat ? $extra_stat->pv_one_day : 0;
- echo("\"" . $uv_one_day . "\",");
- echo("\"" . $pv_one_day . "\",");
- echo("\"" . $res['before_vip'] . "\",");
- echo("\"" . $res['before_forcesub'] . "\"\r\n");
- }
- });
- exit();
- }
-
- function encodeSiteId(Request $request)
- {
- $siteId = $request->has('siteId') ? $request->input('siteId') : '';
- if (empty($siteId)) {
- return response()->error("PARAM_EMPTY");
- }
- if (!is_numeric($siteId)) {
- return response()->error("PARAM_ERROR");
- }
- $siteId = encodeDistributionChannelId($siteId);
- $url = "https://site" . $siteId . ".leyuee.com";
- return response()->success(['url' => $url]);
- }
- }
|