public static function update_action() { $flow_id = Lib_Request::post_var('flow_id'); $flow_id = intval($flow_id); if (empty($flow_id)) { Lib_Request::flash('error', '流程ID为空!'); Module_HttpRequest_Router::redirect_to('/flow_manager/flow/list'); } $flow = new Module_FlowManager_Flow(); $url = '/flow_manager/flow/edit?flow_id=' . $flow_id; $data = self::_get_flow_data($url, $flow_id); $model_flow = new Model_FlowInfo(); $old_flow = $model_flow->get_flow_info_by_id($flow_id); if ($old_flow['errno'] !== Const_Err_Base::ERR_OK) { $old_flow['data'] = []; } $old_flow = $old_flow['data']; $ignore_fields = ['flow_id', 'create_time', 'update_time']; $diff = Module_OperationRecord_Main::get_diff($old_flow, $data, $ignore_fields); if (Const_Err_Base::ERR_OK !== $diff['errno']) { $msg = isset($diff['data']['msg']) ? $diff['data']['msg'] : '未知错误!'; Lib_Request::flash('warn', $msg); Module_HttpRequest_Router::redirect_to($url); } $diff = $diff['data']; $result = $flow->update($flow_id, $data); if ($result['errno'] !== Const_Err_Base::ERR_OK) { throw new Exception('流程修改失败', Const_Err_Db::ERR_SAVE_DATA_FAIL); Lib_Request::flash('error', '流程修改失败!'); Module_HttpRequest_Router::redirect_to($url); } Module_OperationRecord_Main::add_record(Module_OperationRecord_Main::OPCODE_FLOW_EDIT, $diff, $flow_id); Lib_Request::flash('success', '流程修改成功!'); Module_HttpRequest_Router::redirect_to('/flow_manager/flow/list'); }
/** * @return $this|bool */ public function get() { $flow_model = new Model_FlowInfo(); $flow = $flow_model->get_flow_info_by_id($this->id); if ($flow['errno'] !== Const_Err_Base::ERR_OK) { Lib_Log::error(__METHOD__ . ' faild! cause: ' . Lib_Helper::format_err_struct($flow)); return false; } $flow = $flow['data']; if ($flow) { $this->name = $flow[Model_FlowInfo::FIELD_FLOW_NAME]; $this->flow = $flow[Model_FlowInfo::FIELD_FLOW_FLOW]; isset($flow[Model_FlowInfo::FIELD_FLOW_OPTIONS]) || ($flow[Model_FlowInfo::FIELD_FLOW_OPTIONS] = []); $this->options = array_merge($flow[Model_FlowInfo::FIELD_FLOW_OPTIONS], $this->options); $this->modules = $this->flow[Module_FlowManager_Main::FLOW_TYPE_MAIN]; if (isset($this->flow[Module_FlowManager_Main::FLOW_TYPE_BRANCH])) { foreach ($this->flow[Module_FlowManager_Main::FLOW_TYPE_BRANCH] as $_m) { if (is_array($_m)) { $this->modules = array_merge($this->modules, $_m); } else { $this->modules[] = $_m; } } } if (isset($this->flow[Module_FlowManager_Main::FLOW_TYPE_STUFF])) { foreach ($this->flow[Module_FlowManager_Main::FLOW_TYPE_STUFF] as $_m) { if (is_array($_m)) { $this->modules = array_merge($this->modules, $_m); } else { $this->modules[] = $_m; } } } if (isset($this->flow[Module_FlowManager_Main::FLOW_TYPE_CONFIG])) { $this->modules = array_merge($this->modules, $this->flow[Module_FlowManager_Main::FLOW_TYPE_CONFIG]); } return $this; } return false; }