123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337 |
- <?php
- /**
- * Created by PhpStorm.
- * User: hp
- * Date: 2018/1/9
- * Time: 13:37
- */
- 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
- {
- /**
- * @apiDefine Trade 交易订单
- */
- /**
- * @apiVersion 1.0.0
- * @api {GET} trade/getBookConsumerInfoByUserId 获取用户的消费的书本信息
- * @apiGroup Trade
- * @apiName getBookConsumerInfoByUserId
- * @apiParam {Number} [userId] 用户id(可不传)
- * @apiParam {String} [start_time] 开始时间(可不传)
- * @apiParam {String} [end_time] 结束时间(可不传)
- *
- * @apiSuccess {Number} id 订购id.
- * @apiSuccess {Number} distribution_channel_id 渠道id
- * @apiSuccess {Number} bid 书本id
- * @apiSuccess {String} book_name 图书名称
- * @apiSuccess {Number} uid 用户id
- * @apiSuccess {Number} u u参数
- * @apiSuccess {Number} fee 订购费用
- * @apiSuccess {String} created_at 创建时间
- * @apiSuccess {String} updated_at 更新时间
- * @apiSuccess {Number} send_order_id 派单id
- * @apiSuccess {Number} charge_balance 充值币余额
- * @apiSuccess {Number} reward_balance 奖励币余额
- * @apiSuccess {Number} total_get_amount 累计获取书币
- * @apiSuccess {Number} total_consume_amount 累计消费书币
- * @apiSuccessExample {json} Success-Response:
- *
- * {
- * "code": 0,
- * "msg": "",
- * "data": {
- * "list": {
- * "current_page": 1,
- * "data": [
- * {
- * "id": 6,
- * "distribution_channel_id": 1,
- * "bid": 256,
- * "book_name": "金牌红娘",
- * "uid": 1,
- * "u": 123545,
- * "fee": "1.00",
- * "created_at": "2017-12-02 19:15:56",
- * "updated_at": "2017-12-01 15:26:50",
- * "send_order_id": 5,
- * "charge_balance": 44,
- * "reward_balance": 66
- * },
- * {
- * "id": 6,
- * "distribution_channel_id": 1,
- * "bid": 256,
- * "book_name": "金牌红娘",
- * "uid": 1,
- * "u": 123545,
- * "fee": "1.00",
- * "created_at": "2017-12-02 19:15:56",
- * "updated_at": "2017-12-01 15:26:50",
- * "send_order_id": 5,
- * "charge_balance": 44,
- * "reward_balance": 66
- * }
- * ],
- * "first_page_url": "http://test.manage.zhuishuyun.com/api/trade/getBookConsumerInfoByUserId?page=1",
- * "from": 1,
- * "last_page": 1,
- * "last_page_url": "http://test.manage.zhuishuyun.com/api/trade/getBookConsumerInfoByUserId?page=1",
- * "next_page_url": null,
- * "path": "http://test.manage.zhuishuyun.com/api/trade/getBookConsumerInfoByUserId",
- * "per_page": 15,
- * "prev_page_url": null,
- * "to": 1,
- * "total": 1
- * },
- * "total_info": {
- * "total_get_amount": 1111,
- * "total_consumer_amount": 1111
- * }
- * }
- * }
- */
- 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]]);
- }
- /**
- * 获取一段时间内的用户的消费总额
- * @param $userId 用户id
- * @param $start_time 开始时间
- * @param $end_time 结束时间
- * @return mixed
- */
- 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;
- }
- /**
- * 获取一段时间内的用户的累计获取书币
- * @param $userId 用户id
- * @param $start_time 开始时间
- * @param $end_time 结束时间
- * @return mixed
- */
- 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;
- }
- /**
- * @apiVersion 1.0.0
- * @api {GET} trade/getChapterConsumerInfoByUserId 获取用户的消费的章节信息
- * @apiGroup Trade
- * @apiName getChapterConsumerInfoByUserId
- * @apiParam {Number} [userId] 用户id(可不传)
- * @apiParam {String} [start_time] 开始时间(可不传)
- * @apiParam {String} [end_time] 结束时间(可不传)
- *
- * @apiSuccess {Number} id 订购id.
- * @apiSuccess {Number} distribution_channel_id 渠道id
- * @apiSuccess {Number} bid 书本id
- * @apiSuccess {Number} cid 章节id
- * @apiSuccess {String} book_name 图书名称
- * @apiSuccess {String} chapter_name 章节名称
- * @apiSuccess {Number} uid 用户id
- * @apiSuccess {Number} u u参数
- * @apiSuccess {Number} fee 订购费用
- * @apiSuccess {String} created_at 创建时间
- * @apiSuccess {String} updated_at 更新时间
- * @apiSuccess {Number} send_order_id 派单id
- * @apiSuccess {Number} charge_balance 充值币余额
- * @apiSuccess {Number} reward_balance 奖励币余额
- * @apiSuccess {Number} total_get_amount 累计获取书币
- * @apiSuccess {Number} total_consume_amount 累计消费书币
- * @apiSuccessExample {json} Success-Response:
- *
- * {
- * "code": 0,
- * "msg": "",
- * "data": {
- * "list": {
- * "current_page": 1,
- * "data": [
- * {
- * "id": 6,
- * "distribution_channel_id": 1,
- * "bid": 256,
- * "cid": 122,
- * "chapter_name": "谁谁谁"
- * "book_name": "金牌红娘",
- * "uid": 1,
- * "u": 123545,
- * "fee": "1.00",
- * "created_at": "2017-12-02 19:15:56",
- * "updated_at": "2017-12-01 15:26:50",
- * "send_order_id": 5,
- * "charge_balance": 44,
- * "reward_balance": 66
- * },
- * {
- * "id": 6,
- * "distribution_channel_id": 1,
- * "bid": 256,
- * "cid": 122,
- * "chapter_name": "谁谁谁"
- * "book_name": "金牌红娘",
- * "uid": 1,
- * "u": 123545,
- * "fee": "1.00",
- * "created_at": "2017-12-02 19:15:56",
- * "updated_at": "2017-12-01 15:26:50",
- * "send_order_id": 5,
- * "charge_balance": 44,
- * "reward_balance": 66
- * }
- * ],
- * "first_page_url": "http://test.manage.zhuishuyun.com/api/trade/getBookConsumerInfoByUserId?page=1",
- * "from": 1,
- * "last_page": 1,
- * "last_page_url": "http://test.manage.zhuishuyun.com/api/trade/getBookConsumerInfoByUserId?page=1",
- * "next_page_url": null,
- * "path": "http://test.manage.zhuishuyun.com/api/trade/getBookConsumerInfoByUserId",
- * "per_page": 15,
- * "prev_page_url": null,
- * "to": 1,
- * "total": 1
- * },
- * "total_info": {
- * "total_get_amount": 1111,
- * "total_consumer_amount": 1111
- * }
- * }
- * }
- */
- 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]]);
- }
- /**
- * 导出用户的按本订购的消费记录
- * @param Request $request
- * @return mixed
- */
- 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();
- }
- }
- /**
- *
- * 导出用户的按章节订购的消费记录
- * @param Request $request
- * @return mixed
- */
- 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();
- }
- }
- }
|