新版订单消耗系统

OrderEditExtraRecord.php 3.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: shensong
  5. * Date: 2022/11/17
  6. * Time: 18:01
  7. */
  8. namespace App\Models;
  9. use Illuminate\Database\Eloquent\Model;
  10. class OrderEditExtraRecord extends Model
  11. {
  12. protected $table = 'order_edit_extra_record';
  13. public $timestamps = false;
  14. protected static $unguarded = true;
  15. public static function saveData($data, $nowDate) {
  16. \DB::begintransaction();
  17. foreach ($data as $item) {
  18. $res = self::query()->updateOrCreate([
  19. 'task_id' => $item['task_id'],
  20. 'month' => $item['month'],
  21. 'now_date' => $nowDate,
  22. ], $item);
  23. if(!$res) {
  24. \DB::rollBack();
  25. return false;
  26. }
  27. }
  28. \DB::commit();
  29. return true;
  30. }
  31. public static function getSearchQuery($search)
  32. {
  33. return self::query()->where('enable', 1)
  34. ->where(function($query) use($search) {
  35. if(isset($search['task_id']) && $search['task_id']) $query->where('task_id', $search['task_id']);
  36. if(isset($search['media_name']) && $search['media_name']) $query->where('media_name', $search['media_name']);
  37. if(isset($search['launch_platform']) && $search['launch_platform']) $query->where('launch_platform', $search['launch_platform']);
  38. if(isset($search['internet_celebrity_id']) && $search['internet_celebrity_id']) $query->where('internet_celebrity_id', $search['internet_celebrity_id']);
  39. if(isset($search['internet_celebrity_name']) && $search['internet_celebrity_name']) $query->where('internet_celebrity_name', 'like', $search['internet_celebrity_name'].'%');
  40. if(isset($search['company']) && $search['company']) $query->where('company', 'like', '%'.$search['company'].'%');
  41. if(isset($search['handler']) && $search['handler']) $query->where('handler', $search['handler']);
  42. if(isset($search['customer_name']) && $search['customer_name']) $query->where('customer_name', 'like', '%'.$search['customer_name'].'%');
  43. if(isset($search['project_name']) && $search['project_name']) $query->where('project_name', $search['project_name']);
  44. if(isset($search['cost_company_name']) && $search['cost_company_name']) $query->where('cost_company_name', 'like', '%'.$search['cost_company_name'].'%');
  45. if(isset($search['cost_owner']) && $search['cost_owner']) $query->where('cost_owner', $search['cost_owner']);
  46. if(isset($search['rebate_expense_receiving_unit']) && $search['rebate_expense_receiving_unit']) $query->where('rebate_expense_receiving_unit', $search['rebate_expense_receiving_unit']);
  47. if(isset($search['month']) && $search['month']) $query->where('month', '=', date('Y-m-01', strtotime($search['month']) ) );
  48. if(!empty($search['mcn_name'])) $query->where('mcn_name', 'like', '%'.$search['mcn_name'].'%');
  49. });
  50. }
  51. }