SearchPresell.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. namespace app\common\model\search;
  3. use app\common\model\Goods;
  4. use think\facade\Validate;
  5. trait SearchPresell
  6. {
  7. /**
  8. * @notes 搜索状态
  9. * @param $query
  10. * @param $value
  11. * @param $data
  12. * @return void
  13. * @author lbzy
  14. * @datetime 2024-04-30 11:30:43
  15. */
  16. function searchStatusAttr($query, $value, $data)
  17. {
  18. Validate::must($value) && $query->where('p.status', $value);
  19. }
  20. /**
  21. * @notes 搜索商品
  22. * @param $query
  23. * @param $value
  24. * @param $data
  25. * @return false|void
  26. * @author lbzy
  27. * @datetime 2024-04-24 14:32:10
  28. */
  29. function searchGoodsAttr($query, $value, $data)
  30. {
  31. if(empty($value)) {
  32. return false;
  33. }
  34. $goods_ids = Goods::where('name|code', 'like', "%{$value}%")->column('id');
  35. $query->where('p.id', 'in', self::where('goods_id', 'in', $goods_ids)->column('presell_id'));
  36. }
  37. /**
  38. * @notes 搜索名称
  39. * @param $query
  40. * @param $value
  41. * @param $data
  42. * @return void
  43. * @author lbzy
  44. * @datetime 2024-04-24 14:36:30
  45. */
  46. function searchNameAttr($query, $value, $data)
  47. {
  48. Validate::must($value) && $query->where('p.name', 'like', "%{$value}%");
  49. }
  50. /**
  51. * @notes 搜索开始时间
  52. * @param $query
  53. * @param $value
  54. * @param $data
  55. * @return void
  56. * @author lbzy
  57. * @datetime 2024-04-24 14:39:08
  58. */
  59. function searchStartTimeAttr($query, $value, $data)
  60. {
  61. Validate::must($value) && $query->where('p.start_time', '>=', strtotime($value));
  62. }
  63. /**
  64. * @notes 搜索结束时间
  65. * @param $query
  66. * @param $value
  67. * @param $data
  68. * @return void
  69. * @author lbzy
  70. * @datetime 2024-04-24 14:39:18
  71. */
  72. function searchEndTimeAttr($query, $value, $data)
  73. {
  74. Validate::must($value) && $query->where('p.end_time', '<=', strtotime($value));
  75. }
  76. }