src/Biz/OrderFacade/Command/Deduct/AvailableCouponCommand.php
(开头部分) 2KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
<?php
namespace Biz\OrderFacade\Command\Deduct;
use Biz\Card\Service\CardService;
use Biz\Coupon\Service\CouponService;
use Biz\Course\Service\CourseService;
use Biz\OrderFacade\Command\Command;
use Biz\OrderFacade\Product\Product;
class AvailableCouponCommand extends Command
{
public function execute(Product $product, $params = array())
{
$availableCoupons = $this->availableCouponsByIdAndType($product->targetId, $product->targetType);
if ($availableCoupons) {
foreach ($availableCoupons as $key => &$coupon) {
if ($product->promotionPrice) {
$coupon['deduct_amount'] = $this->getCouponService()->getDeductAmount($coupon, $product->promotionPrice);
} else {
$coupon['deduct_amount'] = $this->getCouponService()->getDeductAmount($coupon, $product->originPrice);
}
}
}
$product->availableDeducts['coupon'] = $this->availableCouponsSort($availableCoupons, $product);
}
/**
* 对可用的优惠券进行排序
* 1.专属优惠券排在前面
* 2.面额从大到小
* 3.到期日期从小至大
* 4.创建日期从小至大
*
* @return array
*/
private function availableCouponsSort($availableCoupons = array(), $product)
{
if ('course' == $product->targetType) {
$course = $this->getCourseService()->getCourse($product->targetId);
$targetId = $course['courseSetId'];
} else {
$targetId = $product->targetId;
}
$exclusiveCoupons = array();
$unexclusiveCoupons = array();
foreach ($availableCoupons as $availableCoupon) {
if ($availableCoupon['targetType'] == $product->targetType && $availableCoupon['targetId'] == $targetId) {
$exclusiveCoupons[] = $availableCoupon;
} else {
$unexclusiveCoupons[] = $availableCoupon;
}
}
usort($exclusiveCoupons, array($this, 'compareCoupon'));
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。