123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337 |
- <?php
- namespace App\Http\Controllers\Manage\Trade;
- use App\Http\Controllers\Controller;
- use App\Modules\Product\Models\Product;
- use App\Modules\Subscribe\Services\BookOrderService;
- use App\Modules\Subscribe\Services\ChapterOrderService;
- use App\Modules\Trade\Services\OrderService;
- use Illuminate\Http\Request;
- class ConsumerController extends Controller
- {
-
-
- function getBookConsumerInfoByUserId(Request $request)
- {
- $userId = $request->has('userId') ? $request->input('userId') : '';
- $end_time = $request->has('end_time') && !empty($request->input('end_time')) ? date('Y-m-d', strtotime($request->input('end_time'))) : '';
- $start_time = $request->has('start_time') && !empty($request->input('start_time')) ? date('Y-m-d', strtotime($request->input('start_time'))) : '';
- if (empty($userId)) {
- return response()->error('PARAM_EMPTY');
- } else {
- $bookOrderResult = BookOrderService::getRecordByUid($userId, $start_time, $end_time, false);
- $bookOrderResult->total_get_amount = $this->getUserTotalBalanceInfo($userId, $start_time, $end_time);
- $bookOrderResult->total_consume_amount = $this->getUserConsumeInfo($userId, $start_time, $end_time);
- }
- return response()->success(['list' => $bookOrderResult, 'total_info' => ['total_get_amount' => $bookOrderResult->total_get_amount, 'total_consume_amount' => $bookOrderResult->total_consume_amount]]);
- }
-
- function getUserConsumeInfo($userId, $start_time, $end_time)
- {
- $bookOrderFeeAmount = BookOrderService::getBookTotalConsumeByUserIdAndTime($userId, $start_time, $end_time);
- $chapterOrderFeeAmount = ChapterOrderService::getChapterTotalConsumeByUserIdAndTime($userId, $start_time, $end_time);
- return $bookOrderFeeAmount + $chapterOrderFeeAmount;
- }
-
- function getUserTotalBalanceInfo($userId, $start_time, $end_time)
- {
- $params = [];
- $params['uid'] = $userId;
- $params['status'] = 'PAID';
- $params['order_type'] = 'RECHARGE';
- $params['end_time'] = $end_time;
- $params['begin_time'] = $start_time;
- $givenAmount = 0;
- $orderResult = OrderService::search($params, true);
- foreach ($orderResult as $item) {
- $product_id = $item['product_id'];
- $result = Product::getProductGivenAmount($product_id);
- $amount = $result['price'] * 100 + $result['given'];
- $givenAmount += $amount;
- }
- return $givenAmount;
- }
-
- function getChapterConsumerInfoByUserId(Request $request)
- {
- $userId = $request->has('userId') ? $request->input('userId') : '';
- $end_time = $request->has('end_time') && !empty($request->input('end_time')) ? date('Y-m-d', strtotime($request->input('end_time'))) : '';
- $start_time = $request->has('start_time') && !empty($request->input('start_time')) ? date('Y-m-d', strtotime($request->input('start_time'))) : '';
- if (empty($userId)) {
- return response()->error('PARAM_EMPTY');
- } else {
- $chapterOrderResult = ChapterOrderService::getRecordByUid($userId, $start_time, $end_time, false);
- $chapterOrderResult->total_get_amount = $this->getUserTotalBalanceInfo($userId, $start_time, $end_time);
- $chapterOrderResult->total_consume_amount = $this->getUserConsumeInfo($userId, $start_time, $end_time);
- }
- return response()->success(['list' => $chapterOrderResult, 'total_info' => ['total_get_amount' => $chapterOrderResult->total_get_amount, 'total_consume_amount' => $chapterOrderResult->total_consume_amount]]);
- }
-
- function exportUserBookConsumerInfo(Request $request)
- {
- $userId = $request->has('userId') ? $request->input('userId') : '';
- $end_time = $request->has('end_time') && !empty($request->input('end_time')) ? date('Y-m-d', strtotime($request->input('end_time'))) : '';
- $start_time = $request->has('start_time') && !empty($request->input('start_time')) ? date('Y-m-d', strtotime($request->input('start_time'))) : '';
- if (empty($userId)) {
- return response()->error('PARAM_EMPTY');
- } else {
- $bookOrderResult = BookOrderService::getRecordByUid($userId, $start_time, $end_time, true);
- header("Content-type:application/vnd.ms-excel");
- header("Content-Disposition:attachment;filename=" . "用户书本订购记录" . date("YmdHis") . ".csv");
- echo iconv("UTF-8", "GBK", "\"id单号\",\"渠道id\",\"书本id\",\"图书名称\",\"用户id\",\"u参数\",\"订购费用\",\"创建时间\",\"更新时间\",\"充值币余额\",\"奖励币余额\",\"派单id\"\r\n");
- if ($bookOrderResult) {
- foreach ($bookOrderResult as $item) {
- echo("\"" . iconv("UTF-8", "GBK", '`' . $item->id) . "\",");
- echo("\"" . $item->distribution_channel_id . "\",");
- echo("\"" . $item->bid . "\",");
- echo("\"" . iconv("UTF-8", "GBK", $item->book_name) . "\",");
- echo("\"" . $item->uid . "\",");
- echo("\"" . $item->u . "\",");
- echo("\"" . $item->fee . "\",");
- echo("\"" . iconv("UTF-8", "GBK", date('Y-m-d H:i:s', strtotime($item->created_at))) . "\",");
- echo("\"" . iconv("UTF-8", "GBK", date('Y-m-d H:i:s', strtotime($item->updated_at))) . "\",");
- echo("\"" . $item->charge_balance . "\",");
- echo("\"" . $item->reward_balance . "\",");
- echo("\"" . $item->send_order_id . "\"\r\n");
- }
- }
- exit();
- }
- }
-
- function exportUserChapterConsumerInfo(Request $request)
- {
- $userId = $request->has('userId') ? $request->input('userId') : '';
- $end_time = $request->has('end_time') && !empty($request->input('end_time')) ? date('Y-m-d', strtotime($request->input('end_time'))) : '';
- $start_time = $request->has('start_time') && !empty($request->input('start_time')) ? date('Y-m-d', strtotime($request->input('start_time'))) : '';
- if (empty($userId)) {
- return response()->error('PARAM_EMPTY');
- } else {
- $chapterOrderResult = ChapterOrderService::getRecordByUid($userId, $start_time, $end_time, true);
- header("Content-type:application/vnd.ms-excel");
- header("Content-Disposition:attachment;filename=" . "用户章节订购记录" . date("YmdHis") . ".csv");
- echo iconv("UTF-8", "GBK", "\"id单号\",\"渠道id\",\"书本id\",\"图书名称\",\"章节id\",\"章节名称\",\"用户id\",\"u参数\",\"订购费用\",\"创建时间\",\"更新时间\",\"充值币余额\",\"奖励币余额\",\"派单id\"\r\n");
- if ($chapterOrderResult) {
- foreach ($chapterOrderResult as $item) {
- echo("\"" . iconv("UTF-8", "GBK", '`' . $item->id) . "\",");
- echo("\"" . $item->distribution_channel_id . "\",");
- echo("\"" . $item->bid . "\",");
- echo("\"" . iconv("UTF-8", "GBK", $item->book_name) . "\",");
- echo("\"" . $item->cid . "\",");
- echo("\"" . iconv("UTF-8", "GBK", $item->chapter_name) . "\",");
- echo("\"" . $item->uid . "\",");
- echo("\"" . $item->u . "\",");
- echo("\"" . $item->fee . "\",");
- echo("\"" . iconv("UTF-8", "GBK", date('Y-m-d H:i:s', strtotime($item->created_at))) . "\",");
- echo("\"" . iconv("UTF-8", "GBK", date('Y-m-d H:i:s', strtotime($item->updated_at))) . "\",");
- echo("\"" . $item->charge_balance . "\",");
- echo("\"" . $item->reward_balance . "\",");
- echo("\"" . $item->send_order_id . "\"\r\n");
- }
- }
- exit();
- }
- }
- }
|