load(); \support\App::loadAllConfig(['route']); \Webman\ThinkOrm\ThinkOrm::start(null); use support\think\Db; $pages = [ ['overview','运营总览','ri:dashboard-line'], ['alerts','补货预警','ri:alarm-warning-line'], ['dispatch','配送调度','ri:truck-line'], ['inventory','库存管理','ri:archive-line'], ['devices','设备管理','ri:device-line'], ['enterprises','企业客户','ri:building-line'], ['packages','套餐商品','ri:shopping-bag-line'], ['agents','代理商管理','ri:team-line'], ['finance','财务结算','ri:money-cny-circle-line'], ['content','内容配置','ri:image-line'], ['roles','角色与权限','ri:shield-user-line'], ['audit','操作审计','ri:file-list-line'], ]; if (!in_array('--apply', $argv, true)) { echo "Plan: create 9 sa_water_* tables and 12 permission-controlled menus. Existing data is preserved.\n"; exit(0); } $sql = file_get_contents(dirname(__DIR__) . '/plugin/saiadmin/db/20260909_water_business.sql'); foreach (explode(';', $sql) as $statement) { if (trim($statement) !== '') Db::execute($statement); } Db::transaction(function () use ($pages) { foreach ($pages as $i => [$key,$title,$icon]) { $code = 'Water' . ucfirst($key); $menu = Db::table('sa_system_menu')->where('code',$code)->whereNull('delete_time')->find(); if (!$menu) { $id = Db::table('sa_system_menu')->insertGetId([ 'parent_id'=>0,'name'=>$title,'code'=>$code,'type'=>2,'path'=>'/water-'.$key, 'component'=>'/water/'.$key,'icon'=>$icon,'sort'=>2000-$i*10, 'is_iframe'=>2,'is_keep_alive'=>2,'is_hidden'=>2,'is_fixed_tab'=>2,'is_full_page'=>2, 'generate_id'=>0,'status'=>1,'remark'=>'云泉智配供水运营','created_by'=>1,'updated_by'=>1, 'create_time'=>date('Y-m-d H:i:s'),'update_time'=>date('Y-m-d H:i:s'), ]); } else $id = $menu['id']; // 不自动把新业务权限授予旧代理角色。 foreach (['read'=>'查询','write'=>'管理'] as $action=>$label) { $slug = 'water:'.$key.':'.$action; if (!Db::table('sa_system_menu')->where('slug',$slug)->whereNull('delete_time')->find()) { Db::table('sa_system_menu')->insert([ 'parent_id'=>$id,'name'=>$label.$title,'code'=>$code.ucfirst($action),'slug'=>$slug, 'type'=>3,'method'=>$action==='read'?'GET':'POST','sort'=>0, 'is_iframe'=>2,'is_keep_alive'=>2,'is_hidden'=>2,'is_fixed_tab'=>2,'is_full_page'=>2, 'generate_id'=>0,'status'=>1,'remark'=>'平台供水运营权限','created_by'=>1,'updated_by'=>1, 'create_time'=>date('Y-m-d H:i:s'),'update_time'=>date('Y-m-d H:i:s'), ]); } } } }); \plugin\saiadmin\app\cache\UserAuthCache::clear(); \plugin\saiadmin\app\cache\UserMenuCache::clearMenuCache(); echo "Applied: 9 water tables and 12 menus; no legacy records changed.\n";