<?php /** * Created by 2020/4/23. * User: Joneq * Info: 2020/4/23 * Time: 上午10:50 */ namespace App\Http\Model; use Illuminate\Database\Eloquent\Model; class PickTaskDetailModel extends Model { protected $connection = 'mysql'; protected $table = 'pick_task_detail'; protected $primaryKey = 'pick_task_detail_id'; public $timestamps = false; static public function getWhereObj($data) { $obj = self::where('store_id','=',app('request')->store_id)->where('is_del',0); foreach ($data as $key=>$value){ if (empty($value))continue; switch ($key){ case 'create_time': $obj = $obj->where('add_time','>=',strtotime($value));break; case 'end_time': $obj = $obj->where('add_time','<=',strtotime($value));break; case 'out_store_id': $obj = $obj->whereIn('out_store_id',is_array($data['out_store_id'])?$data['out_store_id']:[$data['out_store_id']]);break; case 'out_store_detail_id': $obj = $obj->whereIn('out_store_id',is_array($data['out_store_detail_id'])?$data['out_store_detail_id']:[$data['out_store_detail_id']]);break; case 'pick_task_id': case 'pack_status': $obj = $obj->where($key,$value);break; case 'pallet_box_id': $orWhere[] = ['box_id', '=', $value, 'OR']; $orWhere[] = ['pallet_id', '=', $value, 'OR']; $outStoreIdArr = OutStoreDetailModel::getWhereObj([])->where($orWhere)->pluck('out_store_detail_id'); $obj = $obj->whereIn('out_store_detail_id',$outStoreIdArr);break; case 'pallet_id': $outStoreIdArr = OutStoreDetailModel::getWhereObj([])->where('pallet_id',$value)->pluck('out_store_detail_id')->toArray(); $obj = $obj->whereIn('out_store_detail_id',$outStoreIdArr);break; case 'box_id': $outStoreIdArr = OutStoreDetailModel::getWhereObj([])->where('box',$value)->pluck('out_store_detail_id')->toArray(); $obj = $obj->whereIn('out_store_detail_id',$outStoreIdArr);break; case 'goods_name_box_id': $orWhere[] = ['box_id', '=', $value, 'OR']; $orWhere[] = ['goods_name', '=', $value, 'OR']; $outStoreIdArr = OutStoreDetailModel::getWhereObj([])->where($orWhere)->pluck('out_store_detail_id'); $obj = $obj->whereIn('out_store_detail_id',$outStoreIdArr);break; default: continue; } } return $obj; } }