admin/app/frontend/modules/order/controllers/CreateController.php

75 lines
1.9 KiB
PHP

<?php
/**
* Created by PhpStorm.
* Author:
* Date: 2017/2/28
* Time: 上午10:39
*/
namespace app\frontend\modules\order\controllers;
use app\common\components\ApiController;
use app\framework\Support\Facades\Log;
use app\frontend\models\Member;
use app\frontend\modules\member\services\MemberCartService;
use app\frontend\modules\memberCart\MemberCartCollection;
use Yunshop\ShareActivity\model\ActivityOrder;
class CreateController extends ApiController
{
/**
* @var MemberCartCollection
*/
private $memberCarts;
/**
* @return static
*/
protected function _getMemberCarts()
{
$goods_params = is_array(request()->input('goods')) ? request()->input('goods') : json_decode(request()->input('goods'), true);
$memberCarts = collect($goods_params)->map(function ($memberCart) {
return MemberCartService::newMemberCart($memberCart);
});
return $memberCarts;
}
/**
* @return MemberCartCollection
* @throws \app\common\exceptions\AppException
*/
protected function getMemberCarts()
{
if (!isset($this->memberCarts)) {
$memberCarts = new MemberCartCollection($this->_getMemberCarts());
$memberCarts->loadRelations();
$memberCarts->validate();
$this->memberCarts = $memberCarts;
}
return $this->memberCarts;
}
protected function validateParam()
{
}
/**
* @return \Illuminate\Http\JsonResponse
* @throws \app\common\exceptions\AppException
*/
public function index()
{
\Log::info('用户下单', request()->input());
$this->validateParam();
//订单组
$trade = $this->getMemberCarts()->getTrade(Member::current());
$trade->generate();
$orderIds = $trade->orders->pluck('id')->implode(',');
//生成订单,触发事件
return $this->successJson('成功', ['order_ids' => $orderIds]);
}
}