user_id . ' AND status > 0 '; $list= Db::name('offer_approve') ->field($field) ->where($where) ->unionAll("select $field FROM dd_car_approve WHERE $where") ->unionAll("select $field FROM dd_document_approve WHERE $where") ->unionAll("select $field FROM dd_evection_approve WHERE $where") ->unionAll("select $field FROM dd_leave_approve WHERE $where") ->unionAll("select $field FROM dd_maintain_approve WHERE $where") ->unionAll("select $field FROM dd_contract_approve WHERE $where") ->order('create_at desc,id desc') ->limit($this->off_set,$this->page_num) ->select(); foreach ($list as &$v) { switch ($v['module']) { case "car_approve": $v['approve_info'] = CarApprove::field('i.*,p.status approve_status,p.approve_time,p.remark') ->alias('p') ->where(['p.id'=>$v['id']]) ->where('p.status','>','0') ->leftJoin('CarInfo i','p.car_id = i.id') ->find()->toArray(); break; case "document_approve": $v['approve_info'] =DocumentApprove::field('i.*,p.id approve_id,p.status approve_status,p.approve_time,p.remark') ->alias('p') ->where(['p.id'=>$v['id']]) ->where('p.status','>','0') ->leftJoin('DocumentInfo i','p.info_id = i.id') ->find()->toArray(); break; case "evection_approve": $v['approve_info'] = EvectionApprove::field('i.*,p.status approve_status,p.approve_time,p.remark') ->alias('p') ->where(['p.id'=>$v['id']]) ->where('p.status','>','0') ->leftJoin('EvectionInfo i','p.info_id = i.id') ->find()->toArray(); break; case "leave_approve": $v['approve_info']= LeaveApprove::field('i.*,p.status approve_status,p.approve_time,p.remark') ->alias('p') ->where(['p.id'=>$v['id']]) ->where('p.status','>','0') ->leftJoin('LeaveInfo i','p.info_id = i.id') ->find()->toArray(); break; case "maintain_approve": $v['approve_info'] =MaintainApprove::field('i.*,p.id approve_id,p.status approve_status,p.approve_time,p.remark') ->alias('p') ->where(['p.id'=>$v['id']]) ->where('p.status','>','0') ->leftJoin('MaintainInfo i','p.info_id = i.id') ->find()->toArray(); break; case "offer_approve": $v['approve_info'] = OfferApprove::field('i.*,p.id approve_id,p.status approve_status,p.approve_time,p.remark') ->alias('p') ->where(['p.id'=>$v['id']]) ->where('p.status','>','0') ->leftJoin('OfferInfo i','p.info_id = i.id') ->find()->toArray(); break; case "contract_approve": $v['approve_info'] = ContractApprove::field('i.*,p.id approve_id,p.status approve_status,p.approve_time,p.remark') ->alias('p') ->where(['p.id'=>$v['id']]) ->where('p.status','>','0') ->leftJoin('ContractInfo i','p.info_id = i.id') ->find()->toArray(); break; } } $this->success('ok',['list'=>$list]); } }