| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- <?php
- namespace app\migrations;
- use common\enums\StatusEnum;
- use common\models\backend\Menu;
- use common\models\rbac\AuthItem;
- use yii\db\Migration;
- /**
- * Class M241008111105FixMallLogsMenu
- */
- class M241008111105FixMallLogsMenu extends M240914091100InsertOrderLogAndUserLogMenu
- {
- /**
- * {@inheritdoc}
- */
- public function safeUp()
- {
- // 将原来的菜单禁用
- $routers = [
- 'mall/logs/order',
- 'mall/logs/user',
- 'mall/logs'
- ];
- // 因为新加的几个菜单都是有pid的,所以可以用pid=0作为条件来确定异常数据
- $where = ['pid' => 0, 'status' => StatusEnum::ENABLED, 'is_addon' => 0];
- $menuWhere = array_merge($where, ['url' => $routers]);
- $authItemWhere = array_merge($where, ['name' => $routers]);
- // 判断是否存在异常数据
- if (!Menu::find()->where($menuWhere)->count() && !AuthItem::find()->where($authItemWhere)->count()) {
- return;
- }
- $updateData = ['status' => -1, 'updated_at' => time()];
- Menu::updateAll($updateData, $menuWhere);
- AuthItem::updateAll($updateData, $authItemWhere);
- parent::safeUp();
- }
- }
|