FullMailService.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. namespace addons\TinyShop\services\marketing;
  3. use common\enums\StatusEnum;
  4. use common\helpers\StringHelper;
  5. use addons\TinyShop\common\models\marketing\FullMail;
  6. /**
  7. * Class FullMailService
  8. * @package addons\TinyShop\services\marketing
  9. */
  10. class FullMailService
  11. {
  12. /**
  13. * @return array|\yii\db\ActiveRecord|null
  14. */
  15. public function findOne($merchant_id)
  16. {
  17. return FullMail::find()
  18. ->where(['merchant_id' => $merchant_id])
  19. ->asArray()
  20. ->one();
  21. }
  22. /**
  23. * @return FullMail
  24. */
  25. public function one($merchant_id)
  26. {
  27. /* @var $model FullMail */
  28. if (empty($model = FullMail::find()->where(['merchant_id' => $merchant_id])->one())) {
  29. $model = new FullMail();
  30. return $model->loadDefaultValues();
  31. }
  32. return $model;
  33. }
  34. /**
  35. * 根据地址计算满额包邮
  36. *
  37. * @param $money
  38. * @param $address
  39. * @param $merchant_id
  40. * @return FullMail|bool
  41. */
  42. public function postage($money, $address, $merchant_id)
  43. {
  44. if (empty($money) || empty($address)) {
  45. return false;
  46. }
  47. $fullMail = $this->one($merchant_id);
  48. if (
  49. $fullMail['status'] == StatusEnum::ENABLED &&
  50. $money >= $fullMail['full_mail_money'] &&
  51. !in_array($address['city_id'], StringHelper::parseAttr($fullMail['no_mail_city_ids']))
  52. ) {
  53. return $fullMail;
  54. }
  55. return false;
  56. }
  57. }
粤ICP备19079148号