Merge branch 'sgm_fixbug' into 'master'

* Add upgrade logic.

See merge request easycorp/zentaopms!2047
This commit is contained in:
王怡栋
2022-03-02 06:13:26 +00:00
+28 -1
View File
@@ -35,7 +35,11 @@ class control extends baseControl
$this->app->setOpenApp();
if(defined('IN_USE') or (defined('RUN_MODE') and RUN_MODE != 'api')) $this->setPreference();
if(defined('IN_USE') or (defined('RUN_MODE') and RUN_MODE != 'api'))
{
$this->setPreference();
$this->forceUpgrade();
}
if(!isset($this->config->bizVersion)) return false;
@@ -123,6 +127,29 @@ class control extends baseControl
}
}
/**
* If change the edition, trigger the upgrade process.
*
* @access public
* @return void
*/
public function forceUpgrade()
{
$installedVersion = $this->loadModel('setting')->getVersion();
if(is_numeric($installedVersion[0]) and $this->config->edition == 'max')
{
if($this->config->systemMode == 'classic' and $this->app->getModuleName() != 'upgrade')
{
$this->loadModel('setting')->setItem('system.common.global.mode', 'new');
$this->loadModel('setting')->setItem('system.common.global.version', $this->config->version);
$this->locate(helper::createLink('upgrade', 'mergeTips'));
}
}
return true;
}
/**
* 企业版部分功能是从然之合并过来的。然之代码中调用loadModel方法时传递了一个非空的appName,在禅道中会导致错误。
* 调用父类的loadModel方法来避免这个错误。