Activity.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. <?php
  2. namespace App\Modules\Activity\Models;
  3. use Illuminate\Database\Eloquent\Model;
  4. class Activity extends Model
  5. {
  6. protected $table = 'activity';
  7. protected $fillable = ['id', 'name', 'start_time', 'end_time', 'activity_page', 'product_id', 'token', 'default_template_id', 'customer_msg', 'distribution_channel_id', 'setting'];
  8. //查询活动信息
  9. static function search($params = [], $is_all = false)
  10. {
  11. $search_obj = self::join('products', 'products.id', '=', 'activity.product_id')
  12. ->select('activity.id', 'activity.name', 'activity.created_at', 'activity.start_time', 'activity.end_time', 'activity.activity_page', 'products.price', 'products.given');
  13. if (isset($params['activity_id']) && $params['activity_id']) $search_obj->where('activity.id', $params['activity_id']);
  14. if (isset($params['begin_time']) && $params['begin_time']) $search_obj->where('start_time', '>=', $params['begin_time']);
  15. if (isset($params['end_time']) && $params['end_time']) $search_obj->where('end_time', '<=', $params['end_time'] . ' 23:59:59');
  16. if (isset($params['distribution_channel_id'])) $search_obj->whereIn('activity.distribution_channel_id', $params['distribution_channel_id']);
  17. if ($is_all) {
  18. return $search_obj->where('token', '!=', '')->orderBy('activity.created_at', 'desc')->get();
  19. } else {
  20. return $search_obj->where('token', '!=', '')->orderBy('activity.created_at', 'desc')->paginate();
  21. }
  22. }
  23. //获取活动ID
  24. static function getActivityIds($params)
  25. {
  26. $search_obj = self::orderBy('id', 'desc');
  27. if (isset($params['name'])) {
  28. $name = trim($params['name']);
  29. $search_obj->where('name', 'like', "%{$name}%");
  30. }
  31. return $search_obj->pluck('id');
  32. }
  33. }