BargainLimit.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. namespace addons\Bargain\common\logic\order\limit;
  3. use addons\Bargain\common\enums\BargainEnum;
  4. use addons\Bargain\common\models\BargainActive;
  5. use addons\Bargain\common\models\BargainOrder;
  6. use addons\Bargain\common\models\BargainUserOrder;
  7. use common\enums\StatusEnum;
  8. use common\logic\order\OrderFormLogic;
  9. use common\models\goods\Goods;
  10. use Exception;
  11. use yii\helpers\Json;
  12. class BargainLimit extends BaseLimit
  13. {
  14. public function execute(OrderFormLogic $form)
  15. {
  16. try {
  17. } catch (Exception $e) {
  18. return false;
  19. }
  20. }
  21. /**
  22. * @desc:
  23. * @Author: hua
  24. * @Date: 2022/1/4
  25. * @Time: 16:46
  26. * @Copyright: copyright (c) 2021 广东七件事集团
  27. * @param $form
  28. * @throws Exception
  29. */
  30. public static function compute($form)
  31. {
  32. $user = $form->user;
  33. $time = time();
  34. $data = is_array($form->data) ? $form->data : Json::decode($form->data, true);
  35. $bargain_active = BargainActive::findOne(['id' => $data['active_id'], 'mall_id' => $form->mall_id]);
  36. if (empty($bargain_active)) throw new \Exception('活动不存在');
  37. if ($time < $bargain_active['begin_time']) throw new \Exception('活动还没开始');
  38. if ($time > $bargain_active['end_time']) throw new \Exception('活动已过期');
  39. if ($bargain_active['type'] == 1) {
  40. $goods = Goods::getOne([
  41. ['mall_id' => $form->mall_id],
  42. ['id' => $bargain_active['goods_id']],
  43. ['status' => StatusEnum::ENABLED]
  44. ], true, [], null, 'goods_name');
  45. if ($bargain_active['stock'] <= 0) throw new \Exception($goods['goods_name'] . '商品已售罄,暂时无法购买哦~');
  46. }
  47. }
  48. }