MarketingCateService.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. namespace addons\TinyShop\services\marketing;
  3. use common\enums\StatusEnum;
  4. use addons\TinyShop\common\enums\MarketingEnum;
  5. use addons\TinyShop\common\models\marketing\MarketingCate;
  6. /**
  7. * Class MarketingCateService
  8. * @package addons\TinyShop\services\marketing
  9. * @author jianyan74 <751393839@qq.com>
  10. */
  11. class MarketingCateService
  12. {
  13. /**
  14. * @param $product_id
  15. * @param $merchant_id
  16. * @return array|\yii\db\ActiveRecord[]
  17. */
  18. public function getCanReceiveCouponByProductId($cate_ids, $merchant_id)
  19. {
  20. return MarketingCate::find()
  21. ->select(['marketing_id', 'marketing_type'])
  22. ->where(['in', 'cate_id', $cate_ids])
  23. ->andWhere(['in','merchant_id', [0, $merchant_id]])
  24. ->andWhere(['in', 'marketing_type', [MarketingEnum::COUPON_IN, MarketingEnum::COUPON_NOT_IN]])
  25. ->andWhere(['<', 'start_time', time()])
  26. ->andWhere(['>', 'end_time', time()])
  27. ->andWhere(['status' => StatusEnum::ENABLED])
  28. ->asArray()
  29. ->all();
  30. }
  31. /**
  32. * 删除
  33. *
  34. * @param $marketing_id
  35. * @param array|string $marketing_type
  36. */
  37. public function delByMarketing($marketing_id, $marketing_type)
  38. {
  39. if (is_array($marketing_type)) {
  40. MarketingCate::deleteAll([
  41. 'and',
  42. ['marketing_id' => $marketing_id],
  43. ['in', 'marketing_type', $marketing_type],
  44. ]);
  45. } else {
  46. MarketingCate::deleteAll(['marketing_id' => $marketing_id, 'marketing_type' => $marketing_type]);
  47. }
  48. }
  49. /**
  50. * @param $marketing_id
  51. * @param $marketing_type
  52. * @return array
  53. */
  54. public function getCateIdsByMarketing($marketing_id, $marketing_type)
  55. {
  56. return MarketingCate::find()
  57. ->select(['cate_id'])
  58. ->where(['marketing_id' => $marketing_id, 'marketing_type' => $marketing_type])
  59. ->andWhere(['status' => StatusEnum::ENABLED])
  60. ->asArray()
  61. ->column();
  62. }
  63. }
粤ICP备19079148号