validator; } protected function buildQueryConfig(Request $request, string $scene = 'default'): array { $p = $request->all(); $config = []; $config['model'] = $this->modelClass; switch ($scene) { case 'index': $config['order']['id'] = 'desc'; $config['with'] = [ 'approvalInstance', 'approver', 'approvalInstance.flows', 'approvalInstance.initiator', 'approvalInstance.bizInfo' ]; $config['dataLimit']['type'] = 'relation'; $config['dataLimit']['userId'] = $request->user->uid; $config['dataLimit']['userField'] = 'approver_id'; break; case 'show': $config['where']['id'] = $p['id']; break; case 'store': break; case 'update': $config['where']['id'] = $p['id']; break; case 'destroy': $config['where']['id'] = $p['id']; break; case 'logs': $config['where']['instance_id'] = $p['instance_id']; $config['order']['id'] = 'desc'; break; } return $config; } public function serviceApprove(Request $request) { $param = $request->all(); $appro = new \app\common\utils\approval\service\ApprovalFlowService(); return $appro->approve($param['instance_id'], $request->user->uid, $param['action'], $param['comment']); } public function serviceLogs(Request $request) { $config = $this->buildQueryConfig($request, 'logs'); $item = $this->logicListAll($config); return $this->postProcess('Logs', $item); } }