from("reminder as {$alias_name}") ->join('reminder_record as b', function ($join) use ($alias_name) { $join->on('b.reminder_id', '=', "{$alias_name}.id") ->where('b.del_time', 0); }) ->join('reminder_record_details as c', function ($join) { $join->on('c.reminder_record_id', '=', 'b.id') ->where('c.del_time', 0); }) ->where($alias_name . '.del_time',0) ->select($field) ->orderby($alias_name . '.id', 'desc'); $alias = 'a.'; if(! empty($data['order_number'])) $model->where($alias . 'order_number', 'LIKE', '%'.$data['order_number'].'%'); if(! empty($data['order_no'])) $model->where($alias . 'order_no', 'LIKE', '%'.$data['order_no'].'%'); if(! empty($data['product_title'])) $model->where($alias . 'product_title', 'LIKE', '%'.$data['product_title'].'%'); if(! empty($data['product_code'])) $model->where($alias . 'product_code', 'LIKE', '%'.$data['product_code'].'%'); if(! empty($data['id'])) $model->whereIn('b.id', $data['id']); if(isset($data['status'])) $model->where($alias . 'status', $data['status']); return $model; } public function valueStatistics($data,$user){ $model = $this->valueStatisticsCommon($data, $user); $list = $this->limit($model,'',$data); $list = $this->valueStatisticsFillData($list); return [true, $list]; } public function valueStatisticsFillData($data){ if(empty($data['data'])) return $data; $emp_2 = (new CustomerSupplyService())->getEmployeeMap(array_unique(array_column($data['data'],'supply_id')),'detail'); foreach ($data['data'] as $key => $value){ $e = $emp_2[$value['supply_id']] ?? []; $data['data'][$key]['organization_title'] = $e['organization_title'] ?? ""; $data['data'][$key]['supply_title'] = $e[$value['supply_id']] ?? ''; $data['data'][$key]['tl_ways_title'] = ReminderRecord::$tl_way_name[$value['tl_ways']] ?? ""; $data['data'][$key]['tl_result_title'] = ReminderRecord::$tl_result_name[$value['tl_result']] ?? ""; $data['data'][$key]['status_title'] = Reminder::$status_name[$value['status']] ?? ""; $data['data'][$key]['tl_arrived_time'] = $value['tl_arrived_time'] ? date("Y-m-d",$value['tl_arrived_time']): ''; $data['data'][$key]['tl_time'] = $value['tl_time'] ? date("Y-m-d",$value['tl_time']): ''; $data['data'][$key]['days'] = floor(abs($value['tl_time'] - $value['tl_arrived_time']) / 86400); } return $data; } }