<?php /** * 应用安装时的消息回调 * User: zhuxun37 * Date: 16/8/11 * Time: 下午3:44 */ namespace Frontend\Controller\Callback; use Common\Service\SettingService; use Think\Log; class InstallController extends AbstractController { /** * 应用状态,可用 */ const PLUGIN_STATE_AVAILABLE = 1; /** * 应用状态,不可用 */ const PLUGIN_STATE_UNAVAILABLE = 2; // 实例化设置表 /** @var SettingService */ protected $setting_serv; public function __construct() { parent::__construct(); $this->setting_serv = new SettingService(); return true; } /** * 安装消息回调 * * $this->callBackData 格式如下: * { * "epId":"B646C6F67F0000017D3965FCF2FD3A2F", * "plPluginid":"D194A216C0A8C7BD2C339C03334A40EE", * "thirdIdentifier":"QY", * "eplAvailable":1, * "epEnumber":"local", * "qysSuiteid":"tj371afbea374f01b2", * "flag":false, * "corpid": "wxac606454f473e98f", * "url":"http://thr.vchangyi.com/local/Contact/Frontend/Callback/Install" * } * * @return bool */ public function Index() { Log::record(sprintf('---%s %s INSTALL START---', QY_DOMAIN, APP_IDENTIFIER), Log::INFO); Log::record(var_export($this->callBackData, true), Log::INFO); Log::record(sprintf('---%s %s INSTALL END ---', QY_DOMAIN, APP_IDENTIFIER), Log::INFO); $this->Install(); exit('SUCCESS'); } /** * 安装应用 * @author liyifei * @return void */ public function Install() { $this->setDefaultData(); exit('SUCCESS'); } /** * 卸载应用 * @author zhonglei * @return void */ public function Uninstall() { } protected function setDefaultData() { $settingServ = new SettingService(); $count = $settingServ->count(); if ($count > 0) { return; } // 默认配置信息 $defaultData = \Common\Sql\DefaultData::installData(); $settingServ->insert_all($defaultData['workmate_config_default']); } /** * 应用数据库数据更新升级【v3.0.0】 * * @author heyuelong * * @return void */ public function UpdateDBv3() { set_time_limit(0); ini_set("memory_limit", "1128M"); $sql = []; // 新增同事圈回复,被回复统计信息表 $sql[] = "CREATE TABLE IF NOT EXISTS `oa_workmate_count` ( `id` INT(10) NOT NULL AUTO_INCREMENT, `uid` CHAR(32) NOT NULL DEFAULT '' COMMENT '用户ID', `replies_total` INT(10) NOT NULL DEFAULT '0' COMMENT '话题被回复次数', `replies_num` INT(10) NOT NULL DEFAULT '0' COMMENT '话题被回复个数', `reply_total` INT(10) NOT NULL DEFAULT '0' COMMENT '回复话题次数', `reply_num` INT(10) NOT NULL DEFAULT '0' COMMENT '回复话题个数', `circle_total` INT(10) NOT NULL DEFAULT '0' COMMENT '发布话题数', `domain` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '企业域名', `status` TINYINT(3) UNSIGNED NOT NULL DEFAULT '1' COMMENT '状态, 1=初始化,2=已更新,3=已删除', `created` BIGINT(13) UNSIGNED NOT NULL DEFAULT '0' COMMENT '创建时间', `updated` BIGINT(13) UNSIGNED NOT NULL DEFAULT '0' COMMENT '更新时间', `deleted` BIGINT(13) UNSIGNED NOT NULL DEFAULT '0' COMMENT '删除时间', PRIMARY KEY (`id`), KEY `uid` (`uid`), KEY `domain_status` (`domain`,`status`) ) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COMMENT='同事圈回复,被回复统计信息表' AUTO_INCREMENT=1;"; // 新增同事圈积分日志表 $sql[] = "CREATE TABLE IF NOT EXISTS `oa_workmate_log` ( `id` INT(10) NOT NULL AUTO_INCREMENT, `uid` CHAR(32) NOT NULL DEFAULT '' COMMENT '用户ID', `pid` INT(10) NOT NULL DEFAULT '0' COMMENT '话题ID', `businessId` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '业务ID', `domain` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '企业域名', `status` TINYINT(3) UNSIGNED NOT NULL DEFAULT '1' COMMENT '状态, 1=初始化,2=已更新,3=已删除', `created` BIGINT(13) UNSIGNED NOT NULL DEFAULT '0' COMMENT '创建时间', `updated` BIGINT(13) UNSIGNED NOT NULL DEFAULT '0' COMMENT '更新时间', `deleted` BIGINT(13) UNSIGNED NOT NULL DEFAULT '0' COMMENT '删除时间', PRIMARY KEY (`id`), KEY `businessId` (`businessId`), KEY `domain_status` (`domain`,`status`) ) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COMMENT='同事圈积分日志表' AUTO_INCREMENT=1;"; $sql[]="CREATE TABLE IF NOT EXISTS `oa_workmate_history` ( `id` INT(10) NOT NULL AUTO_INCREMENT, `uid` CHAR(32) NOT NULL DEFAULT '' COMMENT '用户ID', `pid` INT(10) NOT NULL DEFAULT '0' COMMENT '话题ID', `type` TINYINT(3) UNSIGNED NOT NULL DEFAULT '1' COMMENT '回复类型, 1:话题被回复, 2:回复话题', `post_man` CHAR(32) NOT NULL DEFAULT '' COMMENT '回帖人UID', `domain` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '企业域名', `status` TINYINT(3) UNSIGNED NOT NULL DEFAULT '1' COMMENT '状态, 1=初始化,2=已更新,3=已删除', `created` BIGINT(13) UNSIGNED NOT NULL DEFAULT '0' COMMENT '创建时间', `updated` BIGINT(13) UNSIGNED NOT NULL DEFAULT '0' COMMENT '更新时间', `deleted` BIGINT(13) UNSIGNED NOT NULL DEFAULT '0' COMMENT '删除时间', PRIMARY KEY (`id`), KEY `uid` (`uid`), KEY `pid` (`pid`), KEY `type` (`type`), KEY `domain_status` (`domain`,`status`) ) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COMMENT='同事圈话题被回复,回复话题日志表' AUTO_INCREMENT=1;"; if (!empty($sql)) { // 循环执行sql更新语句 foreach ($sql as $key => $value) { $this->setting_serv->execute($value); } } exit('SUCCESS'); } }