| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- # Change @Profile("admin") to @Profile({"admin", "company"}) for non-conflicting controllers
- $saasPath = "d:\ylrz\ylrz_saas_his_scrm\fs-admin-saas\src\main\java\com\fs"
- # Get conflicting paths (these should NOT be changed)
- $conflictPaths = @(
- "/bill/billLog", "/chat/chatDataset", "/chat/chatDatasetFile", "/chat/chatKeyword",
- "/chat/chatMsg", "/chat/chatMsgLogs", "/chat/chatRole", "/chat/chatSession",
- "/chat/chatUser", "/chat/upload", "/course/courseAnswerLog", "/course/courseFinishTemp",
- "/course/courseFinishTempParent", "/course/courseLink", "/course/courseRedPacketLog",
- "/course/courseTrafficLog", "/course/period", "/course/playSourceConfig",
- "/course/sop", "/course/sopLogs", "/course/trainingCamp", "/course/userCourse",
- "/course/userCourseCategory", "/course/userCourseVideo", "/crm/customer",
- "/crm/customerAssign", "/crm/customerContacts", "/crm/customerExt",
- "/crm/customerHisOrder", "/crm/customerLevel", "/crm/customerLogs",
- "/crm/customerUser", "/crm/customerVisit", "/crm/event", "/crm/msg",
- "/fastGpt/fastgptChatArtificialWords", "/fastGpt/fastgptEventLogTotal",
- "/fastGpt/fastGptKeywordSend", "/fastGpt/fastGptRole", "/fastGpt/fastGptRoleTag",
- "/his/doctor", "/his/follow", "/his/FsFollowReport", "/his/integralGoods",
- "/his/integralOrder", "/his/userOperationLog", "/index/statistics",
- "/live/coupon", "/live/gift", "/live/live", "/live/liveAfterSales",
- "/live/liveAnchor", "/live/liveCart", "/live/liveGoods", "/live/liveLotteryConf",
- "/live/liveLotteryRecord", "/live/liveLotteryRegistration", "/live/liveMsg",
- "/live/liveOrder", "/live/liveOrderItem", "/live/liveOrderLogs",
- "/live/liveRedConf", "/live/liveUserFavorite", "/live/liveUserFollow",
- "/live/liveUserLike", "/live/liveUserLotteryRecord", "/live/liveVideo",
- "/live/record", "/live/task", "/live/words", "/liveData/liveData",
- "/monitor/logininfor", "/monitor/operlog", "/order",
- "/qw/appContactWay", "/qw/externalContact", "/qw/externalContactTransferCompanyAudit",
- "/qw/friendWelcome", "/qw/group_chat_user", "/qw/groupChat", "/qw/qwDept",
- "/qw/QwWorkTaskNew", "/qw/sop", "/qw/sopLogs", "/qw/sopTemp", "/qw/tag",
- "/qw/tagGroup", "/qw/user", "/qwSop/sopUserLogs", "/qwSop/sopUserLogsInfo",
- "/store/material", "/store/materialGroup", "/store/store/statistics",
- "/store/store/storeAfterSales", "/store/store/storeOrder", "/store/store/storeOrderAudit",
- "/store/store/storeOrderOffline", "/store/store/storePayment", "/store/store/storeProduct",
- "/store/store/storeProductCategory", "/store/store/storeProductPackage",
- "/store/userOnlineState", "/system/approval", "/system/config",
- "/system/dict/data", "/system/dict/type"
- )
- # Scan all controllers with @Profile("admin")
- $controllers = Get-ChildItem -Path $saasPath -Recurse -Filter "*Controller.java"
- $changedCount = 0
- $skippedCount = 0
- $errorCount = 0
- foreach ($file in $controllers) {
- $content = Get-Content $file.FullName -Raw -Encoding UTF8
-
- # Check if this has @Profile("admin")
- if ($content -notmatch '@Profile\s*\(\s*"admin"\s*\)') { continue }
-
- # Get the RequestMapping path
- $path = ""
- if ($content -match '@RequestMapping\s*\(\s*(?:value\s*=\s*)?"/([^"]+)"') {
- $path = "/" + $Matches[1]
- }
-
- if ($path -eq "") { continue }
-
- # Check if this path conflicts
- if ($conflictPaths -contains $path) {
- $skippedCount++
- continue
- }
-
- # Change @Profile("admin") to @Profile({"admin", "company"})
- # Need to handle import as well
-
- $newContent = $content
-
- # Replace @Profile("admin") with @Profile({"admin", "company"})
- $newContent = $newContent -replace '@Profile\s*\(\s*"admin"\s*\)', '@Profile({"admin", "company"})'
-
- # Add import for org.springframework.context.annotation.Profile if not already present
- # Actually, Profile is already imported since @Profile("admin") exists
-
- if ($newContent -ne $content) {
- # Write back without BOM
- $utf8NoBom = New-Object System.Text.UTF8Encoding($false)
- [System.IO.File]::WriteAllText($file.FullName, $newContent, $utf8NoBom)
- $changedCount++
- }
- }
- Write-Host "Changed: $changedCount controllers"
- Write-Host "Skipped (conflicting): $skippedCount controllers"
- Write-Host "Errors: $errorCount"
- # Verify a few changes
- Write-Host "`n=== Verification ==="
- $verifyFiles = Get-ChildItem -Path $saasPath -Recurse -Filter "*Controller.java" | Select-Object -First 5
- foreach ($file in $verifyFiles) {
- $content = Get-Content $file.FullName -Raw -Encoding UTF8
- if ($content -match '@Profile\s*\(\s*\{"admin",\s*"company"\}\s*\)') {
- Write-Host " OK: $($file.Name) has @Profile({admin, company})"
- }
- }
|