AliSendOrder.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <?php
  2. namespace App\Modules\Ali\Models;
  3. use DB;
  4. use Illuminate\Database\Eloquent\Model;
  5. class AliSendOrder extends Model
  6. {
  7. protected $table = 'ali_send_orders';
  8. protected $fillable = [
  9. 'name',
  10. 'promotion_type',
  11. 'distribution_channel_id',
  12. 'fan_num',
  13. 'cost',
  14. 'is_enable',
  15. 'pre_send_date',
  16. 'star_num',
  17. 'remark',
  18. 'send_time'
  19. ];
  20. /**
  21. * 创建推广派单
  22. */
  23. static function createOrder($data)
  24. {
  25. return self::firstOrCreate($data);
  26. }
  27. /**
  28. * 删除派单
  29. * @param $id 派单id
  30. * @param $distribution_channel_id 渠道id
  31. * @return
  32. */
  33. static function removeSendOrder($id, $distribution_channel_id)
  34. {
  35. return self::where('id', $id)->where('distribution_channel_id', $distribution_channel_id)->update(['is_enable' => 0]);
  36. }
  37. /**
  38. * 获取派单信息
  39. */
  40. static function search($params, $isAll = false)
  41. {
  42. $search_object = self::where('is_enable', 1)->orderBy('id', 'desc');
  43. if (isset($params['distribution_channel_id']) && $params['distribution_channel_id']) {
  44. $search_object->where('ali_send_orders.distribution_channel_id', $params['distribution_channel_id']);
  45. }
  46. if (isset($params['name']) && $params['name']) {
  47. $search_object->where('ali_send_orders.name', 'like', '%' . $params['name'] . '%');
  48. }
  49. if (isset($params['start_time']) && $params['start_time']) {
  50. $search_object->where('ali_send_orders.created_at', '>=', $params['start_time']);
  51. }
  52. if (isset($params['end_time']) && $params['end_time']) {
  53. $search_object->where('ali_send_orders.created_at', '<=', $params['end_time']);
  54. }
  55. if (isset($params['send_time_start_time']) && $params['send_time_start_time']) {
  56. $search_object->where('ali_send_orders.send_time', '>=', $params['send_time_start_time']);
  57. }
  58. if (isset($params['send_time_end_time']) && $params['send_time_end_time']) {
  59. $search_object->where('ali_send_orders.send_time', '<=', $params['send_time_end_time']);
  60. }
  61. if (isset($params['pre_send_date_end']) && $params['pre_send_date_end']) {
  62. $search_object->where('ali_send_orders.pre_send_date', '<=', $params['pre_send_date_end']);
  63. }
  64. if (isset($params['pre_send_date_start']) && $params['pre_send_date_start']) {
  65. $search_object->where('ali_send_orders.pre_send_date', '>=', $params['pre_send_date_start']);
  66. }
  67. if (isset($params['start_send_time']) && $params['start_send_time']) {
  68. $search_object->where('ali_send_orders.send_time', '>=', $params['start_send_time']);
  69. }
  70. if (isset($params['end_send_time']) && $params['end_send_time']) {
  71. $search_object->where('ali_send_orders.send_time', '<=', $params['end_send_time']);
  72. }
  73. if (isset($params['promotion_type']) && $params['promotion_type']) {
  74. $search_object->where('ali_send_orders.promotion_type', $params['promotion_type']);
  75. }
  76. if (isset($params['id']) && $params['id']) {
  77. $search_object->where('ali_send_orders.id', $params['id']);
  78. }
  79. if ($isAll) {
  80. return $search_object->get();
  81. } else {
  82. return $search_object->paginate();
  83. }
  84. }
  85. }