| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- <?php
- namespace addons\pickup;
- use app\common\library\Menu;
- use think\Addons;
- use think\Loader;
- use think\Db;
- use think\Exception;
- /**
- * 插件
- */
- class Pickup extends Addons
- {
- /**
- * 插件安装方法
- * @return bool
- */
- public function install()
- {
- $menu=[];
- $config_file= ADDON_PATH ."pickup" . DS.'config'.DS. "menu.php";
- if (is_file($config_file)) {
- $menu = include $config_file;
- }
- if($menu){
- Menu::create($menu);
- }
- return true;
- }
- /**
- * 插件卸载方法
- * @return bool
- */
- public function uninstall()
- {
- $info=get_addon_info('pickup');
- Menu::delete(isset($info['first_menu'])?$info['first_menu']:'pickup');
- return true;
- }
- /**
- * 插件启用方法
- */
- public function enable()
- {
- $info=get_addon_info('pickup');
- Menu::enable(isset($info['first_menu'])?$info['first_menu']:'pickup');
- }
- /**
- * 插件禁用方法
- */
- public function disable()
- {
- $info=get_addon_info('pickup');
- Menu::disable(isset($info['first_menu'])?$info['first_menu']:'pickup');
- }
- /**
- * 添加命名空间
- */
- public function appInit()
- {
- if (!class_exists('\BaconQrCode\Writer')) {
- Loader::addNamespace('BaconQrCode', ADDON_PATH . 'pickup' . DS . 'library' . DS . 'BaconQrCode' . DS);
- }
- if (!class_exists('\Endroid\QrCode\QrCode')) {
- Loader::addNamespace('Endroid', ADDON_PATH . 'pickup' . DS . 'library' . DS . 'Endroid' . DS);
- }
- if (!class_exists('\MyCLabs\Enum\Enum')) {
- Loader::addNamespace('MyCLabs', ADDON_PATH . 'pickup' . DS . 'library' . DS . 'MyCLabs' . DS);
- }
- if (!class_exists('\DASPRiD\Enum\EnumMap')) {
- Loader::addNamespace('DASPRiD', ADDON_PATH . 'pickup' . DS . 'library' . DS . 'DASPRiD' . DS);
- }
- }
-
- //插件升级
- public function doUpgrade() {
- $prefix = Config::get('database.prefix');
- $haTable = Db::query('SHOW TABLES LIKE '."'{$prefix}pickup_cardcode'");
- if(!$haTable){
- //数据表不存在,表示是安装动作,非升级动作
- return;
- }
- //<editor-fold desc="1.0.3版本更新数据表字段" defaultstate="collapsed">
- /**
- * 1.检测pickup_cardcode表是否需要更新,如果需要则更新pickup_cardcode表
- */
- $sql = "describe `{$prefix}pickup_cardcode` `usedtime`;";
- $need_alter_field = Db::query($sql);
- if ($need_alter_field&&$need_alter_field[0]['Type']=='int(10)') {//pickup_cardcode
- Db::startTrans();
- try {
- //3.原有字段更新
- $sql = "ALTER TABLE `{$prefix}pickup_cardcode`
- MODIFY COLUMN `createtime` bigint(11) NOT NULL DEFAULT 0 COMMENT '添加时间' AFTER `card_status`,
- MODIFY COLUMN `usedtime` bigint(11) NOT NULL DEFAULT 0 COMMENT '使用时间' AFTER `createtime`;";
- Db::execute($sql);
- Db::commit();
- } catch (Exception $e) {
- \think\Log::write("更新{$prefix}pickup_cardcode表字段失败,异常:" . $e->getTraceAsString());
- Db::rollback();
- }
- }
-
- /**
- * 2.检测pickup_order表是否需要更新,如果需要则更新pickup_order表
- */
- $sql = "describe `{$prefix}pickup_order` `ship_date`;";
- $need_alter_field = Db::query($sql);
- if ($need_alter_field&&$need_alter_field[0]['Type']=='int(10)') {//pickup_order
- Db::startTrans();
- try {
- //3.原有字段更新
- $sql = "ALTER TABLE `{$prefix}pickup_order`
- MODIFY COLUMN `gift_goods_title` varchar(5000) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '礼品名称' AFTER `gift_goods_ids`,
- MODIFY COLUMN `gift_goods_image` varchar(5000) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '礼品图片' AFTER `gift_goods_title`;
- MODIFY COLUMN `ship_date_expected` bigint(11) NOT NULL DEFAULT 0 COMMENT '预约发货日期' AFTER `address`,
- MODIFY COLUMN `createtime` bigint(11) NOT NULL DEFAULT 0 COMMENT '下单时间' AFTER `card_id`,
- MODIFY COLUMN `ship_date` bigint(11) NOT NULL DEFAULT 0 COMMENT '发货时间' AFTER `kd_number`;";
- Db::execute($sql);
- Db::commit();
- } catch (Exception $e) {
- \think\Log::write("更新{$prefix}pickup_order表字段失败,异常:" . $e->getTraceAsString());
- Db::rollback();
- }
- }
-
- /**
- * 3.检测pickup_package表是否需要更新,如果需要则更新pickup_cardcode表
- */
- $sql = "describe `{$prefix}pickup_package` `start_time`;";
- $need_alter_field = Db::query($sql);
- if ($need_alter_field&&$need_alter_field[0]['Type']=='int(10)') {//pickup_package
- Db::startTrans();
- try {
- //3.原有字段更新
- $sql = "ALTER TABLE `{$prefix}pickup_package`
- MODIFY COLUMN `start_time` bigint(11) NOT NULL DEFAULT 0 COMMENT '活动开始时间' AFTER `status`,
- MODIFY COLUMN `end_time` bigint(11) NOT NULL DEFAULT 0 COMMENT '活动结束时间' AFTER `start_time`,
- MODIFY COLUMN `createtime` bigint(11) NOT NULL DEFAULT 0 COMMENT '创建时间' AFTER `goods_list`;";
- Db::execute($sql);
- Db::commit();
- } catch (Exception $e) {
- \think\Log::write("更新{$prefix}pickup_package表字段失败,异常:" . $e->getTraceAsString());
- Db::rollback();
- }
- }
-
- //</editor-fold>
- }
- }
|