| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- <?php
- namespace Longyi\Gift\Models;
- use Brainstream\Giftcard\Models\GiftCard;
- use Brainstream\Giftcard\Models\GiftCardBalance;
- use Illuminate\Database\Eloquent\Factories\HasFactory;
- use Illuminate\Database\Eloquent\Model;
- use Longyi\Gift\Contracts\GiftCards as GiftCardsContract;
- class GiftCards extends Model implements GiftCardsContract
- {
- use HasFactory;
- protected $table = 'gift_cards';
- protected $fillable = [
- 'giftcard_number',
- 'giftcard_amount',
- 'used_giftcard_amount',
- 'remaining_giftcard_amount',
- 'customer_id',
- 'expirationdate',
- 'giftcard_status',
- ];
- protected $casts = [
- 'giftcard_amount' => 'decimal:2',
- 'used_giftcard_amount' => 'decimal:2',
- 'remaining_giftcard_amount' => 'decimal:2',
- 'customer_id' => 'integer',
- 'expirationdate' => 'date',
- ];
- public static function setGiftCardCode($giftcard)
- {
- if (!$giftcard) {
- return false;
- }
- $cart = cart()->getCart();
- $cart->giftcard_number = $giftcard->giftcard_number;
- // 计算可以使用的礼品卡金额
- if ($cart->grand_total <= $giftcard->remaining_giftcard_amount) {
- $cart->giftcard_amount = $cart->grand_total;
- } else {
- $cart->giftcard_amount = $giftcard->remaining_giftcard_amount;
- }
- // 更新购物车总额
- $cart->grand_total = max(0, $cart->grand_total - $cart->giftcard_amount);
- $cart->base_grand_total = max(0, $cart->base_grand_total - $cart->giftcard_amount);
- $cart->save();
- return true;
- }
- public static function removeGiftCardCode()
- {
- $cart = cart()->getCart();
- $giftcardAmount = $cart->giftcard_amount ?? 0;
- // 清除购物车中的礼品卡标记
- $cart->giftcard_number = null;
- $cart->giftcard_amount = null;
- // 恢复购物车总额
- $cart->grand_total += $giftcardAmount;
- $cart->base_grand_total += $giftcardAmount;
- $cart->save();
- return true;
- }
- }
|