| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- <?php
- /** php scripts/migrate_water_business.php [--apply]:仅新增业务表及菜单,可重复运行。 */
- require dirname(__DIR__) . '/vendor/autoload.php';
- \Dotenv\Dotenv::createUnsafeMutable(dirname(__DIR__))->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";
|