初始化项目
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | 萤火商城系统 [ 致力于通过产品和服务,帮助商家高效化开拓市场 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2017~2023 https://www.yiovo.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed 这不是一个自由软件,不允许对程序代码以任何形式任何目的的再发行
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: 萤火科技 <admin@yiovo.com>
|
||||
// +----------------------------------------------------------------------
|
||||
declare (strict_types=1);
|
||||
|
||||
namespace app\api\service\order\source\checkout;
|
||||
|
||||
use app\common\service\BaseService;
|
||||
use app\api\model\User as UserModel;
|
||||
|
||||
/**
|
||||
* 订单结算台扩展基类
|
||||
* Class Basics
|
||||
* @package app\api\service\order\source\checkout
|
||||
*/
|
||||
abstract class Basics extends BaseService
|
||||
{
|
||||
/* @var UserModel $user 当前用户信息 */
|
||||
protected $user;
|
||||
|
||||
// 订单结算商品列表
|
||||
protected $goodsList = [];
|
||||
|
||||
// 订单结算主数据
|
||||
protected $orderData = [];
|
||||
|
||||
/**
|
||||
* 构造方法
|
||||
* Checkout constructor.
|
||||
* @param UserModel $user
|
||||
* @param array $goodsList
|
||||
* @param array $orderData
|
||||
*/
|
||||
public function __construct($user, $goodsList, $orderData)
|
||||
{
|
||||
parent::__construct();
|
||||
$this->user = $user;
|
||||
$this->goodsList = $goodsList;
|
||||
$this->orderData = $orderData;
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证商品列表
|
||||
* @return mixed
|
||||
*/
|
||||
abstract public function validateGoodsList();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | 萤火商城系统 [ 致力于通过产品和服务,帮助商家高效化开拓市场 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2017~2023 https://www.yiovo.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed 这不是一个自由软件,不允许对程序代码以任何形式任何目的的再发行
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: 萤火科技 <admin@yiovo.com>
|
||||
// +----------------------------------------------------------------------
|
||||
declare (strict_types=1);
|
||||
|
||||
namespace app\api\service\order\source\checkout;
|
||||
|
||||
use app\common\service\BaseService;
|
||||
use app\common\enum\order\OrderSource as OrderSourceEnum;
|
||||
|
||||
/**
|
||||
* 订单结算台扩展工厂类
|
||||
* Class Factory
|
||||
* @package app\common\service\stock
|
||||
*/
|
||||
class Factory extends BaseService
|
||||
{
|
||||
// 订单来源的结算台服务类
|
||||
private static $class = [
|
||||
OrderSourceEnum::MAIN => Main::class,
|
||||
];
|
||||
|
||||
/**
|
||||
* 根据订单来源获取商品库存类
|
||||
* @param $user
|
||||
* @param $goodsList
|
||||
* @param int $orderSource
|
||||
* @param array $orderData
|
||||
* @return mixed
|
||||
*/
|
||||
public static function getFactory($user, $goodsList, $orderSource = OrderSourceEnum::MAIN, $orderData = [])
|
||||
{
|
||||
return new static::$class[$orderSource]($user, $goodsList, $orderData);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | 萤火商城系统 [ 致力于通过产品和服务,帮助商家高效化开拓市场 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2017~2023 https://www.yiovo.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed 这不是一个自由软件,不允许对程序代码以任何形式任何目的的再发行
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: 萤火科技 <admin@yiovo.com>
|
||||
// +----------------------------------------------------------------------
|
||||
declare (strict_types=1);
|
||||
|
||||
namespace app\api\service\order\source\checkout;
|
||||
|
||||
use app\common\enum\order\PayType as OrderPayTypeEnum;
|
||||
/**
|
||||
* 订单结算台-普通商品扩展类
|
||||
* Class Main
|
||||
* @package app\api\service\order\source\checkout
|
||||
*/
|
||||
class Main extends Basics
|
||||
{
|
||||
/**
|
||||
* 验证商品列表
|
||||
* @return bool
|
||||
*/
|
||||
public function validateGoodsList()
|
||||
{
|
||||
$order = $this->orderData;
|
||||
foreach ($this->goodsList as $goods) {
|
||||
// 判断商品是否下架
|
||||
if ($goods['status'] != 10) {
|
||||
$this->error = "很抱歉,商品 [{$goods['goods_name']}] 已下架";
|
||||
return false;
|
||||
}
|
||||
// 判断商品库存
|
||||
if ($goods['total_num'] > $goods['skuInfo']['stock_num']) {
|
||||
$this->error = "很抱歉,商品 [{$goods['goods_name']}] 库存不足";
|
||||
return false;
|
||||
}
|
||||
// 判断购买优惠券不能使用 余额支付
|
||||
if (isset($order['payType']) && $order['payType'] == OrderPayTypeEnum::BALANCE && $goods['oilCardType'] == 'coupon'){
|
||||
$this->error = "本商品不可使用余额支付";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user