{"code_snippets":[{"id":"8813519db2ec8d3788102bcc7d1f19bc","path":"crm-app/src/main/java/com/crm/app/CrmAppApplication.java","line_range":"1-200","gmt_create":"2026-08-01T11:59:11.2325188+08:00","gmt_modified":"2026-08-01T11:59:11.2325188+08:00"},{"id":"3fa8c5117e3c0c5c18c29826dc404c80","path":"crm-auth/src/main/java/com/crm/auth/AuthApplication.java","line_range":"1-200","gmt_create":"2026-08-01T11:59:11.2330391+08:00","gmt_modified":"2026-08-01T11:59:11.2330391+08:00"},{"id":"d08cb0ea7e38d4900671b643422d5ad7","path":"crm-auth/src/main/java/com/crm/auth/domain/entity/SysRole.java","line_range":"1-200","gmt_create":"2026-08-01T11:59:11.2335965+08:00","gmt_modified":"2026-08-01T11:59:11.2335965+08:00"},{"id":"a5b530b2374acc884aa38fa2a38818b2","path":"crm-auth/src/main/java/com/crm/auth/domain/entity/SysMenu.java","line_range":"1-200","gmt_create":"2026-08-01T11:59:11.2335965+08:00","gmt_modified":"2026-08-01T11:59:11.2335965+08:00"},{"id":"356a1716308638ff71e5f09f64fd1cd3","path":"crm-auth/src/main/java/com/crm/auth/domain/entity/SysUserRole.java","line_range":"1-200","gmt_create":"2026-08-01T11:59:11.2335965+08:00","gmt_modified":"2026-08-01T11:59:11.2335965+08:00"},{"id":"28f6dcd948c2cff2f329ab3bbf4c5e06","path":"crm-auth/src/main/java/com/crm/auth/domain/entity/SysRoleMenu.java","line_range":"1-200","gmt_create":"2026-08-01T11:59:11.234115+08:00","gmt_modified":"2026-08-01T11:59:11.234115+08:00"},{"id":"a302758d59394067216d751ebb661f5e","path":"crm-auth/src/main/java/com/crm/auth/domain/entity/SysDept.java","line_range":"1-200","gmt_create":"2026-08-01T11:59:11.234115+08:00","gmt_modified":"2026-08-01T11:59:11.234115+08:00"},{"id":"353fced7452ae984d04aedecaaee5ab4","path":"crm-auth/src/main/java/com/crm/auth/domain/entity/SysUserDept.java","line_range":"1-200","gmt_create":"2026-08-01T11:59:11.2346392+08:00","gmt_modified":"2026-08-01T11:59:11.2346392+08:00"},{"id":"6482a0415c4c01dfd3196a91192fb7ca","path":"crm-auth/src/main/java/com/crm/auth/service/impl/PermissionServiceImpl.java","line_range":"1-200","gmt_create":"2026-08-01T11:59:11.2346392+08:00","gmt_modified":"2026-08-01T11:59:11.2346392+08:00"},{"id":"5802bf27629a4700e1fad48a339eab95","path":"crm-auth/src/main/java/com/crm/auth/service/impl/SysRoleServiceImpl.java","line_range":"1-200","gmt_create":"2026-08-01T11:59:11.2351737+08:00","gmt_modified":"2026-08-01T11:59:11.2351737+08:00"},{"id":"ebfb395550c37ba4027584bbf2fd76ed","path":"crm-auth/src/main/java/com/crm/auth/service/impl/SysMenuServiceImpl.java","line_range":"1-200","gmt_create":"2026-08-01T11:59:11.2356937+08:00","gmt_modified":"2026-08-01T11:59:11.2356937+08:00"},{"id":"78733cea63a5784d74c82bdf50e7b713","path":"crm-auth/src/main/java/com/crm/auth/config/SecurityConfig.java","line_range":"1-200","gmt_create":"2026-08-01T11:59:11.2356937+08:00","gmt_modified":"2026-08-01T11:59:11.2356937+08:00"},{"id":"72a034c4f1317ca49826baf8790a4c2e","path":"crm-auth/src/main/java/com/crm/auth/security/JwtAuthenticationFilter.java","line_range":"1-200","gmt_create":"2026-08-01T11:59:11.2362253+08:00","gmt_modified":"2026-08-01T11:59:11.2362253+08:00"},{"id":"7799b89815bb4f06dd5caa2b3bd5568c","path":"crm-auth/src/main/java/com/crm/auth/security/DataScopeInterceptor.java","line_range":"1-200","gmt_create":"2026-08-01T11:59:11.2362253+08:00","gmt_modified":"2026-08-01T11:59:11.2362253+08:00"},{"id":"bb259727923efab26488eca0b1f201e0","path":"crm-auth/src/main/java/com/crm/auth/security/DataScopeTables.java","line_range":"1-200","gmt_create":"2026-08-01T11:59:11.2367392+08:00","gmt_modified":"2026-08-01T11:59:11.2367392+08:00"},{"id":"626400c1d41e3b48d2a8e30ee87562fa","path":"crm-auth/src/main/java/com/crm/auth/security/AuthLoginUser.java","line_range":"1-200","gmt_create":"2026-08-01T11:59:11.2367392+08:00","gmt_modified":"2026-08-01T11:59:11.2367392+08:00"},{"id":"df096476d97c54172c5839a266e46867","path":"crm-auth/src/main/java/com/crm/auth/security/TokenService.java","line_range":"1-200","gmt_create":"2026-08-01T11:59:11.2372639+08:00","gmt_modified":"2026-08-01T11:59:11.2372639+08:00"},{"id":"8629bee3416a369162b306881e5bf5d0","path":"crm-auth/src/main/java/com/crm/auth/domain/enums/DataScopeEnum.java","line_range":"1-200","gmt_create":"2026-08-01T11:59:11.2372639+08:00","gmt_modified":"2026-08-01T11:59:11.2372639+08:00"},{"id":"a807bda309df8f0aa0cf90bbf4c0afd4","path":"crm-base/src/main/java/com/crm/base/annotation/DataScope.java","line_range":"1-200","gmt_create":"2026-08-01T11:59:11.2377816+08:00","gmt_modified":"2026-08-01T11:59:11.2377816+08:00"},{"id":"cd7e601b4125b471cf816bcec228b752","path":"crm-base/src/main/java/com/crm/base/security/DataScopeHelper.java","line_range":"1-200","gmt_create":"2026-08-01T11:59:11.2377816+08:00","gmt_modified":"2026-08-01T11:59:11.2377816+08:00"},{"id":"eb168003b2929c81d3cf503a3ae9e8c9","path":"crm-base/src/main/java/com/crm/base/security/DataVisibilityContext.java","line_range":"1-200","gmt_create":"2026-08-01T11:59:11.2383022+08:00","gmt_modified":"2026-08-01T11:59:11.2383022+08:00"},{"id":"faf664190fd4a09ddb120b40bf445a54","path":"crm-base/src/main/java/com/crm/base/config/CrmSqlInjector.java","line_range":"1-200","gmt_create":"2026-08-01T11:59:11.2428193+08:00","gmt_modified":"2026-08-01T11:59:11.2428193+08:00"},{"id":"0b81c5221d14e935e18bc19956fe502f","path":"crm-auth/src/main/java/com/crm/auth/config/PermissionConfig.java","line_range":"1-200","gmt_create":"2026-08-01T11:59:11.2478054+08:00","gmt_modified":"2026-08-01T11:59:11.2478054+08:00"},{"id":"21915525255d4fef3daeb8643a5bae4c","path":"crm-auth/src/main/java/com/crm/auth/config/DataInitializer.java","line_range":"1-200","gmt_create":"2026-08-01T11:59:11.2478054+08:00","gmt_modified":"2026-08-01T11:59:11.2478054+08:00"},{"id":"7c974ab041f6a9430c3be1c39833b929","path":"crm-base/src/main/java/com/crm/base/advice/GlobalExceptionHandlerAdvice.java","line_range":"1-200","gmt_create":"2026-08-01T11:59:11.2498021+08:00","gmt_modified":"2026-08-01T11:59:11.2498021+08:00"}],"knowledge_relations":[{"id":87,"source_id":"835b2a5a-3749-48a1-877a-445eefd2921a","target_id":"a7e3868c-bf54-49cf-8b09-da179cd49b00","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 835b2a5a-3749-48a1-877a-445eefd2921a -\u003e a7e3868c-bf54-49cf-8b09-da179cd49b00","gmt_create":"2026-08-01T10:58:43.9112506+08:00","gmt_modified":"2026-08-01T10:58:43.9112506+08:00"},{"id":88,"source_id":"835b2a5a-3749-48a1-877a-445eefd2921a","target_id":"46f44ec3-2ed5-4794-a294-29af3806350c","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 835b2a5a-3749-48a1-877a-445eefd2921a -\u003e 46f44ec3-2ed5-4794-a294-29af3806350c","gmt_create":"2026-08-01T10:58:43.9128874+08:00","gmt_modified":"2026-08-01T10:58:43.9128874+08:00"},{"id":89,"source_id":"835b2a5a-3749-48a1-877a-445eefd2921a","target_id":"578a7b52-5069-4091-b20c-0a2719998171","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 835b2a5a-3749-48a1-877a-445eefd2921a -\u003e 578a7b52-5069-4091-b20c-0a2719998171","gmt_create":"2026-08-01T10:58:43.9134309+08:00","gmt_modified":"2026-08-01T10:58:43.9134309+08:00"},{"id":90,"source_id":"835b2a5a-3749-48a1-877a-445eefd2921a","target_id":"cc9e475c-e6e1-44b2-9448-5198b2b22167","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 835b2a5a-3749-48a1-877a-445eefd2921a -\u003e cc9e475c-e6e1-44b2-9448-5198b2b22167","gmt_create":"2026-08-01T10:58:43.9139454+08:00","gmt_modified":"2026-08-01T10:58:43.9139454+08:00"},{"id":91,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","target_id":"d496a48a-7729-483b-b9a6-c417666b53cf","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: c0741164-f5df-4211-9366-481c2bfaefdd -\u003e d496a48a-7729-483b-b9a6-c417666b53cf","gmt_create":"2026-08-01T10:58:43.9139454+08:00","gmt_modified":"2026-08-01T10:58:43.9139454+08:00"},{"id":92,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","target_id":"c6764f02-7eca-4a98-9c34-59ed848dc61a","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: c0741164-f5df-4211-9366-481c2bfaefdd -\u003e c6764f02-7eca-4a98-9c34-59ed848dc61a","gmt_create":"2026-08-01T10:58:43.9144565+08:00","gmt_modified":"2026-08-01T10:58:43.9144565+08:00"},{"id":93,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","target_id":"e7288499-90bb-49bc-a65f-b1512e3b3381","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: c0741164-f5df-4211-9366-481c2bfaefdd -\u003e e7288499-90bb-49bc-a65f-b1512e3b3381","gmt_create":"2026-08-01T10:58:43.9144565+08:00","gmt_modified":"2026-08-01T10:58:43.9144565+08:00"},{"id":94,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","target_id":"58cd732e-1dad-4901-ad9e-e4361eb7c8a9","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: c0741164-f5df-4211-9366-481c2bfaefdd -\u003e 58cd732e-1dad-4901-ad9e-e4361eb7c8a9","gmt_create":"2026-08-01T10:58:43.9149663+08:00","gmt_modified":"2026-08-01T10:58:43.9149663+08:00"},{"id":95,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","target_id":"af9f4de4-1412-4728-a72e-7fe9e237e33e","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: c0741164-f5df-4211-9366-481c2bfaefdd -\u003e af9f4de4-1412-4728-a72e-7fe9e237e33e","gmt_create":"2026-08-01T10:58:43.9149663+08:00","gmt_modified":"2026-08-01T10:58:43.9149663+08:00"},{"id":96,"source_id":"f809cf60-fb54-482f-ba5e-b19b957bba4f","target_id":"dd99122b-3207-4b57-a3f0-9123477387bd","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: f809cf60-fb54-482f-ba5e-b19b957bba4f -\u003e dd99122b-3207-4b57-a3f0-9123477387bd","gmt_create":"2026-08-01T10:58:43.9154811+08:00","gmt_modified":"2026-08-01T10:58:43.9154811+08:00"},{"id":97,"source_id":"f809cf60-fb54-482f-ba5e-b19b957bba4f","target_id":"cdadc305-f41d-403b-8423-d51ec201bb2e","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: f809cf60-fb54-482f-ba5e-b19b957bba4f -\u003e cdadc305-f41d-403b-8423-d51ec201bb2e","gmt_create":"2026-08-01T10:58:43.9154811+08:00","gmt_modified":"2026-08-01T10:58:43.9154811+08:00"},{"id":98,"source_id":"f809cf60-fb54-482f-ba5e-b19b957bba4f","target_id":"e2d056dd-e698-4446-9a12-7511654dd87b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: f809cf60-fb54-482f-ba5e-b19b957bba4f -\u003e e2d056dd-e698-4446-9a12-7511654dd87b","gmt_create":"2026-08-01T10:58:43.9160243+08:00","gmt_modified":"2026-08-01T10:58:43.9160243+08:00"},{"id":99,"source_id":"f809cf60-fb54-482f-ba5e-b19b957bba4f","target_id":"679d7719-8478-4b8f-8fa1-e57fa19b0e03","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: f809cf60-fb54-482f-ba5e-b19b957bba4f -\u003e 679d7719-8478-4b8f-8fa1-e57fa19b0e03","gmt_create":"2026-08-01T10:58:43.9160243+08:00","gmt_modified":"2026-08-01T10:58:43.9160243+08:00"},{"id":100,"source_id":"f974312e-2807-4ebd-9fad-3eca5e05a8de","target_id":"739f48f0-1ddd-445d-93ec-e6e27f17be8b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: f974312e-2807-4ebd-9fad-3eca5e05a8de -\u003e 739f48f0-1ddd-445d-93ec-e6e27f17be8b","gmt_create":"2026-08-01T10:58:43.9165376+08:00","gmt_modified":"2026-08-01T10:58:43.9165376+08:00"},{"id":101,"source_id":"f974312e-2807-4ebd-9fad-3eca5e05a8de","target_id":"af2f204d-1540-4290-a5b4-ab906d6e2a79","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: f974312e-2807-4ebd-9fad-3eca5e05a8de -\u003e af2f204d-1540-4290-a5b4-ab906d6e2a79","gmt_create":"2026-08-01T10:58:43.9165376+08:00","gmt_modified":"2026-08-01T10:58:43.9165376+08:00"},{"id":102,"source_id":"f974312e-2807-4ebd-9fad-3eca5e05a8de","target_id":"4962231f-487f-4931-be07-9407f400b4f2","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: f974312e-2807-4ebd-9fad-3eca5e05a8de -\u003e 4962231f-487f-4931-be07-9407f400b4f2","gmt_create":"2026-08-01T10:58:43.9171397+08:00","gmt_modified":"2026-08-01T10:58:43.9171397+08:00"},{"id":103,"source_id":"f974312e-2807-4ebd-9fad-3eca5e05a8de","target_id":"2a67478e-68fd-4c5f-8d3b-4c85a6d43302","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: f974312e-2807-4ebd-9fad-3eca5e05a8de -\u003e 2a67478e-68fd-4c5f-8d3b-4c85a6d43302","gmt_create":"2026-08-01T10:58:43.9176576+08:00","gmt_modified":"2026-08-01T10:58:43.9176576+08:00"},{"id":104,"source_id":"f974312e-2807-4ebd-9fad-3eca5e05a8de","target_id":"5ffbd455-cadd-4f60-83a2-6d4a8cbca3ea","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: f974312e-2807-4ebd-9fad-3eca5e05a8de -\u003e 5ffbd455-cadd-4f60-83a2-6d4a8cbca3ea","gmt_create":"2026-08-01T10:58:43.9176576+08:00","gmt_modified":"2026-08-01T10:58:43.9176576+08:00"},{"id":105,"source_id":"f974312e-2807-4ebd-9fad-3eca5e05a8de","target_id":"7bebed75-a6b5-44c6-8b82-ea3803183cb8","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: f974312e-2807-4ebd-9fad-3eca5e05a8de -\u003e 7bebed75-a6b5-44c6-8b82-ea3803183cb8","gmt_create":"2026-08-01T10:58:43.9181739+08:00","gmt_modified":"2026-08-01T10:58:43.9181739+08:00"},{"id":106,"source_id":"f974312e-2807-4ebd-9fad-3eca5e05a8de","target_id":"26f1483c-c42d-4fff-9ce1-2b5ad38352e9","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: f974312e-2807-4ebd-9fad-3eca5e05a8de -\u003e 26f1483c-c42d-4fff-9ce1-2b5ad38352e9","gmt_create":"2026-08-01T10:58:43.9186878+08:00","gmt_modified":"2026-08-01T10:58:43.9186878+08:00"},{"id":107,"source_id":"f974312e-2807-4ebd-9fad-3eca5e05a8de","target_id":"a7c8e7fb-dd50-4d48-8e97-53abb3d8e2be","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: f974312e-2807-4ebd-9fad-3eca5e05a8de -\u003e a7c8e7fb-dd50-4d48-8e97-53abb3d8e2be","gmt_create":"2026-08-01T10:58:43.9192053+08:00","gmt_modified":"2026-08-01T10:58:43.9192053+08:00"},{"id":108,"source_id":"dce63e18-37d0-459b-9f80-0b22e0f89b2b","target_id":"c6b3c46f-1eab-4ddd-bab3-051a9fc3e5c3","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: dce63e18-37d0-459b-9f80-0b22e0f89b2b -\u003e c6b3c46f-1eab-4ddd-bab3-051a9fc3e5c3","gmt_create":"2026-08-01T10:58:43.9192053+08:00","gmt_modified":"2026-08-01T10:58:43.9192053+08:00"},{"id":110,"source_id":"dce63e18-37d0-459b-9f80-0b22e0f89b2b","target_id":"dca695f7-b800-4204-9977-ed394004ae5d","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: dce63e18-37d0-459b-9f80-0b22e0f89b2b -\u003e dca695f7-b800-4204-9977-ed394004ae5d","gmt_create":"2026-08-01T10:58:43.9202321+08:00","gmt_modified":"2026-08-01T10:58:43.9202321+08:00"},{"id":111,"source_id":"dce63e18-37d0-459b-9f80-0b22e0f89b2b","target_id":"e68c0bcd-bcf0-409b-98e5-e73abcd07eab","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: dce63e18-37d0-459b-9f80-0b22e0f89b2b -\u003e e68c0bcd-bcf0-409b-98e5-e73abcd07eab","gmt_create":"2026-08-01T10:58:43.9207363+08:00","gmt_modified":"2026-08-01T10:58:43.9207363+08:00"},{"id":112,"source_id":"dce63e18-37d0-459b-9f80-0b22e0f89b2b","target_id":"c8887b82-7caa-476e-a7b3-37a0da8ca941","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: dce63e18-37d0-459b-9f80-0b22e0f89b2b -\u003e c8887b82-7caa-476e-a7b3-37a0da8ca941","gmt_create":"2026-08-01T10:58:43.9207464+08:00","gmt_modified":"2026-08-01T10:58:43.9207464+08:00"},{"id":113,"source_id":"dce63e18-37d0-459b-9f80-0b22e0f89b2b","target_id":"0578c02d-17e0-4521-b976-1590c45adfc8","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: dce63e18-37d0-459b-9f80-0b22e0f89b2b -\u003e 0578c02d-17e0-4521-b976-1590c45adfc8","gmt_create":"2026-08-01T10:58:43.9212828+08:00","gmt_modified":"2026-08-01T10:58:43.9212828+08:00"},{"id":115,"source_id":"dce63e18-37d0-459b-9f80-0b22e0f89b2b","target_id":"f1cd91eb-6089-40e0-ba34-48626a1649c1","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: dce63e18-37d0-459b-9f80-0b22e0f89b2b -\u003e f1cd91eb-6089-40e0-ba34-48626a1649c1","gmt_create":"2026-08-01T10:58:43.9217982+08:00","gmt_modified":"2026-08-01T10:58:43.9217982+08:00"},{"id":116,"source_id":"de8d54c2-b3f5-446e-84c8-d197d614857d","target_id":"d1644805-fad0-4c88-837f-8b5ebe55ba82","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: de8d54c2-b3f5-446e-84c8-d197d614857d -\u003e d1644805-fad0-4c88-837f-8b5ebe55ba82","gmt_create":"2026-08-01T10:58:43.9217982+08:00","gmt_modified":"2026-08-01T10:58:43.9217982+08:00"},{"id":117,"source_id":"de8d54c2-b3f5-446e-84c8-d197d614857d","target_id":"20483fce-853c-49c8-9ec1-fa13c71e70e9","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: de8d54c2-b3f5-446e-84c8-d197d614857d -\u003e 20483fce-853c-49c8-9ec1-fa13c71e70e9","gmt_create":"2026-08-01T10:58:43.9223169+08:00","gmt_modified":"2026-08-01T10:58:43.9223169+08:00"},{"id":118,"source_id":"de8d54c2-b3f5-446e-84c8-d197d614857d","target_id":"9824ed4a-9f48-4b22-abb2-8389cf0c78d6","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: de8d54c2-b3f5-446e-84c8-d197d614857d -\u003e 9824ed4a-9f48-4b22-abb2-8389cf0c78d6","gmt_create":"2026-08-01T10:58:43.9223169+08:00","gmt_modified":"2026-08-01T10:58:43.9223169+08:00"},{"id":119,"source_id":"ae9abd4e-ed02-4ce6-b76d-6f6e769d7654","target_id":"98467387-2104-4105-8022-54584f55d093","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: ae9abd4e-ed02-4ce6-b76d-6f6e769d7654 -\u003e 98467387-2104-4105-8022-54584f55d093","gmt_create":"2026-08-01T10:58:43.9228309+08:00","gmt_modified":"2026-08-01T10:58:43.9228309+08:00"},{"id":120,"source_id":"ae9abd4e-ed02-4ce6-b76d-6f6e769d7654","target_id":"1a72341c-b76a-4424-ac9b-0c582ce278d5","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: ae9abd4e-ed02-4ce6-b76d-6f6e769d7654 -\u003e 1a72341c-b76a-4424-ac9b-0c582ce278d5","gmt_create":"2026-08-01T10:58:43.9228309+08:00","gmt_modified":"2026-08-01T10:58:43.9228309+08:00"},{"id":121,"source_id":"ae9abd4e-ed02-4ce6-b76d-6f6e769d7654","target_id":"3f0f5e2e-4454-4342-894a-d0465bef487a","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: ae9abd4e-ed02-4ce6-b76d-6f6e769d7654 -\u003e 3f0f5e2e-4454-4342-894a-d0465bef487a","gmt_create":"2026-08-01T10:58:43.9233788+08:00","gmt_modified":"2026-08-01T10:58:43.9233788+08:00"},{"id":122,"source_id":"ae9abd4e-ed02-4ce6-b76d-6f6e769d7654","target_id":"465ea2cf-ea85-46b0-adb8-f23e0f51dc0d","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: ae9abd4e-ed02-4ce6-b76d-6f6e769d7654 -\u003e 465ea2cf-ea85-46b0-adb8-f23e0f51dc0d","gmt_create":"2026-08-01T10:58:43.9233788+08:00","gmt_modified":"2026-08-01T10:58:43.9233788+08:00"},{"id":123,"source_id":"88f456c9-e905-4ab8-8c8d-910b1e7bced7","target_id":"871fadc5-8e0b-4190-a31b-a0f727c64553","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 88f456c9-e905-4ab8-8c8d-910b1e7bced7 -\u003e 871fadc5-8e0b-4190-a31b-a0f727c64553","gmt_create":"2026-08-01T10:58:43.9238906+08:00","gmt_modified":"2026-08-01T10:58:43.9238906+08:00"},{"id":124,"source_id":"88f456c9-e905-4ab8-8c8d-910b1e7bced7","target_id":"88337c10-c005-4f9a-955d-1656ab0269fa","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 88f456c9-e905-4ab8-8c8d-910b1e7bced7 -\u003e 88337c10-c005-4f9a-955d-1656ab0269fa","gmt_create":"2026-08-01T10:58:43.9238906+08:00","gmt_modified":"2026-08-01T10:58:43.9238906+08:00"},{"id":125,"source_id":"88f456c9-e905-4ab8-8c8d-910b1e7bced7","target_id":"f0adf36f-aaef-42c9-9edc-316ad8e8cb33","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 88f456c9-e905-4ab8-8c8d-910b1e7bced7 -\u003e f0adf36f-aaef-42c9-9edc-316ad8e8cb33","gmt_create":"2026-08-01T10:58:43.9560464+08:00","gmt_modified":"2026-08-01T10:58:43.9560464+08:00"},{"id":126,"source_id":"88f456c9-e905-4ab8-8c8d-910b1e7bced7","target_id":"370c9ddf-9cc5-4fbc-95f4-30125ec04c07","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 88f456c9-e905-4ab8-8c8d-910b1e7bced7 -\u003e 370c9ddf-9cc5-4fbc-95f4-30125ec04c07","gmt_create":"2026-08-01T10:58:43.9581496+08:00","gmt_modified":"2026-08-01T10:58:43.9581496+08:00"},{"id":127,"source_id":"88f456c9-e905-4ab8-8c8d-910b1e7bced7","target_id":"5e5d62c5-3a5e-416a-92fb-361b19cca8c7","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 88f456c9-e905-4ab8-8c8d-910b1e7bced7 -\u003e 5e5d62c5-3a5e-416a-92fb-361b19cca8c7","gmt_create":"2026-08-01T10:58:43.9586637+08:00","gmt_modified":"2026-08-01T10:58:43.9586637+08:00"},{"id":128,"source_id":"88f456c9-e905-4ab8-8c8d-910b1e7bced7","target_id":"82457347-6367-456a-9356-2e5acbfdb390","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 88f456c9-e905-4ab8-8c8d-910b1e7bced7 -\u003e 82457347-6367-456a-9356-2e5acbfdb390","gmt_create":"2026-08-01T10:58:43.9586637+08:00","gmt_modified":"2026-08-01T10:58:43.9586637+08:00"},{"id":129,"source_id":"060cac65-05a5-4a8e-91c0-3fa0b6e3eb60","target_id":"b6d63b77-8358-4231-8181-c4ca5666ff14","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 060cac65-05a5-4a8e-91c0-3fa0b6e3eb60 -\u003e b6d63b77-8358-4231-8181-c4ca5666ff14","gmt_create":"2026-08-01T10:58:43.9591799+08:00","gmt_modified":"2026-08-01T10:58:43.9591799+08:00"},{"id":130,"source_id":"060cac65-05a5-4a8e-91c0-3fa0b6e3eb60","target_id":"87256e45-1bb1-4bd8-ac1b-4bb17dfd4c19","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 060cac65-05a5-4a8e-91c0-3fa0b6e3eb60 -\u003e 87256e45-1bb1-4bd8-ac1b-4bb17dfd4c19","gmt_create":"2026-08-01T10:58:43.9591799+08:00","gmt_modified":"2026-08-01T10:58:43.9591799+08:00"},{"id":131,"source_id":"060cac65-05a5-4a8e-91c0-3fa0b6e3eb60","target_id":"1d76fd1c-9468-4ff7-819c-620a1aa32680","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 060cac65-05a5-4a8e-91c0-3fa0b6e3eb60 -\u003e 1d76fd1c-9468-4ff7-819c-620a1aa32680","gmt_create":"2026-08-01T10:58:43.9596901+08:00","gmt_modified":"2026-08-01T10:58:43.9596901+08:00"},{"id":133,"source_id":"060cac65-05a5-4a8e-91c0-3fa0b6e3eb60","target_id":"27f4b863-ad48-4671-934f-7ad121133892","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 060cac65-05a5-4a8e-91c0-3fa0b6e3eb60 -\u003e 27f4b863-ad48-4671-934f-7ad121133892","gmt_create":"2026-08-01T10:58:43.9601984+08:00","gmt_modified":"2026-08-01T10:58:43.9601984+08:00"},{"id":134,"source_id":"c6764f02-7eca-4a98-9c34-59ed848dc61a","target_id":"dedca28d-2bd5-4710-8fd5-84eda4378859","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: c6764f02-7eca-4a98-9c34-59ed848dc61a -\u003e dedca28d-2bd5-4710-8fd5-84eda4378859","gmt_create":"2026-08-01T10:58:43.961217+08:00","gmt_modified":"2026-08-01T10:58:43.961217+08:00"},{"id":135,"source_id":"c6764f02-7eca-4a98-9c34-59ed848dc61a","target_id":"b1cf2f70-ee01-46e5-bcd6-7157f0df3a64","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: c6764f02-7eca-4a98-9c34-59ed848dc61a -\u003e b1cf2f70-ee01-46e5-bcd6-7157f0df3a64","gmt_create":"2026-08-01T10:58:43.9617331+08:00","gmt_modified":"2026-08-01T10:58:43.9617331+08:00"},{"id":136,"source_id":"c6764f02-7eca-4a98-9c34-59ed848dc61a","target_id":"25518006-c055-4ba0-acb5-fc063b4b3b84","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: c6764f02-7eca-4a98-9c34-59ed848dc61a -\u003e 25518006-c055-4ba0-acb5-fc063b4b3b84","gmt_create":"2026-08-01T10:58:43.9617331+08:00","gmt_modified":"2026-08-01T10:58:43.9617331+08:00"},{"id":137,"source_id":"c6764f02-7eca-4a98-9c34-59ed848dc61a","target_id":"590e4f01-6f30-4261-9df2-3d16f9e54802","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: c6764f02-7eca-4a98-9c34-59ed848dc61a -\u003e 590e4f01-6f30-4261-9df2-3d16f9e54802","gmt_create":"2026-08-01T10:58:43.962245+08:00","gmt_modified":"2026-08-01T10:58:43.962245+08:00"},{"id":139,"source_id":"578a7b52-5069-4091-b20c-0a2719998171","target_id":"eb5fc685-6b02-430d-aacc-bf8baf0b30aa","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 578a7b52-5069-4091-b20c-0a2719998171 -\u003e eb5fc685-6b02-430d-aacc-bf8baf0b30aa","gmt_create":"2026-08-01T10:58:43.9641194+08:00","gmt_modified":"2026-08-01T10:58:43.9641194+08:00"},{"id":140,"source_id":"578a7b52-5069-4091-b20c-0a2719998171","target_id":"b69e8856-d6fc-4f7a-a439-e7a22dce434e","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 578a7b52-5069-4091-b20c-0a2719998171 -\u003e b69e8856-d6fc-4f7a-a439-e7a22dce434e","gmt_create":"2026-08-01T10:58:43.9646366+08:00","gmt_modified":"2026-08-01T10:58:43.9646366+08:00"},{"id":141,"source_id":"578a7b52-5069-4091-b20c-0a2719998171","target_id":"33860bb6-3fe5-457a-9c8b-f6d52e51cbfa","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 578a7b52-5069-4091-b20c-0a2719998171 -\u003e 33860bb6-3fe5-457a-9c8b-f6d52e51cbfa","gmt_create":"2026-08-01T10:58:43.9646366+08:00","gmt_modified":"2026-08-01T10:58:43.9646366+08:00"},{"id":142,"source_id":"1d76fd1c-9468-4ff7-819c-620a1aa32680","target_id":"42b4f623-7f24-4764-832e-2de9e17e8317","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 1d76fd1c-9468-4ff7-819c-620a1aa32680 -\u003e 42b4f623-7f24-4764-832e-2de9e17e8317","gmt_create":"2026-08-01T10:58:43.9666232+08:00","gmt_modified":"2026-08-01T10:58:43.9666232+08:00"},{"id":143,"source_id":"1d76fd1c-9468-4ff7-819c-620a1aa32680","target_id":"51e8d9a1-92fe-4561-bddb-333fac216f79","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 1d76fd1c-9468-4ff7-819c-620a1aa32680 -\u003e 51e8d9a1-92fe-4561-bddb-333fac216f79","gmt_create":"2026-08-01T10:58:43.9671379+08:00","gmt_modified":"2026-08-01T10:58:43.9671379+08:00"},{"id":144,"source_id":"1d76fd1c-9468-4ff7-819c-620a1aa32680","target_id":"0eee2d19-c134-4448-9c32-6f44d9c263f4","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 1d76fd1c-9468-4ff7-819c-620a1aa32680 -\u003e 0eee2d19-c134-4448-9c32-6f44d9c263f4","gmt_create":"2026-08-01T10:58:43.9671898+08:00","gmt_modified":"2026-08-01T10:58:43.9671898+08:00"},{"id":145,"source_id":"1d76fd1c-9468-4ff7-819c-620a1aa32680","target_id":"0183a3a0-b70e-4bd8-9ef9-58a80fb9d16c","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 1d76fd1c-9468-4ff7-819c-620a1aa32680 -\u003e 0183a3a0-b70e-4bd8-9ef9-58a80fb9d16c","gmt_create":"2026-08-01T10:58:43.9671898+08:00","gmt_modified":"2026-08-01T10:58:43.9671898+08:00"},{"id":146,"source_id":"1d76fd1c-9468-4ff7-819c-620a1aa32680","target_id":"ace33c50-eea1-4a9c-a55b-7aa665892ae8","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 1d76fd1c-9468-4ff7-819c-620a1aa32680 -\u003e ace33c50-eea1-4a9c-a55b-7aa665892ae8","gmt_create":"2026-08-01T10:58:43.9681315+08:00","gmt_modified":"2026-08-01T10:58:43.9681315+08:00"},{"id":147,"source_id":"1d76fd1c-9468-4ff7-819c-620a1aa32680","target_id":"766ad4ed-5ff8-426a-803f-390ee1362c29","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 1d76fd1c-9468-4ff7-819c-620a1aa32680 -\u003e 766ad4ed-5ff8-426a-803f-390ee1362c29","gmt_create":"2026-08-01T10:58:43.9681315+08:00","gmt_modified":"2026-08-01T10:58:43.9681315+08:00"},{"id":148,"source_id":"2a67478e-68fd-4c5f-8d3b-4c85a6d43302","target_id":"35cac571-af96-43f9-b4c8-3dab1e836bec","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 2a67478e-68fd-4c5f-8d3b-4c85a6d43302 -\u003e 35cac571-af96-43f9-b4c8-3dab1e836bec","gmt_create":"2026-08-01T10:58:43.9701251+08:00","gmt_modified":"2026-08-01T10:58:43.9701251+08:00"},{"id":149,"source_id":"2a67478e-68fd-4c5f-8d3b-4c85a6d43302","target_id":"46877382-98e5-4a69-85f8-52c9317452f3","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 2a67478e-68fd-4c5f-8d3b-4c85a6d43302 -\u003e 46877382-98e5-4a69-85f8-52c9317452f3","gmt_create":"2026-08-01T10:58:43.9701251+08:00","gmt_modified":"2026-08-01T10:58:43.9701251+08:00"},{"id":150,"source_id":"2a67478e-68fd-4c5f-8d3b-4c85a6d43302","target_id":"57aa3d52-9f51-4f33-bae7-6dbd8fba9b21","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 2a67478e-68fd-4c5f-8d3b-4c85a6d43302 -\u003e 57aa3d52-9f51-4f33-bae7-6dbd8fba9b21","gmt_create":"2026-08-01T10:58:43.971123+08:00","gmt_modified":"2026-08-01T10:58:43.971123+08:00"},{"id":151,"source_id":"5ffbd455-cadd-4f60-83a2-6d4a8cbca3ea","target_id":"669ce1d2-0875-4103-832c-e872b5bc25fe","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 5ffbd455-cadd-4f60-83a2-6d4a8cbca3ea -\u003e 669ce1d2-0875-4103-832c-e872b5bc25fe","gmt_create":"2026-08-01T10:58:43.9721226+08:00","gmt_modified":"2026-08-01T10:58:43.9721226+08:00"},{"id":152,"source_id":"5ffbd455-cadd-4f60-83a2-6d4a8cbca3ea","target_id":"2f3be026-db25-43bf-b241-7a7d5e8d6c17","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 5ffbd455-cadd-4f60-83a2-6d4a8cbca3ea -\u003e 2f3be026-db25-43bf-b241-7a7d5e8d6c17","gmt_create":"2026-08-01T10:58:43.9721226+08:00","gmt_modified":"2026-08-01T10:58:43.9721226+08:00"},{"id":153,"source_id":"5ffbd455-cadd-4f60-83a2-6d4a8cbca3ea","target_id":"f562463e-96a1-4061-9cd0-c35c162755df","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 5ffbd455-cadd-4f60-83a2-6d4a8cbca3ea -\u003e f562463e-96a1-4061-9cd0-c35c162755df","gmt_create":"2026-08-01T10:58:43.9731193+08:00","gmt_modified":"2026-08-01T10:58:43.9731193+08:00"},{"id":154,"source_id":"5ffbd455-cadd-4f60-83a2-6d4a8cbca3ea","target_id":"afae8ec4-6d94-4a7b-98cf-63806d7628b7","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 5ffbd455-cadd-4f60-83a2-6d4a8cbca3ea -\u003e afae8ec4-6d94-4a7b-98cf-63806d7628b7","gmt_create":"2026-08-01T10:58:43.9731193+08:00","gmt_modified":"2026-08-01T10:58:43.9731193+08:00"},{"id":155,"source_id":"5ffbd455-cadd-4f60-83a2-6d4a8cbca3ea","target_id":"7f519117-7bc1-40df-a903-dee68830d81d","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 5ffbd455-cadd-4f60-83a2-6d4a8cbca3ea -\u003e 7f519117-7bc1-40df-a903-dee68830d81d","gmt_create":"2026-08-01T10:58:43.9741156+08:00","gmt_modified":"2026-08-01T10:58:43.9741156+08:00"},{"id":156,"source_id":"5ffbd455-cadd-4f60-83a2-6d4a8cbca3ea","target_id":"b4388d32-165b-4835-a667-5a8100caf17c","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 5ffbd455-cadd-4f60-83a2-6d4a8cbca3ea -\u003e b4388d32-165b-4835-a667-5a8100caf17c","gmt_create":"2026-08-01T10:58:43.9741156+08:00","gmt_modified":"2026-08-01T10:58:43.9741156+08:00"},{"id":162,"source_id":"eb5fc685-6b02-430d-aacc-bf8baf0b30aa","target_id":"3b7d1597-4486-4a34-8f50-64dfda4fd89e","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: eb5fc685-6b02-430d-aacc-bf8baf0b30aa -\u003e 3b7d1597-4486-4a34-8f50-64dfda4fd89e","gmt_create":"2026-08-01T10:58:43.979102+08:00","gmt_modified":"2026-08-01T10:58:43.979102+08:00"},{"id":163,"source_id":"eb5fc685-6b02-430d-aacc-bf8baf0b30aa","target_id":"f69d5d81-5661-4100-89e4-c6b0ebf7189f","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: eb5fc685-6b02-430d-aacc-bf8baf0b30aa -\u003e f69d5d81-5661-4100-89e4-c6b0ebf7189f","gmt_create":"2026-08-01T10:58:43.9800998+08:00","gmt_modified":"2026-08-01T10:58:43.9800998+08:00"},{"id":164,"source_id":"eb5fc685-6b02-430d-aacc-bf8baf0b30aa","target_id":"acad7822-89eb-4886-bad3-c205238abddc","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: eb5fc685-6b02-430d-aacc-bf8baf0b30aa -\u003e acad7822-89eb-4886-bad3-c205238abddc","gmt_create":"2026-08-01T10:58:43.9800998+08:00","gmt_modified":"2026-08-01T10:58:43.9800998+08:00"},{"id":165,"source_id":"eb5fc685-6b02-430d-aacc-bf8baf0b30aa","target_id":"871f728c-3b52-4e48-aba8-85d419828db2","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: eb5fc685-6b02-430d-aacc-bf8baf0b30aa -\u003e 871f728c-3b52-4e48-aba8-85d419828db2","gmt_create":"2026-08-01T10:58:43.9810974+08:00","gmt_modified":"2026-08-01T10:58:43.9810974+08:00"},{"id":166,"source_id":"eb5fc685-6b02-430d-aacc-bf8baf0b30aa","target_id":"115aabe2-05c0-4655-91ac-4a20b674e18c","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: eb5fc685-6b02-430d-aacc-bf8baf0b30aa -\u003e 115aabe2-05c0-4655-91ac-4a20b674e18c","gmt_create":"2026-08-01T10:58:43.9810974+08:00","gmt_modified":"2026-08-01T10:58:43.9810974+08:00"},{"id":167,"source_id":"eb5fc685-6b02-430d-aacc-bf8baf0b30aa","target_id":"c77935c8-6adf-4378-b023-af20bbc387eb","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: eb5fc685-6b02-430d-aacc-bf8baf0b30aa -\u003e c77935c8-6adf-4378-b023-af20bbc387eb","gmt_create":"2026-08-01T10:58:43.9810974+08:00","gmt_modified":"2026-08-01T10:58:43.9810974+08:00"},{"id":168,"source_id":"eb5fc685-6b02-430d-aacc-bf8baf0b30aa","target_id":"b536efef-bc32-48ed-b2d1-14b0c344df06","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: eb5fc685-6b02-430d-aacc-bf8baf0b30aa -\u003e b536efef-bc32-48ed-b2d1-14b0c344df06","gmt_create":"2026-08-01T10:58:43.9810974+08:00","gmt_modified":"2026-08-01T10:58:43.9810974+08:00"},{"id":169,"source_id":"eb5fc685-6b02-430d-aacc-bf8baf0b30aa","target_id":"cb774213-8f87-4d1f-bab1-1e1f251b5e51","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: eb5fc685-6b02-430d-aacc-bf8baf0b30aa -\u003e cb774213-8f87-4d1f-bab1-1e1f251b5e51","gmt_create":"2026-08-01T10:58:43.982608+08:00","gmt_modified":"2026-08-01T10:58:43.982608+08:00"},{"id":170,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"9f120716e7b0381e045c66412550d1a9","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-app/src/main/java/com/crm/app/CrmAppApplication.java","gmt_create":"2026-08-01T11:58:56.0758675+08:00","gmt_modified":"2026-08-01T11:58:56.0758675+08:00"},{"id":171,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"ed816b898bf9d2e8548f1dfd5cdeadbb","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-app/src/main/resources/application.yml","gmt_create":"2026-08-01T11:58:56.0763841+08:00","gmt_modified":"2026-08-01T11:58:56.0763841+08:00"},{"id":172,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"246da6901c21f063ab47e58aaebcdd3c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/controller/AuthController.java","gmt_create":"2026-08-01T11:58:56.0769104+08:00","gmt_modified":"2026-08-01T11:58:56.0769104+08:00"},{"id":173,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"db5d3491fb45251456163d012a823f5d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/controller/SystemController.java","gmt_create":"2026-08-01T11:58:56.0769104+08:00","gmt_modified":"2026-08-01T11:58:56.0769104+08:00"},{"id":174,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"6d19e7c47ad418f3577ff8cfcd56590f","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/config/SecurityConfig.java","gmt_create":"2026-08-01T11:58:56.0769104+08:00","gmt_modified":"2026-08-01T11:58:56.0769104+08:00"},{"id":175,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"979b533c66100f0a3f79f7542e2b01e0","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/config/PermissionConfig.java","gmt_create":"2026-08-01T11:58:56.0774251+08:00","gmt_modified":"2026-08-01T11:58:56.0774251+08:00"},{"id":176,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"10a536bc357c7840a6eec61b40741915","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/security/JwtAuthenticationFilter.java","gmt_create":"2026-08-01T11:58:56.0774251+08:00","gmt_modified":"2026-08-01T11:58:56.0774251+08:00"},{"id":177,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"720e90c29ddd88a8633c9d31ce443b5e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/security/TokenService.java","gmt_create":"2026-08-01T11:58:56.0779378+08:00","gmt_modified":"2026-08-01T11:58:56.0779378+08:00"},{"id":178,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"9b38bcfac9c3a14d74c16429d22380fd","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/security/AuthLoginUser.java","gmt_create":"2026-08-01T11:58:56.0779378+08:00","gmt_modified":"2026-08-01T11:58:56.0779378+08:00"},{"id":179,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"ef98104ba47dd7d33624e1916c0694cd","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/security/DataScopeInterceptor.java","gmt_create":"2026-08-01T11:58:56.0779378+08:00","gmt_modified":"2026-08-01T11:58:56.0779378+08:00"},{"id":180,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"d862f2c63fd9e0f48ad1badc1a6d9e1e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/security/DataScopeTables.java","gmt_create":"2026-08-01T11:58:56.0784498+08:00","gmt_modified":"2026-08-01T11:58:56.0784498+08:00"},{"id":181,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"5725c122fbf467925192bf42403e7787","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/impl/AuthServiceImpl.java","gmt_create":"2026-08-01T11:58:56.0784498+08:00","gmt_modified":"2026-08-01T11:58:56.0784498+08:00"},{"id":182,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"b95e6a3c690ffd8ed16d2d4163a5c648","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/impl/AuthUserServiceImpl.java","gmt_create":"2026-08-01T11:58:56.0784498+08:00","gmt_modified":"2026-08-01T11:58:56.0784498+08:00"},{"id":183,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"887492aa11700fd0984b91d5fa1cf130","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/impl/SysDeptServiceImpl.java","gmt_create":"2026-08-01T11:58:56.0789629+08:00","gmt_modified":"2026-08-01T11:58:56.0789629+08:00"},{"id":184,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"c612f590645fb36de9e13767f1c81a0c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/client/DingTalkAuthClient.java","gmt_create":"2026-08-01T11:58:56.0789629+08:00","gmt_modified":"2026-08-01T11:58:56.0789629+08:00"},{"id":185,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"86622c8fa2eab6b1847927d47d77b7fd","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/client/ThirdPartyAuthClientFactory.java","gmt_create":"2026-08-01T11:58:56.0794749+08:00","gmt_modified":"2026-08-01T11:58:56.0794749+08:00"},{"id":186,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"70a8328bf44d129f9e9f84a552674c0d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/test/java/com/crm/auth/security/scope/DataScopeIntegrationTest.java","gmt_create":"2026-08-01T11:58:56.0794749+08:00","gmt_modified":"2026-08-01T11:58:56.0794749+08:00"},{"id":187,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"450e832ef93367bf62c150db0a3c2257","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/test/java/com/crm/auth/security/scope/TestOwnedData.java","gmt_create":"2026-08-01T11:58:56.0794749+08:00","gmt_modified":"2026-08-01T11:58:56.0794749+08:00"},{"id":188,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"e6cba19378ad4cca1120a969537c90a1","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/test/java/com/crm/auth/security/scope/TestOwnedDataMapper.java","gmt_create":"2026-08-01T11:58:56.0799864+08:00","gmt_modified":"2026-08-01T11:58:56.0799864+08:00"},{"id":189,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"a0e0e501f0f901ac1f12b089a1bf5f9a","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/test/java/com/crm/auth/service/client/DingTalkAuthClientTest.java","gmt_create":"2026-08-01T11:58:56.0799864+08:00","gmt_modified":"2026-08-01T11:58:56.0799864+08:00"},{"id":190,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"ef7f823f436c1c0a09594b106637d202","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/test/java/com/crm/auth/service/client/ThirdPartyAuthClientFactoryTest.java","gmt_create":"2026-08-01T11:58:56.0799864+08:00","gmt_modified":"2026-08-01T11:58:56.0799864+08:00"},{"id":191,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"0a944d6947cd45922d3e267c069fee6c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/test/java/com/crm/auth/service/impl/AuthServiceImplTest.java","gmt_create":"2026-08-01T11:58:56.0804957+08:00","gmt_modified":"2026-08-01T11:58:56.0804957+08:00"},{"id":192,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"e115f2054f8d1d592750cc634e682da8","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/test/java/com/crm/auth/service/impl/AuthUserServiceImplTest.java","gmt_create":"2026-08-01T11:58:56.0804957+08:00","gmt_modified":"2026-08-01T11:58:56.0804957+08:00"},{"id":193,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"93b5379effd73cbce347a8747296d18c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/test/java/com/crm/auth/service/impl/SysDeptServiceImplTest.java","gmt_create":"2026-08-01T11:58:56.0804957+08:00","gmt_modified":"2026-08-01T11:58:56.0804957+08:00"},{"id":194,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"f204b35859a78f3352a067656ec89482","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/test/java/com/crm/auth/service/impl/UserListIntegrationTest.java","gmt_create":"2026-08-01T11:58:56.0804957+08:00","gmt_modified":"2026-08-01T11:58:56.0804957+08:00"},{"id":195,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"219bfc88fc6b98fdc50a57b641262250","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/advice/GlobalExceptionHandlerAdvice.java","gmt_create":"2026-08-01T11:58:56.0804957+08:00","gmt_modified":"2026-08-01T11:58:56.0804957+08:00"},{"id":196,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"78f9a7cfb354a1eb9744378aeb898070","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/domain/exception/BusinessErrorException.java","gmt_create":"2026-08-01T11:58:56.0804957+08:00","gmt_modified":"2026-08-01T11:58:56.0804957+08:00"},{"id":197,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"552d2164b5a76f113724b37692c9a8ad","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/domain/exception/MissingParameterException.java","gmt_create":"2026-08-01T11:58:56.0814887+08:00","gmt_modified":"2026-08-01T11:58:56.0814887+08:00"},{"id":198,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"3d2db44a848dd979c85d02227c0860f1","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/domain/exception/PermissionErrorException.java","gmt_create":"2026-08-01T11:58:56.0814887+08:00","gmt_modified":"2026-08-01T11:58:56.0814887+08:00"},{"id":199,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"a769abcb464b3fed3c877eaaa18bb7ea","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/domain/exception/ResourceNotExistException.java","gmt_create":"2026-08-01T11:58:56.0814887+08:00","gmt_modified":"2026-08-01T11:58:56.0814887+08:00"},{"id":200,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"fbcc9319095d04d42cae2a4126d632cc","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/domain/result/Result.java","gmt_create":"2026-08-01T11:58:56.0814887+08:00","gmt_modified":"2026-08-01T11:58:56.0814887+08:00"},{"id":201,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"71737ec08030f7f53dcba1d13a65df12","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/domain/result/ResultCodeEnum.java","gmt_create":"2026-08-01T11:58:56.0824858+08:00","gmt_modified":"2026-08-01T11:58:56.0824858+08:00"},{"id":202,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"839aaee42fad8c788d762040f926c7cf","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/domain/result/PageResult.java","gmt_create":"2026-08-01T11:58:56.0824858+08:00","gmt_modified":"2026-08-01T11:58:56.0824858+08:00"},{"id":203,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"7a809dc905a15b19452162b602354d4f","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/domain/entity/BaseEntity.java","gmt_create":"2026-08-01T11:58:56.0824858+08:00","gmt_modified":"2026-08-01T11:58:56.0824858+08:00"},{"id":204,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"4df2448146189cb35695461c4efeeef7","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/domain/entity/OwnedEntity.java","gmt_create":"2026-08-01T11:58:56.0834828+08:00","gmt_modified":"2026-08-01T11:58:56.0834828+08:00"},{"id":205,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"485d0b6edfad127744af104bc2fccdec","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/annotation/DataScope.java","gmt_create":"2026-08-01T11:58:56.0834828+08:00","gmt_modified":"2026-08-01T11:58:56.0834828+08:00"},{"id":206,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"33650500053c4035f9b41cc603ec7177","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/security/DataScopeHelper.java","gmt_create":"2026-08-01T11:58:56.0834828+08:00","gmt_modified":"2026-08-01T11:58:56.0834828+08:00"},{"id":207,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"7f1c91eeb163925e7598ee1fa3808178","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/security/DataVisibilityContext.java","gmt_create":"2026-08-01T11:58:56.0834828+08:00","gmt_modified":"2026-08-01T11:58:56.0834828+08:00"},{"id":208,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"dc053fd228077fc0cfbe0b6f895efff0","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/security/LoginUser.java","gmt_create":"2026-08-01T11:58:56.0834828+08:00","gmt_modified":"2026-08-01T11:58:56.0834828+08:00"},{"id":209,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"594e46f4067bf5c53e0e58dd1cb1142f","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/security/SecurityUtils.java","gmt_create":"2026-08-01T11:58:56.0844807+08:00","gmt_modified":"2026-08-01T11:58:56.0844807+08:00"},{"id":210,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"eb157d8b43dd11418aef51259017012c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/test/java/com/crm/base/security/DataVisibilityTest.java","gmt_create":"2026-08-01T11:58:56.0844807+08:00","gmt_modified":"2026-08-01T11:58:56.0844807+08:00"},{"id":211,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"30323def9cb0fe6b260ea6a5e9fa283b","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-file/src/main/java/com/crm/file/controller/FileController.java","gmt_create":"2026-08-01T11:58:56.0844807+08:00","gmt_modified":"2026-08-01T11:58:56.0844807+08:00"},{"id":212,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"306688bd02d5e00424c36a8e3f7bf006","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-file/src/main/java/com/crm/file/service/impl/FileApiImpl.java","gmt_create":"2026-08-01T11:58:56.0844807+08:00","gmt_modified":"2026-08-01T11:58:56.0844807+08:00"},{"id":213,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"471daee1ba8d0a0c9d37ea42b9515adb","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-file/src/main/java/com/crm/file/service/impl/FileInfoServiceImpl.java","gmt_create":"2026-08-01T11:58:56.085478+08:00","gmt_modified":"2026-08-01T11:58:56.085478+08:00"},{"id":214,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"08d8600fa4e7cbf52b43b28fefb529ec","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-file/src/main/java/com/crm/file/service/KkFileViewClient.java","gmt_create":"2026-08-01T11:58:56.085478+08:00","gmt_modified":"2026-08-01T11:58:56.085478+08:00"},{"id":215,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"c2b8eb329a711a41ccd21fc07edb2463","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-file/src/main/java/com/crm/file/task/OrphanChunkCleanupTask.java","gmt_create":"2026-08-01T11:58:56.085478+08:00","gmt_modified":"2026-08-01T11:58:56.085478+08:00"},{"id":216,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"78a779bf8e042a4c180c7cf6b2f09c30","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-file/src/test/java/com/crm/file/service/impl/FileApiImplTest.java","gmt_create":"2026-08-01T11:58:56.085478+08:00","gmt_modified":"2026-08-01T11:58:56.085478+08:00"},{"id":217,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"39e025b53656f4fb1e51330f3f63f82f","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-file/src/test/java/com/crm/file/service/KkFileViewClientTest.java","gmt_create":"2026-08-01T11:58:56.085478+08:00","gmt_modified":"2026-08-01T11:58:56.085478+08:00"},{"id":218,"source_id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","target_id":"4ad3caa167521e41d486c8eb3e1d1f09","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-file/src/test/java/com/crm/file/task/OrphanChunkCleanupTaskTest.java","gmt_create":"2026-08-01T11:58:56.085478+08:00","gmt_modified":"2026-08-01T11:58:56.085478+08:00"},{"id":219,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"9f120716e7b0381e045c66412550d1a9","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-app/src/main/java/com/crm/app/CrmAppApplication.java","gmt_create":"2026-08-01T11:59:11.2503929+08:00","gmt_modified":"2026-08-01T11:59:11.2503929+08:00"},{"id":220,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"ed816b898bf9d2e8548f1dfd5cdeadbb","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-app/src/main/resources/application.yml","gmt_create":"2026-08-01T11:59:11.2513874+08:00","gmt_modified":"2026-08-01T11:59:11.2513874+08:00"},{"id":221,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"ec731c3e8b12fffc7e23eb4ecd950b53","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/AuthApplication.java","gmt_create":"2026-08-01T11:59:11.2513874+08:00","gmt_modified":"2026-08-01T11:59:11.2513874+08:00"},{"id":222,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"070b69737b357c71e8b46fd27e1c4d4b","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/resources/application.yml","gmt_create":"2026-08-01T11:59:11.2513874+08:00","gmt_modified":"2026-08-01T11:59:11.2513874+08:00"},{"id":223,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"979b533c66100f0a3f79f7542e2b01e0","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/config/PermissionConfig.java","gmt_create":"2026-08-01T11:59:11.2513874+08:00","gmt_modified":"2026-08-01T11:59:11.2513874+08:00"},{"id":224,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"6d19e7c47ad418f3577ff8cfcd56590f","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/config/SecurityConfig.java","gmt_create":"2026-08-01T11:59:11.2523837+08:00","gmt_modified":"2026-08-01T11:59:11.2523837+08:00"},{"id":225,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"4194d46035c0037d3488ab82e57001ba","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/config/DataInitializer.java","gmt_create":"2026-08-01T11:59:11.2523837+08:00","gmt_modified":"2026-08-01T11:59:11.2523837+08:00"},{"id":226,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"086d66e96aa620aca8a7c9d337100360","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/constant/AuthConstants.java","gmt_create":"2026-08-01T11:59:11.2533802+08:00","gmt_modified":"2026-08-01T11:59:11.2533802+08:00"},{"id":227,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"246da6901c21f063ab47e58aaebcdd3c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/controller/AuthController.java","gmt_create":"2026-08-01T11:59:11.2533802+08:00","gmt_modified":"2026-08-01T11:59:11.2533802+08:00"},{"id":228,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"db5d3491fb45251456163d012a823f5d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/controller/SystemController.java","gmt_create":"2026-08-01T11:59:11.2813377+08:00","gmt_modified":"2026-08-01T11:59:11.2813377+08:00"},{"id":229,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"8e967137fd04208873ef2894951b2b3d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/entity/AuthIdentity.java","gmt_create":"2026-08-01T11:59:11.2849092+08:00","gmt_modified":"2026-08-01T11:59:11.2849092+08:00"},{"id":230,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"91569422a8bc25dfd346718b1de8212c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/entity/AuthUser.java","gmt_create":"2026-08-01T11:59:11.2849092+08:00","gmt_modified":"2026-08-01T11:59:11.2849092+08:00"},{"id":231,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"e1f225cc9efe7384e97ee284b89eabc0","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/entity/SysDept.java","gmt_create":"2026-08-01T11:59:11.2854262+08:00","gmt_modified":"2026-08-01T11:59:11.2854262+08:00"},{"id":232,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"26cb8256b5c728bdc24b532313d3a166","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/entity/SysMenu.java","gmt_create":"2026-08-01T11:59:11.2854262+08:00","gmt_modified":"2026-08-01T11:59:11.2854262+08:00"},{"id":233,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"5da86b8d801192fd63ea6aa57b666057","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/entity/SysRole.java","gmt_create":"2026-08-01T11:59:11.2859375+08:00","gmt_modified":"2026-08-01T11:59:11.2859375+08:00"},{"id":234,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"20f7693b186c4e003d04031dafd605b5","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/entity/SysRoleMenu.java","gmt_create":"2026-08-01T11:59:11.2859375+08:00","gmt_modified":"2026-08-01T11:59:11.2859375+08:00"},{"id":235,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"8fa19465d23be26b999639add960b23d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/entity/SysUserDept.java","gmt_create":"2026-08-01T11:59:11.286464+08:00","gmt_modified":"2026-08-01T11:59:11.286464+08:00"},{"id":236,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"aea6b84411302cc9a5fbcaf774ac6a29","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/entity/SysUserRole.java","gmt_create":"2026-08-01T11:59:11.2869795+08:00","gmt_modified":"2026-08-01T11:59:11.2869795+08:00"},{"id":237,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"5be8fe765c8b4c953e524cdf749f440b","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/enums/DataScopeEnum.java","gmt_create":"2026-08-01T11:59:11.2869795+08:00","gmt_modified":"2026-08-01T11:59:11.2869795+08:00"},{"id":238,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"0e509081560573445a0dd02e946dbf30","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/enums/IdentityTypeEnum.java","gmt_create":"2026-08-01T11:59:11.2879374+08:00","gmt_modified":"2026-08-01T11:59:11.2879374+08:00"},{"id":239,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"cd95faea5a74ee3ae09964119cdb6716","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/enums/MenuTypeEnum.java","gmt_create":"2026-08-01T11:59:11.2885128+08:00","gmt_modified":"2026-08-01T11:59:11.2885128+08:00"},{"id":240,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"0b3ed971f0f095d6e203ddde717574e9","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/param/LoginParam.java","gmt_create":"2026-08-01T11:59:11.2890166+08:00","gmt_modified":"2026-08-01T11:59:11.2890166+08:00"},{"id":241,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"58507cf1cc358b2da45575d16c857d87","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/dto/LoginResultDTO.java","gmt_create":"2026-08-01T11:59:11.2892482+08:00","gmt_modified":"2026-08-01T11:59:11.2892482+08:00"},{"id":242,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"8cac10327042dbf538d05120f601aa48","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/dto/UserInfoDTO.java","gmt_create":"2026-08-01T11:59:11.289784+08:00","gmt_modified":"2026-08-01T11:59:11.289784+08:00"},{"id":243,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"d9ade6309a688b79e49a87c991d5af6c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/mapper/AuthIdentityMapper.java","gmt_create":"2026-08-01T11:59:11.290303+08:00","gmt_modified":"2026-08-01T11:59:11.290303+08:00"},{"id":244,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"283041ef298919fe536ac20fad579c0a","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/mapper/AuthUserMapper.java","gmt_create":"2026-08-01T11:59:11.2908307+08:00","gmt_modified":"2026-08-01T11:59:11.2908307+08:00"},{"id":245,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"aab51a092e42f86e794b23b95107cba3","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/mapper/SysDeptMapper.java","gmt_create":"2026-08-01T11:59:11.2908307+08:00","gmt_modified":"2026-08-01T11:59:11.2908307+08:00"},{"id":246,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"d9d6f5b3e8856fa6995fdc7ed74c6382","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/mapper/SysMenuMapper.java","gmt_create":"2026-08-01T11:59:11.2913459+08:00","gmt_modified":"2026-08-01T11:59:11.2913459+08:00"},{"id":247,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"38d9b83ff8f46a8113aa787616b2f802","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/mapper/SysRoleMapper.java","gmt_create":"2026-08-01T11:59:11.2913459+08:00","gmt_modified":"2026-08-01T11:59:11.2913459+08:00"},{"id":248,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"eb41d1eb6dbcb66d966ca3b557af45d3","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/mapper/SysRoleMenuMapper.java","gmt_create":"2026-08-01T11:59:11.2918744+08:00","gmt_modified":"2026-08-01T11:59:11.2918744+08:00"},{"id":249,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"28e5eef69286d763453cf31a32070685","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/mapper/SysUserDeptMapper.java","gmt_create":"2026-08-01T11:59:11.2918744+08:00","gmt_modified":"2026-08-01T11:59:11.2918744+08:00"},{"id":250,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"30ac7fd632012faca8156feaa071ff46","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/mapper/SysUserRoleMapper.java","gmt_create":"2026-08-01T11:59:11.2923773+08:00","gmt_modified":"2026-08-01T11:59:11.2923773+08:00"},{"id":251,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"9b38bcfac9c3a14d74c16429d22380fd","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/security/AuthLoginUser.java","gmt_create":"2026-08-01T11:59:11.2923885+08:00","gmt_modified":"2026-08-01T11:59:11.2923885+08:00"},{"id":252,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"ef98104ba47dd7d33624e1916c0694cd","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/security/DataScopeInterceptor.java","gmt_create":"2026-08-01T11:59:11.2929063+08:00","gmt_modified":"2026-08-01T11:59:11.2929063+08:00"},{"id":253,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"d862f2c63fd9e0f48ad1badc1a6d9e1e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/security/DataScopeTables.java","gmt_create":"2026-08-01T11:59:11.2929063+08:00","gmt_modified":"2026-08-01T11:59:11.2929063+08:00"},{"id":254,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"10a536bc357c7840a6eec61b40741915","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/security/JwtAuthenticationFilter.java","gmt_create":"2026-08-01T11:59:11.2929063+08:00","gmt_modified":"2026-08-01T11:59:11.2929063+08:00"},{"id":255,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"03278a0623db482aec43e508d1268208","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/security/SecurityExceptionHandlers.java","gmt_create":"2026-08-01T11:59:11.2934203+08:00","gmt_modified":"2026-08-01T11:59:11.2934203+08:00"},{"id":256,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"720e90c29ddd88a8633c9d31ce443b5e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/security/TokenService.java","gmt_create":"2026-08-01T11:59:11.2934203+08:00","gmt_modified":"2026-08-01T11:59:11.2934203+08:00"},{"id":257,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"c612f590645fb36de9e13767f1c81a0c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/client/DingTalkAuthClient.java","gmt_create":"2026-08-01T11:59:11.2939416+08:00","gmt_modified":"2026-08-01T11:59:11.2939416+08:00"},{"id":258,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"21067ee0ba0180f2b8514173343f7b0d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/client/ThirdPartyAuthClient.java","gmt_create":"2026-08-01T11:59:11.2939416+08:00","gmt_modified":"2026-08-01T11:59:11.2939416+08:00"},{"id":259,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"86622c8fa2eab6b1847927d47d77b7fd","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/client/ThirdPartyAuthClientFactory.java","gmt_create":"2026-08-01T11:59:11.2944559+08:00","gmt_modified":"2026-08-01T11:59:11.2944559+08:00"},{"id":260,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"b60764213680af3c984d82f4146db2df","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/client/ThirdPartyUserInfo.java","gmt_create":"2026-08-01T11:59:11.2944559+08:00","gmt_modified":"2026-08-01T11:59:11.2944559+08:00"},{"id":261,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"7179946069c5d0654ca49cca77eaaedb","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/impl/AuthIdentityServiceImpl.java","gmt_create":"2026-08-01T11:59:11.294971+08:00","gmt_modified":"2026-08-01T11:59:11.294971+08:00"},{"id":262,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"5725c122fbf467925192bf42403e7787","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/impl/AuthServiceImpl.java","gmt_create":"2026-08-01T11:59:11.294971+08:00","gmt_modified":"2026-08-01T11:59:11.294971+08:00"},{"id":263,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"b95e6a3c690ffd8ed16d2d4163a5c648","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/impl/AuthUserServiceImpl.java","gmt_create":"2026-08-01T11:59:11.2954853+08:00","gmt_modified":"2026-08-01T11:59:11.2954853+08:00"},{"id":264,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"f9926a70a628c5e92f0d239030b13f71","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/impl/PermissionServiceImpl.java","gmt_create":"2026-08-01T11:59:11.2960069+08:00","gmt_modified":"2026-08-01T11:59:11.2960069+08:00"},{"id":265,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"887492aa11700fd0984b91d5fa1cf130","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/impl/SysDeptServiceImpl.java","gmt_create":"2026-08-01T11:59:11.2960069+08:00","gmt_modified":"2026-08-01T11:59:11.2960069+08:00"},{"id":266,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"ad239f5e0129b57722497e4051492302","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/impl/SysMenuServiceImpl.java","gmt_create":"2026-08-01T11:59:11.2965212+08:00","gmt_modified":"2026-08-01T11:59:11.2965212+08:00"},{"id":267,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"435000e19b9da20904d5764f4f2352c5","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/impl/SysRoleServiceImpl.java","gmt_create":"2026-08-01T11:59:11.2965212+08:00","gmt_modified":"2026-08-01T11:59:11.2965212+08:00"},{"id":268,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"5b91363610bf599cc013882938cf595a","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/DeptTreeCache.java","gmt_create":"2026-08-01T11:59:11.2970547+08:00","gmt_modified":"2026-08-01T11:59:11.2970547+08:00"},{"id":269,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"13f3009ef2305ed0a42d5528886e20bb","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/IAuthIdentityService.java","gmt_create":"2026-08-01T11:59:11.2970547+08:00","gmt_modified":"2026-08-01T11:59:11.2970547+08:00"},{"id":270,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"cff6e76ddd2bdf3e405ed171c279d307","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/IAuthService.java","gmt_create":"2026-08-01T11:59:11.2975674+08:00","gmt_modified":"2026-08-01T11:59:11.2975674+08:00"},{"id":271,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"47982a158ab256486f73c409c57d16fb","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/IAuthUserService.java","gmt_create":"2026-08-01T11:59:11.2975674+08:00","gmt_modified":"2026-08-01T11:59:11.2975674+08:00"},{"id":272,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"db36768510c04fba9ecddbaac9538997","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/ISysDept.java","gmt_create":"2026-08-01T11:59:11.2980838+08:00","gmt_modified":"2026-08-01T11:59:11.2980838+08:00"},{"id":273,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"3259a2ba7196998a24118782cceeecee","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/ISysMenuService.java","gmt_create":"2026-08-01T11:59:11.2980838+08:00","gmt_modified":"2026-08-01T11:59:11.2980838+08:00"},{"id":274,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"8a7bb9534d7381df886b1a476664b902","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/ISysRoleService.java","gmt_create":"2026-08-01T11:59:11.2985966+08:00","gmt_modified":"2026-08-01T11:59:11.2985966+08:00"},{"id":275,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"219bfc88fc6b98fdc50a57b641262250","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/advice/GlobalExceptionHandlerAdvice.java","gmt_create":"2026-08-01T11:59:11.2985966+08:00","gmt_modified":"2026-08-01T11:59:11.2985966+08:00"},{"id":276,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"485d0b6edfad127744af104bc2fccdec","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/annotation/DataScope.java","gmt_create":"2026-08-01T11:59:11.2991056+08:00","gmt_modified":"2026-08-01T11:59:11.2991056+08:00"},{"id":277,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"949d7f85b20c96ff625551608a0a3453","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/config/CorsConfig.java","gmt_create":"2026-08-01T11:59:11.2991056+08:00","gmt_modified":"2026-08-01T11:59:11.2991056+08:00"},{"id":278,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"624d3c748c2d1b470b26409fbb19c4d3","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/config/CrmSqlInjector.java","gmt_create":"2026-08-01T11:59:11.2996108+08:00","gmt_modified":"2026-08-01T11:59:11.2996108+08:00"},{"id":279,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"5fcea73039602b38183b915b5b7efc58","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/config/CustomIdGenerator.java","gmt_create":"2026-08-01T11:59:11.29963+08:00","gmt_modified":"2026-08-01T11:59:11.29963+08:00"},{"id":280,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"ebcc9c2bbb50f1c9b34c399e554d5c61","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/config/InsertBatchOnDuplicateKeyUpdate.java","gmt_create":"2026-08-01T11:59:11.3001667+08:00","gmt_modified":"2026-08-01T11:59:11.3001667+08:00"},{"id":281,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"3c0d2201fb5a98ad1624e8361edfcfe5","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/config/JacksonConfig.java","gmt_create":"2026-08-01T11:59:11.300686+08:00","gmt_modified":"2026-08-01T11:59:11.300686+08:00"},{"id":282,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"1e30fd946317cf4ca3d53f1ca7e05c0b","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/config/Knife4jConfig.java","gmt_create":"2026-08-01T11:59:11.300686+08:00","gmt_modified":"2026-08-01T11:59:11.300686+08:00"},{"id":283,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"ae79ce740680fd6655ac6de67b002373","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/config/MetaObjectFillHandler.java","gmt_create":"2026-08-01T11:59:11.3012119+08:00","gmt_modified":"2026-08-01T11:59:11.3012119+08:00"},{"id":284,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"4d7cd4ecb0ac6a08ab02c260a8558b2c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/config/MybatisPlusConfig.java","gmt_create":"2026-08-01T11:59:11.3012119+08:00","gmt_modified":"2026-08-01T11:59:11.3012119+08:00"},{"id":285,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"8f361aaf831f559241b15bd521ea5cd1","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/config/RedisConfig.java","gmt_create":"2026-08-01T11:59:11.3017229+08:00","gmt_modified":"2026-08-01T11:59:11.3017229+08:00"},{"id":286,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"3204c0be957891dd9b878beed284f4a4","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/config/ScheduledTaskProperties.java","gmt_create":"2026-08-01T11:59:11.3017229+08:00","gmt_modified":"2026-08-01T11:59:11.3017229+08:00"},{"id":287,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"8fd30f11d13534f235ad5b9fc9490d81","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/config/SnowflakeIdWorker.java","gmt_create":"2026-08-01T11:59:11.3017229+08:00","gmt_modified":"2026-08-01T11:59:11.3017229+08:00"},{"id":288,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"2b45935169fba417d684e0abc8328c9f","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/config/SnowflakeProperties.java","gmt_create":"2026-08-01T11:59:11.3022464+08:00","gmt_modified":"2026-08-01T11:59:11.3022464+08:00"},{"id":289,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"8dcd729e9a78010df52450fe62cc67b2","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/constant/CommonConstants.java","gmt_create":"2026-08-01T11:59:11.3022464+08:00","gmt_modified":"2026-08-01T11:59:11.3022464+08:00"},{"id":290,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"34e7e1e31cc014e8ab3104acc807cc73","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/domain/dto/BaseDTO.java","gmt_create":"2026-08-01T11:59:11.30275+08:00","gmt_modified":"2026-08-01T11:59:11.30275+08:00"},{"id":291,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"7a809dc905a15b19452162b602354d4f","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/domain/entity/BaseEntity.java","gmt_create":"2026-08-01T11:59:11.3028129+08:00","gmt_modified":"2026-08-01T11:59:11.3028129+08:00"},{"id":292,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"4df2448146189cb35695461c4efeeef7","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/domain/entity/OwnedEntity.java","gmt_create":"2026-08-01T11:59:11.3028129+08:00","gmt_modified":"2026-08-01T11:59:11.3028129+08:00"},{"id":293,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"45f8c9e51de204a6ce44b7b414bf967f","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/domain/enums/HasValueEnum.java","gmt_create":"2026-08-01T11:59:11.3033277+08:00","gmt_modified":"2026-08-01T11:59:11.3033277+08:00"},{"id":294,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"b085262ba4ef8a02893410a0018a27ff","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/domain/enums/StatusEnum.java","gmt_create":"2026-08-01T11:59:11.3038427+08:00","gmt_modified":"2026-08-01T11:59:11.3038427+08:00"},{"id":295,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"78f9a7cfb354a1eb9744378aeb898070","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/domain/exception/BusinessErrorException.java","gmt_create":"2026-08-01T11:59:11.3038427+08:00","gmt_modified":"2026-08-01T11:59:11.3038427+08:00"},{"id":296,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"552d2164b5a76f113724b37692c9a8ad","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/domain/exception/MissingParameterException.java","gmt_create":"2026-08-01T11:59:11.3038427+08:00","gmt_modified":"2026-08-01T11:59:11.3038427+08:00"},{"id":297,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"3d2db44a848dd979c85d02227c0860f1","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/domain/exception/PermissionErrorException.java","gmt_create":"2026-08-01T11:59:11.3043641+08:00","gmt_modified":"2026-08-01T11:59:11.3043641+08:00"},{"id":298,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"a769abcb464b3fed3c877eaaa18bb7ea","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/domain/exception/ResourceNotExistException.java","gmt_create":"2026-08-01T11:59:11.3043641+08:00","gmt_modified":"2026-08-01T11:59:11.3043641+08:00"},{"id":299,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"f77483962ff198e16f41554c6e1ceb39","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/domain/param/BaseParam.java","gmt_create":"2026-08-01T11:59:11.3048759+08:00","gmt_modified":"2026-08-01T11:59:11.3048759+08:00"},{"id":300,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"839aaee42fad8c788d762040f926c7cf","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/domain/result/PageResult.java","gmt_create":"2026-08-01T11:59:11.3048759+08:00","gmt_modified":"2026-08-01T11:59:11.3048759+08:00"},{"id":301,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"fbcc9319095d04d42cae2a4126d632cc","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/domain/result/Result.java","gmt_create":"2026-08-01T11:59:11.3048759+08:00","gmt_modified":"2026-08-01T11:59:11.3048759+08:00"},{"id":302,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"71737ec08030f7f53dcba1d13a65df12","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/domain/result/ResultCodeEnum.java","gmt_create":"2026-08-01T11:59:11.30539+08:00","gmt_modified":"2026-08-01T11:59:11.30539+08:00"},{"id":303,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"3a8892389711d1a68ff854bc23bc39c2","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/filter/TraceIdFilter.java","gmt_create":"2026-08-01T11:59:11.30539+08:00","gmt_modified":"2026-08-01T11:59:11.30539+08:00"},{"id":304,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"c4daef7910e2cd6aaaae07759d897d03","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/mapper/CrmBaseMapper.java","gmt_create":"2026-08-01T11:59:11.3059013+08:00","gmt_modified":"2026-08-01T11:59:11.3059013+08:00"},{"id":305,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"9618beabcede2e839e6dedf9121f30d7","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/security/DataOwnership.java","gmt_create":"2026-08-01T11:59:11.3059013+08:00","gmt_modified":"2026-08-01T11:59:11.3059013+08:00"},{"id":306,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"33650500053c4035f9b41cc603ec7177","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/security/DataScopeHelper.java","gmt_create":"2026-08-01T11:59:11.3059013+08:00","gmt_modified":"2026-08-01T11:59:11.3059013+08:00"},{"id":307,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"3c80766c0fa9dab148e4f57f2843c3fb","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/security/DataScopeLevel.java","gmt_create":"2026-08-01T11:59:11.3064235+08:00","gmt_modified":"2026-08-01T11:59:11.3064235+08:00"},{"id":308,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"7f1c91eeb163925e7598ee1fa3808178","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/security/DataVisibilityContext.java","gmt_create":"2026-08-01T11:59:11.3064235+08:00","gmt_modified":"2026-08-01T11:59:11.3064235+08:00"},{"id":309,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"dc053fd228077fc0cfbe0b6f895efff0","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/security/LoginUser.java","gmt_create":"2026-08-01T11:59:11.3069375+08:00","gmt_modified":"2026-08-01T11:59:11.3069375+08:00"},{"id":310,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"594e46f4067bf5c53e0e58dd1cb1142f","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/security/SecurityUtils.java","gmt_create":"2026-08-01T11:59:11.3069375+08:00","gmt_modified":"2026-08-01T11:59:11.3069375+08:00"},{"id":311,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"4bbbc2f3c27f80699526357490785390","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/service/impl/BaseServiceImpl.java","gmt_create":"2026-08-01T11:59:11.3074611+08:00","gmt_modified":"2026-08-01T11:59:11.3074611+08:00"},{"id":312,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"206da08c92480415f9750a64c534d171","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/service/IBaseService.java","gmt_create":"2026-08-01T11:59:11.3074611+08:00","gmt_modified":"2026-08-01T11:59:11.3074611+08:00"},{"id":313,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"83821a36e4f3e52f5bffc50e24952e99","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/utils/AssertUtils.java","gmt_create":"2026-08-01T11:59:11.307974+08:00","gmt_modified":"2026-08-01T11:59:11.307974+08:00"},{"id":314,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"0515f235f6ec8e32043a3b870d857764","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/utils/BeanCopyUtils.java","gmt_create":"2026-08-01T11:59:11.307974+08:00","gmt_modified":"2026-08-01T11:59:11.307974+08:00"},{"id":315,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"95896bcd7ccff7717a67f499bc3bbc03","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/utils/EnumUtils.java","gmt_create":"2026-08-01T11:59:11.307974+08:00","gmt_modified":"2026-08-01T11:59:11.307974+08:00"},{"id":316,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"7421afce22638e3b1ee9594dcf7236bb","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/utils/ExcelUtil.java","gmt_create":"2026-08-01T11:59:11.3084871+08:00","gmt_modified":"2026-08-01T11:59:11.3084871+08:00"},{"id":317,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"7f4bc54539c21a1d994bbbabe2868f2e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/utils/PageConverter.java","gmt_create":"2026-08-01T11:59:11.3084871+08:00","gmt_modified":"2026-08-01T11:59:11.3084871+08:00"},{"id":318,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"7c89e571969f40758206506fdf19649f","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/utils/ServletUtils.java","gmt_create":"2026-08-01T11:59:11.3089935+08:00","gmt_modified":"2026-08-01T11:59:11.3089935+08:00"},{"id":319,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"53e5a23ce2cd9f508b08b6e1eb290542","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/utils/TreeUtils.java","gmt_create":"2026-08-01T11:59:11.3089935+08:00","gmt_modified":"2026-08-01T11:59:11.3089935+08:00"},{"id":320,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"8813519db2ec8d3788102bcc7d1f19bc","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: crm-app/src/main/java/com/crm/app/CrmAppApplication.java#1-200","gmt_create":"2026-08-01T11:59:11.3089935+08:00","gmt_modified":"2026-08-01T11:59:11.3089935+08:00"},{"id":321,"source_id":"9f120716e7b0381e045c66412550d1a9","target_id":"8813519db2ec8d3788102bcc7d1f19bc","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-200","gmt_create":"2026-08-01T11:59:11.3095138+08:00","gmt_modified":"2026-08-01T11:59:11.3095138+08:00"},{"id":322,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"3fa8c5117e3c0c5c18c29826dc404c80","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: crm-auth/src/main/java/com/crm/auth/AuthApplication.java#1-200","gmt_create":"2026-08-01T11:59:11.3100275+08:00","gmt_modified":"2026-08-01T11:59:11.3100275+08:00"},{"id":323,"source_id":"ec731c3e8b12fffc7e23eb4ecd950b53","target_id":"3fa8c5117e3c0c5c18c29826dc404c80","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-200","gmt_create":"2026-08-01T11:59:11.3100275+08:00","gmt_modified":"2026-08-01T11:59:11.3100275+08:00"},{"id":324,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"d08cb0ea7e38d4900671b643422d5ad7","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: crm-auth/src/main/java/com/crm/auth/domain/entity/SysRole.java#1-200","gmt_create":"2026-08-01T11:59:11.3105431+08:00","gmt_modified":"2026-08-01T11:59:11.3105431+08:00"},{"id":325,"source_id":"5da86b8d801192fd63ea6aa57b666057","target_id":"d08cb0ea7e38d4900671b643422d5ad7","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-200","gmt_create":"2026-08-01T11:59:11.3105431+08:00","gmt_modified":"2026-08-01T11:59:11.3105431+08:00"},{"id":326,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"a5b530b2374acc884aa38fa2a38818b2","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: crm-auth/src/main/java/com/crm/auth/domain/entity/SysMenu.java#1-200","gmt_create":"2026-08-01T11:59:11.3105431+08:00","gmt_modified":"2026-08-01T11:59:11.3105431+08:00"},{"id":327,"source_id":"26cb8256b5c728bdc24b532313d3a166","target_id":"a5b530b2374acc884aa38fa2a38818b2","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-200","gmt_create":"2026-08-01T11:59:11.3110544+08:00","gmt_modified":"2026-08-01T11:59:11.3110544+08:00"},{"id":328,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"356a1716308638ff71e5f09f64fd1cd3","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: crm-auth/src/main/java/com/crm/auth/domain/entity/SysUserRole.java#1-200","gmt_create":"2026-08-01T11:59:11.3110544+08:00","gmt_modified":"2026-08-01T11:59:11.3110544+08:00"},{"id":329,"source_id":"aea6b84411302cc9a5fbcaf774ac6a29","target_id":"356a1716308638ff71e5f09f64fd1cd3","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-200","gmt_create":"2026-08-01T11:59:11.3110544+08:00","gmt_modified":"2026-08-01T11:59:11.3110544+08:00"},{"id":330,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"28f6dcd948c2cff2f329ab3bbf4c5e06","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: crm-auth/src/main/java/com/crm/auth/domain/entity/SysRoleMenu.java#1-200","gmt_create":"2026-08-01T11:59:11.3120464+08:00","gmt_modified":"2026-08-01T11:59:11.3120464+08:00"},{"id":331,"source_id":"20f7693b186c4e003d04031dafd605b5","target_id":"28f6dcd948c2cff2f329ab3bbf4c5e06","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-200","gmt_create":"2026-08-01T11:59:11.3120464+08:00","gmt_modified":"2026-08-01T11:59:11.3120464+08:00"},{"id":332,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"a302758d59394067216d751ebb661f5e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: crm-auth/src/main/java/com/crm/auth/domain/entity/SysDept.java#1-200","gmt_create":"2026-08-01T11:59:11.3120464+08:00","gmt_modified":"2026-08-01T11:59:11.3120464+08:00"},{"id":333,"source_id":"e1f225cc9efe7384e97ee284b89eabc0","target_id":"a302758d59394067216d751ebb661f5e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-200","gmt_create":"2026-08-01T11:59:11.3120464+08:00","gmt_modified":"2026-08-01T11:59:11.3120464+08:00"},{"id":334,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"353fced7452ae984d04aedecaaee5ab4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: crm-auth/src/main/java/com/crm/auth/domain/entity/SysUserDept.java#1-200","gmt_create":"2026-08-01T11:59:11.313045+08:00","gmt_modified":"2026-08-01T11:59:11.313045+08:00"},{"id":335,"source_id":"8fa19465d23be26b999639add960b23d","target_id":"353fced7452ae984d04aedecaaee5ab4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-200","gmt_create":"2026-08-01T11:59:11.313045+08:00","gmt_modified":"2026-08-01T11:59:11.313045+08:00"},{"id":336,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"6482a0415c4c01dfd3196a91192fb7ca","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: crm-auth/src/main/java/com/crm/auth/service/impl/PermissionServiceImpl.java#1-200","gmt_create":"2026-08-01T11:59:11.313045+08:00","gmt_modified":"2026-08-01T11:59:11.313045+08:00"},{"id":337,"source_id":"f9926a70a628c5e92f0d239030b13f71","target_id":"6482a0415c4c01dfd3196a91192fb7ca","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-200","gmt_create":"2026-08-01T11:59:11.3135604+08:00","gmt_modified":"2026-08-01T11:59:11.3135604+08:00"},{"id":338,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"5802bf27629a4700e1fad48a339eab95","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: crm-auth/src/main/java/com/crm/auth/service/impl/SysRoleServiceImpl.java#1-200","gmt_create":"2026-08-01T11:59:11.3135604+08:00","gmt_modified":"2026-08-01T11:59:11.3135604+08:00"},{"id":339,"source_id":"435000e19b9da20904d5764f4f2352c5","target_id":"5802bf27629a4700e1fad48a339eab95","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-200","gmt_create":"2026-08-01T11:59:11.3135604+08:00","gmt_modified":"2026-08-01T11:59:11.3135604+08:00"},{"id":340,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"ebfb395550c37ba4027584bbf2fd76ed","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: crm-auth/src/main/java/com/crm/auth/service/impl/SysMenuServiceImpl.java#1-200","gmt_create":"2026-08-01T11:59:11.3135604+08:00","gmt_modified":"2026-08-01T11:59:11.3135604+08:00"},{"id":341,"source_id":"ad239f5e0129b57722497e4051492302","target_id":"ebfb395550c37ba4027584bbf2fd76ed","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-200","gmt_create":"2026-08-01T11:59:11.3145481+08:00","gmt_modified":"2026-08-01T11:59:11.3145481+08:00"},{"id":342,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"78733cea63a5784d74c82bdf50e7b713","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: crm-auth/src/main/java/com/crm/auth/config/SecurityConfig.java#1-200","gmt_create":"2026-08-01T11:59:11.3145481+08:00","gmt_modified":"2026-08-01T11:59:11.3145481+08:00"},{"id":343,"source_id":"6d19e7c47ad418f3577ff8cfcd56590f","target_id":"78733cea63a5784d74c82bdf50e7b713","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-200","gmt_create":"2026-08-01T11:59:11.3145481+08:00","gmt_modified":"2026-08-01T11:59:11.3145481+08:00"},{"id":344,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"72a034c4f1317ca49826baf8790a4c2e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: crm-auth/src/main/java/com/crm/auth/security/JwtAuthenticationFilter.java#1-200","gmt_create":"2026-08-01T11:59:11.3145481+08:00","gmt_modified":"2026-08-01T11:59:11.3145481+08:00"},{"id":345,"source_id":"10a536bc357c7840a6eec61b40741915","target_id":"72a034c4f1317ca49826baf8790a4c2e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-200","gmt_create":"2026-08-01T11:59:11.3155453+08:00","gmt_modified":"2026-08-01T11:59:11.3155453+08:00"},{"id":346,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"7799b89815bb4f06dd5caa2b3bd5568c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: crm-auth/src/main/java/com/crm/auth/security/DataScopeInterceptor.java#1-200","gmt_create":"2026-08-01T11:59:11.3155453+08:00","gmt_modified":"2026-08-01T11:59:11.3155453+08:00"},{"id":347,"source_id":"ef98104ba47dd7d33624e1916c0694cd","target_id":"7799b89815bb4f06dd5caa2b3bd5568c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-200","gmt_create":"2026-08-01T11:59:11.3446751+08:00","gmt_modified":"2026-08-01T11:59:11.3446751+08:00"},{"id":348,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"bb259727923efab26488eca0b1f201e0","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: crm-auth/src/main/java/com/crm/auth/security/DataScopeTables.java#1-200","gmt_create":"2026-08-01T11:59:11.3467562+08:00","gmt_modified":"2026-08-01T11:59:11.3467562+08:00"},{"id":349,"source_id":"d862f2c63fd9e0f48ad1badc1a6d9e1e","target_id":"bb259727923efab26488eca0b1f201e0","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-200","gmt_create":"2026-08-01T11:59:11.3467562+08:00","gmt_modified":"2026-08-01T11:59:11.3467562+08:00"},{"id":350,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"626400c1d41e3b48d2a8e30ee87562fa","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: crm-auth/src/main/java/com/crm/auth/security/AuthLoginUser.java#1-200","gmt_create":"2026-08-01T11:59:11.3472773+08:00","gmt_modified":"2026-08-01T11:59:11.3472773+08:00"},{"id":351,"source_id":"9b38bcfac9c3a14d74c16429d22380fd","target_id":"626400c1d41e3b48d2a8e30ee87562fa","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-200","gmt_create":"2026-08-01T11:59:11.347794+08:00","gmt_modified":"2026-08-01T11:59:11.347794+08:00"},{"id":352,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"df096476d97c54172c5839a266e46867","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: crm-auth/src/main/java/com/crm/auth/security/TokenService.java#1-200","gmt_create":"2026-08-01T11:59:11.3483518+08:00","gmt_modified":"2026-08-01T11:59:11.3483518+08:00"},{"id":353,"source_id":"720e90c29ddd88a8633c9d31ce443b5e","target_id":"df096476d97c54172c5839a266e46867","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-200","gmt_create":"2026-08-01T11:59:11.3488625+08:00","gmt_modified":"2026-08-01T11:59:11.3488625+08:00"},{"id":354,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"8629bee3416a369162b306881e5bf5d0","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: crm-auth/src/main/java/com/crm/auth/domain/enums/DataScopeEnum.java#1-200","gmt_create":"2026-08-01T11:59:11.3488625+08:00","gmt_modified":"2026-08-01T11:59:11.3488625+08:00"},{"id":355,"source_id":"5be8fe765c8b4c953e524cdf749f440b","target_id":"8629bee3416a369162b306881e5bf5d0","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-200","gmt_create":"2026-08-01T11:59:11.3493885+08:00","gmt_modified":"2026-08-01T11:59:11.3493885+08:00"},{"id":356,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"a807bda309df8f0aa0cf90bbf4c0afd4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: crm-base/src/main/java/com/crm/base/annotation/DataScope.java#1-200","gmt_create":"2026-08-01T11:59:11.3499089+08:00","gmt_modified":"2026-08-01T11:59:11.3499089+08:00"},{"id":357,"source_id":"485d0b6edfad127744af104bc2fccdec","target_id":"a807bda309df8f0aa0cf90bbf4c0afd4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-200","gmt_create":"2026-08-01T11:59:11.3499089+08:00","gmt_modified":"2026-08-01T11:59:11.3499089+08:00"},{"id":358,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"cd7e601b4125b471cf816bcec228b752","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: crm-base/src/main/java/com/crm/base/security/DataScopeHelper.java#1-200","gmt_create":"2026-08-01T11:59:11.3504258+08:00","gmt_modified":"2026-08-01T11:59:11.3504258+08:00"},{"id":359,"source_id":"33650500053c4035f9b41cc603ec7177","target_id":"cd7e601b4125b471cf816bcec228b752","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-200","gmt_create":"2026-08-01T11:59:11.3509514+08:00","gmt_modified":"2026-08-01T11:59:11.3509514+08:00"},{"id":360,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"eb168003b2929c81d3cf503a3ae9e8c9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: crm-base/src/main/java/com/crm/base/security/DataVisibilityContext.java#1-200","gmt_create":"2026-08-01T11:59:11.3514544+08:00","gmt_modified":"2026-08-01T11:59:11.3514544+08:00"},{"id":361,"source_id":"7f1c91eeb163925e7598ee1fa3808178","target_id":"eb168003b2929c81d3cf503a3ae9e8c9","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-200","gmt_create":"2026-08-01T11:59:11.3514821+08:00","gmt_modified":"2026-08-01T11:59:11.3514821+08:00"},{"id":362,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"faf664190fd4a09ddb120b40bf445a54","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: crm-base/src/main/java/com/crm/base/config/CrmSqlInjector.java#1-200","gmt_create":"2026-08-01T11:59:11.3556211+08:00","gmt_modified":"2026-08-01T11:59:11.3556211+08:00"},{"id":363,"source_id":"624d3c748c2d1b470b26409fbb19c4d3","target_id":"faf664190fd4a09ddb120b40bf445a54","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-200","gmt_create":"2026-08-01T11:59:11.3556211+08:00","gmt_modified":"2026-08-01T11:59:11.3556211+08:00"},{"id":364,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"0b81c5221d14e935e18bc19956fe502f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: crm-auth/src/main/java/com/crm/auth/config/PermissionConfig.java#1-200","gmt_create":"2026-08-01T11:59:11.3592491+08:00","gmt_modified":"2026-08-01T11:59:11.3592491+08:00"},{"id":365,"source_id":"979b533c66100f0a3f79f7542e2b01e0","target_id":"0b81c5221d14e935e18bc19956fe502f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-200","gmt_create":"2026-08-01T11:59:11.359765+08:00","gmt_modified":"2026-08-01T11:59:11.359765+08:00"},{"id":366,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"21915525255d4fef3daeb8643a5bae4c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: crm-auth/src/main/java/com/crm/auth/config/DataInitializer.java#1-200","gmt_create":"2026-08-01T11:59:11.3602816+08:00","gmt_modified":"2026-08-01T11:59:11.3602816+08:00"},{"id":367,"source_id":"4194d46035c0037d3488ab82e57001ba","target_id":"21915525255d4fef3daeb8643a5bae4c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-200","gmt_create":"2026-08-01T11:59:11.360796+08:00","gmt_modified":"2026-08-01T11:59:11.360796+08:00"},{"id":368,"source_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","target_id":"7c974ab041f6a9430c3be1c39833b929","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: crm-base/src/main/java/com/crm/base/advice/GlobalExceptionHandlerAdvice.java#1-200","gmt_create":"2026-08-01T11:59:11.3620032+08:00","gmt_modified":"2026-08-01T11:59:11.3620032+08:00"},{"id":369,"source_id":"219bfc88fc6b98fdc50a57b641262250","target_id":"7c974ab041f6a9430c3be1c39833b929","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-200","gmt_create":"2026-08-01T11:59:11.3620032+08:00","gmt_modified":"2026-08-01T11:59:11.3620032+08:00"},{"id":370,"source_id":"d076a6b7-0b4d-4684-9fd8-4a8d28601f9e","target_id":"91569422a8bc25dfd346718b1de8212c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/entity/AuthUser.java","gmt_create":"2026-08-01T11:59:25.4024052+08:00","gmt_modified":"2026-08-01T11:59:25.4024052+08:00"},{"id":371,"source_id":"d076a6b7-0b4d-4684-9fd8-4a8d28601f9e","target_id":"5da86b8d801192fd63ea6aa57b666057","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/entity/SysRole.java","gmt_create":"2026-08-01T11:59:25.4045905+08:00","gmt_modified":"2026-08-01T11:59:25.4045905+08:00"},{"id":372,"source_id":"d076a6b7-0b4d-4684-9fd8-4a8d28601f9e","target_id":"e1f225cc9efe7384e97ee284b89eabc0","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/entity/SysDept.java","gmt_create":"2026-08-01T11:59:25.4049602+08:00","gmt_modified":"2026-08-01T11:59:25.4049602+08:00"},{"id":373,"source_id":"d076a6b7-0b4d-4684-9fd8-4a8d28601f9e","target_id":"aea6b84411302cc9a5fbcaf774ac6a29","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/entity/SysUserRole.java","gmt_create":"2026-08-01T11:59:25.4049602+08:00","gmt_modified":"2026-08-01T11:59:25.4049602+08:00"},{"id":374,"source_id":"d076a6b7-0b4d-4684-9fd8-4a8d28601f9e","target_id":"8fa19465d23be26b999639add960b23d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/entity/SysUserDept.java","gmt_create":"2026-08-01T11:59:25.4054829+08:00","gmt_modified":"2026-08-01T11:59:25.4054829+08:00"},{"id":375,"source_id":"d076a6b7-0b4d-4684-9fd8-4a8d28601f9e","target_id":"283041ef298919fe536ac20fad579c0a","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/mapper/AuthUserMapper.java","gmt_create":"2026-08-01T11:59:25.406004+08:00","gmt_modified":"2026-08-01T11:59:25.406004+08:00"},{"id":376,"source_id":"d076a6b7-0b4d-4684-9fd8-4a8d28601f9e","target_id":"30ac7fd632012faca8156feaa071ff46","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/mapper/SysUserRoleMapper.java","gmt_create":"2026-08-01T11:59:25.406004+08:00","gmt_modified":"2026-08-01T11:59:25.406004+08:00"},{"id":377,"source_id":"d076a6b7-0b4d-4684-9fd8-4a8d28601f9e","target_id":"28e5eef69286d763453cf31a32070685","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/mapper/SysUserDeptMapper.java","gmt_create":"2026-08-01T11:59:25.4065204+08:00","gmt_modified":"2026-08-01T11:59:25.4065204+08:00"},{"id":378,"source_id":"d076a6b7-0b4d-4684-9fd8-4a8d28601f9e","target_id":"47982a158ab256486f73c409c57d16fb","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/IAuthUserService.java","gmt_create":"2026-08-01T11:59:25.4065204+08:00","gmt_modified":"2026-08-01T11:59:25.4065204+08:00"},{"id":379,"source_id":"d076a6b7-0b4d-4684-9fd8-4a8d28601f9e","target_id":"b95e6a3c690ffd8ed16d2d4163a5c648","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/impl/AuthUserServiceImpl.java","gmt_create":"2026-08-01T11:59:25.4065204+08:00","gmt_modified":"2026-08-01T11:59:25.4065204+08:00"},{"id":380,"source_id":"d076a6b7-0b4d-4684-9fd8-4a8d28601f9e","target_id":"cff6e76ddd2bdf3e405ed171c279d307","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/IAuthService.java","gmt_create":"2026-08-01T11:59:25.4070336+08:00","gmt_modified":"2026-08-01T11:59:25.4070336+08:00"},{"id":381,"source_id":"d076a6b7-0b4d-4684-9fd8-4a8d28601f9e","target_id":"246da6901c21f063ab47e58aaebcdd3c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/controller/AuthController.java","gmt_create":"2026-08-01T11:59:25.4070336+08:00","gmt_modified":"2026-08-01T11:59:25.4070336+08:00"},{"id":382,"source_id":"d076a6b7-0b4d-4684-9fd8-4a8d28601f9e","target_id":"6d19e7c47ad418f3577ff8cfcd56590f","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/config/SecurityConfig.java","gmt_create":"2026-08-01T11:59:25.4075403+08:00","gmt_modified":"2026-08-01T11:59:25.4075403+08:00"},{"id":383,"source_id":"d076a6b7-0b4d-4684-9fd8-4a8d28601f9e","target_id":"720e90c29ddd88a8633c9d31ce443b5e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/security/TokenService.java","gmt_create":"2026-08-01T11:59:25.4075462+08:00","gmt_modified":"2026-08-01T11:59:25.4075462+08:00"},{"id":384,"source_id":"d076a6b7-0b4d-4684-9fd8-4a8d28601f9e","target_id":"ef98104ba47dd7d33624e1916c0694cd","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/security/DataScopeInterceptor.java","gmt_create":"2026-08-01T11:59:25.4075462+08:00","gmt_modified":"2026-08-01T11:59:25.4075462+08:00"},{"id":385,"source_id":"d076a6b7-0b4d-4684-9fd8-4a8d28601f9e","target_id":"7a809dc905a15b19452162b602354d4f","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/domain/entity/BaseEntity.java","gmt_create":"2026-08-01T11:59:25.4080569+08:00","gmt_modified":"2026-08-01T11:59:25.4080569+08:00"},{"id":386,"source_id":"d076a6b7-0b4d-4684-9fd8-4a8d28601f9e","target_id":"4df2448146189cb35695461c4efeeef7","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/domain/entity/OwnedEntity.java","gmt_create":"2026-08-01T11:59:25.4080569+08:00","gmt_modified":"2026-08-01T11:59:25.4080569+08:00"},{"id":387,"source_id":"d076a6b7-0b4d-4684-9fd8-4a8d28601f9e","target_id":"b085262ba4ef8a02893410a0018a27ff","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/domain/enums/StatusEnum.java","gmt_create":"2026-08-01T11:59:25.4080569+08:00","gmt_modified":"2026-08-01T11:59:25.4080569+08:00"},{"id":388,"source_id":"d076a6b7-0b4d-4684-9fd8-4a8d28601f9e","target_id":"fbcc9319095d04d42cae2a4126d632cc","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/domain/result/Result.java","gmt_create":"2026-08-01T11:59:25.4085671+08:00","gmt_modified":"2026-08-01T11:59:25.4085671+08:00"},{"id":389,"source_id":"d076a6b7-0b4d-4684-9fd8-4a8d28601f9e","target_id":"839aaee42fad8c788d762040f926c7cf","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/domain/result/PageResult.java","gmt_create":"2026-08-01T11:59:25.4085671+08:00","gmt_modified":"2026-08-01T11:59:25.4085671+08:00"},{"id":390,"source_id":"d076a6b7-0b4d-4684-9fd8-4a8d28601f9e","target_id":"7421afce22638e3b1ee9594dcf7236bb","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/utils/ExcelUtil.java","gmt_create":"2026-08-01T11:59:25.4085671+08:00","gmt_modified":"2026-08-01T11:59:25.4085671+08:00"},{"id":391,"source_id":"d076a6b7-0b4d-4684-9fd8-4a8d28601f9e","target_id":"2d521e834dd3215c45e67ea660ea37d6","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/config/CrmSqlInjector.java","gmt_create":"2026-08-01T11:59:25.409087+08:00","gmt_modified":"2026-08-01T11:59:25.409087+08:00"},{"id":392,"source_id":"d076a6b7-0b4d-4684-9fd8-4a8d28601f9e","target_id":"88ddb7568e428a630b28d5be85d8b98b","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/config/MybatisPlusConfig.java","gmt_create":"2026-08-01T11:59:25.409087+08:00","gmt_modified":"2026-08-01T11:59:25.409087+08:00"},{"id":393,"source_id":"d076a6b7-0b4d-4684-9fd8-4a8d28601f9e","target_id":"a03716c4989d9bdbacbbf1b52dcfad7c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/param/UserPageParam.java","gmt_create":"2026-08-01T11:59:25.409087+08:00","gmt_modified":"2026-08-01T11:59:25.409087+08:00"},{"id":394,"source_id":"d076a6b7-0b4d-4684-9fd8-4a8d28601f9e","target_id":"7d20c7c0818f8352b50774e1cac53e35","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/dto/UserListDTO.java","gmt_create":"2026-08-01T11:59:25.4096007+08:00","gmt_modified":"2026-08-01T11:59:25.4096007+08:00"},{"id":395,"source_id":"d076a6b7-0b4d-4684-9fd8-4a8d28601f9e","target_id":"08e1158e0e21c1d7974fd49513e51f18","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/dto/UserStatsVO.java","gmt_create":"2026-08-01T11:59:25.4096007+08:00","gmt_modified":"2026-08-01T11:59:25.4096007+08:00"},{"id":396,"source_id":"dce63e18-37d0-459b-9f80-0b22e0f89b2b","target_id":"d076a6b7-0b4d-4684-9fd8-4a8d28601f9e","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: dce63e18-37d0-459b-9f80-0b22e0f89b2b -\u003e d076a6b7-0b4d-4684-9fd8-4a8d28601f9e","gmt_create":"2026-08-01T12:01:57.512732+08:00","gmt_modified":"2026-08-01T12:01:57.512732+08:00"},{"id":398,"source_id":"3ac2b9bb-6133-44bc-bf03-6873b7a2c9b6","target_id":"246da6901c21f063ab47e58aaebcdd3c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/controller/AuthController.java","gmt_create":"2026-08-01T12:28:52.3698762+08:00","gmt_modified":"2026-08-01T12:28:52.3698762+08:00"},{"id":399,"source_id":"3ac2b9bb-6133-44bc-bf03-6873b7a2c9b6","target_id":"db5d3491fb45251456163d012a823f5d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/controller/SystemController.java","gmt_create":"2026-08-01T12:28:52.3698762+08:00","gmt_modified":"2026-08-01T12:28:52.3698762+08:00"},{"id":400,"source_id":"3ac2b9bb-6133-44bc-bf03-6873b7a2c9b6","target_id":"6d19e7c47ad418f3577ff8cfcd56590f","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/config/SecurityConfig.java","gmt_create":"2026-08-01T12:28:52.3703884+08:00","gmt_modified":"2026-08-01T12:28:52.3703884+08:00"},{"id":401,"source_id":"3ac2b9bb-6133-44bc-bf03-6873b7a2c9b6","target_id":"10a536bc357c7840a6eec61b40741915","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/security/JwtAuthenticationFilter.java","gmt_create":"2026-08-01T12:28:52.3703884+08:00","gmt_modified":"2026-08-01T12:28:52.3703884+08:00"},{"id":402,"source_id":"3ac2b9bb-6133-44bc-bf03-6873b7a2c9b6","target_id":"720e90c29ddd88a8633c9d31ce443b5e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/security/TokenService.java","gmt_create":"2026-08-01T12:28:52.3703884+08:00","gmt_modified":"2026-08-01T12:28:52.3703884+08:00"},{"id":403,"source_id":"3ac2b9bb-6133-44bc-bf03-6873b7a2c9b6","target_id":"0b3ed971f0f095d6e203ddde717574e9","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/param/LoginParam.java","gmt_create":"2026-08-01T12:28:52.3710219+08:00","gmt_modified":"2026-08-01T12:28:52.3710219+08:00"},{"id":404,"source_id":"3ac2b9bb-6133-44bc-bf03-6873b7a2c9b6","target_id":"a03716c4989d9bdbacbbf1b52dcfad7c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/param/UserPageParam.java","gmt_create":"2026-08-01T12:28:52.3710219+08:00","gmt_modified":"2026-08-01T12:28:52.3710219+08:00"},{"id":405,"source_id":"3ac2b9bb-6133-44bc-bf03-6873b7a2c9b6","target_id":"58507cf1cc358b2da45575d16c857d87","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/dto/LoginResultDTO.java","gmt_create":"2026-08-01T12:28:52.3715447+08:00","gmt_modified":"2026-08-01T12:28:52.3715447+08:00"},{"id":406,"source_id":"3ac2b9bb-6133-44bc-bf03-6873b7a2c9b6","target_id":"8cac10327042dbf538d05120f601aa48","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/dto/UserInfoDTO.java","gmt_create":"2026-08-01T12:28:52.3720771+08:00","gmt_modified":"2026-08-01T12:28:52.3720771+08:00"},{"id":407,"source_id":"3ac2b9bb-6133-44bc-bf03-6873b7a2c9b6","target_id":"7d20c7c0818f8352b50774e1cac53e35","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/dto/UserListDTO.java","gmt_create":"2026-08-01T12:28:52.3720771+08:00","gmt_modified":"2026-08-01T12:28:52.3720771+08:00"},{"id":408,"source_id":"3ac2b9bb-6133-44bc-bf03-6873b7a2c9b6","target_id":"08e1158e0e21c1d7974fd49513e51f18","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/dto/UserStatsVO.java","gmt_create":"2026-08-01T12:28:52.3725951+08:00","gmt_modified":"2026-08-01T12:28:52.3725951+08:00"},{"id":409,"source_id":"3ac2b9bb-6133-44bc-bf03-6873b7a2c9b6","target_id":"283041ef298919fe536ac20fad579c0a","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/mapper/AuthUserMapper.java","gmt_create":"2026-08-01T12:28:52.3725951+08:00","gmt_modified":"2026-08-01T12:28:52.3725951+08:00"},{"id":410,"source_id":"3ac2b9bb-6133-44bc-bf03-6873b7a2c9b6","target_id":"d9ade6309a688b79e49a87c991d5af6c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/mapper/AuthIdentityMapper.java","gmt_create":"2026-08-01T12:28:52.3725951+08:00","gmt_modified":"2026-08-01T12:28:52.3725951+08:00"},{"id":411,"source_id":"3ac2b9bb-6133-44bc-bf03-6873b7a2c9b6","target_id":"b95e6a3c690ffd8ed16d2d4163a5c648","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/impl/AuthUserServiceImpl.java","gmt_create":"2026-08-01T12:28:52.3731067+08:00","gmt_modified":"2026-08-01T12:28:52.3731067+08:00"},{"id":412,"source_id":"3ac2b9bb-6133-44bc-bf03-6873b7a2c9b6","target_id":"7179946069c5d0654ca49cca77eaaedb","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/impl/AuthIdentityServiceImpl.java","gmt_create":"2026-08-01T12:28:52.3731067+08:00","gmt_modified":"2026-08-01T12:28:52.3731067+08:00"},{"id":413,"source_id":"3ac2b9bb-6133-44bc-bf03-6873b7a2c9b6","target_id":"cff6e76ddd2bdf3e405ed171c279d307","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/IAuthService.java","gmt_create":"2026-08-01T12:28:52.3736171+08:00","gmt_modified":"2026-08-01T12:28:52.3736171+08:00"},{"id":414,"source_id":"3ac2b9bb-6133-44bc-bf03-6873b7a2c9b6","target_id":"47982a158ab256486f73c409c57d16fb","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/IAuthUserService.java","gmt_create":"2026-08-01T12:28:52.3736171+08:00","gmt_modified":"2026-08-01T12:28:52.3736171+08:00"},{"id":415,"source_id":"3ac2b9bb-6133-44bc-bf03-6873b7a2c9b6","target_id":"13f3009ef2305ed0a42d5528886e20bb","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/IAuthIdentityService.java","gmt_create":"2026-08-01T12:28:52.3736171+08:00","gmt_modified":"2026-08-01T12:28:52.3736171+08:00"},{"id":416,"source_id":"3ac2b9bb-6133-44bc-bf03-6873b7a2c9b6","target_id":"219bfc88fc6b98fdc50a57b641262250","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/advice/GlobalExceptionHandlerAdvice.java","gmt_create":"2026-08-01T12:28:52.3741272+08:00","gmt_modified":"2026-08-01T12:28:52.3741272+08:00"},{"id":417,"source_id":"3ac2b9bb-6133-44bc-bf03-6873b7a2c9b6","target_id":"fbcc9319095d04d42cae2a4126d632cc","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/domain/result/Result.java","gmt_create":"2026-08-01T12:28:52.3741272+08:00","gmt_modified":"2026-08-01T12:28:52.3741272+08:00"},{"id":418,"source_id":"3ac2b9bb-6133-44bc-bf03-6873b7a2c9b6","target_id":"71737ec08030f7f53dcba1d13a65df12","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/domain/result/ResultCodeEnum.java","gmt_create":"2026-08-01T12:28:52.3741272+08:00","gmt_modified":"2026-08-01T12:28:52.3741272+08:00"},{"id":419,"source_id":"3ac2b9bb-6133-44bc-bf03-6873b7a2c9b6","target_id":"78f9a7cfb354a1eb9744378aeb898070","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/domain/exception/BusinessErrorException.java","gmt_create":"2026-08-01T12:28:52.3746417+08:00","gmt_modified":"2026-08-01T12:28:52.3746417+08:00"},{"id":420,"source_id":"3ac2b9bb-6133-44bc-bf03-6873b7a2c9b6","target_id":"3d2db44a848dd979c85d02227c0860f1","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/domain/exception/PermissionErrorException.java","gmt_create":"2026-08-01T12:28:52.3746417+08:00","gmt_modified":"2026-08-01T12:28:52.3746417+08:00"},{"id":421,"source_id":"3ac2b9bb-6133-44bc-bf03-6873b7a2c9b6","target_id":"a769abcb464b3fed3c877eaaa18bb7ea","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/domain/exception/ResourceNotExistException.java","gmt_create":"2026-08-01T12:28:52.3751513+08:00","gmt_modified":"2026-08-01T12:28:52.3751513+08:00"},{"id":422,"source_id":"3ac2b9bb-6133-44bc-bf03-6873b7a2c9b6","target_id":"552d2164b5a76f113724b37692c9a8ad","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/domain/exception/MissingParameterException.java","gmt_create":"2026-08-01T12:28:52.3751513+08:00","gmt_modified":"2026-08-01T12:28:52.3751513+08:00"},{"id":423,"source_id":"3ac2b9bb-6133-44bc-bf03-6873b7a2c9b6","target_id":"ef98104ba47dd7d33624e1916c0694cd","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/security/DataScopeInterceptor.java","gmt_create":"2026-08-01T12:28:52.375661+08:00","gmt_modified":"2026-08-01T12:28:52.375661+08:00"},{"id":424,"source_id":"3ac2b9bb-6133-44bc-bf03-6873b7a2c9b6","target_id":"d862f2c63fd9e0f48ad1badc1a6d9e1e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/security/DataScopeTables.java","gmt_create":"2026-08-01T12:28:52.3992464+08:00","gmt_modified":"2026-08-01T12:28:52.3992464+08:00"},{"id":425,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"ec731c3e8b12fffc7e23eb4ecd950b53","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/AuthApplication.java","gmt_create":"2026-08-01T12:29:27.9969924+08:00","gmt_modified":"2026-08-01T12:29:27.9969924+08:00"},{"id":426,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"6d19e7c47ad418f3577ff8cfcd56590f","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/config/SecurityConfig.java","gmt_create":"2026-08-01T12:29:27.9975025+08:00","gmt_modified":"2026-08-01T12:29:27.9975025+08:00"},{"id":427,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"979b533c66100f0a3f79f7542e2b01e0","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/config/PermissionConfig.java","gmt_create":"2026-08-01T12:29:27.9975025+08:00","gmt_modified":"2026-08-01T12:29:27.9975025+08:00"},{"id":428,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"443f0876cabdd9ad127e648149869761","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/config/AuthProperties.java","gmt_create":"2026-08-01T12:29:27.9975025+08:00","gmt_modified":"2026-08-01T12:29:27.9975025+08:00"},{"id":429,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"4194d46035c0037d3488ab82e57001ba","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/config/DataInitializer.java","gmt_create":"2026-08-01T12:29:27.9980106+08:00","gmt_modified":"2026-08-01T12:29:27.9980106+08:00"},{"id":430,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"246da6901c21f063ab47e58aaebcdd3c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/controller/AuthController.java","gmt_create":"2026-08-01T12:29:27.9980106+08:00","gmt_modified":"2026-08-01T12:29:27.9980106+08:00"},{"id":431,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"db5d3491fb45251456163d012a823f5d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/controller/SystemController.java","gmt_create":"2026-08-01T12:29:27.9985276+08:00","gmt_modified":"2026-08-01T12:29:27.9985276+08:00"},{"id":432,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"10a536bc357c7840a6eec61b40741915","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/security/JwtAuthenticationFilter.java","gmt_create":"2026-08-01T12:29:27.9985276+08:00","gmt_modified":"2026-08-01T12:29:27.9985276+08:00"},{"id":433,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"720e90c29ddd88a8633c9d31ce443b5e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/security/TokenService.java","gmt_create":"2026-08-01T12:29:27.9985276+08:00","gmt_modified":"2026-08-01T12:29:27.9985276+08:00"},{"id":434,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"9b38bcfac9c3a14d74c16429d22380fd","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/security/AuthLoginUser.java","gmt_create":"2026-08-01T12:29:27.9990366+08:00","gmt_modified":"2026-08-01T12:29:27.9990366+08:00"},{"id":435,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"ef98104ba47dd7d33624e1916c0694cd","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/security/DataScopeInterceptor.java","gmt_create":"2026-08-01T12:29:27.9990366+08:00","gmt_modified":"2026-08-01T12:29:27.9990366+08:00"},{"id":436,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"d862f2c63fd9e0f48ad1badc1a6d9e1e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/security/DataScopeTables.java","gmt_create":"2026-08-01T12:29:27.9990366+08:00","gmt_modified":"2026-08-01T12:29:27.9990366+08:00"},{"id":437,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"03278a0623db482aec43e508d1268208","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/security/SecurityExceptionHandlers.java","gmt_create":"2026-08-01T12:29:27.9995445+08:00","gmt_modified":"2026-08-01T12:29:27.9995445+08:00"},{"id":438,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"cff6e76ddd2bdf3e405ed171c279d307","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/IAuthService.java","gmt_create":"2026-08-01T12:29:27.9995445+08:00","gmt_modified":"2026-08-01T12:29:27.9995445+08:00"},{"id":439,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"5725c122fbf467925192bf42403e7787","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/impl/AuthServiceImpl.java","gmt_create":"2026-08-01T12:29:27.9995445+08:00","gmt_modified":"2026-08-01T12:29:27.9995445+08:00"},{"id":440,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"47982a158ab256486f73c409c57d16fb","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/IAuthUserService.java","gmt_create":"2026-08-01T12:29:28.0000537+08:00","gmt_modified":"2026-08-01T12:29:28.0000537+08:00"},{"id":441,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"b95e6a3c690ffd8ed16d2d4163a5c648","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/impl/AuthUserServiceImpl.java","gmt_create":"2026-08-01T12:29:28.0000537+08:00","gmt_modified":"2026-08-01T12:29:28.0000537+08:00"},{"id":442,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"13f3009ef2305ed0a42d5528886e20bb","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/IAuthIdentityService.java","gmt_create":"2026-08-01T12:29:28.0000537+08:00","gmt_modified":"2026-08-01T12:29:28.0000537+08:00"},{"id":443,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"7179946069c5d0654ca49cca77eaaedb","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/impl/AuthIdentityServiceImpl.java","gmt_create":"2026-08-01T12:29:28.0005605+08:00","gmt_modified":"2026-08-01T12:29:28.0005605+08:00"},{"id":444,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"8a7bb9534d7381df886b1a476664b902","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/ISysRoleService.java","gmt_create":"2026-08-01T12:29:28.0005605+08:00","gmt_modified":"2026-08-01T12:29:28.0005605+08:00"},{"id":445,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"435000e19b9da20904d5764f4f2352c5","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/impl/SysRoleServiceImpl.java","gmt_create":"2026-08-01T12:29:28.0010703+08:00","gmt_modified":"2026-08-01T12:29:28.0010703+08:00"},{"id":446,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"3259a2ba7196998a24118782cceeecee","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/ISysMenuService.java","gmt_create":"2026-08-01T12:29:28.0010703+08:00","gmt_modified":"2026-08-01T12:29:28.0010703+08:00"},{"id":447,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"ad239f5e0129b57722497e4051492302","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/impl/SysMenuServiceImpl.java","gmt_create":"2026-08-01T12:29:28.0010703+08:00","gmt_modified":"2026-08-01T12:29:28.0010703+08:00"},{"id":448,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"0951805a35c8cf0d998263dfed532ebe","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/ISysDeptService.java","gmt_create":"2026-08-01T12:29:28.0016387+08:00","gmt_modified":"2026-08-01T12:29:28.0016387+08:00"},{"id":449,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"887492aa11700fd0984b91d5fa1cf130","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/impl/SysDeptServiceImpl.java","gmt_create":"2026-08-01T12:29:28.0016387+08:00","gmt_modified":"2026-08-01T12:29:28.0016387+08:00"},{"id":450,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"c612f590645fb36de9e13767f1c81a0c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/client/DingTalkAuthClient.java","gmt_create":"2026-08-01T12:29:28.0021479+08:00","gmt_modified":"2026-08-01T12:29:28.0021479+08:00"},{"id":451,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"21067ee0ba0180f2b8514173343f7b0d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/client/ThirdPartyAuthClient.java","gmt_create":"2026-08-01T12:29:28.0021479+08:00","gmt_modified":"2026-08-01T12:29:28.0021479+08:00"},{"id":452,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"86622c8fa2eab6b1847927d47d77b7fd","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/client/ThirdPartyAuthClientFactory.java","gmt_create":"2026-08-01T12:29:28.0026565+08:00","gmt_modified":"2026-08-01T12:29:28.0026565+08:00"},{"id":453,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"b60764213680af3c984d82f4146db2df","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/service/client/ThirdPartyUserInfo.java","gmt_create":"2026-08-01T12:29:28.0026565+08:00","gmt_modified":"2026-08-01T12:29:28.0026565+08:00"},{"id":454,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"0b3ed971f0f095d6e203ddde717574e9","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/param/LoginParam.java","gmt_create":"2026-08-01T12:29:28.0026565+08:00","gmt_modified":"2026-08-01T12:29:28.0026565+08:00"},{"id":455,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"a03716c4989d9bdbacbbf1b52dcfad7c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/param/UserPageParam.java","gmt_create":"2026-08-01T12:29:28.0031654+08:00","gmt_modified":"2026-08-01T12:29:28.0031654+08:00"},{"id":456,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"58507cf1cc358b2da45575d16c857d87","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/dto/LoginResultDTO.java","gmt_create":"2026-08-01T12:29:28.0031654+08:00","gmt_modified":"2026-08-01T12:29:28.0031654+08:00"},{"id":457,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"8cac10327042dbf538d05120f601aa48","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/dto/UserInfoDTO.java","gmt_create":"2026-08-01T12:29:28.0031654+08:00","gmt_modified":"2026-08-01T12:29:28.0031654+08:00"},{"id":458,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"7d20c7c0818f8352b50774e1cac53e35","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/dto/UserListDTO.java","gmt_create":"2026-08-01T12:29:28.0036814+08:00","gmt_modified":"2026-08-01T12:29:28.0036814+08:00"},{"id":459,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"08e1158e0e21c1d7974fd49513e51f18","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/dto/UserStatsVO.java","gmt_create":"2026-08-01T12:29:28.0042165+08:00","gmt_modified":"2026-08-01T12:29:28.0042165+08:00"},{"id":460,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"91569422a8bc25dfd346718b1de8212c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/entity/AuthUser.java","gmt_create":"2026-08-01T12:29:28.0047266+08:00","gmt_modified":"2026-08-01T12:29:28.0047266+08:00"},{"id":461,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"8e967137fd04208873ef2894951b2b3d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/entity/AuthIdentity.java","gmt_create":"2026-08-01T12:29:28.0052364+08:00","gmt_modified":"2026-08-01T12:29:28.0052364+08:00"},{"id":462,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"5da86b8d801192fd63ea6aa57b666057","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/entity/SysRole.java","gmt_create":"2026-08-01T12:29:28.0057474+08:00","gmt_modified":"2026-08-01T12:29:28.0057474+08:00"},{"id":463,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"26cb8256b5c728bdc24b532313d3a166","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/entity/SysMenu.java","gmt_create":"2026-08-01T12:29:28.0057474+08:00","gmt_modified":"2026-08-01T12:29:28.0057474+08:00"},{"id":464,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"e1f225cc9efe7384e97ee284b89eabc0","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/entity/SysDept.java","gmt_create":"2026-08-01T12:29:28.0062502+08:00","gmt_modified":"2026-08-01T12:29:28.0062502+08:00"},{"id":465,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"aea6b84411302cc9a5fbcaf774ac6a29","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/entity/SysUserRole.java","gmt_create":"2026-08-01T12:29:28.0062502+08:00","gmt_modified":"2026-08-01T12:29:28.0062502+08:00"},{"id":466,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"20f7693b186c4e003d04031dafd605b5","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/entity/SysRoleMenu.java","gmt_create":"2026-08-01T12:29:28.0062502+08:00","gmt_modified":"2026-08-01T12:29:28.0062502+08:00"},{"id":467,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"8fa19465d23be26b999639add960b23d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/entity/SysUserDept.java","gmt_create":"2026-08-01T12:29:28.0062502+08:00","gmt_modified":"2026-08-01T12:29:28.0062502+08:00"},{"id":468,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"5be8fe765c8b4c953e524cdf749f440b","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/enums/DataScopeEnum.java","gmt_create":"2026-08-01T12:29:28.0072507+08:00","gmt_modified":"2026-08-01T12:29:28.0072507+08:00"},{"id":469,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"0e509081560573445a0dd02e946dbf30","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/enums/IdentityTypeEnum.java","gmt_create":"2026-08-01T12:29:28.0072507+08:00","gmt_modified":"2026-08-01T12:29:28.0072507+08:00"},{"id":470,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"cd95faea5a74ee3ae09964119cdb6716","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/enums/MenuTypeEnum.java","gmt_create":"2026-08-01T12:29:28.0072507+08:00","gmt_modified":"2026-08-01T12:29:28.0072507+08:00"},{"id":471,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"086d66e96aa620aca8a7c9d337100360","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/constant/AuthConstants.java","gmt_create":"2026-08-01T12:29:28.0082481+08:00","gmt_modified":"2026-08-01T12:29:28.0082481+08:00"},{"id":472,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"070b69737b357c71e8b46fd27e1c4d4b","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/resources/application.yml","gmt_create":"2026-08-01T12:29:28.0082481+08:00","gmt_modified":"2026-08-01T12:29:28.0082481+08:00"},{"id":473,"source_id":"30275e72-7abf-42cd-a02d-b692ab10a425","target_id":"91569422a8bc25dfd346718b1de8212c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/entity/AuthUser.java","gmt_create":"2026-08-01T12:29:28.1621647+08:00","gmt_modified":"2026-08-01T12:29:28.1621647+08:00"},{"id":474,"source_id":"30275e72-7abf-42cd-a02d-b692ab10a425","target_id":"8e967137fd04208873ef2894951b2b3d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/entity/AuthIdentity.java","gmt_create":"2026-08-01T12:29:28.1621647+08:00","gmt_modified":"2026-08-01T12:29:28.1621647+08:00"},{"id":475,"source_id":"30275e72-7abf-42cd-a02d-b692ab10a425","target_id":"e1f225cc9efe7384e97ee284b89eabc0","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/entity/SysDept.java","gmt_create":"2026-08-01T12:29:28.1621647+08:00","gmt_modified":"2026-08-01T12:29:28.1621647+08:00"},{"id":476,"source_id":"30275e72-7abf-42cd-a02d-b692ab10a425","target_id":"aea6b84411302cc9a5fbcaf774ac6a29","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/entity/SysUserRole.java","gmt_create":"2026-08-01T12:29:28.1631621+08:00","gmt_modified":"2026-08-01T12:29:28.1631621+08:00"},{"id":477,"source_id":"30275e72-7abf-42cd-a02d-b692ab10a425","target_id":"5da86b8d801192fd63ea6aa57b666057","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/entity/SysRole.java","gmt_create":"2026-08-01T12:29:28.1631621+08:00","gmt_modified":"2026-08-01T12:29:28.1631621+08:00"},{"id":478,"source_id":"30275e72-7abf-42cd-a02d-b692ab10a425","target_id":"26cb8256b5c728bdc24b532313d3a166","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/entity/SysMenu.java","gmt_create":"2026-08-01T12:29:28.1641598+08:00","gmt_modified":"2026-08-01T12:29:28.1641598+08:00"},{"id":479,"source_id":"30275e72-7abf-42cd-a02d-b692ab10a425","target_id":"20f7693b186c4e003d04031dafd605b5","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/entity/SysRoleMenu.java","gmt_create":"2026-08-01T12:29:28.1641598+08:00","gmt_modified":"2026-08-01T12:29:28.1641598+08:00"},{"id":480,"source_id":"30275e72-7abf-42cd-a02d-b692ab10a425","target_id":"8fa19465d23be26b999639add960b23d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/entity/SysUserDept.java","gmt_create":"2026-08-01T12:29:28.1651567+08:00","gmt_modified":"2026-08-01T12:29:28.1651567+08:00"},{"id":481,"source_id":"30275e72-7abf-42cd-a02d-b692ab10a425","target_id":"7a809dc905a15b19452162b602354d4f","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/domain/entity/BaseEntity.java","gmt_create":"2026-08-01T12:29:28.1651567+08:00","gmt_modified":"2026-08-01T12:29:28.1651567+08:00"},{"id":482,"source_id":"30275e72-7abf-42cd-a02d-b692ab10a425","target_id":"4df2448146189cb35695461c4efeeef7","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/domain/entity/OwnedEntity.java","gmt_create":"2026-08-01T12:29:28.1651567+08:00","gmt_modified":"2026-08-01T12:29:28.1651567+08:00"},{"id":483,"source_id":"30275e72-7abf-42cd-a02d-b692ab10a425","target_id":"0e509081560573445a0dd02e946dbf30","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/enums/IdentityTypeEnum.java","gmt_create":"2026-08-01T12:29:28.1661538+08:00","gmt_modified":"2026-08-01T12:29:28.1661538+08:00"},{"id":484,"source_id":"30275e72-7abf-42cd-a02d-b692ab10a425","target_id":"5be8fe765c8b4c953e524cdf749f440b","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/enums/DataScopeEnum.java","gmt_create":"2026-08-01T12:29:28.1661538+08:00","gmt_modified":"2026-08-01T12:29:28.1661538+08:00"},{"id":485,"source_id":"30275e72-7abf-42cd-a02d-b692ab10a425","target_id":"cd95faea5a74ee3ae09964119cdb6716","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/enums/MenuTypeEnum.java","gmt_create":"2026-08-01T12:29:28.1661538+08:00","gmt_modified":"2026-08-01T12:29:28.1661538+08:00"},{"id":486,"source_id":"30275e72-7abf-42cd-a02d-b692ab10a425","target_id":"b085262ba4ef8a02893410a0018a27ff","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/domain/enums/StatusEnum.java","gmt_create":"2026-08-01T12:29:28.1671509+08:00","gmt_modified":"2026-08-01T12:29:28.1671509+08:00"},{"id":487,"source_id":"30275e72-7abf-42cd-a02d-b692ab10a425","target_id":"45f8c9e51de204a6ce44b7b414bf967f","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/domain/enums/HasValueEnum.java","gmt_create":"2026-08-01T12:29:28.1671509+08:00","gmt_modified":"2026-08-01T12:29:28.1671509+08:00"},{"id":488,"source_id":"30275e72-7abf-42cd-a02d-b692ab10a425","target_id":"283041ef298919fe536ac20fad579c0a","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/mapper/AuthUserMapper.java","gmt_create":"2026-08-01T12:29:28.1681481+08:00","gmt_modified":"2026-08-01T12:29:28.1681481+08:00"},{"id":489,"source_id":"30275e72-7abf-42cd-a02d-b692ab10a425","target_id":"d9ade6309a688b79e49a87c991d5af6c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/mapper/AuthIdentityMapper.java","gmt_create":"2026-08-01T12:29:28.1681481+08:00","gmt_modified":"2026-08-01T12:29:28.1681481+08:00"},{"id":490,"source_id":"30275e72-7abf-42cd-a02d-b692ab10a425","target_id":"aab51a092e42f86e794b23b95107cba3","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/mapper/SysDeptMapper.java","gmt_create":"2026-08-01T12:29:28.1681481+08:00","gmt_modified":"2026-08-01T12:29:28.1681481+08:00"},{"id":491,"source_id":"30275e72-7abf-42cd-a02d-b692ab10a425","target_id":"30ac7fd632012faca8156feaa071ff46","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/mapper/SysUserRoleMapper.java","gmt_create":"2026-08-01T12:29:28.1681481+08:00","gmt_modified":"2026-08-01T12:29:28.1681481+08:00"},{"id":492,"source_id":"30275e72-7abf-42cd-a02d-b692ab10a425","target_id":"38d9b83ff8f46a8113aa787616b2f802","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/mapper/SysRoleMapper.java","gmt_create":"2026-08-01T12:29:28.1691453+08:00","gmt_modified":"2026-08-01T12:29:28.1691453+08:00"},{"id":493,"source_id":"30275e72-7abf-42cd-a02d-b692ab10a425","target_id":"d9d6f5b3e8856fa6995fdc7ed74c6382","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/mapper/SysMenuMapper.java","gmt_create":"2026-08-01T12:29:28.1691453+08:00","gmt_modified":"2026-08-01T12:29:28.1691453+08:00"},{"id":494,"source_id":"30275e72-7abf-42cd-a02d-b692ab10a425","target_id":"eb41d1eb6dbcb66d966ca3b557af45d3","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/mapper/SysRoleMenuMapper.java","gmt_create":"2026-08-01T12:29:28.1691453+08:00","gmt_modified":"2026-08-01T12:29:28.1691453+08:00"},{"id":495,"source_id":"30275e72-7abf-42cd-a02d-b692ab10a425","target_id":"28e5eef69286d763453cf31a32070685","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/mapper/SysUserDeptMapper.java","gmt_create":"2026-08-01T12:29:28.1701427+08:00","gmt_modified":"2026-08-01T12:29:28.1701427+08:00"},{"id":496,"source_id":"30275e72-7abf-42cd-a02d-b692ab10a425","target_id":"c4daef7910e2cd6aaaae07759d897d03","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/mapper/CrmBaseMapper.java","gmt_create":"2026-08-01T12:29:28.1701427+08:00","gmt_modified":"2026-08-01T12:29:28.1701427+08:00"},{"id":497,"source_id":"30275e72-7abf-42cd-a02d-b692ab10a425","target_id":"4d7cd4ecb0ac6a08ab02c260a8558b2c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/config/MybatisPlusConfig.java","gmt_create":"2026-08-01T12:29:28.1701427+08:00","gmt_modified":"2026-08-01T12:29:28.1701427+08:00"},{"id":498,"source_id":"30275e72-7abf-42cd-a02d-b692ab10a425","target_id":"ae79ce740680fd6655ac6de67b002373","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/config/MetaObjectFillHandler.java","gmt_create":"2026-08-01T12:29:28.1701427+08:00","gmt_modified":"2026-08-01T12:29:28.1701427+08:00"},{"id":499,"source_id":"30275e72-7abf-42cd-a02d-b692ab10a425","target_id":"5fcea73039602b38183b915b5b7efc58","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/config/CustomIdGenerator.java","gmt_create":"2026-08-01T12:29:28.1711398+08:00","gmt_modified":"2026-08-01T12:29:28.1711398+08:00"},{"id":500,"source_id":"30275e72-7abf-42cd-a02d-b692ab10a425","target_id":"a03716c4989d9bdbacbbf1b52dcfad7c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/param/UserPageParam.java","gmt_create":"2026-08-01T12:29:28.1711398+08:00","gmt_modified":"2026-08-01T12:29:28.1711398+08:00"},{"id":501,"source_id":"30275e72-7abf-42cd-a02d-b692ab10a425","target_id":"7d20c7c0818f8352b50774e1cac53e35","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/dto/UserListDTO.java","gmt_create":"2026-08-01T12:29:28.1711398+08:00","gmt_modified":"2026-08-01T12:29:28.1711398+08:00"},{"id":502,"source_id":"30275e72-7abf-42cd-a02d-b692ab10a425","target_id":"08e1158e0e21c1d7974fd49513e51f18","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/domain/dto/UserStatsVO.java","gmt_create":"2026-08-01T12:29:28.1711398+08:00","gmt_modified":"2026-08-01T12:29:28.1711398+08:00"},{"id":503,"source_id":"84b6fa9b-8bb5-4a1c-9709-23f2e18a78be","target_id":"6d19e7c47ad418f3577ff8cfcd56590f","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/config/SecurityConfig.java","gmt_create":"2026-08-01T12:29:52.0703285+08:00","gmt_modified":"2026-08-01T12:29:52.0703285+08:00"},{"id":504,"source_id":"84b6fa9b-8bb5-4a1c-9709-23f2e18a78be","target_id":"ef98104ba47dd7d33624e1916c0694cd","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/security/DataScopeInterceptor.java","gmt_create":"2026-08-01T12:29:52.0708426+08:00","gmt_modified":"2026-08-01T12:29:52.0708426+08:00"},{"id":505,"source_id":"84b6fa9b-8bb5-4a1c-9709-23f2e18a78be","target_id":"d862f2c63fd9e0f48ad1badc1a6d9e1e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/security/DataScopeTables.java","gmt_create":"2026-08-01T12:29:52.0708426+08:00","gmt_modified":"2026-08-01T12:29:52.0708426+08:00"},{"id":506,"source_id":"84b6fa9b-8bb5-4a1c-9709-23f2e18a78be","target_id":"10a536bc357c7840a6eec61b40741915","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/security/JwtAuthenticationFilter.java","gmt_create":"2026-08-01T12:29:52.0708426+08:00","gmt_modified":"2026-08-01T12:29:52.0708426+08:00"},{"id":507,"source_id":"84b6fa9b-8bb5-4a1c-9709-23f2e18a78be","target_id":"720e90c29ddd88a8633c9d31ce443b5e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/security/TokenService.java","gmt_create":"2026-08-01T12:29:52.0713659+08:00","gmt_modified":"2026-08-01T12:29:52.0713659+08:00"},{"id":508,"source_id":"84b6fa9b-8bb5-4a1c-9709-23f2e18a78be","target_id":"03278a0623db482aec43e508d1268208","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/security/SecurityExceptionHandlers.java","gmt_create":"2026-08-01T12:29:52.0713659+08:00","gmt_modified":"2026-08-01T12:29:52.0713659+08:00"},{"id":509,"source_id":"84b6fa9b-8bb5-4a1c-9709-23f2e18a78be","target_id":"9b38bcfac9c3a14d74c16429d22380fd","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/security/AuthLoginUser.java","gmt_create":"2026-08-01T12:29:52.0713659+08:00","gmt_modified":"2026-08-01T12:29:52.0713659+08:00"},{"id":510,"source_id":"84b6fa9b-8bb5-4a1c-9709-23f2e18a78be","target_id":"979b533c66100f0a3f79f7542e2b01e0","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/config/PermissionConfig.java","gmt_create":"2026-08-01T12:29:52.0718777+08:00","gmt_modified":"2026-08-01T12:29:52.0718777+08:00"},{"id":511,"source_id":"84b6fa9b-8bb5-4a1c-9709-23f2e18a78be","target_id":"4194d46035c0037d3488ab82e57001ba","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/java/com/crm/auth/config/DataInitializer.java","gmt_create":"2026-08-01T12:29:52.0718777+08:00","gmt_modified":"2026-08-01T12:29:52.0718777+08:00"},{"id":512,"source_id":"84b6fa9b-8bb5-4a1c-9709-23f2e18a78be","target_id":"949d7f85b20c96ff625551608a0a3453","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/config/CorsConfig.java","gmt_create":"2026-08-01T12:29:52.0718777+08:00","gmt_modified":"2026-08-01T12:29:52.0718777+08:00"},{"id":513,"source_id":"84b6fa9b-8bb5-4a1c-9709-23f2e18a78be","target_id":"219bfc88fc6b98fdc50a57b641262250","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/advice/GlobalExceptionHandlerAdvice.java","gmt_create":"2026-08-01T12:29:52.0723893+08:00","gmt_modified":"2026-08-01T12:29:52.0723893+08:00"},{"id":514,"source_id":"84b6fa9b-8bb5-4a1c-9709-23f2e18a78be","target_id":"485d0b6edfad127744af104bc2fccdec","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/annotation/DataScope.java","gmt_create":"2026-08-01T12:29:52.0723893+08:00","gmt_modified":"2026-08-01T12:29:52.0723893+08:00"},{"id":515,"source_id":"84b6fa9b-8bb5-4a1c-9709-23f2e18a78be","target_id":"33650500053c4035f9b41cc603ec7177","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/security/DataScopeHelper.java","gmt_create":"2026-08-01T12:29:52.0729026+08:00","gmt_modified":"2026-08-01T12:29:52.0729026+08:00"},{"id":516,"source_id":"84b6fa9b-8bb5-4a1c-9709-23f2e18a78be","target_id":"7f1c91eeb163925e7598ee1fa3808178","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/security/DataVisibilityContext.java","gmt_create":"2026-08-01T12:29:52.0729026+08:00","gmt_modified":"2026-08-01T12:29:52.0729026+08:00"},{"id":517,"source_id":"84b6fa9b-8bb5-4a1c-9709-23f2e18a78be","target_id":"9618beabcede2e839e6dedf9121f30d7","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/security/DataOwnership.java","gmt_create":"2026-08-01T12:29:52.0734195+08:00","gmt_modified":"2026-08-01T12:29:52.0734195+08:00"},{"id":518,"source_id":"84b6fa9b-8bb5-4a1c-9709-23f2e18a78be","target_id":"3c80766c0fa9dab148e4f57f2843c3fb","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/security/DataScopeLevel.java","gmt_create":"2026-08-01T12:29:52.0734195+08:00","gmt_modified":"2026-08-01T12:29:52.0734195+08:00"},{"id":519,"source_id":"84b6fa9b-8bb5-4a1c-9709-23f2e18a78be","target_id":"dc053fd228077fc0cfbe0b6f895efff0","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/security/LoginUser.java","gmt_create":"2026-08-01T12:29:52.0739295+08:00","gmt_modified":"2026-08-01T12:29:52.0739295+08:00"},{"id":520,"source_id":"84b6fa9b-8bb5-4a1c-9709-23f2e18a78be","target_id":"594e46f4067bf5c53e0e58dd1cb1142f","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/main/java/com/crm/base/security/SecurityUtils.java","gmt_create":"2026-08-01T12:29:52.0739295+08:00","gmt_modified":"2026-08-01T12:29:52.0739295+08:00"},{"id":521,"source_id":"84b6fa9b-8bb5-4a1c-9709-23f2e18a78be","target_id":"ed816b898bf9d2e8548f1dfd5cdeadbb","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-app/src/main/resources/application.yml","gmt_create":"2026-08-01T12:29:52.0739295+08:00","gmt_modified":"2026-08-01T12:29:52.0739295+08:00"},{"id":522,"source_id":"84b6fa9b-8bb5-4a1c-9709-23f2e18a78be","target_id":"070b69737b357c71e8b46fd27e1c4d4b","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/main/resources/application.yml","gmt_create":"2026-08-01T12:29:52.0744385+08:00","gmt_modified":"2026-08-01T12:29:52.0744385+08:00"},{"id":523,"source_id":"83b5d55c-3806-4d43-b9a0-96b208a5f635","target_id":"b1a16c73af31999d323930a2c4167a74","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: pom.xml","gmt_create":"2026-08-01T12:30:44.7676786+08:00","gmt_modified":"2026-08-01T12:30:44.7676786+08:00"},{"id":524,"source_id":"83b5d55c-3806-4d43-b9a0-96b208a5f635","target_id":"fdbf8ef6fe6c3e0273244b9efa4f4563","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/pom.xml","gmt_create":"2026-08-01T12:30:44.7681922+08:00","gmt_modified":"2026-08-01T12:30:44.7681922+08:00"},{"id":525,"source_id":"83b5d55c-3806-4d43-b9a0-96b208a5f635","target_id":"44756b6ca3948002965adbdf75e287e4","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/pom.xml","gmt_create":"2026-08-01T12:30:44.7681922+08:00","gmt_modified":"2026-08-01T12:30:44.7681922+08:00"},{"id":526,"source_id":"83b5d55c-3806-4d43-b9a0-96b208a5f635","target_id":"4645e05fc44e0cd3f1efadca1d825a88","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-file/pom.xml","gmt_create":"2026-08-01T12:30:44.7687041+08:00","gmt_modified":"2026-08-01T12:30:44.7687041+08:00"},{"id":527,"source_id":"83b5d55c-3806-4d43-b9a0-96b208a5f635","target_id":"0a944d6947cd45922d3e267c069fee6c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/test/java/com/crm/auth/service/impl/AuthServiceImplTest.java","gmt_create":"2026-08-01T12:30:44.7687041+08:00","gmt_modified":"2026-08-01T12:30:44.7687041+08:00"},{"id":528,"source_id":"83b5d55c-3806-4d43-b9a0-96b208a5f635","target_id":"e115f2054f8d1d592750cc634e682da8","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/test/java/com/crm/auth/service/impl/AuthUserServiceImplTest.java","gmt_create":"2026-08-01T12:30:44.7687041+08:00","gmt_modified":"2026-08-01T12:30:44.7687041+08:00"},{"id":529,"source_id":"83b5d55c-3806-4d43-b9a0-96b208a5f635","target_id":"93b5379effd73cbce347a8747296d18c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/test/java/com/crm/auth/service/impl/SysDeptServiceImplTest.java","gmt_create":"2026-08-01T12:30:44.7692161+08:00","gmt_modified":"2026-08-01T12:30:44.7692161+08:00"},{"id":530,"source_id":"83b5d55c-3806-4d43-b9a0-96b208a5f635","target_id":"f204b35859a78f3352a067656ec89482","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/test/java/com/crm/auth/service/impl/UserListIntegrationTest.java","gmt_create":"2026-08-01T12:30:44.7692161+08:00","gmt_modified":"2026-08-01T12:30:44.7692161+08:00"},{"id":531,"source_id":"83b5d55c-3806-4d43-b9a0-96b208a5f635","target_id":"a0e0e501f0f901ac1f12b089a1bf5f9a","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/test/java/com/crm/auth/service/client/DingTalkAuthClientTest.java","gmt_create":"2026-08-01T12:30:44.769727+08:00","gmt_modified":"2026-08-01T12:30:44.769727+08:00"},{"id":532,"source_id":"83b5d55c-3806-4d43-b9a0-96b208a5f635","target_id":"ef7f823f436c1c0a09594b106637d202","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/test/java/com/crm/auth/service/client/ThirdPartyAuthClientFactoryTest.java","gmt_create":"2026-08-01T12:30:44.7848476+08:00","gmt_modified":"2026-08-01T12:30:44.7848476+08:00"},{"id":533,"source_id":"83b5d55c-3806-4d43-b9a0-96b208a5f635","target_id":"70a8328bf44d129f9e9f84a552674c0d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-auth/src/test/java/com/crm/auth/security/scope/DataScopeIntegrationTest.java","gmt_create":"2026-08-01T12:30:44.7871018+08:00","gmt_modified":"2026-08-01T12:30:44.7871018+08:00"},{"id":534,"source_id":"83b5d55c-3806-4d43-b9a0-96b208a5f635","target_id":"78a779bf8e042a4c180c7cf6b2f09c30","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-file/src/test/java/com/crm/file/service/impl/FileApiImplTest.java","gmt_create":"2026-08-01T12:30:44.7871018+08:00","gmt_modified":"2026-08-01T12:30:44.7871018+08:00"},{"id":535,"source_id":"83b5d55c-3806-4d43-b9a0-96b208a5f635","target_id":"39e025b53656f4fb1e51330f3f63f82f","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-file/src/test/java/com/crm/file/service/KkFileViewClientTest.java","gmt_create":"2026-08-01T12:30:44.787629+08:00","gmt_modified":"2026-08-01T12:30:44.787629+08:00"},{"id":536,"source_id":"83b5d55c-3806-4d43-b9a0-96b208a5f635","target_id":"4e86e9e389b4b08fe8963d3cf346bef6","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-file/src/test/java/com/crm/file/task/Or orphanChunkCleanupTaskTest.java","gmt_create":"2026-08-01T12:30:44.787629+08:00","gmt_modified":"2026-08-01T12:30:44.787629+08:00"},{"id":537,"source_id":"83b5d55c-3806-4d43-b9a0-96b208a5f635","target_id":"eb157d8b43dd11418aef51259017012c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: crm-base/src/test/java/com/crm/base/security/DataVisibilityTest.java","gmt_create":"2026-08-01T12:30:44.787629+08:00","gmt_modified":"2026-08-01T12:30:44.787629+08:00"},{"id":538,"source_id":"dce63e18-37d0-459b-9f80-0b22e0f89b2b","target_id":"3ac2b9bb-6133-44bc-bf03-6873b7a2c9b6","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: dce63e18-37d0-459b-9f80-0b22e0f89b2b -\u003e 3ac2b9bb-6133-44bc-bf03-6873b7a2c9b6","gmt_create":"2026-08-01T12:30:45.3732411+08:00","gmt_modified":"2026-08-01T12:30:45.3732411+08:00"},{"id":539,"source_id":"060cac65-05a5-4a8e-91c0-3fa0b6e3eb60","target_id":"83b5d55c-3806-4d43-b9a0-96b208a5f635","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 060cac65-05a5-4a8e-91c0-3fa0b6e3eb60 -\u003e 83b5d55c-3806-4d43-b9a0-96b208a5f635","gmt_create":"2026-08-01T12:30:45.3754276+08:00","gmt_modified":"2026-08-01T12:30:45.3754276+08:00"},{"id":540,"source_id":"578a7b52-5069-4091-b20c-0a2719998171","target_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 578a7b52-5069-4091-b20c-0a2719998171 -\u003e 4c74b943-94bc-46c7-b16a-e33abc3af2c4","gmt_create":"2026-08-01T12:30:45.3779898+08:00","gmt_modified":"2026-08-01T12:30:45.3779898+08:00"},{"id":541,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"121d6223-4b50-4f14-b316-a48642a9b6ef","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 4c74b943-94bc-46c7-b16a-e33abc3af2c4 -\u003e 121d6223-4b50-4f14-b316-a48642a9b6ef","gmt_create":"2026-08-01T12:30:45.3810727+08:00","gmt_modified":"2026-08-01T12:30:45.3810727+08:00"},{"id":542,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 4c74b943-94bc-46c7-b16a-e33abc3af2c4 -\u003e 0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","gmt_create":"2026-08-01T12:30:45.3815837+08:00","gmt_modified":"2026-08-01T12:30:45.3815837+08:00"},{"id":543,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"e7c93a3f-2f55-4647-b8cc-640e9b1b8beb","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 4c74b943-94bc-46c7-b16a-e33abc3af2c4 -\u003e e7c93a3f-2f55-4647-b8cc-640e9b1b8beb","gmt_create":"2026-08-01T12:30:45.3815837+08:00","gmt_modified":"2026-08-01T12:30:45.3815837+08:00"},{"id":544,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"84b6fa9b-8bb5-4a1c-9709-23f2e18a78be","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 4c74b943-94bc-46c7-b16a-e33abc3af2c4 -\u003e 84b6fa9b-8bb5-4a1c-9709-23f2e18a78be","gmt_create":"2026-08-01T12:30:45.3820957+08:00","gmt_modified":"2026-08-01T12:30:45.3820957+08:00"},{"id":545,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"30275e72-7abf-42cd-a02d-b692ab10a425","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 4c74b943-94bc-46c7-b16a-e33abc3af2c4 -\u003e 30275e72-7abf-42cd-a02d-b692ab10a425","gmt_create":"2026-08-01T12:30:45.3826175+08:00","gmt_modified":"2026-08-01T12:30:45.3826175+08:00"}],"source_files":[{"id":"9f120716e7b0381e045c66412550d1a9","path":"crm-app/src/main/java/com/crm/app/CrmAppApplication.java","filename":"CrmAppApplication.java","gmt_create":"2026-08-01T11:58:56.0705207+08:00","gmt_modified":"2026-08-01T11:58:56.0705207+08:00"},{"id":"ed816b898bf9d2e8548f1dfd5cdeadbb","path":"crm-app/src/main/resources/application.yml","filename":"application.yml","gmt_create":"2026-08-01T11:58:56.0722571+08:00","gmt_modified":"2026-08-01T11:58:56.0722571+08:00"},{"id":"246da6901c21f063ab47e58aaebcdd3c","path":"crm-auth/src/main/java/com/crm/auth/controller/AuthController.java","filename":"AuthController.java","gmt_create":"2026-08-01T11:58:56.0722571+08:00","gmt_modified":"2026-08-01T11:58:56.0722571+08:00"},{"id":"db5d3491fb45251456163d012a823f5d","path":"crm-auth/src/main/java/com/crm/auth/controller/SystemController.java","filename":"SystemController.java","gmt_create":"2026-08-01T11:58:56.0722571+08:00","gmt_modified":"2026-08-01T11:58:56.0722571+08:00"},{"id":"6d19e7c47ad418f3577ff8cfcd56590f","path":"crm-auth/src/main/java/com/crm/auth/config/SecurityConfig.java","filename":"SecurityConfig.java","gmt_create":"2026-08-01T11:58:56.0727953+08:00","gmt_modified":"2026-08-01T11:58:56.0727953+08:00"},{"id":"979b533c66100f0a3f79f7542e2b01e0","path":"crm-auth/src/main/java/com/crm/auth/config/PermissionConfig.java","filename":"PermissionConfig.java","gmt_create":"2026-08-01T11:58:56.0727953+08:00","gmt_modified":"2026-08-01T11:58:56.0727953+08:00"},{"id":"10a536bc357c7840a6eec61b40741915","path":"crm-auth/src/main/java/com/crm/auth/security/JwtAuthenticationFilter.java","filename":"JwtAuthenticationFilter.java","gmt_create":"2026-08-01T11:58:56.0727953+08:00","gmt_modified":"2026-08-01T11:58:56.0727953+08:00"},{"id":"720e90c29ddd88a8633c9d31ce443b5e","path":"crm-auth/src/main/java/com/crm/auth/security/TokenService.java","filename":"TokenService.java","gmt_create":"2026-08-01T11:58:56.0727953+08:00","gmt_modified":"2026-08-01T11:58:56.0727953+08:00"},{"id":"9b38bcfac9c3a14d74c16429d22380fd","path":"crm-auth/src/main/java/com/crm/auth/security/AuthLoginUser.java","filename":"AuthLoginUser.java","gmt_create":"2026-08-01T11:58:56.0727953+08:00","gmt_modified":"2026-08-01T11:58:56.0727953+08:00"},{"id":"ef98104ba47dd7d33624e1916c0694cd","path":"crm-auth/src/main/java/com/crm/auth/security/DataScopeInterceptor.java","filename":"DataScopeInterceptor.java","gmt_create":"2026-08-01T11:58:56.0727953+08:00","gmt_modified":"2026-08-01T11:58:56.0727953+08:00"},{"id":"d862f2c63fd9e0f48ad1badc1a6d9e1e","path":"crm-auth/src/main/java/com/crm/auth/security/DataScopeTables.java","filename":"DataScopeTables.java","gmt_create":"2026-08-01T11:58:56.0733089+08:00","gmt_modified":"2026-08-01T11:58:56.0733089+08:00"},{"id":"5725c122fbf467925192bf42403e7787","path":"crm-auth/src/main/java/com/crm/auth/service/impl/AuthServiceImpl.java","filename":"AuthServiceImpl.java","gmt_create":"2026-08-01T11:58:56.0733089+08:00","gmt_modified":"2026-08-01T11:58:56.0733089+08:00"},{"id":"b95e6a3c690ffd8ed16d2d4163a5c648","path":"crm-auth/src/main/java/com/crm/auth/service/impl/AuthUserServiceImpl.java","filename":"AuthUserServiceImpl.java","gmt_create":"2026-08-01T11:58:56.0733089+08:00","gmt_modified":"2026-08-01T11:58:56.0733089+08:00"},{"id":"887492aa11700fd0984b91d5fa1cf130","path":"crm-auth/src/main/java/com/crm/auth/service/impl/SysDeptServiceImpl.java","filename":"SysDeptServiceImpl.java","gmt_create":"2026-08-01T11:58:56.0733089+08:00","gmt_modified":"2026-08-01T11:58:56.0733089+08:00"},{"id":"c612f590645fb36de9e13767f1c81a0c","path":"crm-auth/src/main/java/com/crm/auth/service/client/DingTalkAuthClient.java","filename":"DingTalkAuthClient.java","gmt_create":"2026-08-01T11:58:56.0733089+08:00","gmt_modified":"2026-08-01T11:58:56.0733089+08:00"},{"id":"86622c8fa2eab6b1847927d47d77b7fd","path":"crm-auth/src/main/java/com/crm/auth/service/client/ThirdPartyAuthClientFactory.java","filename":"ThirdPartyAuthClientFactory.java","gmt_create":"2026-08-01T11:58:56.0733089+08:00","gmt_modified":"2026-08-01T11:58:56.0733089+08:00"},{"id":"70a8328bf44d129f9e9f84a552674c0d","path":"crm-auth/src/test/java/com/crm/auth/security/scope/DataScopeIntegrationTest.java","filename":"DataScopeIntegrationTest.java","gmt_create":"2026-08-01T11:58:56.0733089+08:00","gmt_modified":"2026-08-01T11:58:56.0733089+08:00"},{"id":"450e832ef93367bf62c150db0a3c2257","path":"crm-auth/src/test/java/com/crm/auth/security/scope/TestOwnedData.java","filename":"TestOwnedData.java","gmt_create":"2026-08-01T11:58:56.0738187+08:00","gmt_modified":"2026-08-01T11:58:56.0738187+08:00"},{"id":"e6cba19378ad4cca1120a969537c90a1","path":"crm-auth/src/test/java/com/crm/auth/security/scope/TestOwnedDataMapper.java","filename":"TestOwnedDataMapper.java","gmt_create":"2026-08-01T11:58:56.0738187+08:00","gmt_modified":"2026-08-01T11:58:56.0738187+08:00"},{"id":"a0e0e501f0f901ac1f12b089a1bf5f9a","path":"crm-auth/src/test/java/com/crm/auth/service/client/DingTalkAuthClientTest.java","filename":"DingTalkAuthClientTest.java","gmt_create":"2026-08-01T11:58:56.0738187+08:00","gmt_modified":"2026-08-01T11:58:56.0738187+08:00"},{"id":"ef7f823f436c1c0a09594b106637d202","path":"crm-auth/src/test/java/com/crm/auth/service/client/ThirdPartyAuthClientFactoryTest.java","filename":"ThirdPartyAuthClientFactoryTest.java","gmt_create":"2026-08-01T11:58:56.0738187+08:00","gmt_modified":"2026-08-01T11:58:56.0738187+08:00"},{"id":"0a944d6947cd45922d3e267c069fee6c","path":"crm-auth/src/test/java/com/crm/auth/service/impl/AuthServiceImplTest.java","filename":"AuthServiceImplTest.java","gmt_create":"2026-08-01T11:58:56.0738187+08:00","gmt_modified":"2026-08-01T11:58:56.0738187+08:00"},{"id":"e115f2054f8d1d592750cc634e682da8","path":"crm-auth/src/test/java/com/crm/auth/service/impl/AuthUserServiceImplTest.java","filename":"AuthUserServiceImplTest.java","gmt_create":"2026-08-01T11:58:56.0738187+08:00","gmt_modified":"2026-08-01T11:58:56.0738187+08:00"},{"id":"93b5379effd73cbce347a8747296d18c","path":"crm-auth/src/test/java/com/crm/auth/service/impl/SysDeptServiceImplTest.java","filename":"SysDeptServiceImplTest.java","gmt_create":"2026-08-01T11:58:56.0738187+08:00","gmt_modified":"2026-08-01T11:58:56.0738187+08:00"},{"id":"f204b35859a78f3352a067656ec89482","path":"crm-auth/src/test/java/com/crm/auth/service/impl/UserListIntegrationTest.java","filename":"UserListIntegrationTest.java","gmt_create":"2026-08-01T11:58:56.0743305+08:00","gmt_modified":"2026-08-01T11:58:56.0743305+08:00"},{"id":"219bfc88fc6b98fdc50a57b641262250","path":"crm-base/src/main/java/com/crm/base/advice/GlobalExceptionHandlerAdvice.java","filename":"GlobalExceptionHandlerAdvice.java","gmt_create":"2026-08-01T11:58:56.0743305+08:00","gmt_modified":"2026-08-01T11:58:56.0743305+08:00"},{"id":"78f9a7cfb354a1eb9744378aeb898070","path":"crm-base/src/main/java/com/crm/base/domain/exception/BusinessErrorException.java","filename":"BusinessErrorException.java","gmt_create":"2026-08-01T11:58:56.0743305+08:00","gmt_modified":"2026-08-01T11:58:56.0743305+08:00"},{"id":"552d2164b5a76f113724b37692c9a8ad","path":"crm-base/src/main/java/com/crm/base/domain/exception/MissingParameterException.java","filename":"MissingParameterException.java","gmt_create":"2026-08-01T11:58:56.0743305+08:00","gmt_modified":"2026-08-01T11:58:56.0743305+08:00"},{"id":"3d2db44a848dd979c85d02227c0860f1","path":"crm-base/src/main/java/com/crm/base/domain/exception/PermissionErrorException.java","filename":"PermissionErrorException.java","gmt_create":"2026-08-01T11:58:56.0743305+08:00","gmt_modified":"2026-08-01T11:58:56.0743305+08:00"},{"id":"a769abcb464b3fed3c877eaaa18bb7ea","path":"crm-base/src/main/java/com/crm/base/domain/exception/ResourceNotExistException.java","filename":"ResourceNotExistException.java","gmt_create":"2026-08-01T11:58:56.0743305+08:00","gmt_modified":"2026-08-01T11:58:56.0743305+08:00"},{"id":"fbcc9319095d04d42cae2a4126d632cc","path":"crm-base/src/main/java/com/crm/base/domain/result/Result.java","filename":"Result.java","gmt_create":"2026-08-01T11:58:56.0743305+08:00","gmt_modified":"2026-08-01T11:58:56.0743305+08:00"},{"id":"71737ec08030f7f53dcba1d13a65df12","path":"crm-base/src/main/java/com/crm/base/domain/result/ResultCodeEnum.java","filename":"ResultCodeEnum.java","gmt_create":"2026-08-01T11:58:56.0743305+08:00","gmt_modified":"2026-08-01T11:58:56.0743305+08:00"},{"id":"839aaee42fad8c788d762040f926c7cf","path":"crm-base/src/main/java/com/crm/base/domain/result/PageResult.java","filename":"PageResult.java","gmt_create":"2026-08-01T11:58:56.0748416+08:00","gmt_modified":"2026-08-01T11:58:56.0748416+08:00"},{"id":"7a809dc905a15b19452162b602354d4f","path":"crm-base/src/main/java/com/crm/base/domain/entity/BaseEntity.java","filename":"BaseEntity.java","gmt_create":"2026-08-01T11:58:56.0748416+08:00","gmt_modified":"2026-08-01T11:58:56.0748416+08:00"},{"id":"4df2448146189cb35695461c4efeeef7","path":"crm-base/src/main/java/com/crm/base/domain/entity/OwnedEntity.java","filename":"OwnedEntity.java","gmt_create":"2026-08-01T11:58:56.0748416+08:00","gmt_modified":"2026-08-01T11:58:56.0748416+08:00"},{"id":"485d0b6edfad127744af104bc2fccdec","path":"crm-base/src/main/java/com/crm/base/annotation/DataScope.java","filename":"DataScope.java","gmt_create":"2026-08-01T11:58:56.0748416+08:00","gmt_modified":"2026-08-01T11:58:56.0748416+08:00"},{"id":"33650500053c4035f9b41cc603ec7177","path":"crm-base/src/main/java/com/crm/base/security/DataScopeHelper.java","filename":"DataScopeHelper.java","gmt_create":"2026-08-01T11:58:56.0748416+08:00","gmt_modified":"2026-08-01T11:58:56.0748416+08:00"},{"id":"7f1c91eeb163925e7598ee1fa3808178","path":"crm-base/src/main/java/com/crm/base/security/DataVisibilityContext.java","filename":"DataVisibilityContext.java","gmt_create":"2026-08-01T11:58:56.0748416+08:00","gmt_modified":"2026-08-01T11:58:56.0748416+08:00"},{"id":"dc053fd228077fc0cfbe0b6f895efff0","path":"crm-base/src/main/java/com/crm/base/security/LoginUser.java","filename":"LoginUser.java","gmt_create":"2026-08-01T11:58:56.0748416+08:00","gmt_modified":"2026-08-01T11:58:56.0748416+08:00"},{"id":"594e46f4067bf5c53e0e58dd1cb1142f","path":"crm-base/src/main/java/com/crm/base/security/SecurityUtils.java","filename":"SecurityUtils.java","gmt_create":"2026-08-01T11:58:56.0748416+08:00","gmt_modified":"2026-08-01T11:58:56.0748416+08:00"},{"id":"eb157d8b43dd11418aef51259017012c","path":"crm-base/src/test/java/com/crm/base/security/DataVisibilityTest.java","filename":"DataVisibilityTest.java","gmt_create":"2026-08-01T11:58:56.0753572+08:00","gmt_modified":"2026-08-01T11:58:56.0753572+08:00"},{"id":"30323def9cb0fe6b260ea6a5e9fa283b","path":"crm-file/src/main/java/com/crm/file/controller/FileController.java","filename":"FileController.java","gmt_create":"2026-08-01T11:58:56.0753572+08:00","gmt_modified":"2026-08-01T11:58:56.0753572+08:00"},{"id":"306688bd02d5e00424c36a8e3f7bf006","path":"crm-file/src/main/java/com/crm/file/service/impl/FileApiImpl.java","filename":"FileApiImpl.java","gmt_create":"2026-08-01T11:58:56.0753572+08:00","gmt_modified":"2026-08-01T11:58:56.0753572+08:00"},{"id":"471daee1ba8d0a0c9d37ea42b9515adb","path":"crm-file/src/main/java/com/crm/file/service/impl/FileInfoServiceImpl.java","filename":"FileInfoServiceImpl.java","gmt_create":"2026-08-01T11:58:56.0753572+08:00","gmt_modified":"2026-08-01T11:58:56.0753572+08:00"},{"id":"08d8600fa4e7cbf52b43b28fefb529ec","path":"crm-file/src/main/java/com/crm/file/service/KkFileViewClient.java","filename":"KkFileViewClient.java","gmt_create":"2026-08-01T11:58:56.0753572+08:00","gmt_modified":"2026-08-01T11:58:56.0753572+08:00"},{"id":"c2b8eb329a711a41ccd21fc07edb2463","path":"crm-file/src/main/java/com/crm/file/task/OrphanChunkCleanupTask.java","filename":"OrphanChunkCleanupTask.java","gmt_create":"2026-08-01T11:58:56.0753572+08:00","gmt_modified":"2026-08-01T11:58:56.0753572+08:00"},{"id":"78a779bf8e042a4c180c7cf6b2f09c30","path":"crm-file/src/test/java/com/crm/file/service/impl/FileApiImplTest.java","filename":"FileApiImplTest.java","gmt_create":"2026-08-01T11:58:56.0753572+08:00","gmt_modified":"2026-08-01T11:58:56.0753572+08:00"},{"id":"39e025b53656f4fb1e51330f3f63f82f","path":"crm-file/src/test/java/com/crm/file/service/KkFileViewClientTest.java","filename":"KkFileViewClientTest.java","gmt_create":"2026-08-01T11:58:56.0758675+08:00","gmt_modified":"2026-08-01T11:58:56.0758675+08:00"},{"id":"4ad3caa167521e41d486c8eb3e1d1f09","path":"crm-file/src/test/java/com/crm/file/task/OrphanChunkCleanupTaskTest.java","filename":"OrphanChunkCleanupTaskTest.java","gmt_create":"2026-08-01T11:58:56.0758675+08:00","gmt_modified":"2026-08-01T11:58:56.0758675+08:00"},{"id":"ec731c3e8b12fffc7e23eb4ecd950b53","path":"crm-auth/src/main/java/com/crm/auth/AuthApplication.java","filename":"AuthApplication.java","gmt_create":"2026-08-01T11:59:11.2222206+08:00","gmt_modified":"2026-08-01T11:59:11.2222206+08:00"},{"id":"070b69737b357c71e8b46fd27e1c4d4b","path":"crm-auth/src/main/resources/application.yml","filename":"application.yml","gmt_create":"2026-08-01T11:59:11.2222206+08:00","gmt_modified":"2026-08-01T11:59:11.2222206+08:00"},{"id":"4194d46035c0037d3488ab82e57001ba","path":"crm-auth/src/main/java/com/crm/auth/config/DataInitializer.java","filename":"DataInitializer.java","gmt_create":"2026-08-01T11:59:11.2232503+08:00","gmt_modified":"2026-08-01T11:59:11.2232503+08:00"},{"id":"086d66e96aa620aca8a7c9d337100360","path":"crm-auth/src/main/java/com/crm/auth/constant/AuthConstants.java","filename":"AuthConstants.java","gmt_create":"2026-08-01T11:59:11.2233738+08:00","gmt_modified":"2026-08-01T11:59:11.2233738+08:00"},{"id":"8e967137fd04208873ef2894951b2b3d","path":"crm-auth/src/main/java/com/crm/auth/domain/entity/AuthIdentity.java","filename":"AuthIdentity.java","gmt_create":"2026-08-01T11:59:11.2233738+08:00","gmt_modified":"2026-08-01T11:59:11.2233738+08:00"},{"id":"91569422a8bc25dfd346718b1de8212c","path":"crm-auth/src/main/java/com/crm/auth/domain/entity/AuthUser.java","filename":"AuthUser.java","gmt_create":"2026-08-01T11:59:11.2238984+08:00","gmt_modified":"2026-08-01T11:59:11.2238984+08:00"},{"id":"e1f225cc9efe7384e97ee284b89eabc0","path":"crm-auth/src/main/java/com/crm/auth/domain/entity/SysDept.java","filename":"SysDept.java","gmt_create":"2026-08-01T11:59:11.2238984+08:00","gmt_modified":"2026-08-01T11:59:11.2238984+08:00"},{"id":"26cb8256b5c728bdc24b532313d3a166","path":"crm-auth/src/main/java/com/crm/auth/domain/entity/SysMenu.java","filename":"SysMenu.java","gmt_create":"2026-08-01T11:59:11.2238984+08:00","gmt_modified":"2026-08-01T11:59:11.2238984+08:00"},{"id":"5da86b8d801192fd63ea6aa57b666057","path":"crm-auth/src/main/java/com/crm/auth/domain/entity/SysRole.java","filename":"SysRole.java","gmt_create":"2026-08-01T11:59:11.2238984+08:00","gmt_modified":"2026-08-01T11:59:11.2238984+08:00"},{"id":"20f7693b186c4e003d04031dafd605b5","path":"crm-auth/src/main/java/com/crm/auth/domain/entity/SysRoleMenu.java","filename":"SysRoleMenu.java","gmt_create":"2026-08-01T11:59:11.2238984+08:00","gmt_modified":"2026-08-01T11:59:11.2238984+08:00"},{"id":"8fa19465d23be26b999639add960b23d","path":"crm-auth/src/main/java/com/crm/auth/domain/entity/SysUserDept.java","filename":"SysUserDept.java","gmt_create":"2026-08-01T11:59:11.2238984+08:00","gmt_modified":"2026-08-01T11:59:11.2238984+08:00"},{"id":"aea6b84411302cc9a5fbcaf774ac6a29","path":"crm-auth/src/main/java/com/crm/auth/domain/entity/SysUserRole.java","filename":"SysUserRole.java","gmt_create":"2026-08-01T11:59:11.2238984+08:00","gmt_modified":"2026-08-01T11:59:11.2238984+08:00"},{"id":"5be8fe765c8b4c953e524cdf749f440b","path":"crm-auth/src/main/java/com/crm/auth/domain/enums/DataScopeEnum.java","filename":"DataScopeEnum.java","gmt_create":"2026-08-01T11:59:11.224411+08:00","gmt_modified":"2026-08-01T11:59:11.224411+08:00"},{"id":"0e509081560573445a0dd02e946dbf30","path":"crm-auth/src/main/java/com/crm/auth/domain/enums/IdentityTypeEnum.java","filename":"IdentityTypeEnum.java","gmt_create":"2026-08-01T11:59:11.224411+08:00","gmt_modified":"2026-08-01T11:59:11.224411+08:00"},{"id":"cd95faea5a74ee3ae09964119cdb6716","path":"crm-auth/src/main/java/com/crm/auth/domain/enums/MenuTypeEnum.java","filename":"MenuTypeEnum.java","gmt_create":"2026-08-01T11:59:11.224411+08:00","gmt_modified":"2026-08-01T11:59:11.224411+08:00"},{"id":"0b3ed971f0f095d6e203ddde717574e9","path":"crm-auth/src/main/java/com/crm/auth/domain/param/LoginParam.java","filename":"LoginParam.java","gmt_create":"2026-08-01T11:59:11.224411+08:00","gmt_modified":"2026-08-01T11:59:11.224411+08:00"},{"id":"58507cf1cc358b2da45575d16c857d87","path":"crm-auth/src/main/java/com/crm/auth/domain/dto/LoginResultDTO.java","filename":"LoginResultDTO.java","gmt_create":"2026-08-01T11:59:11.224411+08:00","gmt_modified":"2026-08-01T11:59:11.224411+08:00"},{"id":"8cac10327042dbf538d05120f601aa48","path":"crm-auth/src/main/java/com/crm/auth/domain/dto/UserInfoDTO.java","filename":"UserInfoDTO.java","gmt_create":"2026-08-01T11:59:11.224411+08:00","gmt_modified":"2026-08-01T11:59:11.224411+08:00"},{"id":"d9ade6309a688b79e49a87c991d5af6c","path":"crm-auth/src/main/java/com/crm/auth/mapper/AuthIdentityMapper.java","filename":"AuthIdentityMapper.java","gmt_create":"2026-08-01T11:59:11.2249134+08:00","gmt_modified":"2026-08-01T11:59:11.2249134+08:00"},{"id":"283041ef298919fe536ac20fad579c0a","path":"crm-auth/src/main/java/com/crm/auth/mapper/AuthUserMapper.java","filename":"AuthUserMapper.java","gmt_create":"2026-08-01T11:59:11.2249556+08:00","gmt_modified":"2026-08-01T11:59:11.2249556+08:00"},{"id":"aab51a092e42f86e794b23b95107cba3","path":"crm-auth/src/main/java/com/crm/auth/mapper/SysDeptMapper.java","filename":"SysDeptMapper.java","gmt_create":"2026-08-01T11:59:11.2249556+08:00","gmt_modified":"2026-08-01T11:59:11.2249556+08:00"},{"id":"d9d6f5b3e8856fa6995fdc7ed74c6382","path":"crm-auth/src/main/java/com/crm/auth/mapper/SysMenuMapper.java","filename":"SysMenuMapper.java","gmt_create":"2026-08-01T11:59:11.2249556+08:00","gmt_modified":"2026-08-01T11:59:11.2249556+08:00"},{"id":"38d9b83ff8f46a8113aa787616b2f802","path":"crm-auth/src/main/java/com/crm/auth/mapper/SysRoleMapper.java","filename":"SysRoleMapper.java","gmt_create":"2026-08-01T11:59:11.225254+08:00","gmt_modified":"2026-08-01T11:59:11.225254+08:00"},{"id":"eb41d1eb6dbcb66d966ca3b557af45d3","path":"crm-auth/src/main/java/com/crm/auth/mapper/SysRoleMenuMapper.java","filename":"SysRoleMenuMapper.java","gmt_create":"2026-08-01T11:59:11.225254+08:00","gmt_modified":"2026-08-01T11:59:11.225254+08:00"},{"id":"28e5eef69286d763453cf31a32070685","path":"crm-auth/src/main/java/com/crm/auth/mapper/SysUserDeptMapper.java","filename":"SysUserDeptMapper.java","gmt_create":"2026-08-01T11:59:11.225254+08:00","gmt_modified":"2026-08-01T11:59:11.225254+08:00"},{"id":"30ac7fd632012faca8156feaa071ff46","path":"crm-auth/src/main/java/com/crm/auth/mapper/SysUserRoleMapper.java","filename":"SysUserRoleMapper.java","gmt_create":"2026-08-01T11:59:11.225254+08:00","gmt_modified":"2026-08-01T11:59:11.225254+08:00"},{"id":"03278a0623db482aec43e508d1268208","path":"crm-auth/src/main/java/com/crm/auth/security/SecurityExceptionHandlers.java","filename":"SecurityExceptionHandlers.java","gmt_create":"2026-08-01T11:59:11.2257839+08:00","gmt_modified":"2026-08-01T11:59:11.2257839+08:00"},{"id":"21067ee0ba0180f2b8514173343f7b0d","path":"crm-auth/src/main/java/com/crm/auth/service/client/ThirdPartyAuthClient.java","filename":"ThirdPartyAuthClient.java","gmt_create":"2026-08-01T11:59:11.2262964+08:00","gmt_modified":"2026-08-01T11:59:11.2262964+08:00"},{"id":"b60764213680af3c984d82f4146db2df","path":"crm-auth/src/main/java/com/crm/auth/service/client/ThirdPartyUserInfo.java","filename":"ThirdPartyUserInfo.java","gmt_create":"2026-08-01T11:59:11.2262964+08:00","gmt_modified":"2026-08-01T11:59:11.2262964+08:00"},{"id":"7179946069c5d0654ca49cca77eaaedb","path":"crm-auth/src/main/java/com/crm/auth/service/impl/AuthIdentityServiceImpl.java","filename":"AuthIdentityServiceImpl.java","gmt_create":"2026-08-01T11:59:11.2262964+08:00","gmt_modified":"2026-08-01T11:59:11.2262964+08:00"},{"id":"f9926a70a628c5e92f0d239030b13f71","path":"crm-auth/src/main/java/com/crm/auth/service/impl/PermissionServiceImpl.java","filename":"PermissionServiceImpl.java","gmt_create":"2026-08-01T11:59:11.2268214+08:00","gmt_modified":"2026-08-01T11:59:11.2268214+08:00"},{"id":"ad239f5e0129b57722497e4051492302","path":"crm-auth/src/main/java/com/crm/auth/service/impl/SysMenuServiceImpl.java","filename":"SysMenuServiceImpl.java","gmt_create":"2026-08-01T11:59:11.2268214+08:00","gmt_modified":"2026-08-01T11:59:11.2268214+08:00"},{"id":"435000e19b9da20904d5764f4f2352c5","path":"crm-auth/src/main/java/com/crm/auth/service/impl/SysRoleServiceImpl.java","filename":"SysRoleServiceImpl.java","gmt_create":"2026-08-01T11:59:11.2268214+08:00","gmt_modified":"2026-08-01T11:59:11.2268214+08:00"},{"id":"5b91363610bf599cc013882938cf595a","path":"crm-auth/src/main/java/com/crm/auth/service/DeptTreeCache.java","filename":"DeptTreeCache.java","gmt_create":"2026-08-01T11:59:11.2273375+08:00","gmt_modified":"2026-08-01T11:59:11.2273375+08:00"},{"id":"13f3009ef2305ed0a42d5528886e20bb","path":"crm-auth/src/main/java/com/crm/auth/service/IAuthIdentityService.java","filename":"IAuthIdentityService.java","gmt_create":"2026-08-01T11:59:11.2273375+08:00","gmt_modified":"2026-08-01T11:59:11.2273375+08:00"},{"id":"cff6e76ddd2bdf3e405ed171c279d307","path":"crm-auth/src/main/java/com/crm/auth/service/IAuthService.java","filename":"IAuthService.java","gmt_create":"2026-08-01T11:59:11.2273375+08:00","gmt_modified":"2026-08-01T11:59:11.2273375+08:00"},{"id":"47982a158ab256486f73c409c57d16fb","path":"crm-auth/src/main/java/com/crm/auth/service/IAuthUserService.java","filename":"IAuthUserService.java","gmt_create":"2026-08-01T11:59:11.2273375+08:00","gmt_modified":"2026-08-01T11:59:11.2273375+08:00"},{"id":"db36768510c04fba9ecddbaac9538997","path":"crm-auth/src/main/java/com/crm/auth/service/ISysDept.java","filename":"ISysDept.java","gmt_create":"2026-08-01T11:59:11.2273375+08:00","gmt_modified":"2026-08-01T11:59:11.2273375+08:00"},{"id":"3259a2ba7196998a24118782cceeecee","path":"crm-auth/src/main/java/com/crm/auth/service/ISysMenuService.java","filename":"ISysMenuService.java","gmt_create":"2026-08-01T11:59:11.2273375+08:00","gmt_modified":"2026-08-01T11:59:11.2273375+08:00"},{"id":"8a7bb9534d7381df886b1a476664b902","path":"crm-auth/src/main/java/com/crm/auth/service/ISysRoleService.java","filename":"ISysRoleService.java","gmt_create":"2026-08-01T11:59:11.2273375+08:00","gmt_modified":"2026-08-01T11:59:11.2273375+08:00"},{"id":"949d7f85b20c96ff625551608a0a3453","path":"crm-base/src/main/java/com/crm/base/config/CorsConfig.java","filename":"CorsConfig.java","gmt_create":"2026-08-01T11:59:11.2278502+08:00","gmt_modified":"2026-08-01T11:59:11.2278502+08:00"},{"id":"624d3c748c2d1b470b26409fbb19c4d3","path":"crm-base/src/main/java/com/crm/base/config/CrmSqlInjector.java","filename":"CrmSqlInjector.java","gmt_create":"2026-08-01T11:59:11.2278502+08:00","gmt_modified":"2026-08-01T11:59:11.2278502+08:00"},{"id":"5fcea73039602b38183b915b5b7efc58","path":"crm-base/src/main/java/com/crm/base/config/CustomIdGenerator.java","filename":"CustomIdGenerator.java","gmt_create":"2026-08-01T11:59:11.2278502+08:00","gmt_modified":"2026-08-01T11:59:11.2278502+08:00"},{"id":"ebcc9c2bbb50f1c9b34c399e554d5c61","path":"crm-base/src/main/java/com/crm/base/config/InsertBatchOnDuplicateKeyUpdate.java","filename":"InsertBatchOnDuplicateKeyUpdate.java","gmt_create":"2026-08-01T11:59:11.2278502+08:00","gmt_modified":"2026-08-01T11:59:11.2278502+08:00"},{"id":"3c0d2201fb5a98ad1624e8361edfcfe5","path":"crm-base/src/main/java/com/crm/base/config/JacksonConfig.java","filename":"JacksonConfig.java","gmt_create":"2026-08-01T11:59:11.2283624+08:00","gmt_modified":"2026-08-01T11:59:11.2283624+08:00"},{"id":"1e30fd946317cf4ca3d53f1ca7e05c0b","path":"crm-base/src/main/java/com/crm/base/config/Knife4jConfig.java","filename":"Knife4jConfig.java","gmt_create":"2026-08-01T11:59:11.2283624+08:00","gmt_modified":"2026-08-01T11:59:11.2283624+08:00"},{"id":"ae79ce740680fd6655ac6de67b002373","path":"crm-base/src/main/java/com/crm/base/config/MetaObjectFillHandler.java","filename":"MetaObjectFillHandler.java","gmt_create":"2026-08-01T11:59:11.2283624+08:00","gmt_modified":"2026-08-01T11:59:11.2283624+08:00"},{"id":"4d7cd4ecb0ac6a08ab02c260a8558b2c","path":"crm-base/src/main/java/com/crm/base/config/MybatisPlusConfig.java","filename":"MybatisPlusConfig.java","gmt_create":"2026-08-01T11:59:11.2283624+08:00","gmt_modified":"2026-08-01T11:59:11.2283624+08:00"},{"id":"8f361aaf831f559241b15bd521ea5cd1","path":"crm-base/src/main/java/com/crm/base/config/RedisConfig.java","filename":"RedisConfig.java","gmt_create":"2026-08-01T11:59:11.2283624+08:00","gmt_modified":"2026-08-01T11:59:11.2283624+08:00"},{"id":"3204c0be957891dd9b878beed284f4a4","path":"crm-base/src/main/java/com/crm/base/config/ScheduledTaskProperties.java","filename":"ScheduledTaskProperties.java","gmt_create":"2026-08-01T11:59:11.2283624+08:00","gmt_modified":"2026-08-01T11:59:11.2283624+08:00"},{"id":"8fd30f11d13534f235ad5b9fc9490d81","path":"crm-base/src/main/java/com/crm/base/config/SnowflakeIdWorker.java","filename":"SnowflakeIdWorker.java","gmt_create":"2026-08-01T11:59:11.2283624+08:00","gmt_modified":"2026-08-01T11:59:11.2283624+08:00"},{"id":"2b45935169fba417d684e0abc8328c9f","path":"crm-base/src/main/java/com/crm/base/config/SnowflakeProperties.java","filename":"SnowflakeProperties.java","gmt_create":"2026-08-01T11:59:11.2288712+08:00","gmt_modified":"2026-08-01T11:59:11.2288712+08:00"},{"id":"8dcd729e9a78010df52450fe62cc67b2","path":"crm-base/src/main/java/com/crm/base/constant/CommonConstants.java","filename":"CommonConstants.java","gmt_create":"2026-08-01T11:59:11.2288712+08:00","gmt_modified":"2026-08-01T11:59:11.2288712+08:00"},{"id":"34e7e1e31cc014e8ab3104acc807cc73","path":"crm-base/src/main/java/com/crm/base/domain/dto/BaseDTO.java","filename":"BaseDTO.java","gmt_create":"2026-08-01T11:59:11.2288712+08:00","gmt_modified":"2026-08-01T11:59:11.2288712+08:00"},{"id":"45f8c9e51de204a6ce44b7b414bf967f","path":"crm-base/src/main/java/com/crm/base/domain/enums/HasValueEnum.java","filename":"HasValueEnum.java","gmt_create":"2026-08-01T11:59:11.2293937+08:00","gmt_modified":"2026-08-01T11:59:11.2293937+08:00"},{"id":"b085262ba4ef8a02893410a0018a27ff","path":"crm-base/src/main/java/com/crm/base/domain/enums/StatusEnum.java","filename":"StatusEnum.java","gmt_create":"2026-08-01T11:59:11.2293937+08:00","gmt_modified":"2026-08-01T11:59:11.2293937+08:00"},{"id":"f77483962ff198e16f41554c6e1ceb39","path":"crm-base/src/main/java/com/crm/base/domain/param/BaseParam.java","filename":"BaseParam.java","gmt_create":"2026-08-01T11:59:11.2299161+08:00","gmt_modified":"2026-08-01T11:59:11.2299161+08:00"},{"id":"3a8892389711d1a68ff854bc23bc39c2","path":"crm-base/src/main/java/com/crm/base/filter/TraceIdFilter.java","filename":"TraceIdFilter.java","gmt_create":"2026-08-01T11:59:11.2304296+08:00","gmt_modified":"2026-08-01T11:59:11.2304296+08:00"},{"id":"c4daef7910e2cd6aaaae07759d897d03","path":"crm-base/src/main/java/com/crm/base/mapper/CrmBaseMapper.java","filename":"CrmBaseMapper.java","gmt_create":"2026-08-01T11:59:11.2304296+08:00","gmt_modified":"2026-08-01T11:59:11.2304296+08:00"},{"id":"9618beabcede2e839e6dedf9121f30d7","path":"crm-base/src/main/java/com/crm/base/security/DataOwnership.java","filename":"DataOwnership.java","gmt_create":"2026-08-01T11:59:11.2304296+08:00","gmt_modified":"2026-08-01T11:59:11.2304296+08:00"},{"id":"3c80766c0fa9dab148e4f57f2843c3fb","path":"crm-base/src/main/java/com/crm/base/security/DataScopeLevel.java","filename":"DataScopeLevel.java","gmt_create":"2026-08-01T11:59:11.2304296+08:00","gmt_modified":"2026-08-01T11:59:11.2304296+08:00"},{"id":"4bbbc2f3c27f80699526357490785390","path":"crm-base/src/main/java/com/crm/base/service/impl/BaseServiceImpl.java","filename":"BaseServiceImpl.java","gmt_create":"2026-08-01T11:59:11.2309628+08:00","gmt_modified":"2026-08-01T11:59:11.2309628+08:00"},{"id":"206da08c92480415f9750a64c534d171","path":"crm-base/src/main/java/com/crm/base/service/IBaseService.java","filename":"IBaseService.java","gmt_create":"2026-08-01T11:59:11.2314772+08:00","gmt_modified":"2026-08-01T11:59:11.2314772+08:00"},{"id":"83821a36e4f3e52f5bffc50e24952e99","path":"crm-base/src/main/java/com/crm/base/utils/AssertUtils.java","filename":"AssertUtils.java","gmt_create":"2026-08-01T11:59:11.2314772+08:00","gmt_modified":"2026-08-01T11:59:11.2314772+08:00"},{"id":"0515f235f6ec8e32043a3b870d857764","path":"crm-base/src/main/java/com/crm/base/utils/BeanCopyUtils.java","filename":"BeanCopyUtils.java","gmt_create":"2026-08-01T11:59:11.2314772+08:00","gmt_modified":"2026-08-01T11:59:11.2314772+08:00"},{"id":"95896bcd7ccff7717a67f499bc3bbc03","path":"crm-base/src/main/java/com/crm/base/utils/EnumUtils.java","filename":"EnumUtils.java","gmt_create":"2026-08-01T11:59:11.2314772+08:00","gmt_modified":"2026-08-01T11:59:11.2314772+08:00"},{"id":"7421afce22638e3b1ee9594dcf7236bb","path":"crm-base/src/main/java/com/crm/base/utils/ExcelUtil.java","filename":"ExcelUtil.java","gmt_create":"2026-08-01T11:59:11.2314772+08:00","gmt_modified":"2026-08-01T11:59:11.2314772+08:00"},{"id":"7f4bc54539c21a1d994bbbabe2868f2e","path":"crm-base/src/main/java/com/crm/base/utils/PageConverter.java","filename":"PageConverter.java","gmt_create":"2026-08-01T11:59:11.2319996+08:00","gmt_modified":"2026-08-01T11:59:11.2319996+08:00"},{"id":"7c89e571969f40758206506fdf19649f","path":"crm-base/src/main/java/com/crm/base/utils/ServletUtils.java","filename":"ServletUtils.java","gmt_create":"2026-08-01T11:59:11.2319996+08:00","gmt_modified":"2026-08-01T11:59:11.2319996+08:00"},{"id":"53e5a23ce2cd9f508b08b6e1eb290542","path":"crm-base/src/main/java/com/crm/base/utils/TreeUtils.java","filename":"TreeUtils.java","gmt_create":"2026-08-01T11:59:11.2319996+08:00","gmt_modified":"2026-08-01T11:59:11.2319996+08:00"},{"id":"2d521e834dd3215c45e67ea660ea37d6","path":"crm-base/src/main/java/com/crm/config/CrmSqlInjector.java","filename":"CrmSqlInjector.java","gmt_create":"2026-08-01T11:59:25.401832+08:00","gmt_modified":"2026-08-01T11:59:25.401832+08:00"},{"id":"88ddb7568e428a630b28d5be85d8b98b","path":"crm-base/src/main/java/com/crm/config/MybatisPlusConfig.java","filename":"MybatisPlusConfig.java","gmt_create":"2026-08-01T11:59:25.401832+08:00","gmt_modified":"2026-08-01T11:59:25.401832+08:00"},{"id":"a03716c4989d9bdbacbbf1b52dcfad7c","path":"crm-auth/src/main/java/com/crm/auth/domain/param/UserPageParam.java","filename":"UserPageParam.java","gmt_create":"2026-08-01T11:59:25.4024052+08:00","gmt_modified":"2026-08-01T11:59:25.4024052+08:00"},{"id":"7d20c7c0818f8352b50774e1cac53e35","path":"crm-auth/src/main/java/com/crm/auth/domain/dto/UserListDTO.java","filename":"UserListDTO.java","gmt_create":"2026-08-01T11:59:25.4024052+08:00","gmt_modified":"2026-08-01T11:59:25.4024052+08:00"},{"id":"08e1158e0e21c1d7974fd49513e51f18","path":"crm-auth/src/main/java/com/crm/auth/domain/dto/UserStatsVO.java","filename":"UserStatsVO.java","gmt_create":"2026-08-01T11:59:25.4024052+08:00","gmt_modified":"2026-08-01T11:59:25.4024052+08:00"},{"id":"443f0876cabdd9ad127e648149869761","path":"crm-auth/src/main/java/com/crm/auth/config/AuthProperties.java","filename":"AuthProperties.java","gmt_create":"2026-08-01T12:29:27.9928941+08:00","gmt_modified":"2026-08-01T12:29:27.9928941+08:00"},{"id":"0951805a35c8cf0d998263dfed532ebe","path":"crm-auth/src/main/java/com/crm/auth/service/ISysDeptService.java","filename":"ISysDeptService.java","gmt_create":"2026-08-01T12:29:27.9949492+08:00","gmt_modified":"2026-08-01T12:29:27.9949492+08:00"},{"id":"b1a16c73af31999d323930a2c4167a74","path":"pom.xml","filename":"pom.xml","gmt_create":"2026-08-01T12:30:44.7659982+08:00","gmt_modified":"2026-08-01T12:30:44.7659982+08:00"},{"id":"fdbf8ef6fe6c3e0273244b9efa4f4563","path":"crm-auth/pom.xml","filename":"pom.xml","gmt_create":"2026-08-01T12:30:44.7665236+08:00","gmt_modified":"2026-08-01T12:30:44.7665236+08:00"},{"id":"44756b6ca3948002965adbdf75e287e4","path":"crm-base/pom.xml","filename":"pom.xml","gmt_create":"2026-08-01T12:30:44.7665236+08:00","gmt_modified":"2026-08-01T12:30:44.7665236+08:00"},{"id":"4645e05fc44e0cd3f1efadca1d825a88","path":"crm-file/pom.xml","filename":"pom.xml","gmt_create":"2026-08-01T12:30:44.7665236+08:00","gmt_modified":"2026-08-01T12:30:44.7665236+08:00"},{"id":"4e86e9e389b4b08fe8963d3cf346bef6","path":"crm-file/src/test/java/com/crm/file/task/Or orphanChunkCleanupTaskTest.java","filename":"Or orphanChunkCleanupTaskTest.java","gmt_create":"2026-08-01T12:30:44.7676786+08:00","gmt_modified":"2026-08-01T12:30:44.7676786+08:00"}],"wiki_catalogs":[{"id":"a894a655-5840-44a9-a639-04a0c1885521","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"项目概览","description":"project-overview","prompt":"为CRM后端项目创建全面的概览文档。详细介绍项目的整体架构、技术栈选择、模块划分和核心功能。解释微服务架构设计,包括认证服务(crm-auth)、基础框架(crm-base)、文件服务(crm-file)等模块的职责和相互关系。说明项目的启动方式、配置管理和部署架构。为初学者提供清晰的项目理解路径,同时为有经验的开发者提供深入的技术细节。使用与代码库一致的术语,包含实际的使用示例和架构图表。","progress_status":"completed","dependent_files":"pom.xml,crm-app/src/main/java/com/crm/app/CrmAppApplication.java,crm-app/src/main/resources/application.yml","gmt_create":"2026-08-01T10:23:12.9536149+08:00","gmt_modified":"2026-08-01T10:25:32.0641868+08:00","raw_data":"WikiEncrypted:0MI1/XkBoMl0lTbK6t0Cn/+8FdvqrJ62ianMLvZj02eMuUR943AbMM5Fsw0cjdvnsogyxu+GQaWvGJsNYYuxs9uqt6bv6Rad5yNFnQxqc/zcIAP4Z0vNddCsfGTlXUyz4MfN8yC2qjjb2vWYfPJ83LP/X6bNolUatkvylP4TS35fJXDNkvWDIHqdQhK7dQvJSUrKHBER1noS0MMe6uXvQOmmJm86sdA3FA524PS3sSPb610ftofNfHuy/sCdmX4SP49Vv1IfvsiEvBMuWJiOr70mPYEsfSFLlAarlpsbd0N1xYumBEu1xpWT7/4eFeopti/y4M/GLZoxAni69Rl8dNyTEl96ona6fuMnCjgPHme8MpBkqiO42qtnWXVIcOjpWJ7c+Wl37wrj3M+SJMuvHSOgL4un0eZr7xfAGfo04uikN7pbCBqJNPpqehuAx3APEQ6SUECPKidl2hYMoiPhe01fQwrC18s68QaBxSgdl4DMhV7wNL9V5Hqtjf76jxUb9whCs+DZVS0UmaKaSQriLgqg+nbkQojCGZtCDY2gg9aC1qSkjjEYuPi/1PvGa2ayFq2UKlTUZ758WfGf3kH6AQG63vSpF/Wj6ZwJQMffKofUfp/Ipdt8FyEqbbYgZq7Kg4dBgXBN56RiLIDOW+fIj0Y+zhQ+d5TnmoPZ2ncTIMec+0uzKycSKlP6vhfexN4WBdSK4Ur2S6PRsxIr6S+r9OJqYSG3v0G01iVDV02o12zZx/rRcno1kg5OAANu/J0kWAvCfOoAP4uXTra9lh2tPy3p26QngElNJrUYg7zLVR6DD01P92EEfmOMbTL8iNGqM6q7m4bHPoVZcdfDxaRZ4kSAZcuNmhVLsdStF54hUYMI8DctKo6TlNzQT9IVe22Nhc0saP0tecL0YPVlOjF/1eKn2Wv+0c8EYnqXwNYw3YShm8nwLQtSwItR3+AtEugXAgCuCaSSj6zaJU7l2lbwV+H2V9wb+JSVx7+GbQEXnInPKJtVANrPBpp+AjBExPw6FfeSHsMwiYJyZqBCnChsP2jmEg4V3DIHhGJI6YDWuUgWuX/g0rcHhWAzzmOSbjxv2+v0XCS+zTr+MNQ8NUp+ZV1bd858SG7Mf0J23WWAoD0bUrLIlmObRGf7ffMiwCcTK357WyVJet69E9AiHsc51zLpMMFPgPGCnR/Mczo6EX5jqkNI9sq4KAlfS8Wz26yAutxbJuWU6eRDMLb8FJq0B2LTCURD254bxWg6z0Dasg9sGigcN0bSKnblYDbiJsPTnWqwYrI8YRyIBVzsTIYxlTvtapI/BcJI0Docu3dDGClVjYzIvxk8ASQgHUzuLOye"},{"id":"cdf8610c-1f66-4fcd-a8bb-816e8fa5e29f","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"架构设计","description":"architecture-design","prompt":"为CRM后端项目创建详细的架构设计文档。深入解释微服务架构的整体设计,包括认证服务(crm-auth)、基础框架(crm-base)、文件服务(crm-file)等核心模块的架构模式。详细说明各模块间的通信机制、数据流向和依赖关系。阐述分层架构设计,包括Controller层、Service层、Mapper层的职责划分。解释安全架构,包括JWT认证、权限控制、数据权限隔离等安全机制。说明缓存策略、数据库访问模式和事务管理。包含系统边界定义、组件交互图和部署拓扑图。为开发者提供清晰的架构理解路径和技术决策背景。","parent_id":"a894a655-5840-44a9-a639-04a0c1885521","progress_status":"completed","dependent_files":"pom.xml,crm-app/src/main/java/com/crm/app/CrmAppApplication.java,crm-auth/src/main/java/com/crm/auth/AuthApplication.java,crm-base/src/main/java/com/crm/base/config/MybatisPlusConfig.java,crm-file/src/main/java/com/crm/file/config/MinioConfig.java","gmt_create":"2026-08-01T10:23:24.3456806+08:00","gmt_modified":"2026-08-01T10:30:47.0152135+08:00","raw_data":"WikiEncrypted:EPw1VhZSv2AMLpYzHbCG5QXmatSKh1iukhkKRz99kcVPFHJKZVqOFStJHt5slSqzsunLJoqpKyeDoj/jTKKfGYkVeSD5qRDxr0g7O1UVdh+o5o+NYUhb7THIgGi7yxWUJXLy/nO13rYHpF8mYa2R5oKpql6wft24x3YHabhNJ20VIPpg1UqAGUTcVnw0LrPXwo0EBWslqFeLtF1ZuJfME3e7x+2EhR2Y1d7YwoPH3lfu0FhIjQHyH+y8s7zB9xI80tkx31028PZAt9eL2qURHMQ4UYJfj3oln+1aSJPbSDv5U3nHoKfdDZeLwwVWO8zzP7hVa/2pxfaSLDeEGNnJqnZg5xHfNpRFT6r8xg7wdbsr67Zths5+Vcd48iAivNOlDfjK9m+gN+DnBiyhSBacX8/UCMci9p4pqHqWFzyy28yESwyElOL5CRYhCCh7VDcO0zuQP4e0yGysRdWvAOuT8eDGCq3AJdkQIG6dXOEC8t7DXIgif3sFVv6xKrXQYm6y8JHPhDFxVKSY6e+1LsahYfZ8gf9EcZEPF0jqbovImvj0Er5Y522gjkuIiRuw4BrDHrnVm8LTPobnpfQK8zbNFhQU4F9GG2nymenxIK6+VliEc7VCUWc3QFIkmvebCTb6gnENEtWHlKoztJRd9acXhSGarTM6uK4G7rUzLemnBssmHy81jOswrgwnoAbfrwVVP63zCViBkERbYBlPAoywzLHPzB76z7O2oXC5Gm3DJcY5wK2G6Ke1ADGR6dkP9F8Pdqb72kDY0IzWaV7GYjkA8vS50JB9Keb11aI0HyjlAup9SLiwASIg675hxcNWmpSFOrp0zP52vwgfZxfraZmxFpGOP4owGqS5RdD/KSblDkYwgJlm9i/PiqszeR5YOLGnIAvFxtwO2UaIQCH+9kIWVyAFH6ag6pNazQW+52eu2+57+MzRj8Vfxw/w1MWaD4d5+Oi+1CnTW0sK0kvqu9vzOkDaXNPVmDC77bHcC+g/fR7eHQfHWjYiyNdRwlo8h0eRNgF17vzfZjlf3LRJhidGrxDwXMxuHIWdmK83ntUTyaO7slA0A6SUD7clisce/O1XCrzUgCPKY71jkN22zx7BuWo4jxF+HdFbBHyo3SucQEQoLvfPSRxN4ntGofwMaSdYO594STF65kcvnj3OMJhbC/kXatTnBsYUlJ4PwomzTlBXPcOzDjmtpJc4BMZpQ7u4SsSYYbDGPO93lGiKpAWwl7p3T2XorjaiNm7juik/rXFTGY34qXTcaVNhyzi+Z/dVsBXvFzKmIOxANZSHj0wWCEOXy0MeFQLbpG60G+NqPsDotsgl0A6WxvyIxwu0tK4ziN3G+gYOQmqJ6J/nkc5B17FMKNo8sal6pNP9B3K6etcL5LqGi/p0PVNydQf4H8eetAZ2nuPiFDVDY0PFAs6WecwtOFq6WWTMKM6NlHd545XDG4jO/+pvkZKLyzlgT/66zDVZv1bSHMo0pkAnQ9G0ZC3zy2PHle46N7sMJx0mmZH5lmQce6qcS8fxdWGqa3BMvdoOb2/L0/d+L6tAWX3h/tt7zR32LIOqw+LXPeJibEbRuMfuO3BFwiO/oG6aNKfC","layer_level":1},{"id":"78ac8ca5-1992-44f0-aa14-f1776a557eff","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"整体架构模式","description":"overall-architecture","prompt":"创建CRM系统的整体架构模式文档。详细描述微服务架构设计、模块划分原则、服务间通信机制。解释Maven多模块项目的组织结构,包括crm-app(应用入口)、crm-auth(认证服务)、crm-base(基础框架)、crm-file(文件服务)等模块的职责和依赖关系。说明Spring Boot应用的启动流程、组件扫描机制和服务发现模式。包含架构图展示各模块间的调用关系和数据流向。为开发者提供系统级理解和技术选型依据。","parent_id":"0825e6e0-bfad-4739-9586-d2ec50ce2dcb","progress_status":"completed","dependent_files":"crm-app/src/main/java/com/crm/app/CrmAppApplication.java,pom.xml,crm-auth/pom.xml,crm-base/pom.xml,crm-file/pom.xml","gmt_create":"2026-08-01T10:23:24.8214908+08:00","gmt_modified":"2026-08-01T10:30:23.8767291+08:00","raw_data":"WikiEncrypted:KLd6hqS3YDnCCH772QA0H79opxzq6gDz6O6XbE8wXJCkKw6BpWqI3e9aCSSxRib9AaqPJ6L1OVYJF7K84J101oetRySG+xcKQLzp9l8Pv7j2ZRiuTuy6DI71pK91ZvD3wRlPxxBashmsPgKM2Z2FmGhnKZYuVoVvxpoXNbb2rVxATwZC4eYHLIgaJPZmAXkkfijxFRtw/TX4wuXlfEoNhUEukYgWeqg0e9GcsQGUwid2XILPfA6r7O4twKh73WJ7zXX7WyUpBUqz6dgZSn2L/bandVg/hrFCo0sMn3fxmcOQEUFUBBeVs2uB5V/ghMLGgUyFQ5vFIXw7H8rZTroM48rDTdPSCjpcXZhRbq4j4ku3pvLQ7LQgA4KWbZ+c7XTRMIYQgPO22h7lyyg99W2xUzEr4h0PXkl64FUv3WGcksuPqZuNbBX6feB31KQhLa6W6DrnHpOfFdl6WboK5RzONjOsq12iuBzWkgpUYVqBmwJWq+koP6NUKoB0gmeFjmgH/YfLCEAJe9IFKARkBzMTcEGpOegNBo/9UVhzJ5r/g3fY0fJzQmm2j+TJPfRtxWU2i749xCB7tqtnetYdqrYsITi0tpk4z5fV6nHNUV7z4GDk5M0ZptR9kSDYOkYEOitaHYPH3HGWKPexI3VX9V9lPMrY7AfN45d2YxTuCWSMem8ud5xHyv1fj+xQ7CliDZWhAVCdzczOH6MAAzQWmLbAyIuUQSjI5pLGUTkVNg0UlRWdzVoyf6x0rhX4V464v8rClpUEa03clBbH8jTT9tbwMONWwMDbT/l89JrDxr7vO7Y15PaGRHktuDBNBwT6j1WL2qzX9FcB83aakkTx6QcJb4IfZE1DUioaziSc7vk2TvEEH4ggGaUGYe3qJQ5PW7tRFPLtMK4xAcCTDNPofMNu0z9M/9F2MvhmWbByey5E8K2pFsIXBhwYzAa6b3NSSLNBvKPPUgqRvbxe7vzIsIFwC0yaWYIPo5Ppem55mxfX/m4Toeb6Y1FOnFk6yzlEjRxI/daNZtrW6xi88PwHmD3jFcKRyzqDxkPGsm8G09bI7Hm5v9LkSXNCp8mfPEEcIXXbV8vs0tQSBb5Q7WfoRfxLh5KBRwlLrG7hgnwFfdN8GD/a8Zbk4E4PKKx6lH6kqjjnvwBW8ekYmbuafg+/to304tzwjd+KZTpfQbz4ZoZp+9ZRAR7zNWn6OYrHZnzKUXitlyZ9i4m9b8u35xRu+qEAHw==","layer_level":1},{"id":"a4335df0-1d8d-4bd9-b9f9-7a83a2522db5","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"认证核心机制","description":"auth-core","prompt":"为认证核心机制创建详细的技术文档。深入解释JWT令牌生成、验证和刷新机制,详细说明安全过滤器链的工作原理,包括请求拦截、用户身份解析、权限校验等流程。阐述AuthLoginUser的设计模式和会话管理机制。包含令牌安全策略、过期处理、并发控制等高级特性。提供完整的配置示例和故障排查指南。","parent_id":"3f1baad6-225c-4412-af0c-c52976d1f8b6","progress_status":"completed","dependent_files":"crm-auth/src/main/java/com/crm/auth/security/JwtAuthenticationFilter.java,crm-auth/src/main/java/com/crm/auth/security/TokenService.java,crm-auth/src/main/java/com/crm/auth/config/SecurityConfig.java,crm-auth/src/main/java/com/crm/auth/security/AuthLoginUser.java","gmt_create":"2026-08-01T10:23:32.498734+08:00","gmt_modified":"2026-08-01T10:31:02.3054717+08:00","raw_data":"WikiEncrypted:9QOSaOQHbzL61d6MLK2xGPwC1XklY/msrrXNFxJx7m2vqLAxqZJSSgFbNzuJb6KYMn4ytYEmEyrQVjb4LUWIMF2QXJqjNUO9WXIz+pXT+Xmzofi+C8Wf0Uqm2R3GuI/CV2D9XjJgyqsKD/uimt/z8a8HGXdQJLWs3BI91owtsbEG31jOYFD1DD5S39F2FBTJhopkhsiFJOAyo+EOLjGqLpOQ2lr6vuDe8EfOyL1J/h9v5UuO7PEfujrfy8qYGjGPdY+f1IvMluS8rLzRuBEQ0wkEKLcRcrMV/9k7wloAtKwqY3fcQUbkOs/vlXNgymiYEcZdvIX5+RtXdv5HnXKuz3hbloHTyOY8M0wrJ6V76pQCJIocT50+HnrU/GHs1KFP1hPFpS9Y2vCTIUTuKax83oLJSAZk9Qu7QKXEWdwMiPMi8qrarMEspqyIalP1C6bBD2L8QeJkhZbyxbt3Ut1e65JEJtKHwNJBKumi3X4Kb1ROkUk3ecZsXgbJbZPDtDQHDqMo+lySClVssrcFXWPZ++agF+AkYjL0NnZ/DQugAmQrShuusZD0b6R6elnfYVsxOM6U4hxHDP/UD1L62KSP7wQn9jsQVLTr2THb87q3pvrmm0WWNs0NWVkwtOSLUSBECAB/SAG7IlzI+YMYfFwgHYAaPPDhA3TpQfnI91znStCvNxJFvy3Mq2EIITMm/+5kKypbZ8E4tThjyDsvaZ97UEFDpbu6u5DFfQv0mnG9Iy/euVcwJeMDDcW6hZnUnvSoBTGydjCAQ6K/zDP5unO/z+BgRSp2VCvPFodPT/r25EceYf9dZcpDM/YkguhIF1RsBIPg00z2eubM9erj2DoTQ0NiGoUkJpRzSmoV1k6DCdm/2KEgnax9wr4W+/mu0L4NW7dgHnSQ9yxE0qCEXoyDnEM5ntg0Rk5kgL+Z2YKtFfueilq18wR+4t1rdF/1iT4SeOm7vn26NwwFXhK0kWN6WFZgfGDhL/mIBQC18JbkpeViadB5ntUsd3Ed8CdmG7+3TdnMtC10BTHyPIN1z1QdwYEvPiJeuTHvmGMfJnN3yRTLE+FEC5GAldmTk5HkmVAL2uHpYGFsHO8f7D8XT1LnvVGA10bSTDTWFAz12RIkL8thKoQ+Km9wlVjvJ6Z0lIhB7WS0zOcYaw2UiRbJWlYbVJn/mxc+MLtuQDcBRBBY9Gx/qiMaxpt0gWqhLVYjeCrwqzvNRgIE9IGBD/bCH3Sny9XBRconmq9KS4W/P8u9j+l5AqsIm5LDZJAt6twSXiXI","layer_level":1},{"id":"a11cb84f-70ea-42cf-9dfb-e644c1d2bcdd","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"文件上传下载","description":"file-upload-download","prompt":"为文件上传下载功能创建详细的技术文档。深入介绍单文件上传、分片上传、断点续传的实现机制,详细说明MultipartFile处理流程、会话管理、进度跟踪等核心功能。包含文件校验规则、大小限制、类型验证等安全机制。提供完整的API接口规范、请求响应示例和错误处理方案。解释分片上传的并发控制、重试机制和异常恢复策略。包含客户端集成代码示例和最佳实践建议。","parent_id":"61603fbe-2a48-4f60-89e4-cdf37e119d32","progress_status":"completed","dependent_files":"crm-file/src/main/java/com/crm/file/controller/FileController.java,crm-file/src/main/java/com/crm/file/service/IFileInfoService.java,crm-file/src/main/java/com/crm/file/domain/dto/UploadSession.java,crm-file/src/main/java/com/crm/file/domain/dto/MultipartInitDTO.java","gmt_create":"2026-08-01T10:23:36.1278563+08:00","gmt_modified":"2026-08-01T10:31:18.101729+08:00","raw_data":"WikiEncrypted:Z+2lIkAHY5bnkLie2uX+xtPriHrS2r7MBu6LwRjC6flIeNryxSwE6tTKKEd6DWjiYgis08Yo8dpA0xYj//9uDC+SSh3n4r4YMBIiD35NRlF+yngyn3VktDkxt8ONk1niK9mSXHKpXi+1C36opxeVXQVRp/psEZlohbKUBBTiMcqiD3Y7s9DxcXKTOJ4byP42Tsdu22HGgw2I7gitSuRewQ79i4VKLDNUdxYvyXqqEAM/RK+oiADVoDcOBCLz6+mz4xMfiAqQr95yyXMhGolWskRLHiPL9pBuQ3kTPBe4/gXOeBYzY9Jyy/FLPmdJkHrInCIRrmYX9AhFC+nzV0v1z8vcjIN6euM52s+JjcRiXBzm8UlJYx18VYl3h/65FtWJT/tJmTnCpjpKYkCUUSK6rFXrWVVne7QPUVtfcXYU5HdYPISADtY+bTBIIwfg2cuRRjYzFM0gHUKj2FnQ4IOPGqj8z944dLYO+k/GtM74OYsfJskC8QJPT4217XWnnF+9tWnSQD0yBgHBn9lZ7dodsHjjFJBanZw1e8ke8ZY0ZyRPpv+twPckBBWB6kGiZACer5OpeVXsHhjW2GcLCBB2ch3puqLvnYb3GfnzT28P0ZLJsgC+BOgZJGRUNSzlGZVjRDcZgH7Mg/xEaM46BLhXiTNGj84ypOItV7C6jVjXCPAYMcMNdrET4vOFpQqkh63zWy+dTCm81xBWQ/sQhyf0PIaeKWFbybuASlzJ3OI1Vq3P+Wztmk0a2p9lAzEkc4qCkf1Old3yACFni2J5enQD8TDNJLXFUbxcbmNuWkc9xuAD9ejJ8WwlD4FxGYYyMzI2m9x2R9Au9xSfG6ZzmFcZmBqAGJOSzksXjIaLcoDsdOaiACSR33YozCirpRQRGMv44IkRsPdPL3L4rS/4q9H8uIPGYYLpT+iw573anMJ0/rlvNebbyOGYI4gd5xnWRij0cEn+Gb1E/l+KGjuxPKnC+EMTqnlteESHXnmgK4RQEqxZ+qdyWMRTfRSPfSpNhLfpkComg4QM3TGAkYOUzXt5jTgVAB2pcEw7THAsv8f1h+4p9cRlTDoRR2pmhY4Ch/Zs55n7nEx8p/Ibg4k9NCJJSB6A05V/u5Eun6lgYTZ01ab5YXZSCBUsDQnIFiE4NfIKkddgmIiHWQ9qmWsQQRQn3Sxjx90z2odf5QlJ/ped9zAhbnkpdeNRFeUfjdZYYOG+zYm2D/QktwA5uW0eca9beUQq4MexbrBTe05DJTsKUvtvNw6d0lf6jhqtodFhMfB98hWgYIrd4xJC0I2ct7ai+8PeytrF60mMVwNdKKJZYMbkC1AyXTn2PnW1Wv1+FJlmFjSRrhlNVs1fg1Ip25mhrPIRJrj4oifo7bSg0A3091Jbo/VBk9W/OLEegJxWn9cE","layer_level":1},{"id":"e2e50fda-d3c4-4b07-8ded-1931eef5b705","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"认证API","description":"auth-api","prompt":"创建认证模块的API文档。详细记录用户登录、登出、获取用户信息、第三方登录等接口的HTTP方法、URL路径、请求参数、响应格式和状态码。包含JWT令牌生成机制、OAuth2集成流程、权限验证方式。提供完整的请求响应示例,包括成功和失败场景。说明密码加密策略、会话管理、安全最佳实践。包含第三方平台(钉钉等)的集成配置和使用示例。","parent_id":"972dc29b-39fa-4e22-b4a9-d06594d5fb55","progress_status":"completed","dependent_files":"crm-auth/src/main/java/com/crm/auth/controller/AuthController.java","gmt_create":"2026-08-01T10:23:40.9201206+08:00","gmt_modified":"2026-08-01T10:31:57.482644+08:00","raw_data":"WikiEncrypted:I6KYYMxpAemyHFwJy5bny+FhLrJAxcHi9isgLCIR7jIRaVDL8BHx3WUxAKQL7tg9vcc+jKuxlqqkOqp1TrZfOFsNMptreRRTJV4w1XxVNaEzwjVusV92HqiYyqJEm2Q0fikw9nca3XlwncYzwlo7J1wyuq/w/vdVjKa0tIB61QntHgAkD/AWlmxeeN3EDIZ93Z+/1Xbi1/3dx/tz/hudoDFGpzZTucCqjcoyv7PV8cz0GabGOdGhiUZhOfTsVsPBwE31ew7q7nJd0eHGHrmuE3ViuYz4gFOT0pv9sRGgMNNrvQzimqNgjj8UN6cz+eISjKKHN9+cyrINrX9u4vZ/dsFI9VpkIZVOLDXHQdFTcick1FUf6I4hmmg93FOfWScTWiN4muZ82T7HtfwE+Uc41Sscioaf13lD/vZEXQ02w7iqOYOREur5kynh+xuwhzv+xYoZt39AbUR1DX/u50iZggVBuQZozSll9gk8eBFR/3Jpe6knmN433FFttkwFAj6NVqm6k1gWByW1vHJ9Y95Z+GUHqyOa47exyPZmZ+kheI1RUJ9jwPCFF5+uagyrUpAF7HswwIIHKI5Ys2PsfE9y6A6qtPBzYBDNYS3M8vTDsd2eNpaux4v861TaqB11KqwrO5D8OiVeEBmC20RoOU8t43eC9p2ui58mDIxYKb0lkVHzV6fET0zwTnUypl4tk66Iticg8y+7Hmqs7/+m9JM+CilQx+IAcHkNFS5qdea1us4AoJe9tGptbQmH/jxb4/RvKfDJo4HkrTmHsaL1jBVnxzzfjJ3B3ANQ0/v+moHd4kNOlw1KHRqUhzZbzWpEx7imq0AtG7pwXX4nRebfpE+cjbtgUX1BO/nxWB7RXP2iz0JwnnBdTio3c2lYfylEHPu67kB/dGQROHxbNkHJM+N17j3ilw7NTLNpT80C763I5dS+DbR0ZTgYY3OVkg/mFKItDPgZxGH0VVcBr9jNZaiDWLQDudllhoNT0+NFl24T5XkiAUTfr1bez32J5Dh+mlfV7il6VdZrA5no6v38/WX+tA==","layer_level":1},{"id":"d54ac4b2-811a-400d-89e5-be4b3db5d39a","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"通用实体类","description":"base-entities","prompt":"为通用实体类创建详细文档。说明BaseEntity作为所有实体的基类,包含的公共字段如ID、创建时间、更新时间等。详细介绍OwnedEntity的数据所有权控制机制,包括数据所有者字段和权限继承。解释实体类的自动填充机制、审计字段管理和数据可见性控制。提供实体类继承的最佳实践和自定义扩展方法。","parent_id":"f18f3d0e-d3a3-4dee-9e06-6f273a611da0","progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/domain/entity/BaseEntity.java,crm-base/src/main/java/com/crm/base/domain/entity/OwnedEntity.java","gmt_create":"2026-08-01T10:23:41.0518983+08:00","gmt_modified":"2026-08-01T10:32:06.9103529+08:00","raw_data":"WikiEncrypted:eWJG/e5ing0ewFH7hWSyzDgM79nSThP7ImW6wv9PEA8JEKVMy3UMkVt/vXcNfrDUzwvN1fofc1lstL9M9gzTUF0lX5sad/ZoKMtuphVzXHoefd46e4xF41p1gxABJbq7qjzjPp8B+0J7P7Ljmo84TFxlJR9NPmY8hegiskinS3ioVvbWll1cGkXx/1ZCnuFyStxkepIUDnYI6MUs0v1rSrivTXki+oClYl/mWAIJW1NmW6tHc6fjJQRXj9t+3K0+cHdzY1YeCyt5CZ0KxerYKqqmf9u6jTlvLbzOkvW2zzocgXHJKoEBcEiK5WDFmh+vU0GticOnUlmDvFyldS6ZHPCKqCPJxvExr4lX0vL6rj6+i5VHof70MAuU9urgPdvPy/Y/NMENy1thfF8z8RK68xJmffTsKXovFQjaQSOLYqW6UmoNjVkN8sxDaeyInewpXu5Nb4AO2qCwKYmUD6MfhF2gSWFdXEpLYdlKeHqQXttExX02SIfmB1a6ymXXsW0tbugNwDJXqbk9Kv2epsXV+NPd9DRl3MYr1FUMGCiLfSqSrgGUPXMnQigoOucOm/Ogdsc4kt3a6V2MFKHqNBQ5F7rNAG3o9f4N8hAW4ASF1T9+PJSpoiMJMBGsVKVJ+F6Bb+amzeleQ9nyCVh62N9VHnUK3rBzUv2079Q891dcuGGi1ONemsblpjfsg8QLTljMFUf4rs9FrbZ7RN3hwE3EuGX+bAhEp6XouqMH8+NBm18Cngrqp7UeCwqvevE20rHoVLeguvfmawsIIprGiKaZZbMDE9+24qrfJ93Mv18fkA4Z1zwh651sko3T2OfBXHNJ1v4zggxyPsKtUt+fJSY1h+rwASYjDwlHwK2PqyWvXdV3Q9hCmbN74YCy6qDHqVsphKQiQIevpJ1M2YBYB8iGYcIekAjNqbIdkgkzxaz13GZJ8d+V/8Th6Wx3W4JIJvAl3eHowUoYJU0aIim2QKci1Q0Z2cLT9G/RgUvGbxgKVRGOTmDC7n5Ho2c+QlMsC7H1","layer_level":1},{"id":"e77ca833-d53b-4372-aadb-d9db1597b2ad","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"用户认证模型","description":"user-auth-models","prompt":"创建用户认证数据模型的详细文档。详细描述AuthUser、AuthIdentity等核心实体的字段定义、数据类型和业务含义。说明用户身份验证机制、多身份支持、登录结果数据结构。包含用户状态管理、密码加密存储、第三方身份集成。提供实体关系图、字段约束、默认值设置。解释用户信息DTO的设计模式和数据传输规范。为开发者提供完整的用户认证数据模型参考。","parent_id":"2e7654dc-4da7-4b34-910d-87bd6334f756","progress_status":"completed","dependent_files":"crm-auth/src/main/java/com/crm/auth/domain/entity/AuthUser.java,crm-auth/src/main/java/com/crm/auth/domain/entity/AuthIdentity.java,crm-auth/src/main/java/com/crm/auth/domain/dto/LoginResultDTO.java,crm-auth/src/main/java/com/crm/auth/domain/dto/UserInfoDTO.java","gmt_create":"2026-08-01T10:23:46.6733101+08:00","gmt_modified":"2026-08-01T10:32:27.3529223+08:00","raw_data":"WikiEncrypted:SmmNTSq96N8aZksVSKE+84xs+Cutn7kbuj+ZIuUlRi3YXrc0WDJga98Al6qkDNBI5aNtJUjXdc+R7udC17sK+I2mvu4rE4XfjfL9v8zKuT61G6rXxtkBGnFKGdk8gmkz6KEIe9jZyQKFn3GyLCQwFZFCBSx7wjCxoAbbt9yH23PRmU1tn57ElaQtj8ILZarCMnz22M5E85Vc+zTWj7NVBrDnd/HzOWU9yvBgFzgzKWgXrGwHGLZCG9XL4E/rSu6SvTTAcW2ojQXccz8yMR2LSp1qw08ZUf6te9HShAV/zkeZXwFlCk5qygjBMDimtBa/spJDqLmaY3MGSXpjL3poKkTNcc961B6qh6tjoq+OwjxreJknU8ipC8lJG2pvD9Ks7RD2cE2t52y9p5G8aDC1PdLuieO/rN/EIxcbnYUKYFIdGrgJv9TbxQ7IlF3i8mGpRBVGvxyZIgjI0KdLzCp9+kW1I6OGOi6u/DGW6PDvPex2GMkNMdU8aBpuD81bYiBrgxhoQre4y/dGfms49luWbxVLiQ5cniEFSW1puu5K4qcUYJL4NdaBImS5BwbV69SfeG3W//Z8vsD7cycnLamUQYBptzEvPiHgc9pnf4dQMKBltuuTCtjHZVNXPocgLIT9F5cSaA8EMyjt5mfCm6eZep5IjSvI2JghirUTGdajnQqbgbW6VnJ+n5ZCW7kFgrOF/19fJwSou3cM7hEQd7h3wqlq+3kf1myCG1bkUtJHVB25LxHXC+romWKupNdzDff0mMmifpvVoUhSV2ntPEHfUfeSSwn1oWaK1UpdCiYUCJSOCrw8hjpkdihnSA983oHrGhBsXlPxFozI8xm1E2yo/wfYUrDTdhZVnCVKs6sSQjXCOVYT5IFSXIEonJ2Aje8WO/MfGJc652Hc8KvfKGdrTxoDoOLLMPiAUt7mJTgBywvmMCrm+s/FT7DamVzVvimnSWpvuwwyWHHWw1yXYSIhjdZOoEBOqrkGwRHve+dGZROzOOsBQyLe6iLX8thC3aRYyPGO38TvpYh856xLEw7E2WAPltUgT76Tya6xiN1BR3PIAutNrebUjBnhjA6Duwfu3qQSFRNPsGFS+CkNelz+yOZADmN32z+8ljLyKHpBbUyj/Bxho9ojMCY3ywy/HJf0afbGdNCysR4nOpeXvk1uNf/xpiwAZg43x4e4Jqzh13H1exdUAeKjr63mPQAOijUsHUX1Y5DQvLJB19eT8JhYZ/RoPDALrh0kWkx5HLzcg8/PM3LMFO3pO4A4Q/tn3b1S7TdyHGtiTEHiAm0BKTfdx4CD1yJC4KEToFsgqMDHtJaJpXxEaKoTsCVJxtLRPRtrIAm5J7A3aEMJ11ryY2VteQ==","layer_level":1},{"id":"b887ea86-369b-42eb-8c7b-7f6dcf2cb50a","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"开发规范","description":"development-standards","prompt":"创建详细的开发规范文档。说明项目的代码风格、命名约定、包结构规范。详细介绍实体类设计规范,包括BaseEntity和OwnedEntity的使用方式。说明DTO、Param、Result等数据传输对象的设计模式。包含异常处理规范、日志记录规范、注释编写规范。提供Git提交信息规范、分支管理策略、代码审查流程。确保团队成员遵循统一的开发标准,提高代码质量和可维护性。","parent_id":"6ed8a750-2109-4e77-b62b-7c1fbc070030","progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/domain/entity/BaseEntity.java,crm-base/src/main/java/com/crm/base/domain/entity/OwnedEntity.java,crm-base/src/main/java/com/crm/base/domain/result/Result.java,crm-base/src/main/java/com/crm/base/advice/GlobalExceptionHandlerAdvice.java","gmt_create":"2026-08-01T10:23:52.3696594+08:00","gmt_modified":"2026-08-01T10:33:13.0201505+08:00","raw_data":"WikiEncrypted:F3QgleoEfoy16cQggYe9C40b3wrVqgUOe/aBj6phY0aUMIsWQ8Lw4ze43N3NCb2GeboTrOMujntTgQomqVR7fzuxFbKiv9cuXZxo1HPo79w+e+DcF/umkpBQOXyy54MdIMJfaBxkskPAxk7I5y3MSi1mJ9TZKimTQeLNM3EM/B0Y8newFBr27kFrbEmZfOH3WSkkRqv6sFvJeRmAIEVOeuStbgjn5YoEN8YnapSOTuaBvFhPgGcIOUT1kdOiV1Rq3sdPdzMAdxaZWSyjOwuYi9/RNveqg0xu/xcoMiSHr2SzQclqswoLypwXeyCwmsI965uR7vSB5CArOnFkf3AGFUS1U8X409T5vcNcm84Oit41sjTaytyiQA4dW2nvFoIV/6MlB4V/BftffK6VZFFOZK/H5iO3fmO6yy7kwaDVI2/uZz+w9GMsCmT77BEBprHRrjzGpp8auCPA0ErpJikzb9aYUc9SnL8KHyY0l1ZLIh+ayxNE6RkAdjQmH5y2KFi4yH1gCgyG3h5O2slz+0MWYg4JQF2KQWWpSjSZoA+1bJHh5bqovT32gtsyKx9uIeuJAJ8GY3se4nkyI8KQFXNEtjdaJN4lzih61cKiJPIFbAe5VEB/Wg7t/P+V9Vfulgu9NtvTcx+2nYKvGrHfE4lZMlH91hr0blhuMK32QoK/YQs8md0GKfNnZlmWHzm9jRlqH+l2BDlD+IP2GMLAP7LEEpPUoU3ZN05dZRyLeKAZTuCoUfCJrMAWNLERTJ7KSF9YyUhd9I71qKukfPInU/NeSI5BGOKP2yr+bLxvUruahNvagA1VsNa4kyehStkXYt6JPupfA5ZtHoBwx2TmTR4UeodsKzu+zbXP9egBg7MlewKxEzIvG202ER7U9C8zTtKZC4o3pe6mz0Q0Ko4TDaNsr4TLEyxSdvkjdZdt2H2jNsnikNDA665HXyHGXAll8lU9li0kt64YwCx7thRqI98N8RiBxFiR+R0dt0Z/61nbO1le/VUAm0yhzFsxMcCZX2okjFzi5Sxrue8rfukwdQkerle+rSJ3bzyNbUysAERdirhszYSaSF68EpLiurOTGaNS8LoMHmHsUuLrL/RN2YVBKgvl/L3elg+gg6ZaAl9XfZL7t6RuiSf21cTEGHt/Ow1Gew7yqbuinmX3Aia2HyWcjOfs9NqYbZids+2AN9QKQF7yj6Amc4RHQiwQOkDeWsiCReqh1Yy/pykLEzkfqmSQekWV2zRtQFKsPI4yA/DKxfIv0dsMqdytresE31zPH/Ny7T4vD+WKOeM0lrsEkGxm/1qFgqZu1kEPFeVDQx01KZaXvGNeumyFhVOh0jhXM4nxKkn7o6MYwXYwoIrpbWQ+Ng==","layer_level":1},{"id":"280dcba9-9e7e-4d0d-b3f1-e9179c16b97f","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"应用配置","description":"application-configuration","prompt":"创建应用配置详细文档。全面介绍各模块的application.yml配置文件结构,包括服务端口配置、上下文路径、多环境配置(dev/test/prod)、日志级别设置、Spring Boot基础配置等。详细说明配置文件的加载优先级、环境变量覆盖机制、配置分组管理。提供不同部署环境的配置模板和最佳实践建议。","parent_id":"1b327205-aef1-4e95-ba67-51808ac20eea","progress_status":"completed","dependent_files":"crm-app/src/main/resources/application.yml,crm-auth/src/main/resources/application.yml,crm-file/src/main/resources/application.yml","gmt_create":"2026-08-01T10:23:56.6321232+08:00","gmt_modified":"2026-08-01T10:32:56.6530971+08:00","raw_data":"WikiEncrypted:6Fw6zeKwEGma9eKCQx5Pd8+gczSK/sLVoUAk9JT1g1H5WE1OVfW4AZsI8yEXH4txBJYqTdRc2GU8r++KVoMBLn0XWm93DZb4Yeg7UHuMZBdNnPC2X/3BNCscwxZeMk9T4jCb2336W3KUYgNRJ3T2JSdoGGx9zCkh2I351qrZiAMUskSMjnYp4mZ+NHoK369UjBjFN7icPkVV+mO9kkzT1jcGp1BEHKtBSze29Gj49IFFk/5v3xmFScV4bd40aDzjUKyt06AouJvqZKVhhgU5N+k0XAvksOPzUBVeXC78FyqpbW2O3AmiGLcujC7+sHaHY6bGtyWC8b7LOval5FDPXCTCLR4IHoOdwwkzqsKb+pCjIgDvDUL7Qn0y0LNBht1hLMelwZERPjU8FKiCpOFwRfzZCAGBOdkLVensrpZsr3PRqisPHfqbPPy8ET0dtgj0XA+FJqWgWjFPMfw25Jl+DK5qj1dW7NqTVKg2gBS5+zShLTfAOI4CCrsIKaNB1AOY1xAxpFg0nBckIFmdosFY5/cT4RbulvV6+zHEiLzPAoXpKNg4guEjStzJpYYgyzornUSEbVurAbI9imK8vX+6FSBEgRrXJN5G8KOyD4ssOmPGeSv9VIbjeEVJlLAq5pVXVLFu45uFWedN7eOAMVhp9jAAZGM1G9uE3oj4KPwajC1bTJf9tlR9usqgZquYzWflD+lasPcSnbshbhRoQ4vW8EgPCN3y8jGJzd8oQwipXyoXPQeESTi1PM8WiXqQLVDDbwayKxnT37IlFYy2t4Gjaz01zjdTSP0MV5V2jScPRCTb6SLjHSNAOKSbExGTwNYFMIOhybyyr7yiczlVkjlVREHGcvNKfYRtxMV1USKTvvEyEnyWKILo1I0VCnY2VSZ+Rg4HXbOaKevMorXSbV66c5Dpg3AL6sLZ8dOudeT5tSpM8W3eKg5kecSVFFpKqVZ2YdFfehqcXbVoY9WrtX0xQH+6aj/HCbts7QJ0C0e721xr82Z/UyfrL7v3tWgZGaKOeGP/8s77wnqnLyKn/92JCw==","layer_level":1},{"id":"ac97848d-30cb-4326-a786-d6ff15c3b403","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"认证服务模块(crm-auth)","description":"auth-module","prompt":"为认证服务模块创建详细文档。深入介绍用户认证、权限管理、JWT令牌处理、第三方登录集成等核心功能。详细说明安全配置、过滤器链、用户会话管理、角色权限控制机制。包含认证流程、授权策略、数据权限控制实现。提供第三方登录(钉钉等)集成指南和自定义扩展方法。包含安全最佳实践、常见问题排查和性能优化建议。","parent_id":"ce73559d-e232-4666-a740-5db08637816c","progress_status":"completed","dependent_files":"crm-auth/src/main/java/com/crm/auth/AuthApplication.java,crm-auth/src/main/java/com/crm/auth/config/SecurityConfig.java,crm-auth/src/main/java/com/crm/auth/controller/AuthController.java,crm-auth/src/main/java/com/crm/auth/service/IAuthService.java,crm-auth/src/main/java/com/crm/auth/security/JwtAuthenticationFilter.java","gmt_create":"2026-08-01T10:23:56.9683762+08:00","gmt_modified":"2026-08-01T12:29:28.0092453+08:00","raw_data":"WikiEncrypted:1O68LCvyq1zgacF3KZk5YRKZKBkixVCJ7qLApKTAIAYMZ+KzJ+0/n3ivSkD9dNPuK+6iNZzAQ8+P+h8sHLA1ET28RxSJlIQCVrh6ke+HsBz0N8DgFAqEtp76KLltqslXTa6Fb0waWV8N2E75yi+XqZxLqJv2DRHC8SLVxzZy/IG2JziOdQk4cEvGuilz6tESjKmibCzKD/1cLUm6ixwlafv7dMAtTVxCLdzjeeJbJV4hlrGMI5c0VftOQvxkSiigsVyk5Eb1ALd8VaVU3aGyyMKJplGed0sSgjaKguVmsTm4rgYypo+k/UIfwDHuMaun12cXENP7MuIw2TvO+GYYJv/WLakUuqSqbNWGOslLDBXpbSRNYk/AnJEY+xM/aI/G0SaZe067cVOYSVbvXNlMFocvW3DpkLgoDm7eajmKv3MYiiHV+YUnn7M6MW2vyzx+uTgYS1Ly/ApqSqLZ2p+k6VH8L85CvKFepCWa5KKs3rt9GI2zeetMSEE4MevpTtGS24NhlECS3sSld9R9jcVjLbWp8N/oOJyTfShuy8v+wiYsaEW3AQOpI6NUPcR0Qhq4G9h+UFvnnWXIhU1+H/a/E8Q++K1Xn8DFmqhANX1uKyKCbPAoruHgF3EU+sozoJkWC1Z77HnKlu6iozvjp/EhIkPHYcgP/Pzp+uto5/two6dimXbmBJL811fAGIMBJS4Jg9od+cEPGYR4wx/MVDjK3vcgv8MlDSKuDTtTdj3gbPiabAmeX+eJ4NMj4H5te/qE+9yDqtUzfU4YEVJvbmKaAzVTIg4W7Kaljz58Bg9t5L5r3pY2zLVMiKak0uBzURocVIBoloXE5d1+uMBrUEWhhrgHWYDsaMVkOmSgItP/NEcBchqhlTWc7N7Egq0M9ZN5jCazcQTpJoJR0waR1IldYGIG3trXk98BN1cgscaztXjWN9MsHb/wkX0ONCoXznopQcqaQisnbenWQOV3iLY31q/khDtOMdxYNZgnRQgekIIZ0FLwIk/uMffEurlsfzXN89j3I/gpIL2VvAKDgOC8VFRJSPuNFiZB3KDuNAdZmQ7NpBiUqehMiW5y6vI7/Cv+Xm4uALyKTqUTiS5ddRXJzsFKIKb6IfxpmeEsalMMuaY/c4Y2M+AjHnIG22VW8nx5mbxKwyuwFozWBFsJ69JrRcKxdWa9ZR4xS0GMRZjO5PJfaj6MSbQoQ2wg5DAbYNSe2LqanKTadAT8nKKhMbUagzhOY3g8X6tuQukF14mqhQjMuwgOv9flsehfd0pJdtXnLcrcxBeMhQGc7ikeJUv6kRvgxGYQMDCnrAxYUX4dDljUJZdqgpdnm81g8LUupK5uy3BnkWHyd4J5qSxPlHc1l28vXXygLw0a/NoylyADJizA3fbLzxWETay1A/FCi3EAFhvJKqGXESiU+aSXJDCDJePtyYmhYXx8lt6UcI4LMmuyHcKP9XiztAXrvARUDSpW","layer_level":2},{"id":"02662906-d5fa-498c-97ec-6b984ac00ece","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"认证机制","description":"authentication-mechanism","prompt":"创建CRM系统认证机制的详细文档。深入解释基于JWT的认证流程,包括JwtAuthenticationFilter过滤器的工作原理、TokenService令牌管理服务的设计实现。详细说明SecurityConfig安全配置类的各项设置,如登录接口放行、静态资源访问控制、跨域配置等。涵盖用户登录验证流程、令牌生成与刷新机制、密码加密策略(BCrypt)。包含第三方登录集成(钉钉)的实现方式。提供认证流程图和具体的代码示例,帮助开发者理解整个认证链路。","parent_id":"dfba2481-1f15-4203-89c4-a87c16ee2d90","progress_status":"completed","dependent_files":"crm-auth/src/main/java/com/crm/auth/config/SecurityConfig.java,crm-auth/src/main/java/com/crm/auth/security/JwtAuthenticationFilter.java,crm-auth/src/main/java/com/crm/auth/security/TokenService.java,crm-auth/src/main/java/com/crm/auth/controller/AuthController.java","gmt_create":"2026-08-01T10:24:06.2154865+08:00","gmt_modified":"2026-08-01T10:46:49.9440437+08:00","raw_data":"WikiEncrypted:uxAckj1IXK2TQH//kEdeBN19feZhfLoLwYBGoJKvH3N1obTJjcW+FHYSJonLP3jc+A/sg1WcUJ9+F9Iioivnmhhv2MDjd34HwbZjdBDoj5xh3OPjkRHpGc9D/d+FmLVOUJ3NFdLq1dWu3AX7Fpr+k0sTb+9Z7hfYvdk9/XHtPEvfA1L7oBoGoVXeIx/GtYlSiQQ/uHHB6eE3SYezSUXzKG2Wp4Q8eFDUJHg6CyWMpEpbL98T48ZtjqNdIafTfBvV7nTT8u9ptqe940AiKwxjicuwFbTLxw85VNH5iCOrzKmR/Peiw7lZicqPii2hQRF5f7R9EqqDIEcEXWfiFsbI5lhLv+gL90StETqsEr1hWqO36Sg7JtaGPLxMhGJMznER5LloiBHThpm6f3NnRPjVanmchPZ35Y+pQ/kjbkFDOksSMTT3lxagr4dbOGSWfAyWircsxffSGKfuEu+t/VjLrUyc4Jdsbpu/JIeCimQagzemisl2uJpuKoJ7hhwSAOgR58lT0na/ZBsPHfZy+2CEs2cHWzpn1pAesEc98nr56vJE9A6bEMhzEHrPjv2rJRqhhLxQxpIduaiMK46iQtOSihkhGyHzNO/ijJe+MjwAtesD0WJ96TBN9+3He19GlHxNJ2Vb/rOc2682szfcQbD46ZeIRCgAgZ9MiJaLa+P0bJZva37tR8k3Tyt3yuXM+S8D/px87khKX+yK5WgRitPBWCgEkk38qe+X5Wdf6pvQn5Z3T6tppOZ537651uCe6giscJ1Fh1VFejHoJ/0QEmEtOw/EwwAXeMKf/+2VGEaXItFPtzi7cbn/YAWpCbh7/C8d4FAj8aVVQpwsRis2WqqB7Q6PI6er+iFli3ACS0mAqHa8hTaVlSHRlYwueGyfx2aiR+Va1B/OzMaZW9DXAUZvdIa8RY5U+NmHmu+shRglawfVWMB0JBTTKwExXZx1J9xAhxvHJcTrAZ9P1Pt42oe1jTYJX7RtoI2sMflVXUKlHiYJIA+I5iTTryeOzcY+V/z3iDRUqKMOJccyUyf+sptjK/44mBlEp5Rn3L6YPp8TH9YviP8QhDCUL/MKz4tR4iz44ogG3F3wUx95zeo3rp59rhTyL+8uxiqoBXtxuOgEvpPi+D8Lw9U/kyyIZmk1ayUzvbeSZqvKJG+filjFQP92RF4X0n21Hej4z9X58YpIj+xi1WhMTpDfCVNiMcJJVbJk2kozfO5PwDTOfq5RmS/QIbhuEPlqBRrlTWHH5hs2yXPle+pmPCiCjIbQSaOlC+/yQLCOBewwSl6YaO54rk25LSaAMnhbSRnY25MjtyhR0TIFKocimw3VcJt1hKZYK9XQmkfYD2144cO6Aqo0UkBFyqx2L7kW0R5/yiqIIqkpYLqibx7xLjEL40QBEF7ozyRuUw1X2zXYTMhc8e4EkHYCc2gjw0LJeobb5JbK8XzAzrJNcZB0VUJIfu2ytCQ04RXZVJWcLv2iou3wJN0y5LoIRQ==","layer_level":2},{"id":"d211ba82-0e6e-4228-bc5e-89f3551b2d13","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"数据所有权控制","description":"data-ownership","prompt":"为数据所有权控制创建详细文档。深入解释DataOwnership注解的使用方法和配置选项,包括不同数据范围级别DataScopeLevel的定义和应用场景。详细说明如何自定义数据所有权规则,包括部门级、用户级和全局级的数据访问控制。提供具体的代码示例展示如何在Service层使用数据所有权注解,以及如何扩展新的数据范围级别。包含数据权限验证的拦截机制和性能优化建议。","parent_id":"09833ae7-ef9f-4e37-9c16-22301b4ad52e","progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/security/DataOwnership.java,crm-base/src/main/java/com/crm/base/security/DataScopeLevel.java","gmt_create":"2026-08-01T10:24:06.5647228+08:00","gmt_modified":"2026-08-01T10:47:46.4148252+08:00","raw_data":"WikiEncrypted:EWnmY7FrSrDNzKPUk9wUqVJbiamaj/WtxTUrb3BZ2ZijiB7KkRwwZde9phC+3XDz/ue79S08r8e4a69b+hZtK19Nr3S5bmAlsvXcgS9x3VW7TcdYOppI6JGQDvKOrhs2raSCPxohHagvItJCbKu0JZ1LnW3Rllt49eqY75nxZ/voU3p5PjiZe4t3a3QGCb4aZX9sH1E5wygVpBPWDT5LR+mHBtvy+1rd6oFqX0ATllpEEe8ghA8VgFikAtewtAK1A8Aal5hiDmFdIvEejZxv1wRS9VPjTqtgT337b6f55FGp8iRf78a6tXjosBob7kLArionaE6xlTX7sTh5zfLiVm/hUdxgw2W0ErBu8Sv01I3gCSQN7rsrJhUJUy6fKPGO/xUD/EePwTJL87uQERKaf+zvt2Y6w3VL2guU4rZ6LYeWQ/WeEEjjFAXBuZI0iCx9Sl/dRWBUNVe/NkooCcGLyEbUYPPLdzWCN1H9lgNRxQ2WmUtgq5EkwthJs6k7PsXlS+0QI8bb6OEURuwFoilBaO/mUdoH/WvDX95tmNfLT0K1IOToQACZoWZEYDS4ZKVtHyNCCCBhndXop7Knp7UAHuNwm+gHi+9jr8QvlkUDElcQzoEptp/YGDW2obdaclyY80jo5h54NDGybs3nd7fTUQg1UJKz9Usub4RR6FNq89CUmXn21cEhrjW8GXDtSfirLW18eSRACqqeSz5NP1ATdTXZKbbiM3fCwb5lRoJkyoWHGMA2bDdvqjYuoKBdVVmeTw5kQWUq/WSBrp34JaZlSsCYss2MJcbHmiNuYVX+Tg+Cqot/bkEdZwfiE4yeWKIzk2F2qDuye0+Mae1DxRSdWi38BWOxqERcT5cdAcYTm0DmTmpn9+WNu/YuCXhQGf7PGS98hyfPP+wLVmB/Ct24ijL7fmUn4cBLwH9h3v9fbuT9vgLTX+hOIGwxIMDBPDzObFHsijV9JW5sOKUFZOQVksXTXpyDzH1Cdf2cT7wzjsEilUrw1x9vCRFUAxeUByvd4kx1vu0D1JHXQBpygJUpC0Sg53x/jjE6oDQ0vV90iERJfK+82MhpvxU0dZYGfHqYQILae2mV/7XJGs4WRojEDJsxuY8MiZ4XWddPsUIz+YvOeIqoBAkpe8DEsSQcR//bpUZsASvh9nYlSqcg22mKHr0WVjxIz392dEkhzLFuRx0S7Z1vF1yNTFLremgj0G62","layer_level":2},{"id":"c0fa7e49-ec5c-4aea-837f-c36960b529d4","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"MyBatis Plus配置","description":"mybatis-plus-config","prompt":"为MyBatis Plus配置模块创建详细文档。说明分页插件、SQL注入器、元对象填充处理器的配置和使用。详细介绍自定义SQL注入器的实现原理,包括批量插入更新、逻辑删除等增强功能。解释元对象填充处理器如何自动填充创建时间、更新时间等字段。提供配置参数说明、性能优化建议和常见问题的解决方案。","parent_id":"c12ea8f2-bd91-4cac-b219-49a005e97563","progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/config/MybatisPlusConfig.java,crm-base/src/main/java/com/crm/base/config/CrmSqlInjector.java,crm-base/src/main/java/com/crm/base/config/MetaObjectFillHandler.java","gmt_create":"2026-08-01T10:24:08.1666362+08:00","gmt_modified":"2026-08-01T10:47:44.8765359+08:00","raw_data":"WikiEncrypted:R3G/j4uraRHb43J+Y7g6azMTLUMZtTrKIaD5/AbxCc3BA+QAxAxW1rV1cbrgN3X8LxK9i6uZwuTAircVSKZ2mV2ZFKRiwCJtZRkvol+KikDKo8Y0FRfV5j/o/gLrDOry1ZB8XS5S91H3BmLceZScPZLiPLFJyJjwCcV3WvdvsljjJorUXFI3CS60Z0M2WhxvsA+MS/jQd9BXx/nVOaXJ3LneprSVsjZ+azk1kYG4HF778UPiRrFmbJcELGDSx/pyJaIIXk7pSCj3NI0o68uwg6jMI1WrOBN3q8PSHB9a/p429/OwAWay5rgx4m3uoIAm3QGiJEA69KTzoxUZwYfQexdXRHF7wgx1JKIIwLUd9ddoDUmWM9xC6F8nn51fUoQBGia9oQupBnpkjWwcX8Cqssg+OpFSjmfq4hw7u0RU0fWuLJzirKFVfFvL0SPL2+qblWRHBLH1exAOiE/qBe5S27qFANu2zhECrQwzo2yCyWrmT0FEOGvo/YrssTD4TaPMCCtPRl/98iCTM9W+XquOJNMFNTlPG7JfnXjnic61KxflC2XT0iJ1TEGRVokHIPoyX9nBsCC8ea3in+g+tjpsgNwxuBiaWNhls36idR8+FjHS9hy+ZS+AqRsXgtQMrZpygljzjwUqg00dek9Y0SIqjE9oKsF5awzPpWPfYsMTSjleIV0HS6zvTWYQ2nNJ3ePeziJTJcFCKSYlt7ICA8gtpGJvGcH+tsWDeXRnWMXv6fYmQt+10rV2IkR4tTxS1eAck12LUSQk3Mpg1onG5xX6pHZGOcN0ldfPMUmszkdquvWWKPDzfclkQkvfZ7hTiZq3eXRQ1J3ju9uOOSa4C3q5Btl7WnLo6dQ0lhARdelt4KMmLOF4pcPsUPrwdHJpIjVrMiEmi1uJUeDDZf2Neonm/92zIC6T4eWD8AudV80ccjgirCz+ONRd2vWoLyK664D8eOuxEsuCzIQbbDPOlbuGrlbr9gPPx2wbOWk0anVGr0Fsl4TxcwK5VKjQed7ybGQ9q4RcasD5SueZikUObfDFoK5T8LchJgoEZActdSFqJ/8LcugIecXxq06uRcHtjtAQZQXOFrJFeMHsxNVF8jS0tVd4Ov9EFKjujPIMUeTsKmVfWVxJE6M/LAwSFD9+omDdsZrVP4XmewzzDvVFxIArLkBXmo6yi+0zDA9VYSz0Lb4C2TC9GMWkB/PQAGDQtFCp","layer_level":2},{"id":"6d9e49cf-5d63-4f9b-a7aa-4e7f794e9254","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"认证核心功能","description":"auth-core","prompt":"为认证核心功能创建详细文档。深入介绍用户登录认证流程、JWT令牌生成与验证机制、会话管理实现。详细说明AuthController中的登录接口、AuthService中的认证逻辑、JwtAuthenticationFilter中的过滤器链处理、TokenService中的令牌管理服务。包含密码加密存储、令牌刷新机制、登录状态管理等核心功能的实现细节和使用示例。","parent_id":"ac97848d-30cb-4326-a786-d6ff15c3b403","progress_status":"completed","dependent_files":"crm-auth/src/main/java/com/crm/auth/controller/AuthController.java,crm-auth/src/main/java/com/crm/auth/service/IAuthService.java,crm-auth/src/main/java/com/crm/auth/service/impl/AuthServiceImpl.java,crm-auth/src/main/java/com/crm/auth/security/JwtAuthenticationFilter.java,crm-auth/src/main/java/com/crm/auth/security/TokenService.java","gmt_create":"2026-08-01T10:24:19.0167475+08:00","gmt_modified":"2026-08-01T10:54:25.5834368+08:00","raw_data":"WikiEncrypted:9QOSaOQHbzL61d6MLK2xGPwC1XklY/msrrXNFxJx7m2nyxyUlMigYzlIe9V3+mfyG2LS90VprjQ9SDyXC8LR1PB6RhlKw8YQpOky8PLRhHYHkdHlXQ/8PQ9AmbQpyJg1s3NR83N93UeWufZqgU86Dtnj98SuRgpOilY1iTClG6hGSDGdguqChJHcp7r3PiuN8nAeTqZ8yQfFF4r5V8fU3WWY6JuUoy+iR1LWQkCgxPvx5xZH99mADfgtAW7RzYp9jvO7YgHBA626WhVWqv6O7zNzOIo2x0n+UZHYTI//TSMpRP97QmiCLxDbuiw4Ff5h++8DQ2x7AUEaZAy1aeInes/Nomu/coouqY+qgrYVddc22Uzgz+bNy/PnG22I5K2bX65zc5cIPk4I4xIIlpwf6ICTFZN2Y++qiKxqc44b1haNl12EvFQvzgS9meu6X3DPZkKpSy32wP35vvHUX5b5MXl5gCL5o8mUp/Gk0foMLhMqUhBXXazaAd5jbBzGHym61Ze00Oc1B8Zn3/yZsUMz6/Za7QvBKqd0oRUQghnl0gV+8l9k+NFE1PPYGTnQjkxmWUIYqRNxgYUVrexuRuRybLZXVRxeZdQV3mHZPqu/bHJF1ZhyeqeaAt05Thx1CZnbSqbCrVLtB6OAvew+L2lQ7qt1JFkTJ1OKZboOS7oCwrFiD5cpomcWnx+Elg+AXKWcW2nZXmpGJ5xbnfvq1SghvKIL5J5l2Fz0zB1kgpnzZU6xNKFXLX7INlphYTJSeKKg4WASOcy5ZKOmr/kEEtEliSxDgSAnjVpuPWusPmImItxju/3r6hdsodcVmwCGvuuup6qzZfITbprhxbhIdeVMtEF837we0vSg6pk4hFMufAN3qvd/uO2+uGg4hBBTSTOuq8n7lKjFxwf8nl7WbJAJOvhHTt/jQWUNNdlAbBFxNI+GJGrxXwbQytfukrRNeOsYlEfeAA2quSPnIIrOkvfxqmHpBJDr6nlc4+9H1ncjEz3iLMyN2JZSiJKY/QKQYlDwzdzE4GRkMkB1CF6lcEsiffpEdfWj0txP7wcbzgmjLBI+xsjfCeVUoR3zhb94eMKl/Bd/zn+esJiL1HB7DjWl5Stu6wJ+c2sbxv5pCSWF4VjaNIiVoHMEP8Pqxcp12gG0/TfPf0mmNrkbM5V+uQsoYSrxuRE2mM7IuIYB5QCtuTA6xZZWmO/glDSiRfJe2+UZaVyelJz2J55RhYXenkR0fU9kl5GUnHvivJyYFuwuQlnQZtY+/Zzf1LnXtq79wbJOE9ATSv/6/FED84EtpA31lFPPOx3DQH21SBu5h7hn6aWip9g5XWf6nLE76+mvlOPGEAJ5HUqKb2Mnm6C9yI51ISr6Qy4wAbCYUmxO6mWr1Tc=","layer_level":3},{"id":"7709d8bb-c65a-4912-bb47-42975a880b8e","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"自定义注解开发","description":"custom-annotations","prompt":"创建自定义注解开发的详细文档。以DataScope注解为核心示例,详细说明AOP切面的实现原理和开发流程。包括注解定义、元注解使用、切面类编写、拦截器配置等完整实现过程。提供自定义注解的最佳实践,包括参数验证、异常处理、性能优化等注意事项。包含完整的代码示例和使用场景说明,帮助开发者快速掌握自定义注解的开发技巧。","parent_id":"ab8a5041-5019-48dd-b58a-9870af2275b5","progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/annotation/DataScope.java,crm-base/src/main/java/com/crm/base/security/DataScopeHelper.java,crm-auth/src/main/java/com/crm/auth/config/PermissionConfig.java","gmt_create":"2026-08-01T10:24:20.4870431+08:00","gmt_modified":"2026-08-01T10:48:34.6505025+08:00","raw_data":"WikiEncrypted:VrTOMK0P24YINQ3w81YokT7HZqpHOgifbAbagg0+VsCbWv2FnlFkRhXiyhtutxmwsXQMf/rjyA/MBH+p8MPfYULZqxFtMwthmiRh1wQk89eJm6Df+qTn2P5+OsyqDca8c9VQ9pbh55BnFlBF9ULW23P3dhdOikPeNxIEMmK4Ahw7eUQjKkcZucKCxAkl22HnoZVjg4jkGZqQ+eQ/jcXKKncmmgRHQaWu22HpDEuyEcn+gvSUO4XtueD9hjo5atF9kGuRJzafMXmGoEQlbwEDUX0ggeC7OqrqBNiyERv4ZYYei7lgJpihBhkKy3ngoq+KVzM3rNFbIE1an6KcPvVQC86nwsxxhTH7VlVlIFDNcsuZBREZyMEepv6XroGkRQJ8w8BOUXMrNDFOQTxFWjrvoMeoMzeZzSSMfx2yN7GeRP9oWfUiOdHTp74ZodJY+lYM+H+kpVpFH7DZJh/fkJhUfBTDuEURHK0l/E2yeFZN9m8Jc3qMSs1TDNrn1KA+gfp0wmculjQbBd5XUn76E506gvhm6ynYNcPHL+/P3yeXqJOmyOv33qai0MPIFnbAn4ws35Zj8dad/1ZnskzV3vhmu9NJIOZaX48xdXZRSUdFcjqhp4lxANHKdZ6dnE8BRfItsTfzXoYa08sCIak37K2za6sAqTzHgKG6zg+WCufAcnRv8doiyD4ALmG/hcDODgyAsxniek2JcK/kH0DptPcEHHmO+W1C7rAA+eepof8FmzEzC0cAVLQhrAfvbM2LTjawLqMfE6siPTmFAN+lTZ+g9Lm+zmdJ58JoWqIoXzgPiuK1eDldZ7OpRjniP9CEfvR6UcIs09lk8BhxvZwkSfswgFCNIArHLoOtaLhEW2A5VVXtS4KoDr95Z0mQxnVYQwN8Kt9MzSLFVdJ5OtAuNiruzkjzW9rjjE9/Nhzw0Eq1T8Ej6f+tE7mBG6SSCxFfwrw8xY+Ap/kpQCHC/BDrZFqv7kVbA1fMfKI5m4dP+eD6Y5HO9q58qhSoTiIHfgRxRnG8q9JXTS09Q+gXAojeLFLT7RKQ1z1ArAI5tRya76z/EJSEssMHU+5G1ZZwuhUcCIphcFTzmHqmu6C8DCQnmdPLz2xbPG2iaNfyS+vha8vwFAvY9Aw7mTnOd2JaSDpNwBffE5fMu7nNlOX1Y0x8NqnhoNCbvM4pFk4qEkQFOtr/wG7P+wr6GeFmqHBMV4gBcb5QSENvZstvsL4kuIzCJFqPnA==","layer_level":2},{"id":"4ea40cfe-cfc8-4fc9-a38d-be371286aa3d","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"通用实体类","description":"base-entity","prompt":"创建通用实体类的详细文档。详细介绍BaseEntity和OwnedEntity的设计模式、字段定义、继承关系和使用方法。说明基础字段的自动填充机制、数据权限控制字段、审计字段等核心功能。包含实体类扩展指南和最佳实践示例。","parent_id":"2a7c08a9-ca56-47d1-8a19-08a778b4fbf0","progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/domain/entity/BaseEntity.java,crm-base/src/main/java/com/crm/base/domain/entity/OwnedEntity.java","gmt_create":"2026-08-01T10:24:24.4027378+08:00","gmt_modified":"2026-08-01T10:54:30.1404+08:00","raw_data":"WikiEncrypted:eWJG/e5ing0ewFH7hWSyzHmm4uClAAvkyiDqUtcCNCNjWGIxFLxqytgUvr7r/8RaqNdcZeV4CCbh/bMhWOA/YED95Y9TiN/ziM8J0DR0eSdio8+MEDLQBE+mDLvK7/E6ap7b9Ixc9RO8BZYux2I7a/mWlDGVJymMZ07copzOKHP90kORH2qCocaAgeGNrhUwieU9lbQiR7s6pvC8I+vk9acaD+hEsvYtL1DRKrkjjM91rcBzIO613qYfu3CKjYMWGKRbfQO3l2VrpYzHshNtxcAzS2YXWbAhP5Ks//CtvTkzmcmrQrdeTTLXsMCqTSx9ILbDlXoD81crPQLQh/V0l4Wcv0bQ5AzsTlPutGJGktQoORptiUmZaTxqE6bq49xFB2iToo8FEsJnOjL3hz8Wh8TnPHAmB704/B3yl4eUrvafZSNedeGicsklHTZe+Dgx2WW+d9Nhe5qPyUje8XVqY1nauxXZ3GyjH1Yaa0NC6z6e2cE6Dhif0nH7+eblA1iX7t89XdwnQm6pB5OWVzJpFHD7kSuj9uG/d0IhWL4XKatN7fTJcGPP/PxFHPlTMp206vuDVm8qdz3C1A/ymmoiHlN0Q85ese+Mli3cmO7hNMFWqO4miIiBzie21sN3ogOhVF6qGt11OxJeJPBxdLLx4BpPC4CSXbdiuR0mbeTj+8MRpGY83NHycyrTeSvJtrmEbYJo1WWMkoLbkSRrm75WXO7j+/XOrwbRSXdTh389WijKJd7EvlddvfWmKR54BOwmyNk1GDOwGvLeUlo6ojpu7Ug73OIYZ8XGvleD/tY7IDlw3OBeVL6RNEUNG5etVEzFJAaDYMEaz9WTxa6l1MNo3flox49w62ser/DKca3MGGk=","layer_level":3},{"id":"dd587951-175e-4829-b096-36d9e6d5eaea","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"快速开始","description":"getting-started","prompt":"创建详细的快速开始指南,帮助开发者快速搭建和运行CRM系统。包含环境要求(JDK版本、数据库、Redis等)、项目克隆和构建步骤、配置文件设置、数据库初始化、服务启动流程。提供常见问题的解决方案和故障排除指南。确保新手能够在最短时间内成功运行项目,并了解基本的开发工作流程。","order":1,"progress_status":"completed","dependent_files":"pom.xml,crm-app/src/main/resources/application.yml,crm-auth/src/main/resources/application.yml,crm-file/src/main/resources/application.yml","gmt_create":"2026-08-01T10:23:12.9557465+08:00","gmt_modified":"2026-08-01T10:25:35.3348449+08:00","raw_data":"WikiEncrypted:qfgbutC7oyxR6nMxrwk1ODnNMBEQ3/sG78fQT1yXWju83LC7H/jAM8CEAvWT8huE5OClmQiIfNYNxHQ9s7RRS2mtAecmmvLPgKd6tawZUhB5KZnZSF5+8AMkH8jMNbukZfdZqdronEKkTAjb0Xui+g3820Sdih9Ijnkr2dVJTULtip4p7QaVr/sCbZvzEuNJ7fpWgmeBzNgy6EPgexjo7E/6Anh9tIPIwK5pbhrlOFOV4uu2QtML/o0V3TkPUJNRLHzPFAfj1RfX0NTGGxCmUcJBHtW26rVURVLG1SVPsaV8epeI67z7BsaXDX54AzJbWKOPFDsT6Mns4DededVnVAmcIBc+HWOSR0QgXcPmLUlkC+kAI+hzeEoHKQgD1sk/9fVotc4iC4aPAuyf71rygcOsJXEjOh2LBItJzkCD+RG0Hx7+d3T2tfy1dqjack2xxs3hXpi1nIC3GbqscmsPiuwCDMgYYTK4vgWiIBRVUG5Xd3zw5RttFvLT03rfQhOTJbJyDk/SCFhAV+5RDc8MQYcRwsF5ru818HnMrVEtcsSq/LSqgtpZJjipq5Yieg3wixQ5nUv8GBV8Po8cjva7+lil8gnUAXwBAYDESIMuF4cKQWsLdYUxnQXQICY2BBiW6hDjHjw7juMLIDGKt1eWp9+00+k2dgp+KZtGlYoYLgUx9yBAgZ2Yuj/NF7jE/+hD/w46zRRbrDUKNM/icU3ApRGfV83KvryPBQ/zjGzDqXBJTKEYWl8e7n0tMJFQ0IicN2uzLKvDxaJbyy/D/gXi+Vqa/2EDhdYnrhLDk5d0T4SlmgUJ1ytwslFy+oVr0W3bLTaOg7afgKDyRB+qPoAqm/HbAt8Q4PfprzZweoUUlXzvd9ABAA/HvMn5TCddpv5G1N9AblJZx9+gcZDb3NUCIBboAgQfUeJqs1pFLo4tsPsNOE4iIT+b46/7qhZKFswPL22LJbIBk/GrwZ8osCDsw5Bk4TrtgW351ILsPi3nVRwKRUT/uB+Qvoyngn0gL+G+m13QORAtHV3WFkFYQIWOyrPugZGHjxYHq3MQcWIQVS/avVHwUsb3TIO8MqHh2uJQ"},{"id":"8f718fa2-87c5-48d6-81a2-f1e34445f5a8","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"技术栈","description":"technology-stack","prompt":"为CRM后端项目创建全面的技术栈文档。详细介绍项目使用的核心技术选型,包括Spring Boot、MyBatis Plus、Redis、MySQL、MinIO等关键技术和版本信息。说明各技术组件的作用和集成方式,如Spring Security用于认证授权、Knife4j用于API文档、Jackson用于JSON处理等。解释第三方服务集成,如钉钉认证、文件预览服务等。包含开发工具链、构建工具和测试框架的选择理由。提供技术栈的版本兼容性矩阵和升级指南。为开发者提供技术选型的背景和最佳实践建议。","parent_id":"a894a655-5840-44a9-a639-04a0c1885521","order":1,"progress_status":"completed","dependent_files":"pom.xml,crm-base/pom.xml,crm-auth/pom.xml,crm-file/pom.xml,crm-app/pom.xml","gmt_create":"2026-08-01T10:23:24.3477244+08:00","gmt_modified":"2026-08-01T10:33:18.2060852+08:00","raw_data":"WikiEncrypted:w0CkdCdnXCcvlN5xOpiEhEX3U68GI0Ngj6azFMJo9xRSxuOblJXg8Gncvj5vankATp2aJeXH/Zz4LVKH2Ep+cKjWgx16S0ipU3KkK2EtlvXy6LXaj2N/9K9DSP9zPH2uIIbIn+lx2VTPF7lCwvm6SoN8yoQwdBxCAKy4KBTfTCFSr+WyCBgZaGrLcSYHT6qbUyvzo35eeMyCwUi62d03xAuV93u+ejXWhMOgLFu4+XZ1+zNRYVz9mbEBcaqKpKlUgSeq4UuwpduCdv0XVcxFl0o//BwrvFUdu2jCK+qwgdmbQOygPuKh681hedcQ8j3GBhH8+SPLCRU/NrPhUspAXUiq7zuwZQ/7dE/gwVNhekMz6NM656bqZb/4EACP0yOES1O//2TWNd0TzMOkj7XRYUUHLMRDVs51n4j8aDIr6pzBhQJlrODWBWQ0MmRpFsbO6kpAapRk1ori60jsu5zbdJSOq/Wzc8yn+jcqTjm6PyvTI/nBQKWNJbwgBI2lBn/39pNFJKndXt9t1FYTL5Z87WN4TP4WJ2MqYJ7xDlJyHYp6lQg6uv4ldq+mwfjEWCjDvMN8ic9MsQ27W9751py+fbHkty9aJNpZ9m+iSzjoKc98YXvGkfGtKXS3NuhfwyGjuxWBQZm9zylI+/6jtu9xsnAiI3kb+6+LZSMaBWf9M6yZSCQ8Sl2lXfRxuMjS+9HdnXIpxK5LbL9AzE27fTurSC7/yzPDrFhvHpb3KSZTkkO/cb8oaKpPCKTBEUTmKBdHu26wzEsLuaTkOrvwIEvag5nbC3L3jnpHP4Z4oaWVf1/BWPw8gpMgbIFdEcegV+mHnmEjFxjywgJWZdi53GStBB8nuy/jN2idGHuSv085JntemmMusA9UYV70DbOX1mzoV8vecinqS4oetx/7cl3wilT4MY0t1crFZklV1Cr7IXLmHQjNEg4Pzh92UQMWupNxCVydWdPFMgv/nUZU4dm6EOxFzUnSH3nUU6zMk5JWl2pvK1KQbBOEKG3RJapcj6DriPaNbaiQqfp5zHym4eQ5BfF3qCXo+SPsSIG51SRB0tGsgCv/O5KGyGn3AtR1gKmP/yQRJWAYQUbQoBkbVivSfaraKjUm4DM+WFmQbh0W2HY4b6qlH0f+7fLA5NrNLSwf+KDSu9gBVw63uYCELp9x2bw6+jnRc7rQSc5gLzvmiwtmlWdOVgmLRXn3Nwa4Ra8AMTkFkc11yZbid0cH0VAYaw==","layer_level":1},{"id":"dfba2481-1f15-4203-89c4-a87c16ee2d90","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"安全架构设计","description":"security-architecture","prompt":"创建CRM系统的安全架构设计文档。详细描述基于JWT的认证授权机制、RBAC权限模型、数据权限控制实现。解释SecurityConfig配置类的作用、JwtAuthenticationFilter过滤器链、TokenService令牌管理服务的设计。说明DataScope数据权限注解的实现原理、权限拦截器的工作流程。包含认证流程图、权限判断逻辑图。涵盖第三方登录集成(钉钉)、密码加密策略、会话管理等安全特性。为安全开发者和系统集成人员提供详细的技术参考。","parent_id":"0825e6e0-bfad-4739-9586-d2ec50ce2dcb","order":1,"progress_status":"completed","dependent_files":"crm-auth/src/main/java/com/crm/auth/config/SecurityConfig.java,crm-auth/src/main/java/com/crm/auth/security/JwtAuthenticationFilter.java,crm-auth/src/main/java/com/crm/auth/security/TokenService.java,crm-base/src/main/java/com/crm/base/security/DataScopeHelper.java","gmt_create":"2026-08-01T10:23:24.8214908+08:00","gmt_modified":"2026-08-01T10:34:01.6727633+08:00","raw_data":"WikiEncrypted:JNhY5K+GVMrcGagKRy9Mk1JVoObLAcbfPlMN+VTvVmnuPEPQzgOEH2CHPPM25lQAQTDPOwDdnNeykeBonmEm0tTOQl5Z9cL4cKzNR+/AKzhcATTGXf/Nw6wHp5y7hqir8GpN7rXNuwlqhyHA3R7LnEiVvBkB+MYZPL/YwGHFnqA3iSlSuybpH/e677Y8ZHdW1Ld6Q83N6cdc/cxZf9IMJbbuD2J19btRW/3Bh1Omf4AsRmbOVSkN8GIvn9bYmIHZ/7rSyNfIk37P/0bkj4JhDxpHEnOgrCTYIFrZODOmijQ6daAZzYmPo38+FbrVDsit8xZINhpnxhzXhh99hZB9WwFKqxWi5dr44difJ3vaEUcg1WrkwGSb911OdFhV2JyDF7SUMgBSDHVkCYdgt6LTcU/8svWW0lOyISRaUVMm5dy5uEe+ERmGXcIWvzwmYnUT5hfa0ts/MhnC9copSeTIlp+8ywPYl+2dBNRkmP9KEfs6gyTEDJ3SWinljmBNwVZQcu6V3Prdb9LNlpNmMTKdG/vGHmxE7rlAu53cFgpItiXodFd/i+C5vdaw4NXA26Daeoiv0zYUqjxGwYAA8diat897PaIZ5xy239IaZ8P84UDtjocvj2edbcRP24s1IR/G9+lgkRKp75rwZaR8Cv4BqCiyy1XtOQ+1Y4Zsp918q7o9szq5InCWsUwdRG+K4axNcFiGO6x/tu3y5T5yC78GNt1BGmxM67tpt8LWIO449onENhznKvk1q+nJ+vkdx9t8684Nud4CUPju+V6IX9LgPsl54m0mLSrsPsHE2z043RaBX5T2UR/i0d96u45wK2BrimyKPPu2ckMKVj0SzrtxxF87Oo0wWcscrOoXU0G0+cDYW31BwGTEqAn04jGuQiXuF8/LQg5bCtN9GrjKE1TEEgQakXctS0Mw9w7M0KAm8sxlL7jlFM2Tzpl6MgNR+UV4Ttg6RZH1a0xVTZDIJaygYsSjBBK/PoCjYOwch5ZYz1/W7+C5MPUbFXiSCRIZ7CeAdNL0MPdX0q0SPAmq3eg5DGCvCO4H5q9IduwrAV+g21TTNOo9VGboxzU3DgMmT+6WeJBzroHExcF1y+UF6jX1EZRU5MiSyHKiwIQx1R4tMCvAtMLFhL6R8fQJ8A2PqGW7yPdBgbi63I/FhaGHSMztXyQJDWacCgF46hzTgYjbs/qlhbhCMDUDPi/9a8CXaZ71vlm+xwewgkuzy1bSYosCxkkuKL5khfjbyTQ878STaczvNY1wjNz8nxv38Mn3cWcz1xr6rPONJawyZnDA2o+GJtwU6H3SEMp27Y7sSUcB6BWmqmeNs80Ku6+65UwNJPmBn0tKCCATFbWH0PNRwdI5yCs9Rql8eO9F++5WzaeYJgLaUP8sW6MGw9/WL3b0b6sf1Zl7z4/s7C24J+0+xeIZpDEU3xT+rRkH/d98cVQlv/B8TRzNsycvwiknoYh+8nFpf/HaFZdVyqi3Wbyx63ez4CE3jSGbhcKV+CAj69lZvRpk63dDfciKKRrQdbpOVlOn","layer_level":1},{"id":"ff5cfc51-76e6-4697-9f94-ea25f3355e72","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"用户管理","description":"user-management","prompt":"为用户管理模块创建详细的技术文档。全面介绍用户实体模型设计、用户CRUD操作、用户状态管理、密码加密存储等功能。详细说明用户与角色、部门的多对多关系映射。包含用户数据导入导出、批量操作、查询优化等高级功能。提供完整的API接口文档和使用示例,涵盖用户生命周期管理的最佳实践。","parent_id":"3f1baad6-225c-4412-af0c-c52976d1f8b6","order":1,"progress_status":"completed","dependent_files":"crm-auth/src/main/java/com/crm/auth/domain/param/UserPageParam.java,crm-auth/src/main/java/com/crm/auth/domain/dto/UserListDTO.java,crm-auth/src/main/java/com/crm/auth/domain/dto/UserStatsVO.java,crm-auth/src/main/java/com/crm/auth/service/IAuthUserService.java,crm-auth/src/main/java/com/crm/auth/service/impl/AuthUserServiceImpl.java,crm-auth/src/main/java/com/crm/auth/domain/entity/AuthUser.java,crm-auth/src/main/java/com/crm/auth/mapper/AuthUserMapper.java","gmt_create":"2026-08-01T10:23:32.498734+08:00","gmt_modified":"2026-08-01T11:59:25.4101216+08:00","raw_data":"WikiEncrypted:omFBm9/VSXD3WIUtSV+9ITUDa2v+RYq+C/fLa8IO7B4qQ1XHnATlK6m6IxdkTmn8NY2ajKuiE9lLmBkQDMFcURRqkg4TKDRHcFEDVnbYWl/dgd1oOhtlZ+3c9jxTb4PQkXFU28v8wyZT/8cTB3Syp/0/L1Lfz6Qy/YwWTSd57sEw3CVLLnlaWZaagpQS3vCCsuSC683+r0GekuWXZ3WnfPFtlcg74Y1Quvv/Px/Qf83fm97012UtjEJTUmjeD6+j5Qq1biZgkkp9UzToM/eH4GfEsBUKOeUZYqJZdSL8g83HjeMZZpdsf5H3XvRoEU5uDhiWoKF+VdnuHZc/TlGR/+/y2X/wH8mUpP+U88/YktM61wtm+a06d+1Bqps9zntqxzm8uMWTjffxI+vXsWlVV6Om3tNIiKUaDLdE7RFz3LemADBpvRb2Ek3Z163NArwTlI9+A17BcxGPtsY16T0MkNSdmDaBB94lsrexAB455Uj4NmvJPQeMcq9RTqFlCxQwNNmOvk0dl7lN6MijCbfXUVlXvXK+Lv5AJxIvkZD1DzCuPv8c1omWgoYDOQPjbTzXEqYVn6xk1A/N3FwcmpJN+Lqeug9vDbxXLHvYyuY9Z2BuYCqwU6wYyiqcsAtfAtR0pvh3T7cZBTCbYm6pQQXI3er4qyjLbJCFic3QoCOJRZtUIwo2uqbPnA9i7K6px6AUcbXxv7YPt0kQ/DOCNsXif043ADwxFxR0BsDZv/NhFaDSxwGR+Te/UApHHMhN/gKOoeedrK0J0Dys3GzyTrOaybXC5SFX/W/IQxEDHinPKPUkJBvIArpxo03jgfE16wdspZpN/jRDpuYkCHLBEpbgX8GuHE9h/zRLm884pMl2I+ODc0M85n3gziIRYxa8UmKvO2Pkigv7zl//33xWcVb7tSk4pjxJ1hmbNoxw70YZPpzTCtX1rfXtqY4UD8d2euK7LGQeKwVyXo9msbYp9PZVo/Ts6NCuuY/Tj8cz3qnINfxxbPCMmtNqiXUMGhrAM1WXjguNyztL0LrrgER47f3V7crdzB8WOAhUaf2/VJZdGTQyodF+9qRlRwtqznmpu+/rZbKcs3ZqPJPJ5GIaMScsQUNrQls2eeJ68jG/Swy27Ar7kOZfrlrrZW00EazC9aToSjCFYzOM/ge26EYHrQbPqj3RveapB/gX59mHaev6bCg/lcONcVgepBaqX2jGh7TX+oi9WKgjO6kDVm6UeCONK/jZ40YBtHG1x7hwkHdkNBW8xu35R2o6rWARbBac19Bn/P96VzOZ9i3FKuiN4amlov71yBnVTCL8aG8bCD+6g5w3gRO86pV+ncNJutXBlarh7nCFvFatUjmUOy58ej5f6TBwtHJPEuD09OUD4kuc7p+9XuPlPmBf+XLSiWurKybmnhVveG5KRpcCWwbGVBGOqoH6TGL5BcZKgr2rOM8rxejnHFlNT+5IWKPYOGpgMwjsIlt9NFIo4Z6VG3xBIFRS45ljJ8uvyd3Eb+CZXORyQn0=","layer_level":1},{"id":"94bc6715-e744-4fd6-a155-9ea006d50fd6","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"文件预览","description":"file-preview","prompt":"为文件预览功能创建详细的技术文档。全面介绍KKFileView集成方案、支持的文档格式、预览参数配置等核心功能。详细说明PDF、Word、Excel、PPT等常见格式的预览实现原理。包含预览URL生成、参数传递、缓存策略等技术细节。提供预览服务的配置指南、性能优化建议和故障排查方法。解释不同文件格式的转换流程和渲染机制。包含客户端调用示例和常见问题解决方案。","parent_id":"61603fbe-2a48-4f60-89e4-cdf37e119d32","order":1,"progress_status":"completed","dependent_files":"crm-file/src/main/java/com/crm/file/service/KkFileViewClient.java,crm-file/src/main/java/com/crm/file/domain/dto/FileInfoDTO.java,crm-file/src/main/java/com/crm/file/config/FileProperties.java","gmt_create":"2026-08-01T10:23:36.1283961+08:00","gmt_modified":"2026-08-01T10:34:15.7938667+08:00","raw_data":"WikiEncrypted:dxMhctgo/8krDJJIGvp5je7pnWhEGjPpcmzQzTYORNrHS89p2z0ROReU8lnJkh4uXBOz6IZfJJ4ZaPZsYZngPVK1yXZZDvBeVxrSz99iZIwZrjsWDcO/zHRCBXofWF5ppeJ9kiFjD0xAw+58zXgbLfLTjqPSl+cNXnPTFCh3zJIKeR+MVLajfbfP0TsN9kCNycb0ad2IgHxBJsyIrJpR8BkfgTdO7g+BFLSItYUR7/ra7DlU9oOvaJYbHbO6XdY9qHeK/JAsg5tUmTOJL6NalK8bdAIKSu2ASMHVH7iq7OSCupvPcUV5Lv6Qid58UIkulru+QTRUoTBbdOoOA1+7hVywnXS4ETxAeE7ZpOWwbZGc1o18U8QYSN4QkGCRkM+i9WCEWccvNKkL32bgEL3nO4jJurqmGDsck1ME6c2OxzoLCNOlG1hdu3S7UXZ/1I4g3tJFhob05DWMoGwFUwTt4LRndIqWwrq1VX6NrQD7VDlpAEamjfjx2+D50YJp1wTotyjGAue85eZwUI/O7uFTX90R8BWv1QcwMyQSmbtfDk1FGuIwVs4RH/7i8E7Go93z2awjMGeOASQPzd9Q1DN/knciKoZ3fT9zvh6TuZwmnZbnlO3/7iePFcvhQtKiuFfVgSz7oD91rmgbrRz3lg6ZIbQK1w7fHfM8fLNoK3Er7xJTJParYYOmcU9VeyZWK/Hgi3dBmVShiPuQbAFaW8LEiSoSLOetpUpmiDK6gqhaPuhV5Hzm0kCqwpVRm8m+T2Td2lBBxkwVogRQEVei/EYenbLJ+ScpFiqicf+RAZPgDAl5nnoZinmmzhbstkbCo5pBZiEqLOvuNLy0NmZYmaqCyYgCzYmVsNJ143UzFkzQRkFieGecHE7chtcN98Phnc74NbopkEgy/8T249h3HrBWYE86uaoybR1n0EE3Vm8PX/mf/OzpVGvNY3vy+0PLn3ViCkkt+X0qAn1fgNKdMtYtrdihPqXMJ7u4HOJ9VMa8I0pnw8Oy+2RAVQw4ceO8H6gSYjdKT7eT/1K301dVXX1D9ZL+d6Up2vpj28quYe1Ry/nFzYNZ01evQgq12s2wWMBd2WgDbVERZUvmyzvpAY9nTbIbg+PfTGEa8TpNl/JNV0Tiq3H59C1NPvwrBnb2OsS8MX7Y1xhgyCKaBh2ITYAqGvbKZ/3aNTKhCE4fRr7cmCqDGXJw/NqhE4hVpUMuXhW6","layer_level":1},{"id":"79598583-a6e6-4db9-82e8-5998a4d58726","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"系统管理API","description":"system-api","prompt":"创建系统管理模块的API文档。详细记录部门管理、角色管理、菜单管理、用户管理等接口的HTTP方法、URL路径、请求参数、响应格式和权限要求。包含RBAC权限模型的使用方式、数据范围控制、级联操作处理。提供完整的CRUD操作示例、批量操作接口、树形结构数据处理。说明权限校验机制、数据隔离策略、操作日志记录。包含复杂查询条件、分页排序、导出功能的实现示例。","parent_id":"972dc29b-39fa-4e22-b4a9-d06594d5fb55","order":1,"progress_status":"completed","dependent_files":"crm-auth/src/main/java/com/crm/auth/controller/SystemController.java","gmt_create":"2026-08-01T10:23:40.920647+08:00","gmt_modified":"2026-08-01T10:35:11.3067686+08:00","raw_data":"WikiEncrypted:gWB8HBj+8+/15rQhXgtMjEKq2kOmky4szsRWbrRCDYWdhl/hPhdkhdxXx82vgK0Yq4YovLidZUwMzKENzTC1iWLHZP7CVhc6MA/Pglf2CXvMqEKG2yvSGc3y/Z/VXVn1FpYBolGlyUFwRtfohsXNYoxrpja/fQuNWUmT12jSfYFB55Tm7n6TDp4zFH7k94Wwwh85nBGP9Sp1qHHpyICcOzV1t68+sjY3ZmSOCgOAmvRKKlgIWsMUioaMHMAtmqOTlkPlUqpeZyjjXnksLfBSeS43nyEUOUthyGbP8JXY5TUJmTjNsCVMVZrqEcuw3mR/3l1hS6DzMgAyJfNk2LCsGHm3Pu8qB7w+j2B9FzSF85Dv6T/FGFAmhQbsx3dt+tUD8YajzQXFUKj9Ce4Wjn+hHfnsUYqPgw21xr02QjmTAkfIRmvH7Z8C19ncMrrgq7rlDbPZK8b2PlTNP3py2NCirSjB/L8TDMlawckMow7JiQ9Y5XdSuCwBiR2ajf4EiHwul0VGD1WMoeO5u40vkVW1F+BL/hEIh5ouDXR0yYK/d7b7xRaMHfAoel9uDPt3mUO/om3iyQe/ZKKMUapY5Pk1KSl4+jQ7+SzQVZ1O5w+sVTvhMOGL+tQmILsnZ/yPu6IHQd9SWtE3qw5HfdxhypeSOCGLhBycFGuSuZ+RxE/2ItXNNBZAeOaySFzmRGjjO3jcGaaMK1FrWCPMiPSrmEXltZ4IzM0C/VvF3U9qA5DSSX4DjHw48i5hYLEA58yrc+c3Q1bSE33m1Bob5EXtKOSfUC/yPL4X3CktnKTC3E9YGlCOUCZGJjEb+ogzAxZyWxv/YqKi616rHCzDtSAmzCEHdqKYlA9p3NTn4orLMaq+zLYa7G1NBj4zWGhY7SKUtDx2AnqDxwE1yiZ7NigkBeJlqMNNa9P6iNRgcv+XvsQjUhJmpS3tbxgqbwO1RK1ZBcu6zdwFUpZION0Xs0INjXT0gMhE0zfcZjrRx1labVSXZcf6v65gQ020BJ7p+U5rQNAQ2S9cOwrCC6Frq42bJ11nw8CMQP5WSaLvp3YO1V9p/301GM5cifMoNqMmozvLCzlDwAwF+oJ51H2Kn+R5PL3IthEzNyuhLD3Z1IgwJ507TMqSH1LiBBA4zAJEa6Zpwb6g","layer_level":1},{"id":"1b891e44-a9af-491e-8b61-13fa14c4028a","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"基础服务层","description":"base-service","prompt":"为基础服务层创建全面文档。详细说明IBaseService接口提供的通用CRUD操作、分页查询、批量操作等功能。介绍BaseServiceImpl的实现细节,包括事务管理、数据验证、异常处理等。解释CrmBaseMapper对MyBatis Plus的扩展,包括自定义SQL注入器、动态条件构建等高级特性。提供服务层扩展和自定义的业务逻辑实现指导。","parent_id":"f18f3d0e-d3a3-4dee-9e06-6f273a611da0","order":1,"progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/service/IBaseService.java,crm-base/src/main/java/com/crm/base/service/impl/BaseServiceImpl.java,crm-base/src/main/java/com/crm/base/mapper/CrmBaseMapper.java","gmt_create":"2026-08-01T10:23:41.0524093+08:00","gmt_modified":"2026-08-01T10:35:16.818841+08:00","raw_data":"WikiEncrypted:5LF7XW9XcPQyjyrZizRHIAg5yfQq8gr+Igxc7dr/JkZ+iHvLFy+fvt2l+6zK1Mk6pgy1AtNNvhs9N4YswM9d3MJDFFyRtBYQexOmkYd7Rq0XQ/v6r/SAt5WYx6m4CNHsi5QrMjD+YXb5hxAPQyeKifRcaagvF3AwKgVQT0VP4HSV03xcSvfOXgSPV0E2y1DY0QD+Epxc4PdxM5qBQwBjGKHjoPJwIR5IVBP2nXOw/G8v8HKUvbUExnNNEXz9YcXyh/+aRP6ibonmsJM9yfSZ3VH6lyAH5YiVdBvkE9Fg5YXdLhz5ZQSKgd4txpjtoUAn3fNjM8QfKhrIoh+Ihdkvz9E0gfvWuFdmv7vvvls3yHuJmsGRCNTs16m1hqMOXon0pWQCWYiT8yTcCjcHgyvt+EiCxY13OD2I0QHMIGqkSbE/cEkbzQMe4SM3KI8EblypMjkK0oVeFMnLZYqZNLsV9cJsgE0Phfr8NT0FxT2dxSN7qxODAZjWpHPTYsQG3gTKDUpP9Y7um5NOkq+4TkIrPIE6e+Di77cDKGWK4FzBn99eZd3hQ9LRGjam9/tARwUBWEv3OcjvqQ/HHn+pLttRgIfSlAHt2cz4YPT7Xm4hNVnR6HY6aRJ2rHG31PKxQT98b0N9eai9jWl64IvFsKbBK6ExpniceBEHrSnAqbJMIwgsGQqDQZOediPxpzWrJ4OmBPCpSk10rI4w4xBuWQbYQC+sT05i1VQed4wW9G1Oe0mu0A69N7egEkArqpKvtKaYbTRP9R6247Rm3RmTUCSOnAWT7+MzwjZmYDAO4ZeZ6sZAZb1eYpZrC1zU+9Qw5Pa1Rhplw18XLHP+gIgH8fy390oTnTao/bbFh/fah9/8Xj9EFGoeOCJR07yn4EpvXVuNuwkFNM4V8r1ueh1Wv3YksOPaAKxbLegz9OBw/Jlpz5HQWoWLaNBixawwu6wwFVCnlgGqcF7+PJHUIZJSt753NtNg7UXS8tMY4PkrUdE2eDaN09KOPiQzJCK/oJY1HA3BhPkMhoe8jOSKfnXjwgNmhbY2lQcy5OUbWtq7LfVCBP5oQY+ZljwwcdnqMh5BFvdy5dlXVrHgzdlWFui6lZIZDTA47Wh2kNy4vOuTLofIL3BaSTnDhvOb/4sxJAI8cF7Z","layer_level":1},{"id":"e4828085-0300-4408-98a9-ae4794d0b96e","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"权限体系模型","description":"permission-models","prompt":"创建权限体系数据模型的全面文档。详细描述角色、菜单、部门及其关联关系的数据结构设计。说明RBAC权限模型实现、菜单树结构、部门层级关系。包含用户-角色、角色-菜单、用户-部门的关联表设计。提供权限继承机制、数据范围控制、菜单权限过滤的数据库支持。包含实体关系图、外键约束、索引优化策略。为权限系统开发提供完整的数据模型参考。","parent_id":"2e7654dc-4da7-4b34-910d-87bd6334f756","order":1,"progress_status":"completed","dependent_files":"crm-auth/src/main/java/com/crm/auth/domain/entity/SysRole.java,crm-auth/src/main/java/com/crm/auth/domain/entity/SysMenu.java,crm-auth/src/main/java/com/crm/auth/domain/entity/SysDept.java,crm-auth/src/main/java/com/crm/auth/domain/entity/SysUserRole.java,crm-auth/src/main/java/com/crm/auth/domain/entity/SysRoleMenu.java,crm-auth/src/main/java/com/crm/auth/domain/entity/SysUserDept.java","gmt_create":"2026-08-01T10:23:46.6733101+08:00","gmt_modified":"2026-08-01T10:36:03.0146665+08:00","raw_data":"WikiEncrypted:arCjhUL6OOP3tq0tMlrtoET0MkpnpLCYrhUowNxgsxTcRY2bN2fxRV4wLRIZYRVr3pi7f8L8Omoh0HgWw2jB/pthz6wvbifEuEoYIsudSB0hM2SYk0fyeYUsj4HcFuL5yWD4ZUbRrVVwBSMakUT1hktC0m7Tihfd3J3vge+lkDM2To2O3JY7EzeGUKNKxxn0ia1dLdf3ywFeycd3GXTG+dxoxovwIv382EyxEqEKKODPA1Tx3NOaK0m4WXzW0LoFYa6FoEw+SpsjU/fR14+jKoqVCyWcM4xcO/0tJTXhkAA5oN2YxtyTHMfCaUtDQuVPD4esnvF84HoJD2g0GumhmKWfKiV+feWUbbCM6IvDvYN2Y+AaSzKE8FckzEBmbWvSbh4YKuKyaEFm2dOFlAUSV/+5w/2JjgoSoeBvpgVOJH6Euinpnfqe5STeR4enG0WvxkS8JSblXmTZw8UDwKqJ9zTkKRmmxNSfyYFcSQFiwLpxAR4AbYjNs8cfpM37QgKzAFgvytoyYfcVOMJjUvEkGQZFLTYwfeS3JDVToIDdMXJhc90k8BmgaZEH2e7TP9GDJgJTQV731bqWkoPPqEvphB599W11tqnRjj77CPQm7w2/JX0eTD6lF4TXBivtsF7monnQyBCseioCruxY3nDIhXz1o1WyDv1hRzXCFE6KlJXn+SN8Qh6TVES+1FKrH1dIhK+CDlyXNKDoFHh2SJuwW3y4mNOsJ3b4DUs8+Ulqgp2dSWAOADqooMWf+NSOhjbUpWHeZAvY1SuyKMGxcNe7q/aLYDb16Fg1G65lQ0LQMFCMHmowfLuF57Mh8C56dELgIUA46XQLcdFfYHZ/9X5sK0o+ioEBG+MKhGjN4RZ6a8Do4WIMUl8TCb5llEPBwEBIIqgikY7VyCOp4QW3xFLgDAU2QTMmXT4Ua66zvytJ8Y8eMcyeh72ZEuaOUP/gbWLwHk/EXpMXbHahFusKxAHNCMkidjGCl2HPcPqzZ9ZQnGISB7EEfA0swVNfOu6a1ES65dVRUjSxdAVmjS0uk6GlBC5f2pj6R0arfZFEqphPyf9kF/K8W51YX/7VWmeT0SsNSHDswWKvAY0m0+ekatcf1ScjT92b9Gi1zTfw/a+avaNLUydnAIDyZ+J50anxW47kuajBHSMCBrzCSE8lCNAtHDUVMJ7GyCsHn0kJeevijVqYtP8hL6pxVGPxNhWW9MwpvKYfH8/cZu384XsWhDyl/76ZsFgYCsBr5EcrUTLI3AE/la99zM8BxplywfusBcqFeukPGgj+pVuQG5kHu8lemjBmxkWxKeSiaDsbC4DBOUeE9KkGIVRnu861d+weEdB9r23sqLHLE1lbZsONYNvsVMFAjTcUbcaCk1iU/jjEywQQT5lAc+Jibc2Yh6asTGNY83Q0XpqNZmxwxOSVfbB7Rx/flkb/XOixKIta11v9O+g1izeeViIAgsqzkN5zbZAcsHXegIyqZZAK5BocWEL94uhaDLbCcA3wYUa4UtbLLoYDuh/CX0VGUa6bngMHrgzNuNfYlPPd/QBWt22CIfzhfeXBUn2fEqrbkXTS5nIUrkk=","layer_level":1},{"id":"6d4c21ec-6b43-4c80-91e4-1e0b0bbb32db","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"框架使用","description":"framework-usage","prompt":"创建全面的框架使用指南。详细说明如何基于基础框架快速开发业务模块。介绍CRUD操作的实现方式,包括实体类创建、Mapper接口定义、Service层开发、Controller接口编写。说明MyBatis Plus的集成使用,包括分页查询、条件构造器、批量操作等高级功能。介绍事务管理、数据验证、参数绑定等常用功能。提供完整的开发示例和最佳实践,帮助开发者快速上手项目开发。","parent_id":"6ed8a750-2109-4e77-b62b-7c1fbc070030","order":1,"progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/service/IBaseService.java,crm-base/src/main/java/com/crm/base/service/impl/BaseServiceImpl.java,crm-base/src/main/java/com/crm/base/mapper/CrmBaseMapper.java,crm-base/src/main/java/com/crm/base/config/MybatisPlusConfig.java","gmt_create":"2026-08-01T10:23:52.3701689+08:00","gmt_modified":"2026-08-01T10:36:12.5141176+08:00","raw_data":"WikiEncrypted:09EvoZqOsAftfa6x0cY6Td6Nt3LX3AYa8SjCt3eFts1+TGD+h6Gz3gyZMlUyq5Bq8REoKfPUo/y/7DCab+Oh4kHKINseYJTbSpjiZGJw0FYftv+7dy/lLN+ibX3GCF6EBYEGw3p5BIOqv0VnLbR8P/HnnVT2wnJroOYRdgdBeAEezoM48A7/O/YWSW0HBeat+DHgTPtqut8U/PoAn9EYtM6xNXalUJGUbqxVOPi2I80ZiD/lSYgd7kpNxdHDfyrbcnrFIhGqN/pl5isB4izKPgSKiizWIqUbbePF8olBnz37DPFJPyWViM67gq2OFtAcA55fcJnwTWbDDtOBP1D2GTNkOTjjOTXfDrP3+WWdOOFHsAyxQocB7mzK3XGtc7OLgitmVf6pgitwLfpb3O/2HgORdmgaKVhXuuCoQr9XOAsgI4bCmzKRO1OfLUQxHVJVHyvI6Egn1cUjIcWYFKKPw738iOAV/iootqZ8rVuuDf/5qmWfIia7hka7O/uJH3bKY+6Oa+jOi7j7ga/Y2HzpxPUDM74O8mjDcF1L2ZKTXFCOtbHg+E5AcOD8OvFEi3ph5hYKHeMsjBedNhYh8f0L06d3RHcwaRlz97C86AN3bUcCgsW3wuwdlzMtbQhmdQhE3StBuWvvlOeYP0DaA8WmiqcDHj80SHSx5xD+k50UIeehmODgMFaNILykSZi/CzamcAqHx3cXx0vbiJVzlwE5T4AKTHc8MszJT94QBmg1oiYzknDBK4gNUnAH9bMfbLtL7IZEUiJgjaLe/tmUl1EuuWPkPy5bxnR7+hd9VBaTWB7J053SH0L/T67wNpYTUVvMovoa6cedJ59xwXv4WBCE3j+XOfsTMr2jZ8lutroDNcJ8CgSPFRlQdwpbeK3TD5nwGTqu5drkB7pfurGD40F7dF27gNX1BnC14z/i9ZMS717jnrWsNb6YIbbcRYPr/Yx1XWm2EHFQzVvANW2hbX5VJ6mEIwBjUkPTxTHt+K7TAHonDHT72ynEQUcdYZGqBY42dX2sl/JjaAHGIBodSzKcLjBsv42AmfBAE1VCGaQ429CJuZUYMu/nHil0E411zcxs+9TqijvcsmwW0cwZktoS7jGccqXPiCVoxSp4kp6QXAUAQihWICua7KaXTMuuyJYB3k6gGW94W2LYRi0ZJ3XKpFoQRp2rKwcI9lvJaSe+SYnI8cZx/9VaXcSGPmK+LVOjgTe1F3to1pOVL5Lj9oSurjXiuh6PjxfxqwhoVtGK0+4ByOsFyt/x2ysJGhnPiF6sL7TOJPVIQUHGWQss3vW5GPR0qzcEoE4Ho4UghSV257sCM/OAcuiz5+38jS3JOiW4IHAP8OLYl/XVb4ZrPW/0MDYPkd69tdqkQvIhwLWJrEq8PWvmY4V4kOqTNgvU4wS4","layer_level":1},{"id":"7b5d5ce0-fffa-4545-9494-5964f52edf84","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"数据库配置","description":"database-configuration","prompt":"创建数据库配置详细文档。详细介绍MyBatis Plus配置、数据源连接池配置、SQL注入器配置、元对象处理器配置等。包含数据库连接参数调优、事务管理配置、分页插件配置、自动填充字段配置。提供不同数据库类型的连接配置示例、连接池性能调优参数、SQL监控配置。包含数据库迁移策略和版本管理方案。","parent_id":"1b327205-aef1-4e95-ba67-51808ac20eea","order":1,"progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/config/MybatisPlusConfig.java,crm-base/src/main/java/com/crm/base/config/CrmSqlInjector.java,crm-base/src/main/java/com/crm/base/config/MetaObjectFillHandler.java","gmt_create":"2026-08-01T10:23:56.6321232+08:00","gmt_modified":"2026-08-01T10:36:11.9706157+08:00","raw_data":"WikiEncrypted:veTYwq2y4io5qXerCTrkkFIbPLS24lpjasA+uCz79jMeOQpuJhuP44OLRhCn4MTH7aBT11DiXe6Thcw/3YSVSgf40f904eeFYQ9uvFUD8Z3j1UT+NAzNp3CvGaQGiA1HCpDsGwO0VE+lTDSplK2ERMIc0i/lAsq1/YP9fUHnoH1DUa1gq0NkYLB2rVwjQN9DLOm8XC+mjowAf0iLzG9ack2BctGQTMFLFcmX1NXhc0gR6coLDHNtgbpNlO92In3Mk7urgzmJ3nhDsXwiFtB1dW0J1p8wJNrY2tuJPn3JqnfY/nfbJ9F4mgG7HVAZKG1Rin1UflKTOf6K9PrEfyNviMjxGqgXXgkLEyhnA7TiAXe2gGm4ok2nPJbaZ0SQlUU/SWFSSAgQ1Tp18zeUic7NhGxNsHycD1NURf2pIqZhX9it8I0dL3Vx8+pFOXfVXifmey1a39iKwrfYUbj97ZXdrPC4C423ntORA+enwH6MoVbzq4eSFEOJcWDlyblI0ClX9dAMnPwLiy0h6W+vizeVeg0HioPRyyVjGoFmKrxLSN3JUVaCoSm9OVjzvpwMat11B5N6yixXzZoZZ0oS0w3xraKZE44lA49SrG89Iv7K1tI6Gqlp8F0Kzlf+aXRUuk8Dqm4FJkIFV/+f5Nw4hI61IQ0O6CrL6LJuLl5SYBqXDcycNImHLv1nkvBd9c9BwgW9ziAY4bge16YIWgm+UWeBvFyPf8BgrYsBLlC7N29iVJvW+2gJikxuU1SIqGuGnOsW0JdiwJwcdvwDwRwRBvG/xV8IzKm5aHYL3nG3tYDqOPGKGXsUwFDuS2c2Fq6Me6H7x5G9xPfSA58wdJFa5iUWR4XRR0HNrKS1tLV6idMgD4q1JVHERJGmUQ1rshd2/WFWH7vyS2id5EBR9i9rdS81QQg4ND5D/2YCL5h5t+I403Yyx3i/cyqMuJybIN6ndlwjtA8/oZPJpMNev0ioNDOb9w0i9xoiagtBGCh7j7rXfU3bawT9gokNZnIV+dkaRqDjU7zILJURYf5rrRpoZTChiEm+AxPSbpTjYrLgMF83NkiwXvHzCZqj+jl4tPCcYHIk+E442udBEQ7YR31DmDwthknlfVUoEd0bCt17/hwqyuHoqJQTQujJGVG21i24CogDmqSevn7AFaq62VWNW/i/zSKSeZjsczfiXCH3kvZSUtw=","layer_level":1},{"id":"2a7c08a9-ca56-47d1-8a19-08a778b4fbf0","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"基础框架模块(crm-base)","description":"base-module","prompt":"为基础框架模块创建全面文档。详细介绍通用实体类、分页处理、异常处理、数据访问层封装、工具类等基础设施组件。说明BaseEntity设计模式、CRUD操作封装、全局异常处理机制、MyBatis Plus配置。包含数据权限控制、缓存配置、Redis集成、雪花ID生成器等核心功能。提供扩展开发指南和最佳实践。","parent_id":"ce73559d-e232-4666-a740-5db08637816c","order":1,"progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/service/IBaseService.java,crm-base/src/main/java/com/crm/base/domain/entity/BaseEntity.java,crm-base/src/main/java/com/crm/base/advice/GlobalExceptionHandlerAdvice.java,crm-base/src/main/java/com/crm/base/config/MybatisPlusConfig.java,crm-base/src/main/java/com/crm/base/utils/PageConverter.java","gmt_create":"2026-08-01T10:23:56.9688875+08:00","gmt_modified":"2026-08-01T10:49:11.7495166+08:00","raw_data":"WikiEncrypted:EHSVcmCAsQzmydGtOOwq3fL0iqVetW40IaNzOLOkSb2/x1tCqpll8hTV6ywz0M49dboIXJwMfsp6rQVTFZbpsKvbXtCBUTIiCbDCywBKjxfAS9xkZxU3F44ycneuQoLLn4ORpkIU0YCQrdRJVYW8QwiuPJoKexTNDp4T0pfr/OqHUEyQmDsgpt1nN1q/OdjSPUEe/MUhtfuT502TA8OlQQ8mUeNKKP9dI3CCbq/xtGfP4rPgYwLEXS/NN+IsZ0u90IheP0tg1cLCEFZRzN9mjBk8QYOEfMk1BulzQ2QGAZlf681v0DxqKSWWaRV+IoAy8uQ1UxGRd3AUqg5BfdK6lR36nAJNmqpj9JbgYi96+YGhVQCuplbD84HlL9JlzjkYOhvHg8XOaWBqr4QqiwoQdz8t9JdP6UfCuD27exUlTS54/smsu4oX/1Zpgc8pz8dc4NGHqNinmjIRzSMv6xYCKFcPLdvNbgljXKB2fu/PcofdXXgPetTQZ6N1mo4srGQkZwGXT7pTM59qbqNPpYQbDWKZZ7UKuHHSZNpFLcxHDHFxFZhiE1c+hMzN1YBIGO5RoK26+DxLxmCUn5XJ2tvmNjyaifG5XZG4U4OO2L2bnuCSDUyNHGOrJM3vXESScxe0mEsHhRR3hu4bU4ZIrvCZaDMhV0wrS9NfyNOrSHGmloKx0eKi4wnxe3eJ6x+PFUWAcAFK2ok2gKiL8VmPyqmGbebI1R1iBx4KWZbVxm4ljI/d6XCnODgiXunB/z0qDUFOWnqNDrS2Nai9eRNpNPnRQVdmXqAKdD+qNAVl4+XSO+INV6apIuWf6AQDlB9xUs+v9mnK6umk0SWVT18OXT6ATTA0b7xWJJ0gSsC7tCFT3NZ7LtfDE/XzC0R4jv6JgWNKpv8wHH7NKYcSA356nwaLkBxF91mq/06CVraYOaaw71ytdNu/k4mdVokqp1YvjzE1wKSulOFcsz2a7JG0yVjqG7K6cJv11UxNrBwE5DOV65UEK2bLtEHT9s5hhy+Mo8FpqxAoQwtWOnyuysT1AAmw0yJnD5PZOKEWiFoN4xhUoWyP8aJdx3ni5I27YpLtAxBdSHiF+Kbh1OH5vCpWO6Kb8W72acXaDijWMq7cwEV2/ZLf0bWGa/dv/usae+0UGpH9Kxc9Q2fYY5baa8nxkzNM+EYQ0D7aMuDGUSyHQECLwPNCrxo0Z/JauyX/9DPOLcWltkejghA4UfM9FaUiBnCH6kdVRJt3ThUzIqM1FoyDhdrNxv1trP6r99n9Vhm02EFSmHY7k5ttbg2NcpHnp3wRSaU8pyu8ZUmnU3+0QaWRcjFiky+TMidiCPSowNUEwfjUC0mnc3C7OAaVqTG5Vmxs4D2if2a1jkL7owHP9BVb3zISnwS2MIx2UQFuqq2VhpddRJErI1VDAw0B3hJEdIWGa+wg32LvNUC4PWbvcPR5JKE=","layer_level":2},{"id":"6827cdab-284c-4075-b2b1-5aacae806079","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"授权模型","description":"authorization-model","prompt":"创建CRM系统RBAC权限模型的详细文档。深入解释角色-菜单-用户的三层权限架构设计,包括SysRole角色实体、SysMenu菜单实体、SysUserRole用户角色关联表的数据结构设计。详细说明PermissionServiceImpl权限服务实现的逻辑,包括权限校验、菜单权限获取、按钮级权限控制。涵盖权限继承关系、数据权限范围控制、动态权限加载机制。提供权限判断流程图和实际使用示例,说明如何在Controller层进行权限注解声明。","parent_id":"dfba2481-1f15-4203-89c4-a87c16ee2d90","order":1,"progress_status":"completed","dependent_files":"crm-auth/src/main/java/com/crm/auth/domain/entity/SysRole.java,crm-auth/src/main/java/com/crm/auth/domain/entity/SysMenu.java,crm-auth/src/main/java/com/crm/auth/domain/entity/SysUserRole.java,crm-auth/src/main/java/com/crm/auth/service/impl/PermissionServiceImpl.java","gmt_create":"2026-08-01T10:24:06.216011+08:00","gmt_modified":"2026-08-01T10:48:57.7308703+08:00","raw_data":"WikiEncrypted:Jgq9fCpm/NkqSNIWYhs+n65qPUPaq4NvEWloehv03gJrSw+5Oh2lCz6oEq947lSA4auBi7JAuodKRlg2DrF/1XSSrqkYNXPPFp9USTAvjm8JgXSppCDv9t3x4D6t6HXt505la/+0gH1Iw74jWoS2P7yYAkcYwAO3nJ4EAehJD2rMHPek+K82bazTTmuKKEDQY4UV4nofp/M/bMyjcoi4/9mJ+cFPS3PVPQFx7zX44Qu0D+Y3Vw8QAtZdG4GR+yKTxSUAWfOuyjALqXx6pUKYQja/f1vLI2SB6T2VpB0Ju3vWnnunyIIft/VErWyeeE5dcnOVSoT+oUQ7hlkUmXTXWa5rRgFpH1rqlqdKf3DwAgLSYeptBKI8t8evo6wEPSul7oy5bUBAYH7JADmUI5IhU3u34JRFAf7eZTzX4THZPnCJC2SNEeB1g/0J2BO9lTq0sN32bGerUTqmiLgWku2qNGqob5kIH9RavCmXydO4PlzvQzDdxUP6iRuyvOUE+xl6FEK9v/ItaaZaCXhzOHSIQUPSqrAUWpqA2UwSi1F7MajFAVd22+IZZuzv8vFDR+j4oKv0ZBk+Yy6cmgKZUi6omRxXfSYMBZeipzx28F2A6fSHw+SqHncDhrH2UuZIw27YiUYqc9AZKztc+gJX/PNRGtkRnxwCKcSRQFa+tb6k3Q3FNswgRJNvcjVUONAmTp2iZuBhXhc5n7mwBlPtyX1PSB6xQmX7n2zLFVzG84JQjB5BzdodAuj0J/xsTgQ1uvRLH6S54KPfOIMr4wpwQUFiasQnXXWwc5eCEzkyOzL+2XUgqoSF48hdMFGDUZIol+DTXJybw9lJZl3PurZ1Uhr6A47IyWlac0CsnLlA6BIJc2dv/ovDyr5oyledl30yseFM6Sw0auQA92dhawYmi+UUGgXLZDQwbf0dOctrFIyfyrnsNXb4TUcUB1fU66Zdjp6g+uQ7P3gbkl0j0L3pzKbzLoDMs8SPujYYMEgVPQrgT0c7KwFsOWsbaeGMIu3Qn7qR6OW/niAdc0j4/gSQgBz0bWoreavu4PgpuJuKrPsm/4uXW9GfUsq32v1ltdTMF9RZeXrkHBozz2HjbQ8fC+NJuWvNSpcrOJmDMnllYsRpC1eQyLROLojzrIxRKnh9tXTGiclsmYW7k9u1REDdwlI0bFf62WJL4cYLGvVSYUZsiJSAxblMKzQ4gDf03Gp7eYCwziX8+XVDniIvlHv9P4lg32HqZ+/Q8UYtceiBAJ+d/TzCwkuV/x7CW57tSplQtQQ0v7F92DDASMPD1MLN1Fls5OvaeWONZkytq9nayiR5LYtZaAZGb9ArlJdQ42Y74z6KdZ5NwJC/y6YSxjVzttqqeHfUu/BLOtCCcOQzblb1GE+sauxFJHLHXxevAUZBvzExLSitjQGEhzTYxUYp3Ay6VrWntOVUBoo93h4JB2Yw3cLTPvEfzOg9MJisB0HlSmbb","layer_level":2},{"id":"ea7f8a9d-19de-4c12-a9e5-0bbcb69bcb52","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"数据范围助手","description":"data-scope-helper","prompt":"为数据范围助手创建全面文档。详细介绍DataScopeHelper工具类的核心方法和使用场景,包括数据范围设置、获取和清理操作。说明DataVisibilityContext上下文管理机制,包括线程安全的数据可见性控制和跨方法调用时的数据范围传递。提供实际使用示例,展示如何在业务逻辑中动态调整数据访问范围。包含常见使用模式和最佳实践,以及异常处理和数据一致性保证。","parent_id":"09833ae7-ef9f-4e37-9c16-22301b4ad52e","order":1,"progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/security/DataScopeHelper.java,crm-base/src/main/java/com/crm/base/security/DataVisibilityContext.java","gmt_create":"2026-08-01T10:24:06.5647228+08:00","gmt_modified":"2026-08-01T10:49:36.8645967+08:00","raw_data":"WikiEncrypted:yP6vl3GzzNMVOI7+ToNUFWjLEyz6qJnoTjlCLP4h8KvB9GZSFJHEPlphDkGPkwC5zWVtinGpzjxNq/oBK9sMCODd37X1fxvaznqehhePGzvuRdKKFfJVAiV1LqwkVslddsr/kmnpFcQtmCz3ngn7GVb4GESyQjTMlWWJwf433A0ysX9HGziCDAesC1tMboUI0O0c8cJcaJ3FPP7H3f3x7pG86dqth/XBM243KfeQEZ5kCBdvLPxuGd51pVuQf48Y+0ciH8BHUsoAls3uiMuRujJ+uAh4r4oShCSjp3EBaGxV2UT9gHzgEKlhsUrgf+uWbmWUv4VfzfUK1MOlgi6lCGMEeAGR4knDb/9eYPDH6KJK/y8tBbT+j0xT1eQjvMJhvbV+EzZiMZNOjegkws0YXoYTZNzAjexZYISDsm77iz6YXpbLbSbUmX3NHHOuQ2R4OfwmsUjGbpwRvBr+7y8d0BFn8Dggglrme917f7Cb8HgGeVWh9QS387kZIU0+UBiyAeYRdXCr20E7eZSc6iIuwtUvs7X9dxpu8t+X8Ku3w7JgioOGAIh8W2r7qhPzOiAz9evrYwlSME/Y6KWYaQP2YO65Yidrh5o3SdGy1kpKZdn8C8XLf/S6ZX8E/sC2HPuZzNx5u+7565tvWSv2VI2za09xVRwboM3urc4LLzTaIKnPUWCZNaChWXH7CH7Ypq9pFgGoYiua8dp9enJHEWwfFb83u4BgDOI5gWRV17bW9Ph8lqAHFd8Ap9R5I35+xnFTW6SnEDibmjd6YtG7GyYhU6Ja4yNAfBrtFuDK9ezzFx+z7gzlmMePJrWWkQ+335BwuzMC16McPMkpbCBczMJTECLGdxYrtktsinDn6iQdUpki0wqkX/FEDvIrvUlmi10bOjBMWBI7LSHMyfc5ivg8DV+HNGgZ46L+HM/iIKuEYBqeKYfG/zTWG1KRGRT3RjSsRGxXwGJU4ldQ7e1x//51H3jW0cp1iMiLP9jILfrwIR4/tNmAm5wisupKyEmwLDlN1qqkZ2240ggZj9XmPm51/Tf4s23xMMkxErQMxpEM0zbRJ0wNHLVm9A+pWhWoSLyeFIZNhIxsU7CYuZFJCojFEqDFMXFAwUVBF95wip+3k1Qi6MkHX8jBHHzB13PsUQSQt7Azo/u5YLkY7V7XmrkgLnp7P35MJSF1uyBfUFDJpmzXaq926uoEQk3I7iLGhM84R1FbNTAP1Aj06ww1j1gbhw==","layer_level":2},{"id":"c938aa92-1653-4064-8193-296fea4ca49a","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"Redis缓存配置","description":"redis-config","prompt":"为Redis缓存配置模块创建详细文档。说明Redis连接池配置、序列化策略、过期时间管理等核心设置。详细介绍JSON序列化和反序列化的配置选项,包括日期格式、空值处理等。解释缓存键生成策略、缓存穿透防护和热点数据缓存方案。提供Redis集群配置、哨兵模式配置和监控指标收集方法。","parent_id":"c12ea8f2-bd91-4cac-b219-49a005e97563","order":1,"progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/config/RedisConfig.java","gmt_create":"2026-08-01T10:24:08.1666362+08:00","gmt_modified":"2026-08-01T10:49:45.8848686+08:00","raw_data":"WikiEncrypted:4LmPMCPVPVr3sdKThDfkIUzmQ9vaPEjM2HNdfYi+uYZJB3yqqYcXn/aBmml0ltEql3tt1erjXIIlT+z6Go2a5tVM/hw3KB9i+z/FjNL54I4JvrKyKl61c4DEbbJBUx+cQyoCCbe2GVSilZQrgDADTjPZp8KEjza4HMpGy/3z8nTpYKvRCzfbGMpQ1rmWE0yVAZB9XcqAcR0wwTYSd43oZ/ARZ++7yU77v3yl+gUjSQJR9ihz0WMx0EONLtazwTM0YrRrIlJAa5hZZ4zCWqunYZsIUNADANdvh/3DHsrlLHBK6G6kLJj623UH/SR71CQQvnWrGYfA4UWWjmN7G5oHNIPToxcIdjMDTs4oKtJxnND1fSTyhpzB6JYm6Gy9X1Wmu9Jvn2HJIjGIP6cHffn/55efcvL7CTEuogIKn5yYWjgnscl+QuOvxVztAwIpDJmuK2YxpidmzTDV19Lio9N8Cfq5BoQ+YklX1vt4UUlhgwOw1pXxrudl9YHln/z1c5qWdgsHgolIRJhnTMDB93b52GS2Nfo/zoT1IvMgeM9Cq6xmM7IOQ2YezhAlC9H4qMjpNWuqvJb2uh119oEUBnb6JUPhM2hAu50VSKs8CMm7GPlnNPHi8HAErz/UUl36eJ/69jgAJkeQzl7ll2R89/1cqafOGi1KhmzLPBLCsKCbM2mdLx1MEcSirAXwdewcfir6uo/vXvfgiXrgSrh52zGBnFfgHQd3xCACF6RentafVl1ODodMe2Ywnqu/LmN3I+oOtsyYOUolOz6OG9hF455kui211+0/J6WwbxWPnTSsSpQPh7zn8uBSdK3XBhiKTwxwsw+r5yfATW8zNJHKHInufTS6RxqULNYHwoKhhvwdD6p/2EFz1TB7P148wR0LoMxmTlSDljMeAf20myBOk6w2eJVsgj+W7BxxHgUrjQ+VrZX64ZqnRts/GlsNfXC9P64+","layer_level":2},{"id":"ae7870c0-eeb7-44e6-b0e9-08b1393e34c8","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"权限管理系统","description":"permission-system","prompt":"为权限管理系统创建详细文档。详细介绍基于RBAC的权限模型实现,包括角色管理、菜单权限控制、数据权限范围控制。说明SysRole、SysMenu等实体设计、PermissionServiceImpl中的权限校验逻辑、DataScopeEnum中的数据权限类型。包含权限注解使用、动态权限加载、权限缓存机制的实现细节和配置方法。","parent_id":"ac97848d-30cb-4326-a786-d6ff15c3b403","order":1,"progress_status":"completed","dependent_files":"crm-auth/src/main/java/com/crm/auth/service/impl/PermissionServiceImpl.java,crm-auth/src/main/java/com/crm/auth/config/PermissionConfig.java,crm-auth/src/main/java/com/crm/auth/domain/entity/SysRole.java,crm-auth/src/main/java/com/crm/auth/domain/entity/SysMenu.java,crm-auth/src/main/java/com/crm/auth/domain/enums/DataScopeEnum.java","gmt_create":"2026-08-01T10:24:19.0167475+08:00","gmt_modified":"2026-08-01T11:59:11.3637812+08:00","raw_data":"WikiEncrypted:5hUdDwptUa2XAejnqFZaMegupivwphd5LpU2thPo6FOrpQbJ067RcD2I/iuBGXzA3UMx5WqULDITnE2VOLHGXt4Un8YQTG5hGiZQmu9MH6ci4b874fXoHpOrp6qnhDzLmbSbJAOJvM0r+c+VJbuMDRbC34QEXhLfHQm5HemzJtxsJpMrggPU3x5BBaHy/zEJikSvjdrn1zpKIE+c4x6WvCgnV2Kj1PEW1T71KayBa0dKGlfqGxURcZQ7VRFuD4jXtgCVX/aouL3YnVK720lI+nlfrjOGfiP1lvTFbiwc2djHbapuwEOZ4X9ubc4rrpBzpEVBFjJr9htXQGwfrLUb3vK/zS+nMpPuuMLjHyWmBnxyK4usz7J50IkFdu0x26WKn/lqdd8IT4iv+6Fb9UUC69Ap0UgA7N2qHsCrTbm32V1voxIV3z56KI9KMgBXr7m8qmoGB1EybmNDa4JwetQACv0HTAawe1JZuP2Pw05BTeWR2sw2cNB58R4nqxskH4Y+61OYJ2Rpr0+1QOge9DN/px/oxoHGO9Mld1BOM8qORc0vdoXp9ebfw7tgC1IwQdUm+0tYXyu0Nd56M55PXFUDZDVWj3ahl5Sn/OjWcSZNyH5/uasPzxOPdqiwAzQTf7E25FhloNBCm3QSkT/9K/P3goRsf+Q0yhI89ygYbaeqOjePXp59IQWYl3UvxP++zh5XFzWBd0Roe5LJKfU/eBixrzVee9AUjbU4auKfMBi1IfubDGHc8+aEztaHzEL+OTtn21VXywT/LtmhTj+d+A3Mfy+yamGKaEwTHGTkjEcD3FCa43ZvW6KUhAZ9us4nEZN5i2Foo3UHyeDyfwqglIzbKAL8q5XfN8J9DLfVck4172KmML/N21GRze2RfqAZNLFSVBmXPH3bo+J0p8mL1td6hij5mlJWrOGtmC9pK+yL55KhDRcdqmxM3u82HPCjoeZYvRx4cwVU9NccqfjOMWSKvMawNN6C0R8ODpeyRkpnGjirpcsjNLhBsuI/GYWoErbf9t0O/a5hGLsL4tbDQCaLRV1KprQ3OOeoBLjKae/B5G2Hr+idBKIGxFp41sPChlIiHXR9TBg/EGkD0h7ir4c/aXut3hh+T4BVSx0hPeGHL4xFsHyszkePuN0E/VBfRruWt8lWVbzXMeRIehDcpdDsm/zWnT0zbpw9ErkkOBraGD1EgjIkrfFYoDfQfTQwt0TgaHS8ph5KKtMkeZSq4dLrGPVOWy7GdMkuYgEU/XQVssv7bluhE2EO/Y07eUUsOu8BoKlLiOsTcaC6vEI7ybN1L3NKeXV8ngtVx0OfAlJKfeElDSEE9XMv+6h3+JekRTM6Xt4wPZD5zxcns7wZu2Sb0WRZIQFnXZObR+rwkiciP00=","layer_level":3},{"id":"977c278e-41a8-4826-8551-1a6df59f0040","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"分布式ID生成","description":"distributed-id-generation","prompt":"创建分布式ID生成器的使用文档。详细介绍Snowflake算法的原理和实现,包括时间戳、机器ID、序列号的分配策略。说明SnowflakeIdWorker的配置方法和使用方式,包括节点ID配置、时钟回拨处理、性能调优等。提供自定义ID生成器的扩展指南,包括接口定义、实现示例、集成方法。包含分布式环境下的ID冲突避免策略和监控方案。","parent_id":"ab8a5041-5019-48dd-b58a-9870af2275b5","order":1,"progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/config/SnowflakeIdWorker.java,crm-base/src/main/java/com/crm/base/config/SnowflakeProperties.java,crm-base/src/main/java/com/crm/base/config/CustomIdGenerator.java","gmt_create":"2026-08-01T10:24:20.4886248+08:00","gmt_modified":"2026-08-01T10:50:03.328537+08:00","raw_data":"WikiEncrypted:YDoRcNsKkN0DDXOHAYnH4GQk2zDwyvq/e1QirqdzGRl9CusldeDWAeRxPrD9HHfi1hUA/ggMh525AhMOfdv7X5lujehW1dZEbNObgRdgQucJfoW+pXqrQkMP3xgqFB0yHstTuSXeq8cAbV2NI+tJSGGRlKmdK6KdGYHKmGprGmxhnsW7jKOJg1YTnEzfutw5CEfI2AAMF/R1Y1mbWzT4Z4AyPDIJbzAgL7d+BvC+GHHugNV39nJPIPgWHvhmoXVgEi2tBmgzQf0g2d9bCwLkqYLV50/0+lxIqGxsDrfVC2urDwbiJQLQonX7p8Z/RlDuiFgueGvhgIvHpy0ozY+DsN7z9n0f9FcEhmAA2IRtaNKB/oAghXX84Us3XES5emxHL9+13bCob3lvtTJbOnPnk2MhrKRz5I8uEcT34j15ydc8IqEgHPcDaPRHff4pxSG5nVD4NIU3uZRZDJTsmld0a0wmxVSYshlsoZQdYYdoyurmCGnlLS0WCkztAbQpb7VFcQ1GyqX57vaPQtFqOvhQypJ6txL7EAnx/BndB9H2VPwe9a5hOlfSrYIq74snT/6LGiO103jCLlN1HieTPSCVzem6xLc8J3dYxLeooJSCYsqK6xfp7ttG7g2WesRasN7qycKDkpjeVSloo8tZHNu40ZVquGOUysQ6kaH6iBmavEWWnOyPoBoLZGb0cCUhkjxXx8Bkk7gmOnkzAxzRbLkQgKwfXm2AXylMxvFuomP1rSrKhCkAhEX3zs3Lg3qffH2btil9FJDOTMMCO9O649zoG5OrR2cYE8xnPFbO9E6E+YRDhdSYd3ZZ8Ju73qkeneupeXlHGnPw4PchWo9+/9eOFR5M/ABZOBoZhbQvL9aBZAMYNsUb9KWNc4Z9mfLATMLppjNTkZFHByGHuCaV5prLmq0nTg3/U/bjUJB2SueeLsHLGCkMJ2qB3cHkNhquRHiQssEEyFscsK+3qxFU7Mmq1cigy2IitYvCVRitNORedW8GeED8Uctje7LBXagY+rlxDLrTzrsarpyBcyJsNp7Ngtzblvck7bYtEeB/BkolTHM3Ca0bBPLf3WIhhfmlTk3lYv7cHikBjixzbCdb32pLfeKKmT/eAMHXFyVGgOpM1p+6JANSleZnq8l8SvNJ68xrTsRLiiFY2+UPfA+69cYX3SoNQqFSuS85Ub+D0ME8lVO6L7pBbulmLPOOouMRLBqRgzeubMWg0CxZ9pQZe+Ko+w==","layer_level":2},{"id":"09190ec6-9b2f-40cf-b233-d5c19998c934","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"服务层封装","description":"service-layer","prompt":"创建服务层封装的详细文档。详细介绍IBaseService接口设计、BaseServiceImpl实现类提供的通用CRUD操作、分页查询、批量操作等功能。说明服务层抽象设计模式、事务管理、性能优化策略。包含自定义服务扩展指南和实际使用示例。","parent_id":"2a7c08a9-ca56-47d1-8a19-08a778b4fbf0","order":1,"progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/service/IBaseService.java,crm-base/src/main/java/com/crm/base/service/impl/BaseServiceImpl.java","gmt_create":"2026-08-01T10:24:24.404345+08:00","gmt_modified":"2026-08-01T10:55:14.9032561+08:00","raw_data":"WikiEncrypted:vMsgMax61wW2sTWhXd8DH5MWokJhmuibsTyKEKUwYd0jU1wt1a6cO9gghJ3SefDQsaJpomzBIOwbaVKYW0PJL9py8nKaIwDUmdhq7iNekda953luhCFyuLK0/IIfnX5jcyNbFqNZosbeD5VrSmMLbakG+DYvsZ4fx9udRhcZMQbzUQGi4zuH9tKPUWPWZHvgWJLY+aYbvV4xLqtQ3UCw8WgFcBdK/UdJWRuFa24B05W5wj7dppHFP1AiHQZ9AI91bJqaL8ceog8X+h9kI9++GaSvH2pO07r6hitlvE0dkLD0fh7vJbW2Qmy5LrmcbaayX/nGW7qp8jGg8AdLP/7bX8SJpiJ3F4OTM58R1dJ9kdILl3/K3NGnh2hLmOBug9ivW+7MTNGOYbcGFP0yWVoEQdRgiptMqvYZFaFlV75WlwGU2bCyn9cpMS7v/BfJ8IcVVVw/pX0z6krNR87RAMMD2dhFwa9xCsQYMw/D+Lzc2BKTg1kHTW0w6Wpek9rPJUHhSfydn1LOJS/XDf9gDrTyrTffDfEtrkD7MwnVyVldx3qkswU3ra2/G2ZIefaNsCCjIGJKVqZFYwNU6hs7vN7Ixd9TkXHbcAm99MTQtPQ3LLp7tcWhHtOOvX6H4h+O6DWmJTis512PzbiLb/e3SZ9fAyhTOa7QLXkRHXgmHjQtFq3RLwNtyrbpOx4qKdTOv6C0NpAhubZhF/ggiCMvvkbwMisq+LpAr2n7EyXz5LpnsvDoL4iFpXYHWsgY6WE+/mU2AJfwKNUKYVyAF39tP5qbdPEmLdEkl0we1FllZyfnt9rU3PNKmd9E/g6psxHR/E04MxjOshDGYL0FJCRKDbSwE1c++YSLImCtfboP6ZC+AIw=","layer_level":3},{"id":"0825e6e0-bfad-4739-9586-d2ec50ce2dcb","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"架构设计","description":"architecture-design","prompt":"创建CRM系统的架构设计文档。详细描述微服务架构模式、分层设计原则、组件交互关系和数据流向。解释安全架构、数据访问层设计、缓存策略、文件存储方案等技术决策。包含系统边界定义、第三方集成模式、扩展点设计。提供架构图表和组件关系图,说明各模块间的依赖关系和通信机制。为架构师和高级开发者提供深入的设计理念和实现细节。","order":2,"progress_status":"completed","dependent_files":"crm-auth/src/main/java/com/crm/auth/config/SecurityConfig.java,crm-base/src/main/java/com/crm/base/config/MybatisPlusConfig.java,crm-base/src/main/java/com/crm/base/config/RedisConfig.java,crm-file/src/main/java/com/crm/file/config/MinioConfig.java","gmt_create":"2026-08-01T10:23:12.9562577+08:00","gmt_modified":"2026-08-01T10:25:40.4856639+08:00","raw_data":"WikiEncrypted:EPw1VhZSv2AMLpYzHbCG5QXmatSKh1iukhkKRz99kcVPFHJKZVqOFStJHt5slSqzsunLJoqpKyeDoj/jTKKfGf7MQbV9tGWEGcXfjpQjnAc390+bgJsFpGXCYmHKpWMo4wPxn2bkACsFi+moX8HU/yilwHNcGC64g/TzHpdGuny79JTPBBw+hqso/CMz6eZCc3cUL7FgLhWIhvQ6TVnmloEUkM0tqkRRU85kHHOccffGscHQPhX8W7Q00bGULIVKnD220KOfeOaAHu14YIm3dtnZOIm0tJUj/+1YztLU9ZtStwDjXcX+K6Vuhr0XDYkFNa9kxGeQJLIzCmSUuiMn5Fuk4KwloEf7d2NiIohP+BaG5rraop4JIuoc4X59oPWiHEW1CSXjHk7Am/Wujf12xCxP1kGwE6qitV1gnWZDmhsBkNtrMVmZFb3T+Y5xqjKGokZ47c7RabygASBVurz/Fh55nrW4KjsB8xZcU5NJceBAZOoFx/jHMNP5nIZZBHGF3ovqCTZdceLrMWgJJo2DSDNNUcL3MqYcm1lTZ24/njYTNNvTY+Fp3tUhX7tjmA7tsHnJUpmf3qdblgs4xjSIsS7cCgk1U3dhQnN8d0m7KTT0HfcepGM33Ls1Ut/oMPsyGgbQZG2eUtXxIOm+Ip+KIW3OOOXBYSwl5EzynLok/+rUbBmlGeXO/43VsD2eJ/BYlV593ZnUS8KkOCLj4UCSU55ZUsnYuFgFE7POjrIvHk1JcKnov0OjMIkMf04mV0ES+V3WnxSaZdEWPMNre6JB/agKbVTFZn+nU7HCDoFErYne5DjMAa0o85nK8NtINqJqgLo3k8zoJhE+iejpDttG/pJJJRVCpltDd+yX7i/nS9N84phl1T8qWP9Z6q+l+pRHObnQQFpu+oegsjrFsXhPtJU2yKbgtegT/LoKwjpd3kRU+gHKCSTkK1sE7QYE6B5OKtkPQ/kstbWWWQoc6CxWRiAqRssrN1XlBh/T9GRo1w32O08uzLJ7j0NAWo1+H5VoBBKiUTxVjazLksToNKaRLJuEvCZkyl9VEO7DcQ78OTclCDbrDfDbXcr84hiWJMSdj888a+CyoC9ni2QzsuJsITXP3vl++SpZCMski5h8yzFGo612J6Cuu2L4V/rd/U/XeXZpO+yCwkgaP68BlkXB1j0fLJJ3gCOXKMSFAFJk5ZGHnp9XKsCilT4FeiQ4Y7pp2/EJhkiQJ/jtJQWM+J1nPxAf5xWvkKt2KgYLr+3YJMNWPPqlCzEGBsoA5V2mevr27Jn8X5rRp2BAMpogmcky6R24N6xMcXupQ3ZMOLaJg8/tcaZHMCY7pjtMHGUgu37Rbh61yPTaqrcCURsF0PkUfwe0SCFWxtmq5WlwgR2Zt34="},{"id":"ce73559d-e232-4666-a740-5db08637816c","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"模块说明","description":"module-overview","prompt":"为CRM后端项目创建详细的模块说明文档。深入介绍各个核心模块的职责和功能:认证服务(crm-auth)负责用户认证、权限管理和第三方登录;基础框架(crm-base)提供通用功能如分页、异常处理、数据权限等;文件服务(crm-file)处理文件上传、下载和预览;应用入口(crm-app)作为统一启动入口。说明各模块的包结构、核心类和接口设计。解释模块间的依赖关系和通信方式。包含模块配置、扩展点和自定义开发指南。为开发者提供模块级别的快速上手和深度定制参考。","parent_id":"a894a655-5840-44a9-a639-04a0c1885521","order":2,"progress_status":"completed","dependent_files":"crm-auth/src/main/java/com/crm/auth/AuthApplication.java,crm-base/src/main/java/com/crm/base/service/IBaseService.java,crm-file/src/main/java/com/crm/file/api/FileApi.java,crm-app/src/main/java/com/crm/app/CrmAppApplication.java","gmt_create":"2026-08-01T10:23:24.348234+08:00","gmt_modified":"2026-08-01T10:37:45.0975323+08:00","raw_data":"WikiEncrypted:MaEDad3+dpW6rLlXdYaTGZkyTFh6cmeGxS99eK7pO0oCMOPGMuyzcrM6rTjywBYvU0i9IzXjFB6xC6fZMUbjAuH5VCCSA6TRT64oNt85vZwqEDJoiBVRjwsZSUL4wGbOZ3zyoOnnvNr5TiqHRfKI22LXn7RnmWkLvcH4SW487tvfPWDreCieEFrz3O5chIkMTwf3sHih+qOf1nVXq0rEpgrawzHNF8pLjXZ/UcW+glya2oI3RtmxXVmNjsFJdblAdqjBK/LmTCvMAIbp5NmVmsDLxwa08/l1YKPMj5UUq7/FNOzrFcjpwwtxsUWaToDVZ9IRityhQ1Hy5qhFXxXfErNhqO0sXOnc2M0EkoWJK82PxLLduRjDyItdhz0XnSwqf4t+2k2FTznIOcTb3ga9M0cPJGac+L3j28x9CStkpngzqeRp9Pw/JCprXJuDtFSIVhcAV/uRKLp1nF5JeB4tR4o1FG5eEWRDopccyMv1gsSG7c0XCcDXBepF0NGFc1U0+uUChdKG2UWEGFEiDW5xRAtl8Dfl02pwoYVbdBOMhWFsAP3ATLQd39QY9tVfJ+172mqYtn1AcDSSw7z/jlmf7uEkm+w5nm42IW+Fk9DXU9ZdL56UsfE2kpMT5xY9uA6tAiALEjUVwRHLaiHy16vN5qQSu9Hp5NbDAG2yxMT8aHkUxOYzMLpDRxL+dvevJwnJQF7yI4zAtJlSoZJxpbzTl1THvBilQnH3fai81B8RxxhlQpUo54vS/6h9d65aFGRqoOQ+T/FKzMXle+TOkPTItQ1YPnZIfxKKxuiBBfR5RtW0ehB7INTXYOcItnJ6sQSNZeT8o4tkFWLlT0AAQ1T+yQ86nS/+VwGxA4OsmVtXVyRejDOSAoBBcZW0CK1VUzh2bibaVG+L2qb+l+Gi9YbVL7uul5yfCxAhs92bMzh24+1+CpFcD0iFKL+wm3+Y7E7s189F6di5vT7Ivd7EZ4awxT43OrdvZ6Z86DPA0Dwys167PopLM7rDFoEDkP8LNNNUNlF5hLFStXNfP6mVn5uetS2y8M68sTZyGo7uu2aNfq2UEYs37mhptcXZlJKrDcyDvRhjHiHVok2XqXJxMMt/f4BtSl4hR7o4/2Z+Pv7q6hzwirJSNuhT8Fzy1tuSFqGXM93zBPdu8z6VKYDgrC1cb6jEY3EtRurUrR/zJdsirLhRjdBVNXlXOEcMbVt/G9vmMGODo7XLGjE2MqB4ykHF+SJvEJbkJrqvSEUBffGO8hvNh2RZOIuPF0Gc6l3VN0YQPg6R9evFn2x6dVD3lVWC2icI594lscq0xmX7FSJvOJDGBtp8+XrUh7hzqJ0vuUMeb5g7nxQcGyT08TUxdZMyTnSmSWRNRJEfsraH5Aj6rupMj72M5y8gmkIFgXgrGD0GsUHT+Qvhh2a/LiaLIVluEEcs2Q9AyJ0W6b7vJF6RVIe55eQUxiqEV/lgOQah99M+mE27sHbIZvPob+4irO6UBzmXTxUzcqYrvyzBRZcUBmI=","layer_level":1},{"id":"29bcd926-1b3f-456c-afa0-def23a7e583f","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"数据访问架构","description":"data-access-architecture","prompt":"创建CRM系统的数据访问架构文档。详细描述基于MyBatis-Plus的ORM框架设计、通用Mapper基类、Service层抽象。解释CrmBaseMapper的基础功能、BaseServiceImpl的通用CRUD操作、分页查询实现。说明数据库连接池配置、事务管理策略、SQL注入防护机制。包含数据访问层次结构图、查询优化策略。涵盖实体类设计规范、字段映射规则、关联查询处理。为数据层开发者提供标准化的开发模式和最佳实践指导。","parent_id":"0825e6e0-bfad-4739-9586-d2ec50ce2dcb","order":2,"progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/config/MybatisPlusConfig.java,crm-base/src/main/java/com/crm/base/mapper/CrmBaseMapper.java,crm-base/src/main/java/com/crm/base/service/IBaseService.java,crm-base/src/main/java/com/crm/base/service/impl/BaseServiceImpl.java","gmt_create":"2026-08-01T10:23:24.8220004+08:00","gmt_modified":"2026-08-01T10:37:08.4411256+08:00","raw_data":"WikiEncrypted:M8uljGDGJ//mcfRJly0hh1hHWOIms32MJ3U91HA7c/phHaR80FWWIo+sljEWTSBoo//RwWSzseRn3+ZQkrtKmt8TG9fTUtuZ/4PStQSND9jEeLnyhKz6MGO+JIp5U9vMyyXYXCXQTnKW5IvDiAQP6ITaI9z1A8w/fYKcUjXLY7DpMBXG1/wfi1+A19s2CQp9GkD6LxWILERjNA4oBe+t8p59lqNcWi8X2DGZHpkgufv/1cKl18VKylKAcJgu+CcLXHLJ4prKqL7k1qMeZt0prqH8kpo9YlJglz0PZVhB4ZfvwZTI+SjBXvownXCCYLO+8oxE2d4MAyaJkaWJZILWn0TH1TbIZMQnQkjHb/zG9ptK0sTKLgfx+m0hdn+ylGLZ8l0t5WbCtk7nhHRAvM82qgSK+8OhMwsqMy5y67z4J0HIYXAlNTirQgd3O2A3ofw2t3KzstFRnncggy1gQHa+a7l5bjbZGHNw/szf/2MhP+Lm4juzmuQceK5vPVJB1X3ewf1Fw2DXLg7Jdnl+dQVIiYeCMsua/SFpMOnGghdF+AqS5DafG4Pi79QwQS3TYcRE7wgWqr5RIh/6j8sz6LmMH24j02JIzzof9PzipKIlzgPDXlcBifhKepHB1rEATqdO1FTGVn6XEuiWSoYkT2YEQ0HUwHzoy6PNafWa9uB5xlkantohV4Aa8/1d0KZKzB8cnGmQKYPF4Tejmc8qDjKyIwZ1AkYAvE0iAHB62OkcUxy87Ku+MGMA7rc88hi9BqvCkxaBlHaZ/3tXb1P9pAwpqDoMYnN8HChtHm5z4zxN94TzvJvjmMsJIpYcV3wMWFSy4Fzh+HebxKe3jRRbVJ0pMdjch4FW2zUfId1DiHRCrqMVe6Uvxu3WSnkRiFUPll1wlT83oqMz8PcGIITRhgMbpKYKLbhhqqYZulQV2iu2IVHW3KDp3RikcNHguXry7e4RbVkr6rjd1OtV6CaHJwm43e4qi/BKH3oQeBoE+O5ytrfKFO4urj4GF+UzuV1oIOsCtrZ6/HnZgrHrtQtiLlHcKopCEUYmSwzjidV27NtmWbpkY7m/OJQyGWto7PzxCeA7plS6pYyoLNIvw74mCVc92VwK77GNYfjPsChzPBnAvxy9y8OAScFV21DCaql6cjI6e55FCYtOkAPZ2dVhhpJW7W1iqWcRQaOhwybXAB2pGEybp/2Udg3UmMS1IFwrcc67spKFQHyb3eptx9NHZeJ6x0L1dvOvo7BuEq0FCa2zqadqnHvPfZ98pouCmNuX7erZEj6ajhtwor6aa5AhHjD7g42mCCDjnOrzg17wgFY5QRf5DADgjyXRiJiJPVkC//+Y9d327hVi7qtM+sTlFg54Dh01NiH9u/kSfUN5wQsRYc45ExCeDXA6V6bc0DfHDQhJRKM5hu5tr7Gfvf0Sz0BS9NDfME/jk285qkwIJEN0Pk4=","layer_level":1},{"id":"1c70012f-a18d-41ae-98f4-ea82b9515129","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"角色权限管理","description":"role-permission","prompt":"为角色权限管理模块创建详细的技术文档。深入解释RBAC权限模型的设计原理,详细说明角色定义、权限分配、用户角色关联等核心功能。阐述权限继承、权限合并、动态权限控制等高级特性。包含权限缓存机制、性能优化策略。提供权限设计的最佳实践和常见场景的实现方案。","parent_id":"3f1baad6-225c-4412-af0c-c52976d1f8b6","order":2,"progress_status":"completed","dependent_files":"crm-auth/src/main/java/com/crm/auth/service/ISysRoleService.java,crm-auth/src/main/java/com/crm/auth/service/impl/SysRoleServiceImpl.java,crm-auth/src/main/java/com/crm/auth/domain/entity/SysRole.java,crm-auth/src/main/java/com/crm/auth/domain/entity/SysUserRole.java","gmt_create":"2026-08-01T10:23:32.499249+08:00","gmt_modified":"2026-08-01T10:37:38.0993966+08:00","raw_data":"WikiEncrypted:tYJeBV5mY9RDpzmTZHe0ryKzQJhkCDRhzTMmNn7MVTYrnn8k2H+nb9hcFbBbBKm+8nS62jtyaWWw4oWXIcyHBVTAxGVliadnVDW/zIfMlCZ0SbjaW4g2kO1HwDEFmsKGblvr9UdyD6G33+hygWtSSfV1n7ujoBY/hjDyAFpghjxHbP/e95xihGr9mU+LzXBal+yLSDsHrqQnjKGMBzCD9IJ2lfKN0WbiY62UWibsFL7xoGfFCwVxL7OCLza7XIg+vT4qyuNx8kfiYaapTJFFO4roqbM0DwcbxvvJ33GN35rhul3f79/6sxfx4NObXx+LaVqH3OzlHuXGYQDbJvVRgDkd149/C/djpaqODC2zP+YWkTaigC0CUGe1Hzirq75VVBGcJt/oCLrw8aS8RClr3yLpmZagg3owVjxXxEU3OnaMSqTd1B2v0hetN9zgy+n49AOk+4No2qGTSdeL+uxJeisA80e7IoDokvdWUMxQdCfKtP8wKhXjBkx1Bp1PIeMaZ/OQ2NYgMkWZsogDTzT2o+L0130TptIiCXC254ReHz/wpDG13DrVozmh7rkKkzI+t5DVty+WUea4XGOKesCYmLkjHWjYFpfNwVLGNJPlsoIiOnxl9OX21zEAVunExhc3enUc4rhMMbvXJ9S/PzwDW422A7gG1X5SsI6umeg7SlC2y25TALaQ6XLSMCguCsL9QBpucorJNG5b/h4eSxc9SdIdieN94aQmT5NuDQnDHyGnHpDWpTwg+g/ojV9wl94qqsakelr76a0Ev+FWSY/ysLk0DTHi73+a3MCR8h9OIaau7hAzxXQQK0U/wAwbprcrN0qUXza/fuqVFtth4BSevVQQ1zJvIxzt0koD4SGAaooA+lcqqO0nmSPsiKKjjHJrTh3ZH0y0aA6H5vQZRoyQgWJAzZTF/kACaY1LyJCFvZO2w7RdUeiAh3Rm9Kr2lbKDVI8ZcAqSCqDewzHhCnJb/ukC4uvLdao94fyj379SLlaYEy/EvPVcPlxGKA/cZiKt3pUqqP2Zh5txcfiDhvy6pc27A1h9y4jWU2UzIa4ZbJujCTTwzGgxKa7ebSMcwNO9AXSeoApWlvJSYJnb0Rib765BjO8ap50s9y9s6MbMUhIWrmBajt/t5jgttzyRH77GDdMLGHZAcN2JuZgUY19nNJiPadqlFKhzS8ZxgF8p6N+eIRKr6FGW0sbo2qJP87EMA1V+oD6NFR31ZHeN9EJGKMOkvAs7CDtHeoGoaqxPSuE=","layer_level":1},{"id":"08c2baa6-fc49-4dc0-aaaf-71248388f21d","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"存储管理","description":"storage-management","prompt":"为文件存储管理创建详细的技术文档。深入介绍MinIO对象存储集成、Bucket管理、权限控制等核心功能。详细说明文件元数据设计、存储路径规划、版本管理等架构决策。包含数据库表结构设计、索引优化、查询性能调优等技术细节。提供存储配置指南、容量规划建议和监控方案。解释文件生命周期管理、归档策略和备份恢复机制。包含存储扩展方案和迁移指南。","parent_id":"61603fbe-2a48-4f60-89e4-cdf37e119d32","order":2,"progress_status":"completed","dependent_files":"crm-file/src/main/java/com/crm/file/config/MinioConfig.java,crm-file/src/main/java/com/crm/file/domain/entity/FileInfo.java,crm-file/src/main/java/com/crm/file/mapper/FileInfoMapper.java,crm-file/src/main/java/com/crm/file/constant/FileConstants.java","gmt_create":"2026-08-01T10:23:36.1289165+08:00","gmt_modified":"2026-08-01T10:38:08.7807147+08:00","raw_data":"WikiEncrypted:9FtCQC0DeAGG21+hIR4h+Dd+8XJeekoweoDR7tBC2uOo5RNzHKFCvxq5Iktjn8MQM8j1ixYZ7PPJ0qiibSTfzMnmEzqKUm5ab1yje1/w7qa0FxynwmDf8zPTT0lD1WuuJ94qzXZ/WngBglbSOfbyxNzd2EiomEv44b1jDtNLCYwsPEsF8VAiZ/9RpMSpMrF8Gh+gBOAReYmPdRX0YpyA6BVWMooOWZngB0K9L55yXSXD+3TEeKndZnV+NM2D8+sRoZpTwfgX3Il1cJyyxOQNcAa2nv4/Z1k8Ex31HEhmqamnWEqbkHVaxs3IHCo1+wkTQZyRvaYpNH1ypERVfFN7k9IhSWNLWzAgytET/RHnTseTnIbFG0wD/53P9w6L1NQ2OSTB3e6MBKOJe8FGeI1T438PsOiEw4VVYSgD+kGR13IhcUWAgPzlCJtfElttDJgP3RPiq1ua8ViikO/S/3/sAJTEiaVl0CL44i92ThQFivXzk3sstOF9YOZ86qM/4q9ou7FrHSN+JHdGXrlxwtxsSjuHWdwOrTj7KMXwsZA+utz4H20bgbHEqq/LQA2+KVUxfw8njUuF4PGGjupxtqcAhyYg2FQFjL9vCfOXdvuHKmgkdfnvEqypt50AVEPog3NVd0DfgupPqZ6EQkMIsvaDYuGFTuoHi2iBRRrdJifjjwLM2iAnhDd5smAWD5fFnmxc4wKeGyeNUvNTLirqIY6HVUAZ8GjgJvv4vwpwOEXEpxiR5LSpDNvhuuBzgyxu/o886bxwBMbOYD9egSaxVfuBTupP1hqOwqQvQ67Y6hKabNixf3J4EGILclWJ8JaemkkSDna/IiScgxyKtTyAcr3HMPWKIZtUSIF2d0ITwTSj1wdTIEojwop87toH9fBWjA5d/b4dTAFvelEvXt7lvxmJfpLCZOb8bqR17PRO/dVB2OxAeQkanMiX3qtT2eopB2WefP2QabHsjUSH2hdEe2RAvATrJrBW0ercuxEDlW9CViXJIDMVGZKVX1MwgzosVsX9KpSniisJU2pWkBfJCBOXa2v5pnYDfDEsAtprpcxzGDY6mpOObFkbkh+dMYtuA+rOA9J4l2Xfn33ZYbTiR0Z1Fz9BLdDkL/BuSxyD0mJ/6ngczZrF0FGwUV4b0dGp5VKMzkyoObK10EsrUdMgjwtEBBWPt0N1c3lLpPzA3XKsfk338we3iMb628PiWsjwnYbgJgEN0fwbzyUN6WeheqtIV4FBblkOB04rS7l8mAUkElTLYU328aSGRoIP/befbI5LOKqOxPS0yVPU9LWQHmyZFew4faeLiSnDQPcN8abA8esuzthkVsKyXPTAgTkFsBZwjO76ohl9iHL+m7jnxM9GXDLeraMqAsgd/BnH0Q0IpVE=","layer_level":1},{"id":"53368e02-c2b3-4396-bb2a-06aba885c0f1","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"文件API","description":"file-api","prompt":"创建文件管理模块的API文档。详细记录文件上传、下载、预览、删除等接口的HTTP方法、URL路径、请求参数、响应格式和存储策略。包含分片上传、断点续传、并发上传的实现细节。说明支持的文件格式、大小限制、安全校验规则。提供MinIO存储配置、文件访问权限控制、临时链接生成。包含文件预览服务集成、缩略图生成、批量操作接口。说明错误处理机制、重试策略、性能优化建议。","parent_id":"972dc29b-39fa-4e22-b4a9-d06594d5fb55","order":2,"progress_status":"completed","dependent_files":"crm-file/src/main/java/com/crm/file/controller/FileController.java","gmt_create":"2026-08-01T10:23:40.920647+08:00","gmt_modified":"2026-08-01T10:38:56.2878056+08:00","raw_data":"WikiEncrypted:dcDyhCj+/7lwBBP7VwOj/ScYZCxiWnDX81G+NlHGvVLUI+3TYrCr7+aBHaQ3z7OG6H2+mYK/Ww0xL6OH2f93oWEHA3HLgUDAbjy+UmSFrLKYSZxEsXsQTxqXNPg03jAbU7ZeRBVSS9ugDk5vYWHHZgK2eI80C5EYPbdyNMg0EC3P5rkacLwbW/+F8PBn2d90LeE6PEfh+oWmS2M8Zy7bkSrHeJFmtEzpxA572HqI/DIyGO/ORKbpp2qQyDubgdfZ/m2b+ZMtZvmT5jY9fq4srInjWRprnECD7ICzArv7sdsZpb5ktZ0kkd2fcJyzy03HnusuuZmqE+Unh1kIr5UfvTzVWXdbDOrdAHQivOEOLEiIE0syKotkupLEZzOHWpiIyiqZSAamPnat9T/rAzUlS1LYukUTD6iElG03cKLJOabHW+x+xSLPkeVWDT178tT0acSXhELQ7BoTLf1HQ78biKlxmwtNJGjx0/lGdkZRWxGwDjlk4umDMxma8Qbr180W89MQW1CiTEpcuOEhD0epkYL5A2d9+Rfi32HqF5GUxUxjgm/taJtozVQss9y6iEX2BgB6zXSbc6hKXSMp0QmOtu+bGkGKWrCbYv88eRDwAsxJ0CTEvYJ0Gn8+Kwf+GHyyOTxiIGtix4GFuIu+cMTpdxPBtBfjIyJoeJVItoKeBBUNBD1UrnvNskR9XVh00UxWKXLYPEaXK4OXoLqOzGk8j4ycLA3EPpuksV3Qcv0H8XzVDr3vtiYWT+XZIUNGMXQ9gXg6PVXklm6e00vSzfFCrUE6NDV97BNlRKE9c+BZBJC9+XQoEa+mEEbBM5HrvfXMW08LYF98+Nrlr5Y5Fd1wcOiH7NQLPC6G2ryqLisv0uCDYlqmU66swjaU1NCf5j/gKe2u43/JHq18mSo+WZqeM1OMFa5x9grj6CgQQjdVbtCydTUTkK+iGrKKSTuCWH/ra/ioXUop6SAhct0vOZoQqCRoMypRra7MFKELg5ZTXAhX8AQANlsICEZ7Ywew4mNTw6s6zaGQ5tb6fTEHQiquwqejyg1eqgvs66ysNHtYX810Xps4y/X4qZNoxMnukaLLYPX6wA2w/Rm4rq0vqJsCNIAsypm4hNg+NegSD2pgye8=","layer_level":1},{"id":"fbf35410-3ee5-49e3-b276-7d0af5f9d6f3","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"全局异常处理","description":"exception-handling","prompt":"为全局异常处理系统创建详细文档。说明GlobalExceptionHandlerAdvice如何统一处理各类异常,包括业务异常、参数异常、权限异常和资源不存在异常。详细介绍各种自定义异常类的用途和使用场景。解释异常响应格式、错误码规范和调试信息输出。提供异常处理的最佳实践和自定义异常类型的扩展方法。","parent_id":"f18f3d0e-d3a3-4dee-9e06-6f273a611da0","order":2,"progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/advice/GlobalExceptionHandlerAdvice.java,crm-base/src/main/java/com/crm/base/domain/exception/BusinessErrorException.java,crm-base/src/main/java/com/crm/base/domain/exception/MissingParameterException.java,crm-base/src/main/java/com/crm/base/domain/exception/PermissionErrorException.java,crm-base/src/main/java/com/crm/base/domain/exception/ResourceNotExistException.java","gmt_create":"2026-08-01T10:23:41.0524093+08:00","gmt_modified":"2026-08-01T10:38:36.6770971+08:00","raw_data":"WikiEncrypted:RgZcxlS28ITmDGf4sH7fKcx/KKgHynIcKtHjdIlivuHRmYu6dsiXFrv8J7zlzfnmDRGLfDz3rvUx1D0b4Qjf4FVbJeCQB6Ajv0h34sxvgcR3CV00qB1fquG4WhH+QLJdpt0uR9Js3WNQ8EFfGVN7tS6AMz92TJ5OlphawvDR2cspUnx2DmzGNeB+cLqjexBmPCs04JB22bWStOqHpKbmUa2PY5zTaumMJEr8oLf30qezLDwzEOedC6IwG9z1o7ntbW7SzSk9Og0BBfXuD0RrN6szwvhrhctBqc+hiE0JoGHMVwAYZnzNQmxhjqRpJxnJxZZdhcET4tZ31SeBqoOkz5C8pA3ymnRma0L8IBgP/4LkhL8USNiRl/R1y8aDoW4Mmpcao/ejGgrt9pwbCqJTZqEvR+xQj5/CI2IOFRCZCrm8GVrU8D5cZMFbjnEso6yErI0bA8ny8+1bGTyph26kcR+eg10tagdLhy4AdtwihQqzSQowaKGvDC+pruTq0Xd+VFVSQmhzVCdUGYjpYFoPVuExspMae3Epk+bI678/HeM/Um9DWNdoSHJaoOR53vpJ84Ks6Q7IgVt4sPZglB/0kej9dAK65ofNdZ7/hiQqi0obtva2XIytHWezgVvQF4HBsgp0dKLS7ff21W/5jPmWMnQ2xYMCx9ruHrKzRQNi1ZwMu9xB7v4YMrY0mPehxJkn7q2AXd+lWE4BVAiCEokMUkIwQmyJjHs2EHu3xDK9CW00Hm6FJA1whr2YN590NGUM9Rm+qy7Hz8T3CuHpguOvIu4GFMmwBEPmaFdoc9I7fa8JetLgZMP8ZZfyPIQVItMlyyaSwSyOQnc10UzRFn5JLnDDWXneDrI6KmuT1RT7Mkb6XP6SdDVOoLiNG7r1EQWuq73QVS9ONv222LL1ydi6iijMvZvHum2tqPFQPE0/R+4zvifLGPRXiODWA1bZrX4QC02AzQzV/kQH/W8y/jFbAJ4Ja4l5VIy5wjVlFceuYC6dOi/T8Mk7XD8tfDjOokryAa8m6UX2LfnnJw9l3dsVtghA2N0tJzHkRwfmb0t3etaZhrWavGZoNESfXtCbHATrvE+8iiof/RB1giAFZjdkzKfpbSm09VOlSBplhyBUM0/TwFy0/H+arUfa/yXbdwC10eRyA7VPdoGT6JHZwh2J6PbSz0yXra9MHiJqdg4hP6qmOoJ2pxHNaRuP+Eck9XJDCH9S4td9BDUthrPutpc7dt7mPOnJPDmxpijjV88cc+gbcm3SaqmgccK/gr3w7PqWTER+5aDD+e74dDBzLi3MxjTzL6geZQcDNj0hVfxCBmvp1JnJFsxMLixR8fvjYS77Dste6D0tHQj2/H/0EhUdnn8z6KRwiC61JrOF1NUmK++/+sUkNLpjfmH4r4TMMTRVtNmDIakutzdnM96SwW8r105M04YC5nh3fOFO9jPVLgY=","layer_level":1},{"id":"c6f66819-c07b-4680-93e1-0cab24368beb","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"文件管理模型","description":"file-models","prompt":"创建文件管理数据模型的详细文档。详细描述FileInfo实体的字段定义、文件元数据存储、分片上传状态管理。说明文件下载DTO、文件信息DTO、分片初始化DTO的数据结构设计。包含文件类型识别、存储路径规则、访问权限控制。提供文件生命周期管理、断点续传状态、临时文件清理的数据支持。包含文件索引设计、查询优化、存储空间统计。为文件服务开发提供完整的数据模型参考。","parent_id":"2e7654dc-4da7-4b34-910d-87bd6334f756","order":2,"progress_status":"completed","dependent_files":"crm-file/src/main/java/com/crm/file/domain/entity/FileInfo.java,crm-file/src/main/java/com/crm/file/domain/dto/FileDownloadDTO.java,crm-file/src/main/java/com/crm/file/domain/dto/FileInfoDTO.java,crm-file/src/main/java/com/crm/file/domain/dto/MultipartInitDTO.java","gmt_create":"2026-08-01T10:23:46.6738203+08:00","gmt_modified":"2026-08-01T10:39:18.637511+08:00","raw_data":"WikiEncrypted:PS6QJlpgHxZyZMwNYt1TRGCEVlUL0Zbmyu3abotMVf6L1IBhFcuSmeyzNGVw4j2qaFORjUm+VGvInLU+tQEGc9Pud9OuLRywihmW3bOO5sIlLqis5gTNilcT8OIpbFLBliNomUnLRx0u8nTlUuY22oOd8UruIZJ+6i1z07RQv332UZODEl1qYSPSk2GoQNjX6Nlthk+q4audH4j4kTQn7UlKqmfq8P1iTsESiTHNdFeK1UnQey9BffG6JnXuPadOTkVa0PtXO9mqdop+KIfDSv802zISyrjoHnWmtZGvfQjPIWEctG5U836pw9dHyNohBPSJvZxjnKWNgcp3vWihOtQN8hqL2U7xtmPaWZ/O/78Tu04kw9410a7DUCyAM5xJjpezhqpyVaWqmLkai78eNMIK4mLy3meRk6g6njCPJZyTH2NZYlZ0+fQHx7cnnaQYqfJSkJbB3+cD8djVCQaueDuGAHBPjeQKIQISg6iGm+UqstPC3nvfS0d644QjHGf1TSbC/lqCp2L2JxNhiSnA7UinjrNLk33ZIhtoBKTO2W4XBU/fUO/DZriM4gkblix7U+9MbYmQdmeid3Ov5nKoUFoJj6jq0HbpRv3m4z+K4PL4OvDR3EGn6I8pKtvaTritaz3LiP/1i3A0sAib/nAbDQ+s70ZtoZc8MkreDpgshqeOBbfQ8l8RWyZQAPnk25xXom/ixPfIG/gwkSCWJKbiEjxh5c13ehRqGSvBcIGTl9dJxXVmlnessq1+8r44dlQEDNcYio42fi7hS7Ddwkb/GlXmC7AILppN14tjz5X/h97W+ZIxPVdUJ+ekX8ORWYMD+YypIRL3ky4g84wt8Mzghvdu88uA4q0WFAJ8kJjUxlGLre66S7GGzVlLYAywWec7i4hU1PVtvpxxwdGYSSvUTU6Qd4E4auIiAjFpFlvCMLHAZ135CEUXObU63XuEqoc+7KXC5bW0XYKllSsSlPpan80uNcquzgefuCRpc8vpBVUogwFMfNv/GtsPoKlaAReNPNxlu2ZO05dCdMwK022a///jcxnPJ371Ef0iCdlfLWNzV9w+Ua+0iqSFWIbz8SMPBGzdSLtPZB5mgJFh8JJIbV1p7xiVUo/kI3lqbp5dEPpg4s11Gwee0wQ+ATXaIGZglUAI/VWjtpukCrEg37NQNtiYYlcrkr4JFHVL08x79RvZ2gzWkNaR/8NOwYylps8AJ9ffIbx9ypyisiG+4zb9Eq9a8DL4t+9eoFDVOvIojEub9IvZ7Xpp/LMKzPReFBoOigncVQyTBqE9pMpXbTVPJr41OweLWPaFsNQ/9QQh2wOuWZjmDCx5PwJN6/Hg6pOAf5UOcrDY5SFmeiHw5gYRSru02YL6zItsdhMWpgXhNpbViouVGiWCvFfQfL9iUJ4cLG+FnwyoTHbvIcwHdqRGEw==","layer_level":1},{"id":"ab8a5041-5019-48dd-b58a-9870af2275b5","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"高级特性","description":"advanced-features","prompt":"创建高级特性开发指南。详细介绍自定义注解的开发和使用,以DataScope注解为例说明AOP切面的实现。说明分布式ID生成器的使用方法,包括Snowflake算法的配置和应用。介绍JWT认证机制的实现原理和使用方式。包含缓存策略、消息队列集成、定时任务开发等高级功能。提供性能优化建议、安全编码规范、监控埋点方法。为有经验的开发者提供深入的技术指导和最佳实践。","parent_id":"6ed8a750-2109-4e77-b62b-7c1fbc070030","order":2,"progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/annotation/DataScope.java,crm-base/src/main/java/com/crm/base/security/DataScopeHelper.java,crm-base/src/main/java/com/crm/base/config/SnowflakeIdWorker.java,crm-auth/src/main/java/com/crm/auth/security/JwtAuthenticationFilter.java","gmt_create":"2026-08-01T10:23:52.3706865+08:00","gmt_modified":"2026-08-01T10:39:39.5633978+08:00","raw_data":"WikiEncrypted:qSUmbhu+RuqdVWUcJ+wGd4e+ZlhOlcU0FTi9snO9I31pFDv5klxFooIMNUPcliqF/M2nmJ8YIAXOaLMHKbF3NmYeq+661MVMJJskubGniC64s43dSZmMvmnpdHdBUbSTZgsQUKM5bnvdSi+eWIVVeaU6jQyBLCU2wAViJcMeeADBW+V5d4P5UQqKYq9eoxuf/+/FoOg6ZMJ6YoYI/F7xr2vOkHS2TK3uXu4fgcuwQdxCJmKvKMqW/98QmpBBRClWAhh6J/+M7O8iyLcPMFzfcDOA96b1v/UywRLvJGW1oZ9gRQXqJhGVJjfwQVNlRXffmOIhYum708jUOuW8/otzOHIHiDTeqiNlcNJcblztOEOEsjiS/eQznrYolVZzDOdKuhkmdUFnGOBYuRG598jZYr1IODSkMwVwgRoiw3X6DOxEhjnHjUIqHi3GsHcWKrC3OvsqQ5flK5oOTi0CUbQobGqydMbBUaSys8KaO+DlBlLaMYIg1uq4QMJtmDSeOWgshdjCFeK4VziD2CY6400yeF6N6UIapuUxLj+2JqlKmi/jo01BxoF3wAqsNXdUk0ehPNrRWhHeMkRoT20QlEr0oM1cV185z1lR+gFd5/oneg0+Ib47WF9A6Xy7KqXEbZAwmNi531Rw7sD/L2sTgqoRVtx/st0AW9vK0tjB11cG72NSKScvXgT+w6TfpPsARdgK21rOBotfT+wGx0d5GGk2EzFajIpAuO1j3G6CXw1TU9iBsAlpvQddZKNhqW2Gvci4J+feECsnXg0IjDo6wOJ/dmY2fa4wH+BTzWIqxC3fD7GxYy1GYdyM8F/4OKEtNaegzgExip9UWHO/h0VGlrSE/d/a198SKmTK7zQojQH531OeQPdiGprf7+zBcfui50N50sf6OgWyDL/tZkSBQjXdtS8NmKJg6Jwz4XGU6suI4OkddPswYC4a9cikZDq3SphJbW9gjoEfqbnXFBZxHTfNB7nEU9yqea/5o9ZaK5YjIbxv0ZeSNFhjNu331Cu3eJbwrZTp6raUg1N0sBbg5cfP05ZRM60QCfLkLUYyvLT+Q5tufmKQx7s9O7v6ns45Fn8mXSsPum7dDtFD4w5a3F/KaQgUbR3rdEQx299GcTv6rfczGzzCJXP0hNSOzcvuvgva3qkU9f+RQePzNbAot4d0BLaRqB5kmBWiPw0heJ89UwUn51JieaEc21Lw5srZ6cvR7OYUa0v+V0MncJ1w7ZAntjyLxAaMNbYJHOPyisP2jmlCQb48PAKN2oGgN64RYykIxTBcj0AH0LcUT4hhgS9Rle9Naipvjljg9QvXFMCii/JHRoO/DQ1Lj4C4hFAdJV2qaqvUQ1CD08GdLR5d98x8hVb25kbNClbcw+uVXBJcfNfEvVnU0IwrFehIKxBpe3bkKNlDl9y/JygRYMU0YCxs/+fcOeKHRubOv060sviQXAs=","layer_level":1},{"id":"39bff5e4-389a-4286-b17e-8ddf67a4749c","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"缓存配置","description":"cache-configuration","prompt":"创建缓存配置详细文档。详细介绍Redis连接配置、序列化配置、缓存注解使用、自定义缓存组件实现。包含部门树缓存的实现原理和使用方法、缓存键设计策略、缓存失效机制、缓存穿透防护。提供缓存性能优化建议、集群模式配置、缓存监控和调试方法。","parent_id":"1b327205-aef1-4e95-ba67-51808ac20eea","order":2,"progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/config/RedisConfig.java,crm-auth/src/main/java/com/crm/auth/service/DeptTreeCache.java","gmt_create":"2026-08-01T10:23:56.632627+08:00","gmt_modified":"2026-08-01T10:39:34.3017786+08:00","raw_data":"WikiEncrypted:dAMSC70bWva9SabC1uic9v3ES8bXpNal8paXOKvIHMEasyerMRcW/vBIk8zGyQtmoaXOT9OiycYmV51vOPIXhnkzPH/J6riaEK+xXr1XErA24qiADSE9Fd7mP+qtI85YRRxw6TMYDG/wjxKmrZB/cNGlnvQUFxUSrZQBr9xjzz1EOiAdrnz5H+Wcg2Gt8Zla1AfXk8fbWYzMwskY3ZHksxEBkG+qrZhZ08bnVeABYHzIkqbJtaPBBPxPidX8OJjp0LceXxZIqIN44uMW2D+doHLz6kyYukYLYLh8HL8oMRXeuLKr1UnOzou5YSN8Z5tzddxan5eRuGjAKaUAqiamqr7lPu1EAEAqlMMmxPQm2CgMOTaLc/bbL+v+c5eYY/gFlajrNS2V2xJ4ODhgLiaUoK3rF3Rgp6GGyhbYYJD0TYwg7JxjQHOc+PL9W5uIqfTLZAElfHKwyRI5ixqPCMrvNdFYK7nErqMUQj7fc84YEEsgN7ds6e8dTvuSIAQTMrONZNVj/YacXAmgryHEl5W8nV7A2FkrugFDxz+6yOw4PjTIk2HmOywW8LQ+472iw9JcFQ/eS2y58038hn31oh7INNwYidzgbbgfMw9Ru7VwKaotx0AKNc3zR2GCjmW+BX/6Htu/Leuo5pnkTg97luywKt6NzhHDH5UaypHihDcXFCxFdCLnU8DMji/kwy+WW8kKGAncU8JKVHy5AYdjZITLYwoBL6wgL3Wi990TgV5AO2zI51MQUt17LD2cx/j8d0VxtpmX7lKwtHIBiUkGoJoreF+5fqgfRc+ybCjh8+i1veNf+3kYbSzGUE/ClJ1ZFpRanFgaFuowrVRIe3Xlz1GC37pkRhdfLVnQ4r1GE8O3LP/2OMD/l5xnpz6CvZqbrH5t4knkuUEY4sPDppf0JoLLmyhglrKUIBPecMWu5ZaMXuleb/aixr18qnMTsifTeTp7PtGOqxE+u12QEl530VPapw==","layer_level":1},{"id":"ebb87dc2-eef0-4d73-9ee6-67d355b9c281","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"文件服务模块(crm-file)","description":"file-module","prompt":"为文件服务模块创建详细文档。深入介绍文件上传下载、分片上传、断点续传、文件预览、存储管理等核心功能。详细说明MinIO集成、文件元数据管理、临时文件清理、并发上传处理。包含文件API接口设计、存储策略配置、性能优化方案。提供文件服务扩展、自定义存储后端集成和故障排查指南。","parent_id":"ce73559d-e232-4666-a740-5db08637816c","order":2,"progress_status":"completed","dependent_files":"crm-file/src/main/java/com/crm/file/api/FileApi.java,crm-file/src/main/java/com/crm/file/controller/FileController.java,crm-file/src/main/java/com/crm/file/service/IFileInfoService.java,crm-file/src/main/java/com/crm/file/config/MinioConfig.java,crm-file/src/main/java/com/crm/file/task/OrphanChunkCleanupTask.java","gmt_create":"2026-08-01T10:23:56.9688875+08:00","gmt_modified":"2026-08-01T10:50:36.4987405+08:00","raw_data":"WikiEncrypted:PS6QJlpgHxZyZMwNYt1TRE5yzJJ74XTYifTvmCHZQzaLokgO6D8VL3DLcdCpcpTRpzRhBnDnWyapetiJyMNLUCSgrqhIlRz/IMZOYibVN/ofKxjmfQp/rJzTmL4l8vAzEc2dW2ykZbJH0XFke+3mSnyzpSuEPpJR+Zt3u6HqyP4d3VXmiRktXHElNZygl7f99gNZoyS49GonF08Rmbd45gHJDuPfZhX+5RKzcnPuSwMqTaglLC6yIt/i1ESvKlppj0ZxZde9y1+UFEShiFhdfKZyMih+y2+pwCn/LLsAL6wN9t/iRMB7x3hakOYH32d/DbxGPTAjHyskiQWXlO+KjlHk6dq4zFA186VZf4blhE6GtmgQmt4XgW8byzRzpaAx71M60h5OKZoZ62cXZh9RiAy3rRbycu0RIpXAs8DYQKFyMn2tRiM8gGOdC8yM53yEiu4/kuLFRNgVQcSWEO0f6rPMWIv4/2lCrhpKagPpvWJ6YRhYYznfa/ZDNbhSkyuFA1vj2XKsm0J9AVuWAK7K/kJbttmMjrCr/mQRAkyw62pY8qwfOGYfOG7QuqZhhAI3T+YDH7AzBayaGejy6DzZcHMU26Y7iUK18eGd7p4wK1vsbsknmX3XQVDNcEddDB32uMGubTjMuuBF3ChH9jcdBxAt2h28+pPhBIAN3gv2DfnYGjtS6xb628G5kFHt4xLwhSgXF5LB/ciK7l69Km6prxCj0SG7YUh/u/Lowx/wY/TQMF7zzPPgwj4i8OYIAvSHqNdgJF156eA7jdjH10J771KYEf55NnH3tgljZ2jab+SWYG6blHPmDNVevn7b8PqBm37pAUs13kMScfCawFzdgSDtY4pLxgVOFEAlY5L1Z7pIebuS1b2G7tCd/ygFDyuo/qAHPPl/qA6HJbpHj0vJTzcp7neJY95Y/6/I8jw1WUZBcYLa2zix0iHUp61iN5HzNUnOyoaWgg0g9UYy646PuKErV2PKlFhY+Rx8kbk2MRVKINIc/vw1ibR2YJVSGeZjH0+IGtvB0LyircykxuS9uqqNwsgdKboL7fMuT1TGwllGZkovliV9qhnugpbdL88V+H+RZbbMkm312uWqP53dmpZ0/i8in0g9gk9m+CTRVCGphO6EeAaqEaKLWMzv2GhNL7TXaimxdDBRetIKrPYdnYHemVrd9fY1fcZ8yFQe01J0ukONK9tgETC443pbx61zeOlYTiV56B3NNf6e48lSHZt407v+r0e9jfEPrk+TKsvoYImiiWt786+BG9Ak09nHqv6VGt9LTgRb5PRjuD/gT/TJGC6Cyd4LcPwmiw3KY6nnBAK4A/tWG4FgC8xdtUu5gbW4jjOx9oC1NFEEzpPDgoGuJvWatmM2kOJ4tI0gq3U=","layer_level":2},{"id":"56974072-cdf9-44f9-b63d-f8750dcb09d5","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"数据权限控制","description":"data-scope-control","prompt":"创建CRM系统数据权限控制的详细文档。深入解释DataScope注解的设计原理和使用方法,包括不同数据范围级别(全部数据、本部门数据、本部门及以下数据、仅本人数据)的实现逻辑。详细说明DataScopeHelper工具类的方法封装、DataScopeInterceptor拦截器的工作流程、DataScopeTables表的自动注入机制。涵盖数据权限的动态SQL生成、MyBatis拦截器的实现细节、性能优化考虑。提供数据权限配置示例和常见使用场景的代码演示。","parent_id":"dfba2481-1f15-4203-89c4-a87c16ee2d90","order":2,"progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/security/DataScopeHelper.java,crm-base/src/main/java/com/crm/base/annotation/DataScope.java,crm-auth/src/main/java/com/crm/auth/security/DataScopeInterceptor.java,crm-auth/src/main/java/com/crm/auth/security/DataScopeTables.java","gmt_create":"2026-08-01T10:24:06.216011+08:00","gmt_modified":"2026-08-01T10:51:08.7000305+08:00","raw_data":"WikiEncrypted:yP6vl3GzzNMVOI7+ToNUFQq3T5s49qv2Q2KWj74KAfV4CrnCT7141WK8ltD0XAbzvPMz2m9bfcQ4xim+muxhePgEMwcsRiekvld/VE85IahJDfk5CQP8ewlRWH3CZIY/p0sEiD0InL6y22y2zIUvkc7GbSB9zrr+WOfk1uuoawCpKcMhteReeWEXYoEC0F2WppISSJCThU0mIedVr/+8eQwFMv9IJ51D00U1hJRrbmWMPLzYx556jmiWqbx6sJJCABR3GVvaElufrJF5Ow3kaxF6Vr6CwkWVDJHq2apHegKWIRQ8P8w+g1Ehq8ar38zRDNbspUsKo9I86ksWs4DUB3Nu2A0wZE/3Wjr+4a0GRAFQhIeM4yyqAB4OG1db2+h/1Rzz/hpnVrgIq0NdS4mA17YxV0ici8NDrFALI9/KvCokrY0TgO1RKj2Er5zuG+IJTbTIyXW3Za/lwlTkGRONJ556quNgcPBpPh3ScNRQ31i4QWM6VJ7gO1k8xfQ4ww9e/WQCggANRLs/tgR0y59pDw0ALQxi99tlu1iTmqlm2CcEI9WC89D3gn35F56aXDHWS/9G8Hzij30BDffj/ZUzNd5RHmdM8e5/iNvrAb20FLD5tVjFI/9oF/+EyTjDHRIrUK3GGlkIyMcaCzKdY+AQnwyb8Va+F/XGDOaX1/b3lHVwgTiP3ofjbz+M+1cVZ68SVLuvSdb6R94AC6/311lkk5Ds0KKQHJu+FjzzQmesu12q5O7ECctUXmdKm7t68xzXNPNgXFgaKENwDnIK6xWoBBAYazXyACwq2u/ue1Igv4HpIGfzgf3/FOMRR6rqNQfPOfnUU0hyliSUnazJ233VRT7ItQol6j6evQd8X5mkJERNCfKLlyqcHNKEX8i9VfeSSUL+yB6HbYSHqdUoQZS0jTqDavONaMU4Lh2p22mxzMzKXRaYeTUMc8XZyWZj5Kqqn9ThIWMUfP/HALwLAfLLVU7h3UddknDMYXBUbaCORtF5liiEAQhWGBSVIyE5nOUYgnT/CqcvYXt8icZOSW9YSWd7s4C3w0xHd2VvWrTZIJM5oy2WD33rOHlPWe30tpI0BXfnCYUCyMGHhdacOc5YEXxfPINetgNeutp6Msq3S6jVEiwfMGfjwloEB0cqNs9Z3LqktreLm1MVqA+t7TV53aTZSxpbjh2agJAfAkCZn8q5Ey+IfF3KCJYZbpYG8CNrOtyXfCijGC6akzIVEKdNHnURGGZzYNJmSr6WNce6cYKWpc8EZMplXSuHr6KxzXDu+xehN1l/IfQO9VsrHUZSI1HFhtihi7r5nqv7uGakSgGYDb1EVIBazBOJdPSjBdri/TBhY3uR+x4hWrTAfK6Et3d9obN0GSZz8pi/hchfIqMTqReybTnza2k2x3iAWlPyuqyxnJHHMFCMYuFdXBddvfy0TRJKdCrZlvkbm4tZFSnka9Z4579crLV5CRIYCDKB1tBs0iST46pNJ3krL//7QQ==","layer_level":2},{"id":"0fb5342f-41c3-4a6a-8227-f920e7612de7","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"用户安全信息","description":"user-security","prompt":"为用户安全信息创建详细文档。深入介绍LoginUser用户信息模型的结构和字段含义,包括用户身份、角色权限和部门信息等核心属性。详细说明SecurityUtils工具类提供的各种安全操作方法,如获取当前登录用户、检查用户权限、验证用户角色等。提供完整的代码示例展示如何在Controller和Service层正确使用这些工具方法。包含用户信息缓存策略和安全最佳实践,以及常见的安全问题和解决方案。","parent_id":"09833ae7-ef9f-4e37-9c16-22301b4ad52e","order":2,"progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/security/LoginUser.java,crm-base/src/main/java/com/crm/base/security/SecurityUtils.java","gmt_create":"2026-08-01T10:24:06.5647228+08:00","gmt_modified":"2026-08-01T10:51:10.2874376+08:00","raw_data":"WikiEncrypted:7GMpDAULkInIjOJUaNlZ4k4sWkUIXBOYPi45EYUmwrPFY2pWRKUikRVaXDdAIABtqFiyHF00eDZK38rFNHqYRbYFvselWhCvR1knbmS6vQYTLlWGuXSiYHE70LDK1R5a2LkxkcIyZvlUQFx2Oq+uqeqwuDhgJ8Nb/MTTz2BPLdP7TYJlYVI2Uwrk6kKxxh2D8GCthjmSDzDQDYUYk9vF+NWffAwb3OxJhJTbRs//DrJZddq3NsPRuvG1CCFQudoV2T4JUkyPGKDXGMfv9PO5XRV5MwaOLZAacRzFnjkJqbV9BNU5jpOYMta9k85Ebg/RrdJ/BHc2pqc+2izdsKMwyfSZLEIkMySRl0PT11XuqCXq5tQBFCRUhboqkn5J63wNarc4jgGE9LQM5cnooF3W8JPR+BN6WGvNw7bw8pUvW+YI6LKp1l0w6YGOYVrQ5Cwdy5Eub5kzRG00137jetpKGOrsCVFdqC/4GlyfIji77+pOfX9xRsD0r7hmVzYxQTmGLNFfUX/DQ371JAnXxVwoy+PR8OMgRzG6o/s9+Jh9iLFkgAcBeJ4zyKLXEethEbVMqAMoxbSGDj6BnJWsazjRHogBFH0OBnL+YLeQL3Chy0vKuOXL8f33fGG+zmvMV7UYi3BQpjJ0gSdKj2Q/Q5v3ajn0Z3asmwOQlAtKLi67jpxzjlQjsVL4Pj112anewuTznarphctAN6rL5AKnJJcjB8oGA0EpKeLCGgN0Coc9CkMKb2rl2bymt80VfXvHTPAiSZfZbcVw1wNJjybieSwuOJp7mh3EyN9/Enmk4TYUxREsU648ICYVp6BsxOyVOFbE7Zgl5wx+IoBLLMoRRe7mF3sWSuq7IA++J3vnglb1xf17o2Y3Xozx/Vc+CQSO1T2m13drqKVyXKcKotPhHLCbdzBFO9RVaggY5VNLVL9dzQlZ0KqjrC9idsju3CVvoMGx4Eb/ZsHcIlnQ1nqbcc+gfJzg5x6xNLqFzIohqmYFWXfg9DLqw5tt1GzeYpRdiEsLlaJn19dmNbE0vPQ6XfNFejxWEEnPL7xsTUpjiLMUzL3qZdNEy0NRfb/00znEyCRnQ7dlo5XsePu/KfKGIRo8ow+hnTX3FTzdJiIJ3Nedj4J2VW8njl1bV11Sb/dJHgw9jGLvSB5KLFOuE/X7Ak3RYa5xxI1p3vvYejj3TU6vSZckKcHsGIoG5dDIsXWu3fJiLTA8ZNzK3wLCSyBwaogfqpxE6I/O6FZbGiiQ1C6Y/MEia05jxwtX2GZCQemmbbo6","layer_level":2},{"id":"6abacb8f-b1fa-4b2c-9284-1eb33ee629b5","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"Jackson序列化配置","description":"jackson-config","prompt":"为Jackson序列化配置模块创建详细文档。说明全局JSON序列化策略、日期格式化、枚举处理、空值过滤等核心配置。详细介绍自定义序列化器和反序列化器的实现方法。解释大对象处理、循环引用检测和性能优化技巧。提供JSON Schema验证、API版本兼容性和安全配置的最佳实践。","parent_id":"c12ea8f2-bd91-4cac-b219-49a005e97563","order":2,"progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/config/JacksonConfig.java","gmt_create":"2026-08-01T10:24:08.1666362+08:00","gmt_modified":"2026-08-01T10:51:32.3171735+08:00","raw_data":"WikiEncrypted:6gHV2se05+vRhSnbu3WMw4KxU0jJVC8iMlh2Qgu9U49loQjb4k1RXosU5jdqrM2L4yjlxwHoquWYRwHspZZMFz4bv8l5ZFhp+jKFywUSZZGFJ6vstaFrfFf12YO8I54aCugWCPTu6Ak3DkWmeF37bqnr3IQMr3yy8aZaFm6uuYMQznTUVZc8juJhbVKp9/XyT57KHaLAwULHeer3X8JVBqgQiipy3psj8LHksWx8xE68VRlLBCjl9eRTuoBuTyTk1Usdw9tkr//c/CwZ2M1KbKXP/zl81JjyNGov3YCNifOCoduTaOsoak0S7ljEOL1MztXF9XdB9iljJW3IPWkYohkZaY7Ob7lfhn9EDhiDAOboj95mlMOVarYd/NkeHOsAHEhhwdpTpdw1loCOLnjo9Yt4lo8HU3HkgjreQtbrHlNQTTYtj5WGvccX6Jn269jFROg6RfF7yx/uagY1EKTbCmafTAVd3z6LAk4A/YG7KgHFljfafmOgWoaEIjXvNXdwswdYOqG9KbAGlfxQfZYEbzibbDwqn+y6NDS4O5udvYSf4/vGi1+jOPboxvllQXnDPUsTuOIVi5k7c7zKFuY185Cu0PgrPTmMZzc4gIeBEhy3+QKVf3e3jzhNs2nXim9HzP6xcmpqJn7FRLdG7pxRA0bKdkbSojrOSUmQZvQf23rsV4n0BbsfHn6i4fS8HClqffiEAaGXhBXRXzgOngF3Ul3C5EY/Knu/Y/O+EqbcYkzP0sQ1brcYC/PEjs8N8/vsktZ8Fl793NdgHEK4byV26SL4u40lKtWJ1/8HqTGSScFENfxZWZKc/R4/aURIQO0xjIN75ZGNfbLfTjWCRBbCcU2LOHZSN5uFlTaFkIIY3yyjF8c4nSmdehXJpgl5dWLHDQ5I7+Q0COo7xQgOuBNDSQ==","layer_level":2},{"id":"ab7d47ea-7c65-46c6-b312-5478e7a10676","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"第三方登录集成","description":"third-party-auth","prompt":"为第三方登录集成功能创建详细文档。详细介绍第三方登录架构设计,包括ThirdPartyAuthClient接口定义、DingTalkAuthClient钉钉登录实现、ThirdPartyAuthClientFactory工厂模式应用。说明第三方用户信息映射、账号绑定机制、登录状态同步等核心功能。包含如何扩展新的第三方登录提供商、配置参数设置、错误处理策略的实现指南。","parent_id":"ac97848d-30cb-4326-a786-d6ff15c3b403","order":2,"progress_status":"completed","dependent_files":"crm-auth/src/main/java/com/crm/auth/service/client/DingTalkAuthClient.java,crm-auth/src/main/java/com/crm/auth/service/client/ThirdPartyAuthClient.java,crm-auth/src/main/java/com/crm/auth/service/client/ThirdPartyAuthClientFactory.java,crm-auth/src/main/java/com/crm/auth/service/client/ThirdPartyUserInfo.java","gmt_create":"2026-08-01T10:24:19.0172952+08:00","gmt_modified":"2026-08-01T10:55:35.9869804+08:00","raw_data":"WikiEncrypted:WxCGFGSl9zR6IDeUdkqKNG7ZGOiQN8xJ0Zck8his54pxeVD/1lpKUGNE/zAfWgzrvsZeg+WvYulWQVP4zXg8KC1sWV2gfDxqUnfqFZt2gGohZBPN0KdZHN4aX2pMTr4NmiaIEH6NdlFMa/JVKaxUCbilvap/PVygBukZoCyxTjoKXrcsqgGOPUfl66mfj70e7qRE2gQjmpcv3yDRH849z2EyhD8TBOlwqzRoGmTihV+j19mD7XPots+GEa/ZGtdY5Q6ON8k94hVDiXKY+R9MpIDbaIE01FoJoVkVki1+u4GkqhdiIRoNcgbK9KZdP7ciDbCjfGLckf5PNBvKUegUIrweIEcA/sjM/Q2ynzADGf+r1qbN+7fY8JXes+z2Jo9A+Z/kRYYEe5QrA6gan6PnyGx4ZHux23mkm7OCAOgBn6g4c5nzKg3nnNxRSRVcymwF2k5HfEHd+tion/DdZ/fKAaOSBCPP2rCnZhPFjWDALCe9GJcLV8sGjqgkTYpWydehHpZKc4/L6ZDIISCNQcx0NVBRg277krTymZ376ZhbgCJW7kquMDOElb8nu1BudErVnWRi+X01SErJoB39gxJSzI5H4xVGr2u75wgl6HgUKu69eKMfMwV1LecNSR7ICUVj4CzuHGKJYefjCKQmLyj+XgvsoHptCTWHVZvDqZ9Rxs0LETJWXEZQ4lunK9mX5/I7HsAkHikRFvgHTjX/zP+6zix+vDkMflOWjo+JqsT8auNZJ8tfXk0vDzU95Q51t6UXoVcIX0RbP9dEbf84DcFbIAiY466eEt14vXvJRD8EbmHgTc8N37CdTYGZGVfYyKUvVn/ZZanzZtcIfAxRiVmatZZtrQFU0PgUqfTjf2Xo0P3sZ+wVXXvnyAsi6qJ5v4Iu2+6rxZQ3QW6sH5Mwbig2LT4ItwG3TgF6u84qXAXrRXGDDgU0qxCi7EK+Mb6w9VEPg9Vic9AEZ8Vy75bXRf0iJf8DsJNoI9P/PJvsGCk9Gx00Wc8Mua7v/uJXP8plkBooOvBHcQ0rKh7oE5z8PZNCuO1i4NSaiwaILMy8gscIRKqwDZEtwQYH8ovfy64Mznwy8ujvh90u8N7RNtV0jiX/TMzILQD0uEk8LqGNMLq+7LMI8jRuCTRqWCTz9w+py5EeDUZQ4Z8Lz0kfdyqJRALRX+jw63ogQUcRZ+UoWsWdLmnBR/IRox88g1EaGlN3PjqWsghmVkeRcY4rwZ+Mt7yk8F611Uv5VmFhigmu7pRsgw8OpLJh8TuCBZ0SB7CcZ9WBmj7cbjyLrTJTrefUAgw5bDAAMzGt0aT8JnzReof3nBWqKgZsgJ6w4wA9p7d9U/zDJIkz50L+lpJn4ThqYGYQgZbd8bBHiu90B24iuanphZE=","layer_level":3},{"id":"81de4762-02d8-4ff8-82cd-1f0cdd6fc4fc","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"JWT认证机制","description":"jwt-authentication","prompt":"创建JWT认证机制的详细文档。深入解析JWT令牌的结构、签发流程、验证机制和刷新策略。说明JwtAuthenticationFilter的工作原理,包括请求拦截、令牌解析、用户信息注入等核心逻辑。详细介绍TokenService的令牌管理功能,包括生成、验证、续期、撤销等操作。提供安全配置最佳实践,包括密钥管理、过期策略、跨域支持等。包含常见问题的排查方法和性能优化建议。","parent_id":"ab8a5041-5019-48dd-b58a-9870af2275b5","order":2,"progress_status":"completed","dependent_files":"crm-auth/src/main/java/com/crm/auth/security/JwtAuthenticationFilter.java,crm-auth/src/main/java/com/crm/auth/security/TokenService.java,crm-auth/src/main/java/com/crm/auth/config/SecurityConfig.java","gmt_create":"2026-08-01T10:24:20.4891382+08:00","gmt_modified":"2026-08-01T10:52:01.0478193+08:00","raw_data":"WikiEncrypted:8ebUGRa7qCwWfB8YHyDHESvFrQQaaYoCnwBeRxsXQ/pOUkfYcBJg9tanzNivhH85kJhj14qq1um8K/EP7sUILNwF7LDpuQ/bkaYZyJBZFzl8FcIcKcZgr9F+/fEUlBFkWHBMr948Ar1aYPb19jv86MeOiNk8y7yT2CP4hpuMGpUr+y1oxMxMP0fK3xjJ3Usb+fjncTvsmsETOxTJl7V34iOnK583UB+r1qMIwQmbkTQb+wl3pcjtpkN3M8bCpHXchohf4VY+vvMkedsfTIoGoX8EbqwbLlMx/Xq1FEJsGM3Q6IWbsFRUQf5ey7mUxc2Hzgu8DjbjMU2pFBm0zz57P5YQtkKSneFz55vr5c0Kl76K/t2IsDz4pKQQAHEy1K1aKspzR1Kkei3avCP+alpRkA1S/mGMPmyyjyOQKt0H2Dyhwe+yoHSVhVfXQeQ3qOuaguikzSqhThhJGLoNxgCWtpKO1CG0qedMMkt3pA0l15ESDgg4NiX+gezPhUhQmeCOm4mUOL8tBdib0j/DSL0N0geyIr+ApequwPEw2Fy/0USF7PvMKqsLh/JqguqzZDD8k8waugxCSqj0ef1vHKYAeD+ZEkerTqeYDQw3F+I0RJi5HK01EIS9PbJCsZP9RzEc/eEXLFVwxLOClkwW+LgPHCRSIy1/jz17cUKkVfphWXHoCpHEo9U+azZxaIuLJrA9ED1qYmK78wq6TbZbXK3G7sapF0+26mMhJyndH5lNIYJXMPwk5KhNB8cOrCnQKiNsG53JYLYXMt8uOZnMDFSq/cWBmCjNm25gsU1wd3TWGB44oRyC8SCOy2Pax356YHdfwBdJRE4OXrsh+Vw2SPTsfAJdjDYB/cmIV3H/a7XBYErcuGa0QLNIOSMhQM6XfZcKfEElia42DEFsCNop2+SCCg7qpWto+gnTRo9G16yJ6/RJlbC3FCk7Kj6nmMVbXRFx77T4YL0H6ZK36biRMLlrfklNt0sTMXxXWi1KXU/tYiovNjWO9ulF1eAucA7MUtDpayaqEkaz6Yox5FCaDh3xLN+CqKbd5t04ftQws8kxWKE2catjg4E5ohF6VnKQiF2r6wt6U0ikkFSA/b+TOSVTAvfBejO+11upMtQX3pC6nuzR5yCnfdYJ26cXk8zIK4CRpcIbC6yZVIWo2uUOHurlOJ4b4GEL6iYXFqLN+z6FyZPOqWyOzS5fBUxdN+v/9MDWioihCQUp6BqBXaMW9SmN3JTm/4XNdEZnBRKWseEaNczsrTmZxvKjgrx5eHSNWYOOGycYVWu4wsEK/+6BuZ7TFg==","layer_level":2},{"id":"f4902b5a-1300-47f2-ab4f-21e68abdcc73","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"异常处理机制","description":"exception-handling","prompt":"创建异常处理机制的详细文档。详细介绍全局异常处理器GlobalExceptionHandlerAdvice的工作原理、自定义异常类型BusinessErrorException、MissingParameterException等的定义和使用场景。说明异常分类、错误码规范、统一响应格式。包含异常处理最佳实践和调试技巧。","parent_id":"2a7c08a9-ca56-47d1-8a19-08a778b4fbf0","order":2,"progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/advice/GlobalExceptionHandlerAdvice.java,crm-base/src/main/java/com/crm/base/domain/exception/BusinessErrorException.java,crm-base/src/main/java/com/crm/base/domain/exception/MissingParameterException.java,crm-base/src/main/java/com/crm/base/domain/exception/PermissionErrorException.java,crm-base/src/main/java/com/crm/base/domain/exception/ResourceNotExistException.java","gmt_create":"2026-08-01T10:24:24.4048586+08:00","gmt_modified":"2026-08-01T10:56:16.3922024+08:00","raw_data":"WikiEncrypted:RgZcxlS28ITmDGf4sH7fKcx/KKgHynIcKtHjdIlivuGYmPqvzEBVHR01xnhoCJbxF6tU+oaFpWLe7rbeqY+Zoz8gcM7OdNVIBtrMLKyfxRrlyakQNvAAnTChr6Dm/JL2pbb3X1qA4P8xiY0UHjAt7Y4hBASvUt8GcwmNTaIEXNvtyfrAg+CnZiIF5R9AWNHQnVOVN/JBzCr0cjLWIwuaMSLmgjpADKfkhhrTPZ51Re7z6O/d4OSp89iMAKKKPfd6grxmUs3L19D9WtPx1XQW4MHOqyv6HLi04VE5jjfk/euEoxu1QFpIf5Uu9iqLkEdj+cYcfojzoW9jS+aiN2MK2ayagPJAV0hB+lf21cIlWRrOb9n4TGi5jX3jDW4H+dnBGuBygumWM1f0+LBtPxTLQR21sUG3MMgtTmGcoEJYDi6WIuyyyI3Zujkpn5uCApCT94kT7OHZgeALAqix53mHNg16VxtDrLTJ36UFO0XoAjwF5ujovrleDD0uuNqwV9lordmU1fE4faYLjM8c1GJjbJLeG+mPAxWsfO7PlDdy31Bxg01BYHr15NK1yk6u9/NZjpD5IcpkHv8tdh/iBphJRfXvTcYGKVEmVegI1vFb1kfK0Ozf6cE7VDFzXshILV6nzN1jUWMvbdAe9hx50Udkh/U64m1XvfdL4X0fQcSl+Q0zXcvHJ0BrkHfXt6h/hdDut04GjdNx748uU0ecb8AjZB7wxKXaP98MAopvklgKaaQgKgtkXpZL662OXTMoazKFfb5YUXmitf/TiD08QMDRBHSAF/il7hDg3CvZOzdzujmNe5+oOhntuVd6oFZCnHwJd0Xn8xPOuSYPw2Pqu45HrTISFB9FmtjihEOTt8nr8hJr637Zq7GbpyWdQQjdgAPRXYmgaaPmq2E67kvkiBS9OTQi8Clx8VOpcatqRKl9PrArKYQ/bVSa+pgfLWVrB9+cWWb05JpKj73Og9EOQHumzw9tq4+j4nj+dL4PkgAn+lhjWqIU/wFAMyi2aDXvqg4QpwoIboinEPvnpt38cTnOSy5TOfzcD72o5mSpAXmpTuv/TjaJb+VOglK6lMxVulozUsjt3T31cEr/3cmyDJS/i0NaQcr8ooU7gU6QcUPIENJF7IS2m04nBuHfkEazyk9We8vLHje163Nt7SQceIvtfVktC9vCP4nrsLqbuq52mL0i2RL+cLf0z3yemu0pvMgAzNtwg0HXWjWdiEyiJLnX6P+X+Kbopu+k7FN+916FlVTrmLemf8ElKKDoaCuZewHx+as+ERnCO8ln+gf47TpPj8gbXRfxvNX9B4L5p/8uSFw4Re7Y1LLz4pyRh4mEYVBSRJ63rHkf8j2FJhqfrTd+2g==","layer_level":3},{"id":"3f1baad6-225c-4412-af0c-c52976d1f8b6","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"认证服务","description":"auth-service","prompt":"为认证服务创建详细的技术文档。全面介绍用户认证、授权管理、权限控制的核心功能。详细说明JWT令牌机制、RBAC权限模型、数据权限控制、第三方登录集成等特性。包含用户管理、角色管理、菜单权限、部门管理等业务功能的API接口和使用示例。解释安全过滤器链、异常处理、会话管理等安全机制。提供完整的配置指南和最佳实践建议。","order":3,"progress_status":"completed","dependent_files":"crm-auth/src/main/java/com/crm/auth/controller/AuthController.java,crm-auth/src/main/java/com/crm/auth/service/IAuthService.java,crm-auth/src/main/java/com/crm/auth/security/JwtAuthenticationFilter.java,crm-auth/src/main/java/com/crm/auth/domain/entity/AuthUser.java","gmt_create":"2026-08-01T10:23:12.9567676+08:00","gmt_modified":"2026-08-01T10:27:24.0553729+08:00","raw_data":"WikiEncrypted:BenkIlLPgjbiADCpekIm2EVwPUhkZv1UDZrM+ivgPjmqjjCngX19I+dyhc+fcrP75gdExsv6I+8pMcGv/504P67NHQbFaSNd+97P56DqZ3f+4/N8gp22O+yNOq57ZRqDCJkD/m/5NhtIJW5SRgi9ViHauBuqWUNhZ/rGdp63pjL9HV2OMNrq2MsazHXxL7s8MjxUaxhysusTKnafDfNNjtrmfjdd9gTKe9jXMk8v8BAWny/kCjoh6S1Q1p3yoE733B/Hb3W5qniQmv5Sp2wTGgjH/0T2qLobM+6mKJKhXdjUoq3qVpTW3hEgKqh0MSECJhPAxIGr3tyeWimuEQfhmFFZHEPSwZhCBnR0kkzzkTL/NOF8iST61/Lx8Uhv7K+j81R0TsLBaFqXvdaQE1QFIJCHUB/eL/1Yxwzl2F0frxBCCeRGUAABAA26qqKVOPF5yzVxjJ/n94SC0tWtZwoux9duIwqUeIeLXVaGnJ1jWd8Ic7IRW+TNuMseTz6gcnsh/7XykueZNOsQDyg9Pk2urV0Q3hpB+COwzETbERBHTueRdQMi6r6jp5FuMTgb1ddqgW7yih6bEVBD/47OQUnFgoLgvKsN5PB+JHrTNmgqbUIZOoyVmFCbPGiWHZgeVYAvwrPP+m1sMpmOk3kFs0DQKMI9ashw3qKtnOpi16ilxymhNf8fuDvMLr5NKK0+Aw+Pt0RM2FKe1yiEs4AOQenS2e4GJFxhoDMKystUSK7FSi//AeNBd8E9ylvDLC76hZoqYUgiyKnyUXWFUDZFvmAcXbjaJb+V1y9xQGOO4aq1EWyx3n++yhWeztJQVf+usFlsNsPCrwuf1283VaRwOBETfiVx4Av4ntUxWeNFS5NqmhQWRHQAQvqMKsqRhWnuwa7VCovLEtdbulK2AGwZwkJw22PlwN6M3zUx42qbDpGUN55yXRm03KM8dmmWIdi25p04ePAr+DhGxJXkId7hov9FJzNIlHlj7t2P9MiVdPm0wO5ECEEcOsnbLH/wdfED7z9bHQZYTcUqn537l48GYezxc7nanwB3AQKPPMJZWbkEVZsJod9wn4iZWFTZNk5W4q/cUrantNgTG30WHpdzyaapfNcoKJh2Xfq3pXMStpjRFKc6WPEmqhfzEpiBPLAnG3nhSF/22ZgCLycYnxGHmOYVSPY7TGCFiwSPORYLv74etM8/WzpWz0bPKxVGsoEsjVQUAzPDg7GhtbouVPiFtsIdyVToG7x2Ed78ggdQYXBKBZ99ULicsM6U6v4st10JRag27W41NsxpYbXSudgshL6Cyny0hT1kdnawB/hdI0T1k9n6Emy3jdWbkxIzNZ76vm3H/b3NC6LA66duYJ1EpwATJZGb65zSs07V1sV/B5xciWYfJ+yrUxic0EUJ/xBAsfIrACNljnz8kWeMGP6l5ym59w=="},{"id":"cdabba0c-11af-44f7-a110-87567998fd6b","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"快速开始","description":"quick-start","prompt":"为CRM后端项目创建详细的快速开始指南。提供完整的环境准备要求,包括JDK版本、MySQL、Redis、MinIO等依赖服务的安装和配置。详细说明项目克隆、依赖安装和首次启动步骤。解释配置文件的基本设置,包括数据库连接、Redis配置、文件存储配置等。提供常见问题的解决方案和调试技巧。包含基本的API调用示例,如用户登录、文件上传等核心功能的使用演示。为新加入的开发者提供30分钟内成功运行项目的完整指导。","parent_id":"a894a655-5840-44a9-a639-04a0c1885521","order":3,"progress_status":"completed","dependent_files":"README.md,pom.xml,crm-app/src/main/resources/application.yml,crm-auth/src/main/resources/application.yml,crm-file/src/main/resources/application.yml","gmt_create":"2026-08-01T10:23:24.348234+08:00","gmt_modified":"2026-08-01T10:40:06.0651592+08:00","raw_data":"WikiEncrypted:1aHEw3M2aeluf1++NE1n1HTCzLNrSYNKzc2IVp06RQtbuAYcMEXChpU7tJYS1f3O0opR6Xc/vB+l5keQe8PgCRMXTuFik+f3C3rFcP4dXnar476ml2xcaJkPDVPrG2IY3nGMxgNM0xgn/XUv83MjUsGTLoJBhrq8fcalI0KdODjCIQ4ci/FmE5LgzoB7PMhgzR7H7XYD3sE/nW36F9h1CiYCUVKV7ST63v2zNrjv9TEHmDxkJv59IGh7xXHvH32NEmYBgKf9EmMaZN3nnFiz8GVmbRLo6iYtiN7sEix9Kc5sQWFYWF37eYA09qppBrInO3xC783RLudu+33ECt7rOAxvW0O6BKqUykkyUWkGdNgrn+NDjqsq0iVe40cpQH8g2hLC9nuZaqKw6gedybz97+rHZ5agXbEcig4TGQUmMsY/2qNWZGv50UWiGiXZ2JF+YC9ACFvT4DWNDTMk7GDCJHnBRwPfb3KEwNTiRRO8J9DkDUZziN/jzUjjnqSj8A7SKY3byhqY8HvudqffB/iLpd8yJZhj/4ONHrdth5tQVb/IPiXTxU6rT8QN7A+TA582MHdOu47b33ifZ1d+pV9BP9F4gcEfya0hDsSYA7CSW1+DqWO0T9G7gcuqE5FjDYOf4SVegqU+jPmii/dE/WdbFKt7pcxYF3C7C7LlllJiifeEH8DRNUF4djcC4Z2bjwJrMDLrg5LtCRp/yz9Jzkq1WfvHzilYTyB7iW9XO1pF7vQhJJAhJBa/X34nx6oiG4RtenWlyO0/5Wvudav8J/kHesGEfIk1+0S/0VhuFG+HhA8Nuzk//CBloOWoTDrEOSsBftfWRQNUbNBNSFi1kk//gCRfQ5ijIw7gVGDn6bwKRPhq5VpDX7DzX81YCTtRs+Uu0/kNjXpJUwV3NxAQD/ewv/GIkYKiBRh8XyOuceAy6L3OlmNKoLj7EK9hSAmSSWTR9KXxzTNgekMSb4JRete0RXkw6SDrRyWIEnZ1Qd46hzP/XkJEqivT/H63cCKMYBMRex0JpPWOEDmscmgwdnKrzrEdUN4M2rj7PDHCDiYYgyesosQpwNZRE88r/kzKdIrabDBSvY3sG1zqqzpZZd5sf4bAkpGOU7RfF0A7JCQEGuiSBj6V51CGftxLCQAP0FZaaSE2nVlM9jVxPm2EGZxkQM/SZJdIvE3eZrCKnmno4vtFqdI4Abo90LFLd2teITMqJ37e6pUxav8vKFOp94Ig+L1IojbLRnSU0IwnqtjQ8ERKrh9CCvGKjOkMTfz75Xg8UUaB4ka1ZGBcZwbV3WghynxCNFgwQXbMKIAMqbLnF0bniiBPv89sIzi24ft2M7Ga","layer_level":1},{"id":"97d99d29-ae7f-4f14-88c1-16ab0e1b5f29","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"缓存架构设计","description":"caching-architecture","prompt":"创建CRM系统的缓存架构设计文档。详细描述基于Redis的缓存策略、分布式会话管理、部门树缓存实现。解释RedisConfig配置类的连接池设置、序列化策略、过期时间管理。说明DeptTreeCache的缓存更新机制、TokenService中的令牌存储方案。包含缓存架构图、数据一致性保证策略。涵盖缓存穿透防护、热点数据优化、缓存监控指标。为性能优化工程师和系统管理员提供缓存调优指南和故障排查方法。","parent_id":"0825e6e0-bfad-4739-9586-d2ec50ce2dcb","order":3,"progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/config/RedisConfig.java,crm-auth/src/main/java/com/crm/auth/service/DeptTreeCache.java,crm-auth/src/main/java/com/crm/auth/security/TokenService.java","gmt_create":"2026-08-01T10:23:24.8220004+08:00","gmt_modified":"2026-08-01T10:40:30.8247731+08:00","raw_data":"WikiEncrypted:6+tjrG+VnXc4xk7AT6U/byJwOxViAkFqvZEtcR/8QP3UxPJ0HYIl/rA8bKGAlUL3bGwDrYHOC2WeAZQf9gCnQ9tjZd/DfaHvHz0rfqkTTJBwvAFDpwLuaoY66glZTK/vzLXfhlXVd76+Ry/BrYcmAE0BlIlJixKWlLcevNR0clGgCYfOaiWUnDJLxOTCLGM1/NOkzL/Gc9H04dC3iXr3egIBRkEK3qmGsZVlRv/VTUFxzq2bSM9sg22pWDtmFfZcCjUJwLkr1fme2LyfGdP/qcv03iHzIcRSpI5xpPP9G82aUR2n8ajzAPXEnUIZEsFRRsJJ8gDmv/czDs6tv2VkL1vvykrbiakQRGcWPL1fx1MqsxcUuE9aOtPzTauN3mwDWZkVsLfP10MnGCJqfRgtCBQmfX7a7PMLGKnf3vXKofBEntU/Q8M8lomIEkw7nz9E4YCJvY8NNp2wEwMIXzE6asGRvM3X+ntBJfDyeCPVfX3hMqoPb5pzjscB1z5bwYbWOSCkNPkMsY7PhUEsZMarRm8wBiFOxoX6Uadz6GY1HWVwW+H+WDUmxcjcPnh/UmalrMPqYbovNpP1aJV1v134ogDpRjsRFWnfEpLRMWis8Z/jpoTh6FGItqaNQHNC+DLLwy1UGdGcvee7mRl8LPk//atAQUPXkPQwcdR8T6VpBmVxNEam9382X45Ifo0B1ZWJ0YplE1VgQuWq6YzvAqNlB7H6C1aLe/StH2jltXI4dcc3Vn9AfdkypidNQTPTdjKEY7qfE10IHkSBgUEuTM7wVN5HfBAan2Pi7VWc94YCgQb9Ax329W8osZfZL6dVoN+uwffSgWKFMJXUqKKySzvBD6TA/ONCISg2bxPTuyiDr4m1FYAwA/vuyu/dhU5SM7gZRN5NcLNN5q2GpQ+eJN8ADylDfjQVSXijNF8/RLx22eE8n0hpr8MIL7MrStfLBMxhDdpE43z1xBEwhXX3eJGCJ2CdqLh1Xzx1SZRUQXbpfaKh2GsxU0mE+jFSIubHO4P64MgTysWmChQVlbkW3IqP1sJw1LjLGbBZvvHl6lQEfgKj4j31s4F2zf/5fTg6BFepeBFAXqFJ/uG/L/DHAWhoE4eGEXwScFGr0MSwKJ3mOGBGuV2R7ArBoZtVdSoIPqwAtNOVq2eZ4olufk6QbTboqXByRuS4fHYFCLJApVGh0PI/VN0e4YOY5ljVyUhPdA4IpNBaYE8otmu37M9Uh+3YGn5b7JX2X3fzc/aYD85bxela/Gj37jZA8GKmGfQIS+iSJE9guD3TCCJPngTqIPZlyzkuUsas2soUQMHW16FrfMyTn/8gI6k7X4ohVGVOzGM/AOkQYAmTdvPoYyOlP4bd0g==","layer_level":1},{"id":"3d099f9d-eddb-43c8-8fa4-fe483ec9508c","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"菜单权限控制","description":"menu-access-control","prompt":"为菜单权限控制模块创建详细的技术文档。详细介绍菜单树形结构的设计、菜单权限的层级控制、动态菜单生成等核心功能。说明菜单类型枚举的使用场景,包括目录、菜单、按钮等不同类型的权限控制策略。包含菜单权限的缓存机制、前端集成方案。提供菜单权限配置的完整示例和常见问题解决方案。","parent_id":"3f1baad6-225c-4412-af0c-c52976d1f8b6","order":3,"progress_status":"completed","dependent_files":"crm-auth/src/main/java/com/crm/auth/service/ISysMenuService.java,crm-auth/src/main/java/com/crm/auth/service/impl/SysMenuServiceImpl.java,crm-auth/src/main/java/com/crm/auth/domain/entity/SysMenu.java,crm-auth/src/main/java/com/crm/auth/domain/enums/MenuTypeEnum.java","gmt_create":"2026-08-01T10:23:32.499249+08:00","gmt_modified":"2026-08-01T10:40:34.4296158+08:00","raw_data":"WikiEncrypted:VlNwZ5SiObTSCaqQptW+HjTFcBngYcksXFxNpQebUNhG2HsoRdAw1FR6z38YkRddDFl1k4FQV0SCVjwKg5ZvQQ8l8FQwvK9WF6uMoo3QWFFkX/+3wcCq84KJNv9LrPnKj9nU1Os/yHa2bM1EVLuoeoyJmaN9nC8ZRsryuiQYjWD44mYzdyJ7BnaUoeHKEQXZ63o6p7o1NdeTXIT8mn5y6IZEyawZU46aZNGNYArOp0Cjwfhp+eGo1nc60KyUP7wRUJEChO0FVp8tKGpvzfj/ENCl7vTEe/9J0Ou1mzZoL5O+f5Y2kDL0ckx+hS7a9wMbV3Thnn/UASzwhd0nZtC1DcIyhw3vNaev0CLBR1aOnNVGISaJQJ8wOjeyV5VdgaiVi4NYqjuS0+TjYDQSbFFT+JFnpQ+HhXWEykVioksLKqPkEmRocTL7EAjvgQ2ypoXMzuPsV3TPiQyBPcDupCfIleShwExOdfwVan8oSQY4TSoomAHPWbuhus8yuycTtgk30HOr5gtSrEkAfFyc+j3an0rjcUw7XSfuRJw5cT+R5SSZQ2KghxYG40Du+IOJvjsdXzoXXeZ3jOwsF4z44tal69Dl81hskXQcl28zNdVorqZ17KUaiRc8NsK0gyvovMAmXolwKhGULCoVod4dyHZf86EW5+74BeYirqfwF+aBF0Iih0MNjphso3//3zrx35EygWuuO3PZRTHDxguOymTt6vy0pGQWSztG/4y+MTcKfOGTPicBUrA66EzhGCf/QXL/YTzsB49Mu1wGczmyDaw8YKcR3T7Q3qIfy9vgR8B5jw+PjURzT5/NzZGwH6irC6oir9HoKU5o8N0PmYEo+sJXIi+6PcM/xefOXz3haRY3PYa35XlUdRIvxB9fFM0lQP+pCD42KkyN4pQyrd6eq3lzGajQm57meKBYatDZVmGcLrVGNz6dwxAZcte+0ijLiOzQVLosEHrJ0pi2ybi7+xFCTkcAq1Ch4l4GHG1+kZ6FEzkrTcTz7RyQACB7ig6vhhZxjxJ1IRQ/xlC8mJvTpZ4Z8RIrHTliWau+rKzTg7j0zAVdplLZRnDf9/eSxoCPAHRqH/8zYdaakhE7Muz1zPH33njGbNB4EtWnSe8JtK1SaB1639GIpdFk40o8bcxlpUvwAb0/chll2D8aTk0U+rABn3NkP/uNiLrDaPwqZBf0h7xo+3DwKfMpArlKWHvVS67mBS9SlynxYEvuE/npfndwXjLkBo6diNZYugLXnq/eFFE=","layer_level":1},{"id":"751fe14c-b61f-4838-9a6d-857bc4dba035","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"任务调度","description":"task-scheduling","prompt":"为文件服务任务调度创建详细的技术文档。全面介绍异步任务处理、定时任务调度、清理任务执行等核心功能。详细说明孤立分片清理算法、任务状态管理、失败重试机制等技术实现。包含任务配置参数、执行频率设置、资源监控等运维要点。提供任务日志分析、性能监控和故障排查指南。解释分布式环境下的任务协调和数据一致性保障。包含自定义任务开发规范和最佳实践建议。","parent_id":"61603fbe-2a48-4f60-89e4-cdf37e119d32","order":3,"progress_status":"completed","dependent_files":"crm-file/src/main/java/com/crm/file/task/OrphanChunkCleanupTask.java,crm-file/src/main/java/com/crm/file/config/SchedulingConfig.java,crm-file/src/main/java/com/crm/file/config/ScheduledTaskProperties.java","gmt_create":"2026-08-01T10:23:36.1289165+08:00","gmt_modified":"2026-08-01T10:41:00.9203615+08:00","raw_data":"WikiEncrypted:sdobwW3Qsckh0ghPExsMqkgInHQmajp2nUSs4Ao4ywNv3u4ZW2Jdl01U77lfWOtGy9up8xL+e7aZHitwnPxf5eyhGmapebApzmyK5ZVhrR4dhoVw/P9Y2J/lEUdnxmX/WIkEogJ8TSSPSKq8735qBmN3t6G3a21C5cSenUwi7kUf+Tuvpt4D5Zd/YB5LWIzRJjpn5C85o+bDPfOk180CRFRP1vEhSgvLYjovjmKub1W3XeC+EUA4FY5tqf+bsiBwhJfZmTNRqHuGMnSNmgRZ28c7qeQLkwk+yRkW1nbVwaspRK75gSfpoINbg7s9TstmegLyMwQD2HS+9tiA2q/ZmzuHknJCOtIyU5rtX7v+wg0pNCSIfvqHYz/vYQdZQwprLpLDLx6aAQT/TUK8QZhEoo1x7WJoAwyZkN+LksLLpzfm/+z+T4h0VXqVrIoarbVKy9tdoA4ouTowgftte0IXKcqpItF87PN3rfYJ3MzfYz0uBr5/p4scdmnjiaW9tO6ToB+p80YJ5BVXOgZw8BJOw/lMdgS9Hd849ZO6YyihQEN3+zreqAYPxBdIIIQm/ciynJzHjiOty9qSL5CgFpweU7FnHdq279lAy8pMzp6ZATSGztrrhp5MGJ2A9s7KrBwYeaq9XWD8uj/1RhL6Z0FFbfgKEEaJ53uE2yT4jGJJf6mHKVNVp8B8BwFQey/1AG6pdjR3yHFzydQM/iamX97sD/7cbjfVyqmWVg0oA5Jn+ERJhFpoWLLJL5hhqkI+If8xCNr8GyfXJRXjdOM6XWjBw05XiNJwy2WjtvjnvtWurafU0gbDUgYFz1Kui8VKyrZkwBCFQQJi1ecxOblEbSBXVw1ie1UsGy1oEhB5eY88MEHkkduFLOpwPjq6jkqEtOUA5o6DAjKkORPMwUqlx/XCR9c1DhHs1KfIq41swwT98LXOSNpAbTTlAdmTJz5ocDmMhALV+a5RAda2yEfMek9Fwuf0PtdtcQjrg8wjf1sY8GRqesteso1p/tdBQrOdqdcQ75eryJ1+++an2IQqC3H9EeDpoGGhKhzTZECo5aARwBiWfoF6u3sCoq2QXVUGwRSYQr02QhWSGRpJUSgDa70ezPAODNDHYDpQ3fuPBymdcRM/kOcGlCMzmo6VNZAYs/pTgh8fnsgxRxd/kNnH8aVM/2d48bDkoQKvsEBUg2lzuyRmUlcCl1mDd22SUaf8lkU7jca4FuFXyIrXuWl0KYNG+RttuFoJKZG4zeK+MfuVXUM=","layer_level":1},{"id":"09833ae7-ef9f-4e37-9c16-22301b4ad52e","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"安全框架","description":"security-framework","prompt":"为安全框架创建全面文档。详细介绍数据所有权注解DataOwnership的使用方法,包括数据范围级别DataScopeLevel的配置和数据可见性上下文DataVisibilityContext的管理。说明LoginUser用户信息模型和SecurityUtils工具类的常用方法。解释数据权限控制的实现原理,包括拦截器机制、SQL过滤和用户权限验证。提供安全配置的最佳实践和自定义权限控制的扩展指导。","parent_id":"f18f3d0e-d3a3-4dee-9e06-6f273a611da0","order":3,"progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/security/DataOwnership.java,crm-base/src/main/java/com/crm/base/security/DataScopeHelper.java,crm-base/src/main/java/com/crm/base/security/DataScopeLevel.java,crm-base/src/main/java/com/crm/base/security/DataVisibilityContext.java,crm-base/src/main/java/com/crm/base/security/LoginUser.java,crm-base/src/main/java/com/crm/base/security/SecurityUtils.java","gmt_create":"2026-08-01T10:23:41.0524093+08:00","gmt_modified":"2026-08-01T10:41:55.5582492+08:00","raw_data":"WikiEncrypted:JNhY5K+GVMrcGagKRy9Mk5ENMwBNs8bYHsIou70cUtyXA87LqLVk2lGpimM9VNgS+fEdJfZ/zZ1OWWkz/rPdyL0faHgubND0uwMd6GI8VGXHmrhglDB5rLmS+JkST7exqp2W8LuD/qr6jQ36sKzALpHSJ48DMdNT/kwUequgbsylXkbav4zhJl5sHD7J1zJb8CUVFGJNOB4+J7NmAmzvyvWdaIoOMkph/TR5oP5wsRVaEHNtR1QyU5t3Mn2UJ6cwW6yvt5eMGXaTROxtUr3HOm2sf8rTIUtBbL2kpgam6Zi09O6KNWEY/grPeniuqzHp8xwHABjxJ5COz7x5HwO7Tb+GcjHqqyci2h0cUty9PcGKNgN+9B+ZkTzOaset3pSIQREIxENXemdDuYbOK3AJl5ul05sjG8hPvesu/7NtKLneB6fgDhk/5TjpfFvwKSA89q8ad7Yv+wuISjNrA3NUHn6aIqBAlpsbXS/HD/ZIbRqxXgkkeK1kpP2NTz3zJlPOsbHpv8fUndiEByhrYonNryJ9LGllN4OL6d1tTEp2a9tCk/qOcizsFeHY2XHIpebmZpsz2GE+xTROtJhmfxw8os6P+5+TWLSfrlIiv/VTmQv2qcu2XqLmRkSH6paXfwvbHIU1O2irBJd7lhvomfzTN6c+/IoCkFTxpwAuGGN298tm0ixlhWCQq421ogAL8ZIiyaVu7eQkVH5onKq/5mElaDSqTi5+5NLuaGBbOcQHqKL/0B5kIdOF+J37zKnehvSwQYnfrTxhLt0z4JgnNyYdWNQ1phO4JNKPiHNUoM22TtZRgjoxNrzuRXFd86qbyetOf6dcD5H4scCBR4b0G1XxencC4QGO/0TZSIS1QtztDTZ+6W/mMOqSdmMAXYOdwGJh198BRFuOwcwsOBrHE/kPF1yUv6Sz93JQ8ZRIXPNxdxFpsfgf7qIucIH8tgKYmbX+Mzgk3MeFPhsgWdu5pU7K9mV6sm4pBV7e5lDL3aI/Ywnoe0e6XMVANtDBEMQ2XvTrSFbAGZQznYkzhEG226JatRHd3EUhJ9A+RUB7y0oSMbvScdSS9TqE6X99Nx2TTH0gM94r//GTa2zxVpSTBd5gKq4fDM37niOZ7taz9fZWRzNnCbxTd2Y1p5pkk+gB2J+D1Ol9/sCEyv+T7CKFPgxbUvgRm3UT6dVOAmov43X2XbRO4xZMMYbU2xD5wFDm0YiO08XfiL2VrZ4t/NjhvXMX777uuMGybca5+I5o8VdyAPr2NS/gjskQFDKd0RMHydchmmrj4xTYrYNfevYkjb2Qjz1YnjIhoa8U9rr7WnW0ZjaXgfSuoX/90fetw+7MIIzkTDWmS4PIaQHC4ft5JoNqc9IcgmN/i/CGjfT4j0UtmhVplAPX0/Mx09i2+mAebqcKi8GViYbvDF3Ofg6BZ7HLUD7Ir1PhvfAEn+M1Qxz3+PTMbwrpSKVfGn9whvZa2JtO9lcdKssFk5balkjBOSeqQSKL/xU1dE3S3L4p+k2QLj4HQXKXyp3wIUpscxdL3yy16go+/cvcMk0N+PD7mS6iOw==","layer_level":1},{"id":"f83c373b-8c09-4cca-834e-af2de949bcf5","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"基础实体模型","description":"base-models","prompt":"创建基础实体模型的全面文档。详细描述BaseEntity、OwnedEntity等基础实体的通用字段设计、继承关系、公共属性。说明状态枚举、值对象枚举的统一设计规范。包含审计字段(创建时间、更新时间、操作人)、数据所有权控制、软删除机制。提供基础实体的扩展模式、自定义字段添加方法、通用查询条件支持。包含实体基类的设计原则、ORM映射配置、性能优化建议。为所有业务实体开发提供标准化的基础模型参考。","parent_id":"2e7654dc-4da7-4b34-910d-87bd6334f756","order":3,"progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/domain/entity/BaseEntity.java,crm-base/src/main/java/com/crm/base/domain/entity/OwnedEntity.java,crm-base/src/main/java/com/crm/base/domain/enums/StatusEnum.java,crm-base/src/main/java/com/crm/base/domain/enums/HasValueEnum.java","gmt_create":"2026-08-01T10:23:46.6738203+08:00","gmt_modified":"2026-08-01T10:41:36.7005101+08:00","raw_data":"WikiEncrypted:EHSVcmCAsQzmydGtOOwq3eXqisSzFG5zC6RV0+TxohJWtpFR++fWGbwd7RKkm7ijzlunxn8liSNolC+6qq7/2PfW+WiSzpVtfDaLa4+1QGJxYLjOy+5YTaGScR52NSC6Rt4C8H8aLPitoBXrUwik1P3Wly4GDFWbttXgZXfup6zM9ShjP8QQxAxHRwOLlYeNAXF7k/ohyXoGey0Q8TZjtM0kCumPWAZAlROL65wpA9ZkE98v3Ndjx6T6U/+q6ly4mAlY5U2m7tFaKaA/wPj2F3RKyqB+J8GJwMZCqzKSNHgS+uHR0IiTa6LtajP4Cm/Ly3XuxT7hYNbInhNEfOL9JBoS0RHlXGvkpBXsSLBQC32Od3fLT5KrE3/yVfPqOZwO/g26P2zaGq2QIHNkGiyIArCVVzhsmG07x91HuQea57XxxTO2GXVIoAwpmc0yR/yrXqqqDL1VWnwGo7Pw9hCkHhHRen/dpzRXhXN9u1TXJzwxQrN2Kkrku/KfupyMvnf8IdaFWY9W26aTHBjKaJIpEyRElBl3ik5VRYsXCkJEp7N4Ix4j074qGf86NgFuhnd5Wps6/XuplPY583YBahI7x6BNFT4qqLsIo+y6tRzxm5vpUNJSqJ3JXMR+sefLNdNdhHLefpinEmlzunBxd6y5J6eH3CuhcX102e3gLz3ayXbZ53ByZriLQvb8X5kMoY9sYjSNCaKX8GuhXjNNnxJx7uQSQb8qTtfMo4OSgadWqEvM7TSf3LETGth5CRrOENDurFz7blWD0RQdZVKA+S6l/73Fso9CAI7/DTBZMxvfGdugBaxOpqazgDnzkZFJoJf3HfubwQ4K6UTtQam29gzU8XCMTOOr+KXp9xeSvpaQV3ckQssHJTyPBrT5SGEEvL9LevQfd9f85jyAIDGqZDv195cWUGYCq1krQcTPu34JnYhoe49hWanpPtt4OXi/J86ivGtCZhj9/G1mJPvIBBPUDY1cHxOkoCYYM8veNgofz5KD69d+IRkPKcJYVZQ0AQg6xT7APMuAXS2ZDxzjjHNJUILDkE21tt+AG9J1AkWT+CihNHBiIKGTjgYp4olA7DfHMVVwiqJ0l+gITxX67TEBSxvjDkXre5ttpEOUZJkjLx4WNPuynO6zZIcZP4zIlnoAgw403FTOHYe5VMxV3trBmaKYfWzTPWfT+ps2q/zH0p4i6FbzkykDyQJ5hqkuNncmwDN0WbI4eOUIsF9/7HjlFqAZZuSo2kWaewmMp25kzixtnk5cIUrGbAqGmoa5bfPcdmKZ4PQyDe7iEQbIDFbQTm8Gwf48FrLpMwbYA4KkYS52+2Lh0C1+qqxcHbF+K6wT2fFglGUnKbe7Nk4Czc6tiDmtiYOlFznmvFFmumh5BceoSOXdLRCgZ94WY+ZVgaL2v+7dt8zajSmY+VwmtxMr+5feZznqiHfbEoKBJGxWd7CTv1o1OHt+IgRp5xqFQRwAWOelasqwfuXPlQ6w53YVOQ==","layer_level":1},{"id":"0f6c546f-985a-419a-9924-a0951e18b7bb","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"测试指南","description":"测试指南","prompt":"创建完整的测试指南文档。介绍项目的测试策略和测试框架选择,包括单元测试、集成测试、端到端测试的实施方法。详细说明如何编写高质量的测试用例,包括Mock对象的创建、测试数据的准备、断言语句的编写。介绍测试覆盖率要求、持续集成中的测试执行、性能测试和安全测试的实施。提供测试最佳实践和常见问题解决方案,确保代码质量和系统稳定性。","parent_id":"6ed8a750-2109-4e77-b62b-7c1fbc070030","order":3,"progress_status":"completed","dependent_files":"crm-auth/src/test/java/com/crm/auth/service/impl/AuthServiceImplTest.java,crm-file/src/test/java/com/crm/file/service/impl/FileApiImplTest.java,crm-base/src/test/java/com/crm/base/security/DataVisibilityTest.java","gmt_create":"2026-08-01T10:23:52.4027784+08:00","gmt_modified":"2026-08-01T12:30:44.7881468+08:00","raw_data":"WikiEncrypted:Xd2Zu8BM8p49theGlFJHkP7LNymxc1WsyjHwG1uqjX391VdN34XQRqMsMMIeEcRBnJexODjh7WY2XETLvWBC2w32dDBBriNb5LTtMndVZQqYKqcJ3P2hnUEa2tjrvWHP3GdzBYTKs9XV7yf7Ut7k9ba1321WL0sKmNZOlIjuIvfCeAsk9pYF1QIQXOSJMDp7X78Cb+xgMSxz4RJBRL/vAlndV3bstugAxsKU5DNSXQLV5RGjMSvT7I7yx0TV5cnD3Rr8Kj9Tpc8HiEI2fKjeT6KQ9fYuEiW8YtgaeM1synpT868ccy0gKRe90dRIIrmEQq36gHsQqpAfXb6dz3C1K7OogYwDUXC0R8Oaktw+Dfzz4QwP7c9W9GRNkSgg605aQGSf4Vo6e+0ukufYN0OEah25snSuZQBjxe4/oB4o/4e02jKbnX/Fgsn2RV/s31Q1Vr+syNnJHgbWGqlnz5fPmQKYtl8DhyuWk1+BXFMorgQgv+XNM4PbDBKwYS05kjIcGdMCzgDPbbC8vrKNc4gFB1X0Ymp2ngqLd99Sy5gYbSy62YfRdL/s71LzOyqoIHMmvEfaRMKO2q2LRAosBWgtIeMHz+A1Qip+vrGvwrQxO0fVbJ7auhbgUkqYfltr8JMRLTal63ZEpv8JiXp5l14OA/tDreTsopC+9z7RGWE1uk7PEC4mMOdgVjCw2GeQijynxF49ZUH1IKu2Y3ij6S+J7USHtc1WgXOQmoybPfYCbPWxQmEJ9G1BFo94XilU8hH9lgKDuiX/oFEA66kTM6eG9Wr31iOtHAZJGf3FBNPEN7Q2y/TsCsH1PEpeww/n5LQK0RBntcwi7On2YSZTiWLuh1dy/WOVlBa262Sekc8YzY/OLM0a7XNxtmS8RsT8aaE8/5IK3ODSybkdf+7wxP8QZHtB9Tku7T2vqij+mtxGOcH1iyhvSnK6jHMUyd64asqsHVfUlu13YxwYVSNQAwi57XMTYu883+pOHDnwqm9AQgADMbbfvtNlsYfHsdYDcXsvxeqO9V2nhOB7o0My9D4q1N9MPguXrOT5vMiIIiZNCSvmiwkm8lYsN79b693x8OirU4IQul++/1qE00IUG5ns6s+Hm0v+Yj3FmFVXD4ykzSMWYBGlRdIMyN4O9rfgnUywV2hZqnsNReTuFUnj8sFVtFia+zX+VqmcK6Tpi7N/Sxpzpw5OzNHGYlDbs67Xj47QvGCxNx4xImxUHU4Z0VckxQh9edr0riQZ7udEXCszOps3Or33V7lsCkLKE/PRsnzV","layer_level":1},{"id":"7e7e534e-d2ab-495c-ae78-18ebc7067dad","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"文件存储配置","description":"file-storage-configuration","prompt":"创建文件存储配置详细文档。详细介绍MinIO配置、文件上传下载配置、分片上传配置、定时任务配置。包含MinIO服务器连接参数、存储空间管理、文件访问权限控制、大文件处理策略。提供文件清理任务配置、存储容量监控、备份恢复方案。包含不同存储后端的配置切换方法和性能调优建议。","parent_id":"1b327205-aef1-4e95-ba67-51808ac20eea","order":3,"progress_status":"completed","dependent_files":"crm-file/src/main/java/com/crm/file/config/FileProperties.java,crm-file/src/main/java/com/crm/file/config/MinioConfig.java,crm-file/src/main/java/com/crm/file/config/SchedulingConfig.java","gmt_create":"2026-08-01T10:23:56.6326763+08:00","gmt_modified":"2026-08-01T10:42:50.8688362+08:00","raw_data":"WikiEncrypted:l1O7XWjgWHyLZEgkeZtuwUOQPm4W+sd7tyOysYiIH7RwKKrD6gp4cpsydfImXSG3RIq150CyvWc88LwRE84qJSuCKuJHTJIMsByQTzFYMpf2qhs64C/7/B3lqL9/jJe6Xkh1/SR/QQPlC4YJsWvGDL22JmVyQGIZi9nBIe3mPE60cjQadHXpM4VecTja/eT7plfPLfUlE2d7Z+7YOoksJMWIsyBkPLXAasA1c488Se2P8zRXzX+SlNoifMLvaScv7gqiUNsTAh3qZN6YEJ+PDcrYuo0QSAFfn8DlQuVUvqgK0vBGMdjCGYD/e93JuxhuOmu3eOBu9kd573VmCJUFcLGHPn5IDy/ep1O/4n8HnmSBdC0snbIvLPgiyx+MVQu5QrRh4UX7BFTBS8FaY41muuOhP9qJcVjz/MX2WKacn761sn3lA6QxUStFWetp0vPtc2YWPIvelM0sYHndQPnvmmf99zSBEFYCNJFvTJcnJ8Xr4jF9w/F6PxLaoPDKVNX2jXR3ffYp7kKLacq+G71U4nMyCXS8QwzDmVjpZgcFYHdARgRxfxPKmnJED4NiosE2Zl8wu8tPSm3hWV7un6Ro6/XPJBIk1B2gnNlv1jq2KamjYdgvrtmor4c/+Tje6/TSUOLNWEBLgMMdDF9+gIK3sfqZKkkRs4f8WU40u70f+niyRfBkqYoxAusucCDmEd6nRKqixZwaudVlFhjhGrQoTVlzADXMT4jLNgqL37oISmYFFeaSMBqqGwfbZq91nl0xS+0QX7Birny5PQ/890a+W+m+Et9wnfGLxk9/VFiyeIWCNso/4HdnIjQXLB2Oy6oyHQuo8bZNdlAZqdq6XTFyfomrTe/P1G9bUce61kT2afTukRP5ABgxSJD3bGaTx5TaCFL+T6zK1PQlXbKYg5bm/2FcK+802vjjomZ2fa8Xb3f1u+WRDlktdBryGjRH/t/4YxPWNVjYSZcLbxCew+xgLmMqut3fzkeEq28m+LwAjQMOu/+u4Mg43USmDTq0+cQgTB7k5AZo9V6FMVk0xJT+p2dtyNVmPKFkdWoY1Icbs85bBS1O8bAPaqTM1u3z6GMc8Zi0iV9OY2qEop5eqI5qDz9ZMKCdX5Og0AkWNiw9kH1QKelcsZ4d0FLXmLnCeQ6SHf/1FYguS0r3HrqKc0Y77/5GH9+ztqmOms5PezM6eGau4irHVc9Q42mYZqTCfiTu","layer_level":1},{"id":"581c54c4-4193-4d2d-9b14-b12d7451d901","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"应用入口模块(crm-app)","description":"app-module","prompt":"为应用入口模块创建文档。介绍Spring Boot应用的启动配置、模块依赖管理、环境配置、服务注册发现等。说明多模块项目的统一启动方式、配置文件结构、环境变量管理。包含部署配置、监控集成、日志配置等运维相关内容。提供开发环境搭建和生产环境部署指南。","parent_id":"ce73559d-e232-4666-a740-5db08637816c","order":3,"progress_status":"completed","dependent_files":"crm-app/src/main/java/com/crm/app/CrmAppApplication.java,crm-app/src/main/resources/application.yml","gmt_create":"2026-08-01T10:23:56.9694226+08:00","gmt_modified":"2026-08-01T10:51:56.3586701+08:00","raw_data":"WikiEncrypted:hzS1sFnZ5MBIsAwtUYPTW/MJIBMmFrn20vGr8pXYx9AN7NyTMGlVQspVkiN7j4hclm5bFtNd7Q9UotOs1MAn2mpu+dvC4EjY5DtYCDXSxhWC/EfHpFYG32nuh5B8s671LcuRN5+v4YUOW6u2LGXcOUxE9iq7h8NdrS79BkYLCE3FYz2jhVoT3k1DyNKyB8FHpqaI1gSgqIhbmZk2FSLjRySHRaR8dedMXnqY1gWGOmkBbu/76bF+9B8E2IWWTXlYiFaODXcwMFJHQwezsFv08EVUuayRk4JRr6Lws1ceAe9YiDXaQSXrQZlgI79hxIqtNK2D94satOULujOJyVYk5r+HQTLMNCFmfrD/8SgVUh+lI35fnQS9GylYqdRgEo791kLT/KSEYvTV+MR0bvg2NK/M7Wz7dC+D1UVYXuYXPPG/R+UEtyxzU7g+qAZRzBskf5CzZ3XmHI0SUjVtvQnGF5CGaK2boTxXdwR91h4oixZ98e27EHIw1iiV8YoPXw5x3YdW0mO9AQ25XWRT5rDtL3dJa3nIbxCrYcZTQu9jpdsYMaLGzcsnTNq9/v33ZuqzOofSWe/Tv8lBLAoK8FapIm3+gZ1alZX2NrbqUuHzqhXf8hdGHCq9WuNFJXB2pmXde29lWtnl5umcMpegzTS8igAIg/+TR90MRJQ92JlsGCqHLTmwtIFq24JP3D7DFdgbB6ntn0tc7MZ/R7fmv7Ie1geL6IDQVfn7zUTLPjvJ9ILH4qrEvUxugzNi2HUv+HQcZ6R8jLDx9UEpyRPwdLDLKyxzzdFMWglpeKgjxmiUX1F6ZMR3hg7KUEW8xdwwbF7yW62J5tmyzZ83sWEV9Yo5VsJ7zOGBI5k4xkVgza3VZfTaA2EW/bVsM5mupgKAvHsD6CUuGZwPO1SrS2/I1u70nFDRiwFy0xdBW+WkyNQj+A9Y2TwTR+c9x8mF6Q68iL3o","layer_level":2},{"id":"93763d9b-30a2-4efa-ae72-6b9812ac4b50","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"安全配置","description":"security-configuration","prompt":"创建CRM系统安全配置的详细文档。深入解释SecurityConfig主配置类的各项设置,包括Spring Security过滤器链配置、自定义异常处理器、密码编码器配置。详细说明PermissionConfig权限配置的作用,如接口权限白名单、忽略路径配置。涵盖CorsConfig跨域配置的安全考虑、AuthProperties认证相关属性配置。解释安全相关的Bean注册、自定义过滤器添加、URL匹配规则配置。提供完整的配置文件示例和安全最佳实践建议。","parent_id":"dfba2481-1f15-4203-89c4-a87c16ee2d90","order":3,"progress_status":"completed","dependent_files":"crm-auth/src/main/java/com/crm/auth/config/SecurityConfig.java,crm-auth/src/main/java/com/crm/auth/config/PermissionConfig.java,crm-base/src/main/java/com/crm/base/config/CorsConfig.java,crm-auth/src/main/java/com/crm/auth/config/AuthProperties.java","gmt_create":"2026-08-01T10:24:06.2165254+08:00","gmt_modified":"2026-08-01T10:52:26.5241375+08:00","raw_data":"WikiEncrypted:JNhY5K+GVMrcGagKRy9Mk7qQ81FDOCGCw8cHtrGiL2HFp1W0YavTGKuiloEP1flrcpgCe7c85JCVnRP1ZYxMzmSnakgzLc0cKbxQ+7NvPGnh4L66j349N3o+EThYyqCzMhyF75Qd2kDqCGX30tX3pM9cMYwNTl8Kp+5qljPeyH5xvTGnnaoPEZPrEMAPX9pm/gbrNzW12amF8e23Rj1yE2m2is7OPxn5jk/199LkGWffzWWSW833cx2aJjs7Qacte9TYlpEOESocVQs4EQdgJDXMVndpPa/5eLVsWRS4zhuld2NfJ1HVJK9Pwtjb2I8zwhvwemnGIsH4JnHJnyOpRNoA0EUAitEbk9ppLEN4WnmIgTPfQhJg82p2vhdEShlnwljiAIy62hLwztodoo+7auY8Q4VRThQH1Do6EnVAgNuQh1Pv6VoWfma1m8XzZyLTWGAtjCZMPvkoH3SWT+f/4Sv2lVVovE32UenYkePeF0QlJ3LgxDu8hjAPKyv/a6wa20bfGTRiwcRuFkFIVlJjvy87mWemcjV7ZIWRqpn510UtkL2LxXbsb7Tl/8Ke/maG+oSmWiMboDL55kyQzNFHTYRnuusMA1l4m/9JlmFkQaDDeQxaoWOBT41hTSVKPYVw9GE75zs955LuI+rxiGydnhQHmgBvhgByA/iFXJMT2jsVlF7vaigdEGS3FnHKDGaKFGDrBRFJDBduHtIbceBsAWXwNDT0IidfoGKyvrqIBY6N9DLTr2Mvb8xDYp1ahy/y5a4UJeIDyZpw+t0X4dgus5h7Wy0vdJ0ftZuQOwETe+V1V2dKvg86MBVqWLiWPp+Khw/QzjJ0j+B5tHMHEirhbyVrDUsWMmZebrCqUG0xw+YtnlygSkrV2zOLoVA1HY5kZFw/3YNgR3eRNyNuuqpbGCNQKpOOshJ8Jwt4bUFzoNIK6d2bunx6Lq4AqEtUg/SFSIUOjRegu4T9pF6hTs36Iy1Rsz85p56UjlIMWGgoTg85OAMsCufsXIejfCNhqX7aJo2Zzii33hT9FkHCsFOY0CoNkBLsicS2+SB8OqPb0PLiajPb0hzH0JP67E0RFdVXgLfBlLk0EhxKerYGJ6eoFWM8fBew2kvRTafXOR6b/QEMRJxEgPWHt3iK2rElP31plVEDvLJ5cO7LZyi93ieo6FtDh1oMPbUYc2Ykr8GIRYwaRu1DKOUVnCexzpuTsJWsXttv1iy3sFBySXGXnIggjn3BYNyw2yu66pTpnnP7dzeGpDhBYRsQ5e+PigHpZNSPRaTI/NV/PRA1EksT+pVumTFelEWz78Jz7L7ZqAd4m+EVU7G0Pd+63/soHHJ/P1iT1Ab1kLhyKYYxtfUbky8/QBLnnVbjdkA7Ld7aZvVJBqdFAtPF01L0m5li+fFp2tuI","layer_level":2},{"id":"a6310567-14d2-4be3-a801-b3367082923e","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"Knife4j API文档配置","description":"knife4j-config","prompt":"为Knife4j API文档配置模块创建详细文档。说明Swagger集成配置、文档分组管理、认证鉴权集成等核心设置。详细介绍API文档的自定义美化、多环境配置和生产环境禁用策略。解释接口权限控制、参数校验提示和错误码说明的配置方法。提供文档导出、在线调试和版本管理的实用技巧。","parent_id":"c12ea8f2-bd91-4cac-b219-49a005e97563","order":3,"progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/config/Knife4jConfig.java","gmt_create":"2026-08-01T10:24:08.1671452+08:00","gmt_modified":"2026-08-01T10:52:51.5789177+08:00","raw_data":"WikiEncrypted:YZrrN2KYcncaMsBjPEPO0XM5rnLi50ra1cTA6eYoPb3jeAGy2nA7/bMIA6tsXJNON3OT2KWJU73QJMILl9qghcyMa5iik4YXcT0Tb+ZJeBob4bFoALxdHv+YAsBcOjkIS2H6VWHwk4tNZ9y7FkNUrCiLLwQXHMMOEUC6fA0pXNiLtLjBVBNn65L4vb20oQqD9Bqth0D/waU+Lue2VVdZoze3tUX6+8ynuM1B1td/E/KRNxSm2ltoW7EQmgTLaUdOECLnOfM2tOB/hz789x/RN0rMzpfyTys/x/fZ96OICXPZt1HAc3p6cc0siu4qRFUgZwB9KBFrsZwn69chJ4nVK4SKKbT2kUHCEm11Tizfk/kYcdP/SKdYb+rgSUc7GdX5WGYrQlaPdUxEe3d3aoE7DzF+yOmYpNTCBPt6YwgHRI/4Hg7Po8KZZ2LuG3zMDuQH+u4zslkju74H1rn6FflGIU33uuCLHCDs0hWs41Lv0hBCOSsOsohBbujisc0N8uJ5GL7tt7VYwJTyviVDTMg/G5eoMxKrk5uCUQhgmiWi2q/6OXe4ACO6DOn3irUcp5sqfApp3K+1qUpCZWHpl0SJJazbh4NLf89USZmW8ba32BnqPpOtLpBex9T231P15jwh9mdoJdbX93mozEynijw9T4yWZpoRefRQjkOeMUc0Z9nW1q3PFxLBMiCb6v38gCktRaqul3gALuyNiJUBgKeKHwDEbv8ZZBrBtEhdl1b5p+7JsxFy9feAqOhw8RtaTeAM4QZSbiIqV74x4Q/LwsHb0nC4ElGTcyhW56NMtraYWKU0lCPV9cAuEtlTbSEQBhjmcztB6mJhWqX7wyQsHeqjEIJFiRmhh3fqoPg5Su9FMWqxDyVJ3HDy+vGxVaFVe2DdpumN/2lFMhucJ9mM7V3lRQuiV+HcmpXQGEadWoduVUk=","layer_level":2},{"id":"f5f2c36d-9d50-4b96-a7c7-0e698a0329ab","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"安全配置与过滤器","description":"security-config","prompt":"为安全配置与过滤器创建详细文档。详细介绍Spring Security配置、自定义过滤器链、数据权限拦截器实现。说明SecurityConfig中的安全策略配置、DataScopeInterceptor中的数据权限过滤、DataScopeTables中的表权限映射。包含初始化数据配置、安全异常处理、跨域配置等安全相关设置的详细说明和使用示例。","parent_id":"ac97848d-30cb-4326-a786-d6ff15c3b403","order":3,"progress_status":"completed","dependent_files":"crm-auth/src/main/java/com/crm/auth/security/JwtAuthenticationFilter.java,crm-auth/src/main/java/com/crm/auth/controller/SystemController.java,crm-auth/src/main/java/com/crm/auth/config/SecurityConfig.java,crm-auth/src/main/java/com/crm/auth/security/DataScopeInterceptor.java,crm-auth/src/main/java/com/crm/auth/security/DataScopeTables.java,crm-auth/src/main/java/com/crm/auth/config/DataInitializer.java","gmt_create":"2026-08-01T10:24:19.0172952+08:00","gmt_modified":"2026-08-01T12:29:52.0744385+08:00","raw_data":"WikiEncrypted:6g8iffgXzed698CsRven+aU5VvAGKe2X2jE2K2Xo6GDnQXTxlPDQ2BHPs/i9dHxLsbJ4FOIT6P8NOPSbpkaX0tBFVWPW2vxKgaSQYKTSStFfqitkZs9hLuzbJNjRfdawR5X/cE9ePDfrLS0JkYOOR0F/BL8F+Tw8jNY7r2ALYUongtnBrdsVZPmVtHJfd4CmjNH3rIVVVKUnY+J21Zuevc15aMxeqEq/E00tRjgO9qG3aQlespnTYkB3dicPRbB+oRxOXm7GQEBX4NjSySGOSXXgHCVomyMOOICWTCSToIQQCDSMruHhpPw60787WgkRXJf+r0fPO75s8g0kQL7YxsvzpYnUIe3jeJIDIsOW3OdGDUaNGi3Tl46IKgTIYKFK6Wd9N2VgW2dYw5lCMj0Fqo1xJ3B9pF1UOdMHs4apMQSpQE9L2RzHjOks2mkqs2AlBbNzAjKc4i/+IyjYrMndw0Ej/vLTDDjg6q2jfX2KiXOkUX8emZebVHhTy1EjMvCNr/jCK2KswU+Q11th9OgKq4RVn5M+5cokMq7IVcYPkjDiBkV+bR8RA+6og0qtyv4jIjuAegvQlTCdZPqWdQGe9BEpqf4wvNcDiKUj1UQe+nS8JKSPMommJiwvL2FxKudKesNjriYLIE2lbECT50LH6laQpKoFwTYLYp8PxasOmvCOLV0TTWclj4YtbxDcMU0iAvfPJUosDSVarCAvXGXfs5Nk3SeCQ3VUHvjWUVnuOckGNP1IFWuaXRzzoLy5tWmcSjl/zfn8nLnoOGljJWCmFUJM9OAMs6hxgCfjHOjDt6fNw9XR2kfj2ZMExZRYtEk1bqsOlOMHbLUsWWoPh9emUTTtnuBOakDFxynj/cyGQqvLYuKuP6Dz5iOv2/SbWJ1SHyfMiu6Ayp3Y55FVPlB8YYUjgLSppbtEtxDO12AnjNUy2vpvn8dthiZAV0KrJSELFWkWK5z4E45FFCkrETlDXWg6jz5VPQlCc+CKA7TbF+OStmWe/G8q5IbD0HTRzAQjpnxPaZ7FVWFWJ40fw+NBJ2rc8oMP0q/5SNXyXaX7slje4l6jdkk85F3wqPrDeBIVbi1wBbg1mWwOoB1qTcxgqm/q18N5JFiBurnyfq5JpQ6QNaxq0PdLfHPA9SkVwWq5SFaqD4UNGAJ3xr86YLr11C3DYTyCeDjm2a+Q3FJoU7JYfKquEcr1gRGil88siEQ5sk35YJX5ZPK76izSFO5X4z26cd4JVfvH/zcKDBbeEP2q+yBccPZ2gA0pm/LwjZ2TX/VX3EvHpzqd96bB5y9AjFiFpeyFy2tSEC3R+Z/gYocSEDRPktVaKdebt1PbmB05Wm4bcG+8i+ZH6qMq4UJRa25qKy6ZZIDaaTTlOiQInM0NSPr6K2LkUuFIkOr1X0ktf7ORh6UHgWBtUhxcHflQs3MyYi6eN5mFJ7TAprHAbISFUDDb48BRcTPF4wzipnDV","layer_level":3},{"id":"25d4ed5c-6711-4e10-a4f5-1233f3d9055f","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"缓存策略","description":"caching-strategies","prompt":"创建缓存策略的综合文档。详细介绍Redis缓存的配置和使用方法,包括连接池配置、序列化策略、集群模式等。说明缓存设计模式,如Cache-Aside、Read-Through、Write-Through等模式的适用场景和实现方式。以DeptTreeCache为例,展示树形结构数据的缓存优化方案。提供缓存一致性保证策略,包括更新删除、失效时间、分布式锁等机制。包含缓存监控、性能调优和故障恢复的最佳实践。","parent_id":"ab8a5041-5019-48dd-b58a-9870af2275b5","order":3,"progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/config/RedisConfig.java,crm-auth/src/main/java/com/crm/auth/service/DeptTreeCache.java","gmt_create":"2026-08-01T10:24:20.4891382+08:00","gmt_modified":"2026-08-01T10:52:44.7402275+08:00","raw_data":"WikiEncrypted:6+tjrG+VnXc4xk7AT6U/b3wE425EZOZ8mVIjjN7h7HL5uVCMRxp4BIYoIzhyg0sNblpfalvMOJsn/9QEeh0L1Khv7hMJrRrDtgrvOF2Q47UgVsmra/bosCafsjt3Mn/XfG91SUmsxHJJYmQyElEyGVGoXW4t5Nos3GEF/xZ/HnPA53Xw3Zw/QXo1sMh8PNwPF4sG/V0qA8Jpz/xHhnpoNnq1PmuUGg7j5CouJO6L/0rBFIPzIQFDjVKDmHzBdyOShGEdfoFeC1oLaz7qXhOSfAXXb9CWiiqPFBkdBuWv8RpZqSDnp0kMcSt6jYevNwtP3/NUnlk8zB7bA0+ACsJoZxB1lNXWIWo2xczjTzrmZZT44I+8/7d/zDiY1/sy5lv6uYqabXDRUxtBTC08YnP6xCQHuvt5AIQdBOLpxKTmHqO8R5m592FFH72usqulDj4FwDR//q9yjdJ1ryTOluWKri2gBQqcrDcNra5FVoWwKmZRu/h+Yo82QlrCJS0jpJfzBmF6QgxoBo7lfYdoVTHBh0X6hqtRrWF+C6fFKYwJZw/Fzji4fYPckP/rIm0Cpcjtms3p/SN/UD7vHB2qs96FiEP4SHunJRTJ6ZeeD4k3ns2F3DB7oPy3GpBiScmZoTs7vFC/eYyvDIO+WXXTWk8H21sCjphCS6QpzgmmIWk/UCVEZgfVQPveiGTsX9vJQM1/ywJnQ7eAIERNyp4SMpPvGuSXQyd5bvA/GLXTU+8rHhc4AZ17SkSRcqvsFXt56sEDw+KNAKT+iFsNXxZeglyHOGT6WXGu8jksR6uq2Tmoefq7IK+rohexhF4y817fnBM8CfTdC7vdCtLnwOV4xgNgSNwIoEEsr51xNmtGX+3OpQ2v/iMg/mC/osbOGieIa5cMvaT4oxgMFBdPb2gQXcEvlTHSeOivLDB+E9cZRwTP/ZpKP9EnF+5cEdjp/n4dFxxk8HcTpz4uf3SwAh1V/8fLQkXAcWFVyyce37JTbBgZaQnuqxlSuqQawjZokgpxma2tnm3DvHBu9MVBJ9Sbo36rbz+nnmIgJbK0YY/OVTEilMa/8bQ4vCbBshUWunwXMtwncjwxVyibqTxSjlXUcetuK+IDFu2GFJF9hnth4j2QFsRx4lVod978PUxxIGQuiOKHmk58Xa3O73+eA9zxCXl12I8BVcw+tkGoZ2aVSRxWfjXoc3iVMFJ4F+78epBTBW1sXknG1/b0xzmCySoqQ1uhiQ==","layer_level":2},{"id":"c076b789-345a-4ad8-bfff-1d588fbab43a","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"数据访问层","description":"data-access","prompt":"创建数据访问层的详细文档。详细介绍CrmBaseMapper接口设计、MyBatis Plus配置、SQL注入器功能。说明数据库连接池配置、分页插件、乐观锁、逻辑删除等高级特性。包含数据访问性能优化、SQL监控、调试技巧。","parent_id":"2a7c08a9-ca56-47d1-8a19-08a778b4fbf0","order":3,"progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/mapper/CrmBaseMapper.java,crm-base/src/main/java/com/crm/base/config/MybatisPlusConfig.java,crm-base/src/main/java/com/crm/base/config/CrmSqlInjector.java","gmt_create":"2026-08-01T10:24:24.4053684+08:00","gmt_modified":"2026-08-01T10:56:55.8492552+08:00","raw_data":"WikiEncrypted:M8uljGDGJ//mcfRJly0hh3HHKuueOyyeUdP3Xapqf+A8U5VxNxrK86BxzHmxphcM5GIXlzNgzQ9WmGdGSKvMU6Zrqdz7ZgDcxot3TbhHbpPEfPANIZH2I5HRoTfeHiKAHZp0gs6eblG67d3xBkHg6XgDqQA9EtyQfYWFzVxFMSWg6obvWhU06MSgoIxEUN9mYtmKQZxwBQ0gXt2VoLu789RdzajKkPCfAY6Ds8P3RmljGmjUFfWpTf9eoo1jQIzJeSsnKeQDuR4KbV6lWTjFsqb1Vy4JFAA1f4I6T5OWXnNDwJ6gCj6Qmn3yvzgPTEDZtoVgAD8In0zAs1ZL1b/+eQoHVEYU4zlorB0KsINAX3nr+qI5opyseqTC+3vzFconi9QxsH/4tykKvm3bP4CQC3NN6DAZHyKP/lsQWptT2jPL7J41OecqkCVCfxjcx/DtviEooXmN3MHmxWdxkUwIzx48SVbxJUHhS5JqsSqitX+W8Rq8k4RooIeJWKcLTaalWl/yh1QYC+2Ti7U78YENa5B2PeOWMY92xo7GENr6fcodSMKnMfOxWDbftetI4zeYsyc/VpdNatdKiP+xwv/4A0xLGmUYVCtRMuGLQkggnnQb7hUn7bUEVnW6zLnUGJieVwbu/K070GtLAgJ49PMWHjxFFm/ml01edF3Q9Pmvv+EHpxE+20e3X+Bq91diYKQkFgLWrHfYqE8nJcm70YAffkBzX2MvvgK3yCb8uC2kkMjrgXoBSKfECShk4HtlO1MaxDCYG5db3VXXgfFaY6pSRb9WaHxFOTpbvQyUHzJcgRFmdjstKceIFm31OuSVlBytJtUts+NS1F8VBYbDj/rKHWox8YsXry4+VZ5/plIAUOjosCZ0HFYDJuFMXcakFmQRkx+d4M4TeenfcA9bB6A3klJFt1O5K6M1w6jO/SBm6HY=","layer_level":3},{"id":"f18f3d0e-d3a3-4dee-9e06-6f273a611da0","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"基础框架","description":"base-framework","prompt":"为基础框架模块创建全面的技术文档。详细介绍通用实体类、基础服务接口、全局异常处理、分页工具、Bean转换工具等核心组件。说明自定义注解、拦截器、AOP切面、数据可见性控制等高级特性。包含数据库配置、Redis缓存、雪花算法ID生成、MyBatis Plus扩展等基础设施的用法和配置。提供扩展点和自定义化的指导,帮助开发者基于此框架快速构建业务模块。","order":4,"progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/domain/entity/BaseEntity.java,crm-base/src/main/java/com/crm/base/service/IBaseService.java,crm-base/src/main/java/com/crm/base/advice/GlobalExceptionHandlerAdvice.java,crm-base/src/main/java/com/crm/base/utils/PageConverter.java","gmt_create":"2026-08-01T10:23:12.9567676+08:00","gmt_modified":"2026-08-01T10:26:52.7788352+08:00","raw_data":"WikiEncrypted:JxorT1jC34SCdtkR7d1dUhEq+8G3+Is82K3f3jk66FRPfTFt54livQbYOO2qjZK/7aNtqOHYL64alrCYhbYSMDQA7UyP4kJGFDrIYPOAyq0ogXZpvfSVQGI76AHOidc3zMRcUK98CMOUr57TNfD6S4JCGaYVmBo0Wk+Kq8RRP9qrJc7c66X1Rl/o1Ii0RzN0DVqQi9ckc4rMFoQ07T8w8CSCI7E8If0NfwcHZN+eXrzV1SI+MBRTWyT/kJCthkpZWj3OffhTXabaIridsmlxZxxL1/2ZXS02sdnnntxHrwg2LnYysHb6bsT5wY5vJpA4aL3ETGk24HMVFiLVsfCUaHjuV0n7hBy9kRiVGo5vDZWgPwgkKdx449jBu2GbeHSSdVhVhVWt3zGscBjmE7x7LRLS9hg8SWwqz54CWlLej4X+5D0bMXTpEw+E7bTTiXle7vrEr07DPTAq0w2N4+kovV+V9pBHuo4+q09C245fI5/8BjTQXxhNZfGDWWbIXeDtR9KrIx/RUeq3UVI2nzbqHkjOD83YDcHvDcBqr8OgGElFH+YQtcTPnqUoSZLFOEDfi1M60p29qPLd6/DwjD0HoMzRn95pwvP+tzU+0gntigCm99eOITGIroWFczNB/v9tJQLfCQ0AnaPrSW/kiD7HJyZyH4hB2LCJSXGKzqGmLZhiJRbb9JQ21zNkAr0W8buillvr/pRTNIo5dlGZl/a4sI0UTE1pkvGJvChy7ummhQVPEH/NJdppUDpJ+OxqvybZPaoH/vNmgWZ0FJTME9Rqf/0zlt1aSlju3VLCxzcPt4BhL6z8NCjBpmfzd8Y3t8B1hcli+gKywvepvmk34uaq+BLbhBQpWJgdSLQmK67v8KI09qi8/iOnJ5CT2GL8wCkDLM6XW3+eJ6u0ST2pVQAeHR8iqDBboR8yCpcAG8FT0QlSWhCnK1n+VDriOkR9kZ+gSwJZ8fTzn8HqM8KzwDDcz5GwkQDeL6pchYNwV0qmr1bMfDdu4yd+F+tdGxGnNqWVoFt4QTqVGTmzNSjOT64NwyrNstZSh8uW714gFYXZVpOFrf7ke7oLUdc244QsFbX8YYITFKGUpT/vRLKclReoA3CB52zhiGlFkhC/zNm9HsAozbOV1DtLxv/3ZLM8+MgdLAQasonJjBtWfLCjKZt/Deo/5mY+fU8kLlx/3JPUk0Jo/Ktvs0rHnTZ6+ui/UzxmFsH9l6AknCbeqExHgpIwuVFuMZLK4h0mSrZSXaBIgNWhk7/P4CdQzgOUnfoxSPOCqtv8P73shlEP9R7wrQHYM3E7n924G5o4vu9Ni1toD5IXQlUc7FFx131rGD7jajLinSuVv17BHDdc+vOrFLi9q85mPK32PuyyfRnD1uUO7kG0K6+S2afv7R6K3lwfBMg4bGSvRAHspR//fId5dyMUYmHes1ATa24l2ykCAV94SLk="},{"id":"7e0d6412-017c-42d6-a460-ed9a1e77897a","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"存储架构设计","description":"storage-architecture","prompt":"创建CRM系统的存储架构设计文档。详细描述基于MinIO的对象存储服务集成、文件分片上传机制、在线预览功能实现。解释MinioConfig的配置参数、KkFileView客户端的文件预览服务、FileInfo实体的元数据管理。说明大文件上传的分片策略、断点续传实现、文件去重机制。包含存储架构图、文件生命周期管理流程。涵盖文件安全访问控制、存储空间监控、备份恢复策略。为文件服务开发者和运维人员提供存储解决方案的完整技术参考。","parent_id":"0825e6e0-bfad-4739-9586-d2ec50ce2dcb","order":4,"progress_status":"completed","dependent_files":"crm-file/src/main/java/com/crm/file/config/MinioConfig.java,crm-file/src/main/java/com/crm/file/service/KkFileViewClient.java,crm-file/src/main/java/com/crm/file/domain/entity/FileInfo.java","gmt_create":"2026-08-01T10:23:24.8220004+08:00","gmt_modified":"2026-08-01T10:42:52.4223646+08:00","raw_data":"WikiEncrypted:9FtCQC0DeAGG21+hIR4h+KgPex6XUvknMAdSCL+H5hpB/yITA32zeUW39W5MZKKfTt01Y5o6QRMNYEa7cXfVTx8xiSOoL3Lol8tfZ6q1bAF748h9npWQVOilMKq9pRDa8UTfyQHe/0NtkQhUgWdnVLKUa49nQQv0DFmy+xx0ELApoW2PNHf+fbIPlQOAAekbsI0veeyaozQBOmFBvn6VbNwgFX6GiXsO0fMh8jBOoDgXYiCcdQoy7eX1Xt4nNjNNAaGcZfeRSa6Ti/ZvrO4PIij7/PwLpcDFM4Xa/OwsBwtLSXVdPm0jer662LIlsyaiMQbNQ+4IY7Oua9fFSs/XCjmtc0PbxVFbdttmVA21/VDc2uso1r3nmKWV4zNYOH/MnXPzenm6Cscz/gDh25x5/h8rDKIm0/eBCiImopw1nkLS5kK1oriCpCCd96kta5fda7sEOe+JlqSD6e8IArOanAIQygWo4MuxlJdG64S6mUHun74qfQyt34T2RZBZks+SzxWkdjNTTrvYeuxBXI/MFsOYrRrJEtzttVAHovuGPex0YKt3JaLh9CVDj4sc03z0jmoNn1NXzxUVOx6TtcUhkdI8rDfdQ75rrdxiH+3i7g1R50MIkpG2c0rNIRUnCKA6GbbL53D6Mz5m0kdJl0cRoQlKypnyeAeEGjzl8e5+wIGY+8IjQ+urlU/9sTPJLZDD1XWjTD6jXKw8HqEpUialx58JNJdr3ExNERCqMEGV5JDOXuFYHHBk6Fx9gsc6oPsCyt3oH8/TDhydb1/he1LjwQfN6US6V66+JHRS7/qTWfOnp5tKkOpyoRWW2oaKvlaa7owchQcU0m76rMfkcko+cYkGxoSr1EB+po1bhYSb5p/QhokhlDI5SCj2lhRJ0H1UVRe8EA7kuYmnMzSFz+xtjH6kXT/aYUhU03/BjCsOtXlF7PcvrneZmPViDKGmaxs83rmVDy/S+UeC1PvRQMc+hBdxL3IWK5y5iDMCUFpM0AKDaYm9hQEeX5sm6jowXK5wFb1pZFm1XSnZmR4roF0cDR9bvQ2OMcG2PK0ANcdgEEFeILS77S3avLNncDbc9nUHUFMCWRu4jzo3Cx/FkXUq+91b/X8ylMdsRkEVHaWDbU3DM62XgYxXdAZjmmDxW4wdVEy+QgN7pdVeRLtKHucXgwoLuMS3jFbipaPEGGccxuEUmLiR05i2yOGuwB2mWPvxrbULmqPs27EP3UHEwmAMUzg/eJR4Njiyf1GNaiA2W3E2LTG+KCmRSK87TgQHcVyYWtLOQk8A82L1OmkzLY0LCsCo7AN2VtPeqiuN1C2J1Ripy8V3dJI0kxi68BZ60fryyr967i4Xx9OR2BFrdhlo+cc4QrwrUNFTTJE5WRrZaCpskUGs833DaoHVewuEv4mSA3q0vAOM4XNYwBNpGlfX+Q==","layer_level":1},{"id":"aa1243a4-2495-4803-a88e-ec4e8a9131fa","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"部门管理","description":"department-management","prompt":"为部门管理模块创建详细的技术文档。深入介绍部门树形结构的设计与实现,详细说明部门的CRUD操作、部门树构建、层级关系管理等核心功能。阐述部门缓存机制的设计原理和性能优化策略。包含部门数据的初始化、数据同步、异常处理等特性。提供部门管理的API接口文档和实际使用案例。","parent_id":"3f1baad6-225c-4412-af0c-c52976d1f8b6","order":4,"progress_status":"completed","dependent_files":"crm-auth/src/main/java/com/crm/auth/service/ISysDeptService.java,crm-auth/src/main/java/com/crm/auth/service/impl/SysDeptServiceImpl.java,crm-auth/src/main/java/com/crm/auth/domain/entity/SysDept.java,crm-auth/src/main/java/com/crm/auth/service/DeptTreeCache.java","gmt_create":"2026-08-01T10:23:32.499249+08:00","gmt_modified":"2026-08-01T10:42:53.7007218+08:00","raw_data":"WikiEncrypted:lLFh2V412Okc0QNIrkQ9TOgwbMp8G4swpF4b/k9v9GSnpeb067NK4e16P+8f8w4YS2vkJWy7DTBa0Et5EXhuKWENnETpRRWaGgKvg6JIMBeKT68GEBBfLmnysYa1S/tGcm78vOKJH3R6sJbMqWlbtJtRhb/LR1Gr2NmmtzwQqSnqIkrcfcKKwCmWb+vlAklXQGiLqN328Ruau1CTRzdILr9zghdb5IW/ZZZHDGtgDfIXq+0RYVDEbE9yiKLEvMBVPkqYmKWhHTQ3R6JXqvee6QRIy1OR5II5pQSvQJvWXDsw1ISNNMJFa6gOItD3uUt7bRJHvD2Lhfp/JdyzM5QLNh0t3H10kj5gKa4ONLalS24GHI8ISZBJb8+AQ5olZPb/dqBpjPhUyyt5aer0N7+69urLRtmTAGf1frFzIwx+/fGwHE+AoNGc0pDPrr7zDKk3mEd+7foP1DBDKd8JTTtmUW1sg+sF4Ocu4kaEO1hRet39QJX7lrUlcDfaKtFoZo/uFtegILyV2H4fJ5hwVvKn7CEo78ehnSmmrvlBWdPeMS4XXUaKcKA+nGAhKKH/CHT4CMgNLJZDKOPTkDAqCfiVGUlLmhAn2MS+WADNF/tQtqyNhBAdLRGQTf3iFLgAxWjyRRNJmdP03otyh4k5Wr7mngx1jlavoCSHOEijM9stvATVuo7QNybJDgORq99u5G8Wz1wYuYbQ7vFNPJ3HKshw5kHmnukwNItvG0BRaMC0DbL2kQ/jjt8HS4kL9TNw4X1JibMoG/rAnSEivtfa9ZC4wBFR1roQVpGluk1P4oaPTwgLLLj/iMb0kE4P7DmfETvUuM+R5G1I/zqHVPI8n0BVYdT362qy/S+SIwjummTJK1Cto4YgykaxSiEgDRf2CWWFv+FXXbljVz6SUuf6ddwwWzmAblnjPUOcHr96gfsj6W1Z3he5l8P0j/tk858HV9cQxO+l+4UIAhyZW2LA56lE+4H4vXMij/6FLmXXt5gJcJSRb/tWSgDN8AJY4yLnDlzKGzyI6e/2U0aw5pEvV9Zwll7pXBrpt91IviitDtmkyTiSeh6i1iyr5npS6TSERwdqtYoPb8fE/Q3z6u+8eWVE6waCS6F1TORjXIxQzlzJCcjcn32D5y++ekjhN+zT3RCJDT3iyMHQ3Uv+P7q9qDDQFzCq+8CmdFQjdGxCRcu1wNJDQvWLVY+ju0zFx6Nd0PtGMRChLUlVecEbfXm9JEXw/Q==","layer_level":1},{"id":"c12ea8f2-bd91-4cac-b219-49a005e97563","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"核心配置","description":"configuration","prompt":"为核心配置模块创建详细文档。说明MyBatis Plus配置、Redis缓存配置、Jackson序列化配置、Knife4j API文档配置等关键设置。详细介绍雪花算法ID生成器的配置和使用。解释跨域配置、元对象填充处理器、自定义ID生成器等高级配置选项。提供各配置的参数说明、默认值和自定义扩展方法。","parent_id":"f18f3d0e-d3a3-4dee-9e06-6f273a611da0","order":4,"progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/config/MybatisPlusConfig.java,crm-base/src/main/java/com/crm/base/config/RedisConfig.java,crm-base/src/main/java/com/crm/base/config/JacksonConfig.java,crm-base/src/main/java/com/crm/base/config/Knife4jConfig.java,crm-base/src/main/java/com/crm/base/config/SnowflakeProperties.java,crm-base/src/main/java/com/crm/base/config/CorsConfig.java","gmt_create":"2026-08-01T10:23:41.052918+08:00","gmt_modified":"2026-08-01T10:43:54.4966007+08:00","raw_data":"WikiEncrypted:aC5ZtUyEKPSxjzg//aVllB9TGvdYeEh4zcG1OGQGWJRtxgk5wPt3e962KZz9C3tgTeC6mQ9k8RGokYExY5/jBXrUaLMIMEvxw0uBbmWvziylsD4Jg/RLaDTM1YSgpDj/ZfMwE2xLgSym+NVOAqQhOuewIoSrlCtsbJaZo72B2l/E4/SxSJwHqJwN80/sAO9595toCQTg+2vZmWcLjin5IqmzsCPRBmurM4ne4ZYjzEGhBEDg7S/GZBmoTGPkpdeav1shujIKpGYdN5/gO1SVJz86rSF6PqEctCsd3pELxb9gspMLNHpYEk8wB+k0zUxEV/KVTR64OnkYfsS9zTde9da6uB+N1BcGdaSWYHCXkKSwtVwFShXSoN4bMpx8zTh0o9DeYtlHUL+gN3SI0M7mQa7j0qzCoqoHW0JDJSva6JlXR55Gu3Bdady+CItz0y5StiJzKJSZVQkeM8/v+Yvf9GkEGkR7nnL0I8KoJ0B5CJSEXIiK4m8StlbtdP4pTw2i6RxPCJVVfcX+7az2KfM5ljC6S3QAGzXLQKwgN/GmWFV4H1XY9ct6j7j9R22Umodzs4ZxIES4h19bY/wb4GJRS4nYclkCRzczRpNIGbAySG6nyjuK5vhwmDPxwEm7ALmWDT75/VRZ1wg7rBZ51dvkHwDbzFM6eCRvD9UBpy7bcipHWIKYuVBaYKV3949lv0A/0H9i8rmendIxsTP1XnlJZ85NW7hw6Jd+KwekURLRZFTZnTDqQM7VOw6LHd69CE0SRAVcVKpadBw1V+ogiFlURUzyDnopj+2dKC6r9GgKzeL17O+btDV0RU60T8EhnRovkUGLl7l56zJ72fI/mKjvO88XxANjntNbybXSfRjFZOsr0cfJzVswj2VGBZVIrDsfoNWcTI2Rfjl+K/Reb9J68p4LuPHX29FzORphrTD8AMM2bsjOBAii8Kh/mNzjvkJxDhqZBRCVLrr2D+Z5PK1XoTl1vsj1Jez7Crs1Ssp0uiim/GWaA8U4nCyFU5i/pxYGfvwCFk1fCGEYK8KM8MYe2TtGlWxCMYlqyeToA6fOvHRmkFFcOE2j3wQwJxPNH7csGEsBrqgD0/ZlgJhRSGx2IApBi0IgWhAfCPVlII90RqxtW1rDDdPbKKNABTmeAtbAmxpHa8vr5uAJXBSnkAib4wM6vaKKh0yA0huHsvcE0rNF5mw4sb3iIJmJs3dw1WCiMfSwA6d5VlF7X7lVu6uHNPMUfmAlxqA3izIIP/ryt1wRNGQpNOrlaD6Zj1QE6wR6tm955oNQ3/qycuDet25zuGEWk4HiJWrij4//9+ecO3gWxl9k4wX5CP0OdcaNKd9mwlqO94WMRZA2XEnJQwJKfQ==","layer_level":1},{"id":"b76b20f6-16ac-4c25-9bec-84be749d636a","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"调试与故障排查","description":"debugging-troubleshooting","prompt":"创建调试与故障排查指南。介绍常用的调试技巧和工具使用方法,包括IDE调试配置、日志分析、性能分析工具的使用。说明常见问题的诊断方法和解决方案,如数据库连接问题、权限认证失败、文件上传异常等。介绍TraceId追踪机制的使用方法,便于定位跨服务调用问题。提供错误码对照表、性能瓶颈分析方法、内存泄漏检测技巧。帮助开发者快速定位和解决开发过程中遇到的各种问题。","parent_id":"6ed8a750-2109-4e77-b62b-7c1fbc070030","order":4,"progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/advice/GlobalExceptionHandlerAdvice.java,crm-base/src/main/java/com/crm/base/filter/TraceIdFilter.java,crm-base/src/main/java/com/crm/base/utils/AssertUtils.java","gmt_create":"2026-08-01T10:23:52.4043595+08:00","gmt_modified":"2026-08-01T10:44:04.3926346+08:00","raw_data":"WikiEncrypted:IGJnZREY6KPscHFIFvSUZIsXIj/pjQNlJAdMDQk/yeU/0ZgNOXxKpRa75nB17G8dRoP05rp/BfGkgQtWKJwlLmheWiYjPTELAY836g5zCI220WeqxpcKNV2o/RLktYU+Q7+4Vx/03nNfqoK13Qf/A8JlUihDhYtIg1uhprz24VCeqr69VrDimtQJ4K6F9oc03rW/TWDOK1LVWuRZER1sn28SPNOxcvpaOTtcMCE+6ec1UAasmPRFzsdH1pdaWHU9uZJj9f1mOP9rDscVONqXh6VU0Hq4oU0srvFBVqa/8HTmbpwtwqRBy8WO3jAIAwkU36LexM51HX1911oI62NlNAPIFIJHPbh0zXFXpjvIE0f8YHMFoxKMSdSUEa2G+LtjL/n0bzzSoD3hY99q97zEg+uHd2f9GfhGH+AhzIurBNjmdBTyVSeCRT5RwtZ452JwqlBtOrp7HtwIVwwZj04E4ai84J7O0TAoazaFticvbWWvtKGvp5XM3u8LPTRqTtafu1mRiq2Z/IAr+kXoQ6EMXIrZj9TG0wXTEkAUCltnwcO9RBJ+KexmKQL+pHCz2NdBzUWg1einRwI94NKVldyEkdGUKS2CRtJd6LcDqE71MksFgW48dS+uDD1V6QMmIyTTm97QHHtcXX7l/4gtsP0p/vnq20akmkvoSFI9ji3FqVS3vtk982iCxNjg8pbr2G4nAlaHBxGqbFbs2R/5fW6dbu6f2Ox4xxJZSCkIPktMYupOrjdC6aieIyDlDdRSJMJLmbcuy0Sn/7FUvmHABD2cvkgBKg1mY53P9u9aaMJiSEDuMrlmJOaizq+O4d0b43ZpMNbZFGz2MRT2iIZs71GFSaTMMgXqspxmABLC+SgYUqihFPGBEpklRWvXPTNtxmPiXvZUWSqnfdm6BW7tf+tJEzKvy7fc2w5WnjMrzEl443hCHXkpf1t2XnHkxXy0DXKyRTzOe635XgHFnH/dgi1N8ksAf9cYudk7o5cScZE2+WGPsnsSnuOqL/O/VAt/w+pxuRDLAfYMP1ewGlyYqzleVqII1YGPdN1aoC3tXRHQKwQukMZHT4xHgMqm16DZ7H9UFCW9pc+g8dHjDJUb55SWJ3AG8emzj6Xkg7jpyao8OOaVoPx/2nIIKN37xXOeH4qy98z3+5qvLcvAZp6jRdZlM5kYptpHrrjR7xVVGjQpfmakCFc3FeGS+1V+59sF7PzgNEwI22Jsa+3SbANBPbqeDADaRrZIS8HJzKHxhyHmJ+ikJ5FMmS4CArF3NhyB/hL1iHMWQqcSsuMsxuyatd2w9MchQ/SL0QHd4TcqNkbswpC4ojykb/ORvF+O7Sy5nskn","layer_level":1},{"id":"985c349f-80e6-41de-ab03-f127e5ec0900","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"安全配置","description":"security-configuration","prompt":"创建安全配置详细文档。详细介绍JWT认证配置、用户权限配置、跨域配置、安全过滤器链配置。包含JWT令牌生成和验证、用户登录流程、权限拦截机制、第三方登录集成。提供安全策略配置、密码加密规则、会话管理、CSRF防护。包含安全审计日志、异常处理、安全漏洞防护措施。","parent_id":"1b327205-aef1-4e95-ba67-51808ac20eea","order":4,"progress_status":"completed","dependent_files":"crm-auth/src/main/java/com/crm/auth/config/SecurityConfig.java,crm-auth/src/main/java/com/crm/auth/config/AuthProperties.java,crm-auth/src/main/java/com/crm/auth/security/JwtAuthenticationFilter.java,crm-auth/src/main/java/com/crm/auth/security/TokenService.java","gmt_create":"2026-08-01T10:23:56.6326763+08:00","gmt_modified":"2026-08-01T10:43:52.8929073+08:00","raw_data":"WikiEncrypted:JNhY5K+GVMrcGagKRy9Mk7qQ81FDOCGCw8cHtrGiL2HFp1W0YavTGKuiloEP1flrcpgCe7c85JCVnRP1ZYxMzmSnakgzLc0cKbxQ+7NvPGnh4L66j349N3o+EThYyqCzMhyF75Qd2kDqCGX30tX3pM9cMYwNTl8Kp+5qljPeyH5xvTGnnaoPEZPrEMAPX9pm/gbrNzW12amF8e23Rj1yE2m2is7OPxn5jk/199LkGWdW00aupbwWLZoXdfNc8B76lJW904ziQbSbfT972+Hk7E/6EZN+pWZuSXcbgcs9fu9W7AIu7klfRQE0b76eA+LeXKDbN4e/lu5Dcz7Ynz2+WhsFhjorgiojVXbGm8JS/pjbxSRKLgh6YKR2tXjitwZrKRXRIC1kuwzGdj3HqoCC/y/AgLhUZm7+Nbzfbb6gmh15Y2LFMiBZ3bslWBIwdMsHAkZmPXXlu2Gf0HU9/AU694uOpo/p8J4SyFTjyew/fbubzVMiAfGBr+L6ptr2srw8kjzMfGm8XsEMkfI/7RYuVLVANjzqyUPj7CLw/wuxZKXHs2t3l39A4KkKyQQ+ip+E5Cf804QRGjGiR6shcSHvj/OWCzU4ZFfOn8OjdpY36YjVh53xq5bD6qEWBKJrn+ehB+6waA0sUo6f3EWuErRRQ25+SELUGmV7hyPOSGDpQFEexA+YDzqnAMgH8lLn8SmBh8frrXF9fDE7i1lN5ueYO2xI15CxOcmCMYgtgs0SnBNnvK/wtANWePTvEeLk9CasMb9Evb8oauSyx3H5XnOaDyP1Gugtpek9flifea/FdczuOJ7Jy5ZvabPnQ+Iw0kt7/QHNSVGQjzI7qilB1CRWkHRRmTiOUDKY5A6IodVu4YgV8B9mFRZ1TqaYpRi6MR0IhKTrBt9WlWMdqjIvhW3gZKLiVSpApeG/vkAIl6Ro4KOhIopQh+qFZlXB/5UkpZS9Xid7tiKgz1jN0yhOmv+MH93V8UDChjNQDE1GrPQn6nAbL8xLJH/EVP05zeXYu0jYu/qWZjbDUd0ms0L5EIZATJXQ+mMoKkP8EvusZ4CQbDZRywhx3Wcf/cMh9xdwNitBC4WtkLpw6BQk9i0KYooKBCay53osY1PRShf86NO08JIlEbWYkmpwI0Rz0emZmMu21EkdGuyDFm2PPCIzvkEhZAWhL88i50vGezbjIkAV510Kb8d7QDHYEgYFKWdhmGQxUENkCPnMDZmJfffeKqtPHqddewLEfr2dEgpo0cAzcdtSvbhiv0A0sEWakWgiHemL","layer_level":1},{"id":"0b53bbc1-ce50-4684-a2f7-ae29594e0f39","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"雪花算法ID配置","description":"snowflake-config","prompt":"为雪花算法ID配置模块创建详细文档。说明分布式ID生成器的配置参数、机器ID分配策略和时间戳同步机制。详细介绍SnowflakeIdWorker的实现原理,包括位分配、时钟回拨处理和并发安全保证。解释自定义ID生成器的扩展方法和与MyBatis Plus的集成方式。提供ID冲突检测、性能监控和故障恢复的最佳实践。","parent_id":"c12ea8f2-bd91-4cac-b219-49a005e97563","order":4,"progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/config/SnowflakeProperties.java,crm-base/src/main/java/com/crm/base/config/SnowflakeIdWorker.java,crm-base/src/main/java/com/crm/base/config/CustomIdGenerator.java","gmt_create":"2026-08-01T10:24:08.1671452+08:00","gmt_modified":"2026-08-01T10:53:14.1179785+08:00","raw_data":"WikiEncrypted:+MDtuQf/CrU+GPGCmJIlUAWatFugmTR1Q/9qKAnK0F9npsBq76uWSQ+z0qjFN/qbmgzx/IPAksjVEBxxk4cRucLYJJDc2AMNWW0GU6gWMFFbUm+uysku4mjXKTuDrGV1AQlC2bC1wpt/kcSmg021gKDXxo1xxbtXFEtjP3vG1kt2dhkO5xHQZIRE+0Y7faOi91JpewjmQ/s3WYn5FAY+9Fw76q0EcZbGcyvrjPxQ6uKyEZYLBPj+KY6SL+MSx0uHcGjyP3vjzv/ttnMHp/G+DLCmWkCpOcPKBFzdTL8/mE0f7FaC4WPzNspkJ+lAHIuugxqhW4u50g4v55Rqcnu9JkhUlQDE4js5EdMgRDaIQf7TKlZ1uH4zof/UGairWE/8YYX5fCSdCl3qSkEzF1ByJODpdZcFpZBfpt03wK1t1naE1dDvCla/p//np43VsASp+h4kAM+LQeXhcrCvhU8MxsYyENCOGOdEb0Q6gPqiKmfRHY7WLFDBXvJnlFNR1P169n9X8Vrm/MmOV+qpbfLeCkM9jTINkNDKj6DzfrFr+L6GLyppdO8gVU23rcjLZMlPSDiPM33VwExe/3stcsbYiB9LNAQqHwLvn5kfzC8soOOwcV+20gpM0gYfkUhA7Kh/0/CkL5tLjmC/g2/v7H8o7dd2ckIINXhNCBhGeiUnYaXSO5dZ8uXt1f6WudyGc3+gc5G7XWWkMAG1LoB3HCl/hHUhVaTBVfFrNpp+XyJhw2yA8swxypp6g28nVdtBoXjYbaPgZDP+jhSXhr4InWh0n1B2tp/gMOajHECcca5uRv8OV+qsuL/dxcU99RwKZOs37ZAoIy+BCXC021y0UMsGuteQJY4rvv+2J3fpVjOW/8xBpJHEAYLfOKCim4M2Blz0iwlVu6D+bI9Hz6ew7WAKcaGuaYprvx9qO1MqHDxBcQWIDcreh6+Tr9zNbISJXEP4jzMHRcXLCWTYEbJB8CqPT6k95xXrkx9SpOGMpF9p4X4X5st+mjH1LWblXq4O1f1Jcvw357ykauJkUhxsDUAaVYSCvMBq9hBD8aeMEsuy9529EN7PD47nR94lYnzOZ+tz4RIB9UxRB8u4SXpQ+GujXi7lChSJn0oIdqhjXKREb8TpOkRSWsSjqJiXAoKn3LuwhREXjgqA+/soPFQ1O8a6zs6VgO4PrLjSntN/xnbdrk8=","layer_level":2},{"id":"799920df-d704-4a40-8b78-ab17f08eea28","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"领域模型与实体","description":"领域模型与实体","prompt":"为领域模型与实体创建详细文档。详细介绍认证相关的核心实体设计,包括AuthUser用户实体、AuthIdentity身份标识、SysDept部门实体、SysUserRole用户角色关联等。说明实体关系映射、枚举类型定义、数据验证规则。包含数据库表结构设计、字段含义说明、业务约束条件的详细解释和使用示例。","parent_id":"ac97848d-30cb-4326-a786-d6ff15c3b403","order":4,"progress_status":"completed","dependent_files":"crm-auth/src/main/java/com/crm/auth/domain/entity/AuthUser.java,crm-auth/src/main/java/com/crm/auth/domain/entity/AuthIdentity.java,crm-auth/src/main/java/com/crm/auth/domain/entity/SysDept.java,crm-auth/src/main/java/com/crm/auth/domain/entity/SysUserRole.java,crm-auth/src/main/java/com/crm/auth/domain/enums/IdentityTypeEnum.java","gmt_create":"2026-08-01T10:24:19.0172952+08:00","gmt_modified":"2026-08-01T12:29:28.1711398+08:00","raw_data":"WikiEncrypted:9fTixMuSRA59yaGkTVjDLwXmxZ5pLjJHkd87f0z/mqaHvrOGu/mKvZR64NS6uTe882/nC251szyK6cLg+iIfVM59fHrlqTarRweQkeCVqm3YKveJnfFNfJvDFkYLmsVPCpaZgpYBjhpl0kMBSgx21SefOtNjHsCDUuIxTw45cX4fNEb60dgo08957Lfqrx5ZIhTyY+dqbsQ7y+8LVu469ZNzf1ySzRhKTamGEKb0dGf9puyUk/PKQX6bhn5hKUl/uPVl7pJ9Q43N4fk9D0HY+Rye90SSQcOQc8voWSODwNTqWcEwUKQMLDmLPVorsnuXH4Qidvvw+pyQZ2Y8FixfFQtwkdy6zyoZ3xBYoPSXFMq3Rwro0O5n/AzlMHGuP7ZWt4C5Z2hfMZRk7Ne39sm41/C7SW3eB0qxNBmRQg2mtfXYhBpO0iceuzno/SeKdo4YQupDGvglly3UUhnDms/vuUWBsqofSQGB+eBw5zdRIZZddsTYJgrgQAkQrCuS7zdJH5mD/WH21b2YlqDnz9095LelelkO7+IH+egeeTmzeUAR5LWpxGtTaRF06wHva/2/urmOXxJgJ7hBm7p0FBP9kgUneKO0PbDVZvKp8n3uc9Anc5w/rITgsyi9dvOO1ADbTfDD4HG322jkwj5N8rs6iDagdjuDc2n4s5JuGu0/q2fuQKXbOipM7LzJk6U+We4vcZ4LEcCDKNVaz/qUSKOFpJSDTcZF0ahsmas0jHvhKpp5H4gg+O5CYztYuDtlgnEF6xMp0iSpXGyIx9o08PmLvORBi3vdm6BhzutoeU/GWmNhBgbd4vLlIg/+qYJcp2kReisVJ7x8gEBYQBYNCTKAhHNCU4uXTR8MbqbScoSPfY7fn6uZ/Z8HJruyMHBOahAuEXVX7JHamKtaU+Nv5t1KwuOUNkQSWFdOlVIR8HmdIPYzGWF3VlO4LP4gge8au9Mf0nkgNBhEQp+AqSKHiccZRu3+03ViVs9QKF3cZ83ES/HI8KgA3Gf3TGhNFgCi3FNVv1StPY3LRbHXOj0uYWlGt0sSLmRm9h49ng10BZzMy7EsRIO31zPc6yYNL9B6qLErGQ2+AtRtv2f6BVOMk2PaC/5zGLwmkgssO/Gqy4Gl+1mqYPRYO4+G3tnWNeSSugy97VYyuKkUcLovoII7w0aOh38ZX3zrrMKJQgoAtAcXw7T1DfZabvVnS1IUUdBI+GX/xEsfoSsAlrHjsq5BhOt/OABacBss27KgZIwjX4/Qt9j19na+BQgmGgM+6PX0HYaAzXsHcjByO06159fuk4LVSRLbxFvYNcNR0lCHkFIZqMUgSywlofsPOuZuLopYLJ9fqFzvQwtacPwJWueNjVxK8w==","layer_level":3},{"id":"c9034e8c-7793-4960-b47c-77f33ee8b077","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"定时任务","description":"scheduled-tasks","prompt":"创建定时任务的开发指南。详细介绍Spring Schedule的使用方法,包括@Scheduled注解、Cron表达式、任务调度器等核心概念。以OrphanChunkCleanupTask为例,展示文件清理任务的实现模式,包括任务执行、异常处理、日志记录等最佳实践。说明分布式环境下的任务调度方案,包括任务分片、负载均衡、故障转移等机制。提供任务监控和运维指南,包括执行状态查看、性能分析、问题排查等方法。","parent_id":"ab8a5041-5019-48dd-b58a-9870af2275b5","order":4,"progress_status":"completed","dependent_files":"crm-file/src/main/java/com/crm/file/task/OrphanChunkCleanupTask.java,crm-base/src/main/java/com/crm/base/config/ScheduledTaskProperties.java","gmt_create":"2026-08-01T10:24:20.4896499+08:00","gmt_modified":"2026-08-01T10:53:29.0593661+08:00","raw_data":"WikiEncrypted:Ixm4kI/Z7v0V3JxitGlz9bFyqW2cr1LVt5A7ucLAmvwkvuWQQzphG84jLlm910MQnUT7BYeP1ROlSBRDJ+UdL9g7qxbiIEEV6YW6fcLhsHEgiLsZHPkF/r449s3+mp9Y9Pzf0ZLgk2BtJcM8jT2F8LFjHum7Rkk1uTNIseNh5oLSj+Sdlns0zvTLHlU2FL8dvYLT1k8NsFfGoQjnFrr06eUnUOZmVEtp/UHb8YNnv9x47vASVIOEfrjHxt9iAHJHzSFXUftlxhi2J2tmtRgE0RQQqk24vQJy9YRWQSLkHHnFxv1mGIrRzmpo5m3k6ysuCrxhc16hRXJhT8D0/C3dVBTp/Dx6PxvmO9qrsSR0dczWCxjZHea9bj/Lf1EyE+mlWGOlKrQ7LyIMqrmCK3JHKyHu3YpXNDVOb347/sgB/9zb34eWx3nDxCQP/97VovRyEkpVZYU/89soVk6EsjLpmrDWIfhJXp7gTf8QCo8IF1bvNLDzQSOmioqvERA6NWbeKA6ZU6oiZo0lUbeIIBmlbMHxWwM9dGePnVFhkUXiiY/5j61Fz2UtRv4Hyk3YZXMFLbcfDnpnbTU1CKNXBzrV2xbsBcwXWO/IFqLcJmpNBGHzbJYGVnDd1vybASQVdcIrIl/wPTZzCxSWzl3xuMJbrKIWGwLDfndtusQ9aRvldw/KNeahM0D8M4eSQTMt28Wviw+a8mo0W6bfjJGe0h9ytT/oPYaFiSBI6eyzE3/z2xDSfRGm2O4gBDkK+0twQEqIfaGcfonXWTlDklg2WU45gR/GN96KvtAiEbo9xhxCfXi23b1cnIlGWM6FlSy89qfFpHOvZiqSaUl8Ehb05JO0A8Ga2l1X/JlYoDX7oBjLsamHQXvj9ACc60Qi2dx1NadJ6hZ/1B4kANx5zLvsVea8t1pLXiDDeexugwQhSwnzxhkn7KMF5XX/nh/5sMfRXf6J/Nr4GXj0v09RaMKiUPhKjdhBsN05jS3rW50Bi1UNgwQ3xfjNtqG2JJqzlHy3vf3v5P1M8CZclc6VmvUcthBPUlLw5+dya2u+8K11KOFK5F5+29uMUENNbnVgAvyTZOiNL6aV+03z4plxCqsONMmYCJrvshZsYBwsfD3KiupZdf9kXv6cH3trzLsUOhKa4lbg9r+SDT0aLJejjLeHZbfW5jVtdMzpXq3wcNt53gK4dTSLNtfW4S0d4eLTl5HmqEyc7LFr8jflZKaE7jxKjDgvRA==","layer_level":2},{"id":"0acdb7e6-b7ce-42d9-a976-a8183cbcfc53","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"安全与权限控制","description":"security-permission","prompt":"创建安全与权限控制的详细文档。详细介绍数据权限注解@DataScope、数据范围助手DataScopeHelper、可见性上下文DataVisibilityContext的设计和使用。说明登录用户信息LoginUser、安全工具类SecurityUtils的功能。包含权限验证流程、数据隔离机制、安全最佳实践。","parent_id":"2a7c08a9-ca56-47d1-8a19-08a778b4fbf0","order":4,"progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/security/DataScope.java,crm-base/src/main/java/com/crm/base/security/DataScopeHelper.java,crm-base/src/main/java/com/crm/base/security/DataVisibilityContext.java,crm-base/src/main/java/com/crm/base/security/LoginUser.java,crm-base/src/main/java/com/crm/base/security/SecurityUtils.java","gmt_create":"2026-08-01T10:24:24.4053684+08:00","gmt_modified":"2026-08-01T10:57:37.8280009+08:00","raw_data":"WikiEncrypted:JNhY5K+GVMrcGagKRy9MkwBI59Ej+3gMDt2j1xeU/NCPBzDWzQeUrspM29zhKrqBqKH3sflVg9BLi+WB1IQIYW0pLoGJmCXO3+ICBxJrJ2AzQ6/Dxi4Cjvg1IukCLfrrWrjkWYr+eAQ/tQu6aQzR6T6uUxN97u6Oh81xwYS0pfQK1a+LJzbfxGLQvFB/JttDFFUYdLGSBxURQGp4w5y39QY0kND6RK2PzySdAz3vShFipcusxGska4rP9gG4n/NPizRIGc3KuTZqrwXo+/6jsi9XW9pkKixxxSIjsKwLDOlGwVtP4EdGcpyfgs+9E24GJLFOdPS6S/87itw4/KgoFm/dKsw9lzFrqIdl5MFFV9ObJH+zyH+6dxo98vVlgSdU6IqD0bfWamsrC8dXWAfyKhnwvXF0eFXAQMVdYVD52S28ATNsmow+gqXYfeoO4l9Wv923fnkfaj7CavrXOGf/U5lpTYKa//39HZMw324fhXM8hoh79qd/OQ1kdX0Esq4FlSVFG70M8B1ZvPo0ca/LjaqeHyV7+JnmJ/5GyJAWm/IqifreGC1QdGn2/WuLr6U0fhQnci2jTSW88X8wTaGE3bzT7jS8DnpWWpmiZXQ4hzInUIvuc54gPSnstH7hopMKKOSMXF6NNhO+MorxiyS6HG1V06X0PLK4C4UhY4k1ZugRY9tHaBIWyqMhhT1VyVXfj0cBmQpbuPjHLNgHey6Aep3th6V9PtSSG9UVCe5RRFyCeHdUs9n0ShYAFlzF/E7XOxF6+aulmKNLAo11UGQhBfVt3MbgnexeayhBWr5qz4xUvGFqxwqTikOgVvMJikkTwg6LO8u2dkLOzQ+OH2fx2QGp7iqFN2dp2fJfmLx7vELR5Kb5Cf7EkcKvY1uRHdiF3xyjFPgwKlQKxH0C518juXsgdkXXVZ+sUdwGulkmCMQEyCY8Fgxi4QHd27IwDrZKT0GxjLylZSgzTfU3KklWEXO+e2QSSbP6lAqfPtpzqoK1B/avhi2Wx45CAGu8XkiXylOqGA7ZYSfJPvyuZCTAbdEKZrqJMzLUJC51YFFhvrq0BeDOjzT4oJNiZswe3kzGAe52P+o9XvbzQiuf8kfzo/PASbhcUzJ0IP5T5uZII7ZEjpwueJxk94FK/JQ1nMzcb3nXbTaMfzYuIVyl0iXto83JtJma1bUN504G36J/Yi2fSKTxt24ykT6UgemSY9Xq8p+nC5Ocy7IrIZNOAAgoCg==","layer_level":3},{"id":"61603fbe-2a48-4f60-89e4-cdf37e119d32","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"文件服务","description":"file-service","prompt":"为文件服务创建详细的技术文档。全面介绍文件上传下载、分片上传、断点续传、文件预览、批量操作等功能。详细说明MinIO对象存储集成、文件元数据管理、异步任务处理、清理任务调度等核心技术。包含文件API接口规范、错误处理机制、性能优化策略。提供完整的配置指南、客户端集成示例和最佳实践建议。解释文件生命周期管理和存储空间优化方案。","order":5,"progress_status":"completed","dependent_files":"crm-file/src/main/java/com/crm/file/controller/FileController.java,crm-file/src/main/java/com/crm/file/service/IFileInfoService.java,crm-file/src/main/java/com/crm/file/config/MinioConfig.java,crm-file/src/main/java/com/crm/file/task/OrphanChunkCleanupTask.java","gmt_create":"2026-08-01T10:23:12.9572792+08:00","gmt_modified":"2026-08-01T10:26:52.2775384+08:00","raw_data":"WikiEncrypted:l1O7XWjgWHyLZEgkeZtuwXvYp2TlDw0RF6jqO3EAYPBHaHXLKSgUaTdobJ/2kMXSlFVFJCuB3CpvejXJiXEhzQ825Q8DH08RKwXQgD4NIAdZvDOrpdpxpWW5yNDFJD30g6qgZfBWBLcy9GiZHVMKgeJ4dyLpn+SPlbO+GLeGLnU92bU7PWRmi7M/0giu8eI7WiAfwvZhYoljRpTNEiPABvB57FZPHIX+sdNRvOdtxIr+Sku5g/d5x/n3h43wTh0P6dd5W87A9UrXaQ4Bhu/oTkYnCUe5kJbvsVwrzYCF/Kn7PIqHfSqzx2bG0IHb9L6Vvz8TEZB6O4zpEPCtlt2fovhXKr8C7Fjl4zlZNziWHgIc6clxrPIL4dCllIVVE6r1iPYNBLbkSftfZGT2a4OZcQKB8xPYHAC3A6SIfeSUkJzZGD7QWdSlZnU/ZecjPArmA5YMPxhP0ns8Ijo6446Yy5U7IhO1u4hM2Wn7IJqY6TiD2rwPEUXLvVrHIo525RjMl1fk9+JhD0fWZK6Z5vXDASho1Kz50V6cI3s+cEJgdh8rifF+UpRMXp2lDaB3gY1/7x+Js6lza1iP5CL2qKKPSM/6/XgNm2judBRMmwJAQ0CcHvLBCj7wQe624nlAx6I7TjVGGZSNH2bd3kR7h7jcB60EjbN6nfLgaxk0XfD7XVD11IqE3iXmj+PNCJJvkqT9dhsTrf5J9Rq/WxkR0we1eZ+UwS8zueAE+lSslUC1DtCUgfpnxYKNeGRdOpq/ZwSnOlxUuNy5POMV/cC799rb7cgNKlRX7Gi3evv6tS1UL8QGvz4V19kQ9wm3usluk1h6vcN7o6yW7oKtM2j/23KKaDvcLaPFGne6s6FMpl8wSc/J18uObz4/wf5sLw72rknWYi2BpVo936BelJ7fug/ZsYAIz1VsFdeGfuF6m4tF+lAFNHpGfJTNAoTkZ1d1wQxvfcO0RZT2NUfF3DuwmUvLMCHXdsVdksOAdpFrkYYdKW22cokspXfvhIB7hcVemY/+MVKX8jaWpbyGkE0ZJ7AvbH1heGAQhgxkK2t1rt6rUh5kOY6L7275DNM5iCsQBNYezPTIhyygguyoX9/WrVI8nsGrCe/WyaNOuwoUqvNwZuveC2fwkRb3CW/vVdXStN+LD1fQ4F7AavZr4KXZhS1awDagrNeWQQSSwmdVm1+ooSzS88vC5c82+qmxsEqhI8ont4jioat36wCFxPKCntXzh4Sp38+HeCqussBL0a6QHeBhFOZ6zzmPLtJyHCL/ln0/jye+HwbnucK56xdbAb4ZXX33b1yjSrXKYz6nzA9EDSO6a/vidz7w8OVRGqP6XIx43Fg8NVj2PvAFK0EEc0RR+vic4/DUomk5/TjmwMkJk7zzHhm2TjR6tLowJyVohsClyB14sJPCtG8FpKQLzSA5HQ=="},{"id":"7bca2b84-ceac-4312-8616-600dbfc11b6b","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"数据权限控制","description":"data-scope","prompt":"为数据权限控制模块创建详细的技术文档。全面介绍数据权限的设计理念,详细说明@DataScope注解的使用方法、数据范围级别的定义、SQL自动注入机制等核心功能。阐述数据权限拦截器的工作原理、表名映射规则、权限计算逻辑。包含自定义数据权限规则的实现方法和性能优化建议。提供完整的数据权限配置示例和调试技巧。","parent_id":"3f1baad6-225c-4412-af0c-c52976d1f8b6","order":5,"progress_status":"completed","dependent_files":"crm-auth/src/main/java/com/crm/auth/security/DataScopeInterceptor.java,crm-auth/src/main/java/com/crm/auth/security/DataScopeTables.java,crm-base/src/main/java/com/crm/base/annotation/DataScope.java,crm-base/src/main/java/com/crm/base/security/DataScopeHelper.java","gmt_create":"2026-08-01T10:23:32.4997591+08:00","gmt_modified":"2026-08-01T10:45:02.75586+08:00","raw_data":"WikiEncrypted:yP6vl3GzzNMVOI7+ToNUFVJjo06Xm/aTFjbW0TM80KJ+D9r8XALOXJTPQ1TlWlLnd85arTMDczZkTayhK8ZAskIMy5rgB0bLSKIqNCWW1hTKmpez+IW/fLbI1YpIqsoFsi1GUMjN+gCfj5+B4DpJz7PmkyDR+UAatHymr3qRPWcuJLBLI+Ls6KNsv1d7oG69Cuy3ftQ37xu7CWhcnUO6ZGzTBgS0MmOB6wt/9L4RXb+8BFUnBszCa9ScibqLcrpj1GiUeljePBa1YThQK9V1J7VJ+lyRatqsMFFu08CIagaHW7jrTnd7enAy8j5sd1BQ8oe9SziDzJ31p5tkfFPPf230bzKyJYL4ArjMNgDGVivIvJJafU+nZEKWhnnkogblHQa84JLhe4O/vMiaiQlbo7AGZGZUN4SqflOEaGBAHd6es+GkUle59zcVyayNUmcpIalFYhCJ8NqLnWDp8ivcUrYM/1qNDHkeQVpchVwh2jV6pLn4giPBwPxUAmQc+OB5wX2RU9t2sZKpQId3QO/vNohI4KxSbi5dQLX4uQqsdCDVLXksZw1dRbyH2JmQgfW9krtBZBEY/LKdvZkNYXaW/FBwlDRMyRjv60hW2EwJFPw6jwAwS0Jbb8aplmFRJ87FnBW0PlOu0KsviI2JsonjuEITtZmVN3sYPT7zI+wIllkaO7jbPiT6v6Z3ocpbmpt5w2gS5+fKgAX2k8p3yxEk/hDkhSL9W0tmj6j9mkNB3CiJkFx06+d09Q/CUJeGzS/JdukYY6aa3W0gJvfsVifNoJNFW6VzY+U6wg7Mq/UPUGJhGdKMM3AAbeI8W6kAccvUrtjNr98KzrBGt+om1AqUG+cduLrp9N+0bfOHHR1cFjOvqTgYG/Xon2GdqmlniKPaZdcNYO28tz3fRw5nMX1az405TK15/3pCw2+NkituCGv/IrzZT7AgucYgA0MJHp7ujawd+9JJhffaCbqFxVNhJxVTKt/Y8Of/EpzJKU7YjfAYJiohDsvD+eKl/zESfTZzSXeCP513YLXQymUETea56yrxRkRF8UKcGcY2W5oDXoQcTIMZwfTpqFLCJjdT1xHiz6Mrote9vkrqvqJEIrKJ/RhpqUnHZnLH/tq63kG2/2R+t6YEoiOjvBlXaMw3beXYxKRHBMcl7ZWPiEWErPMFAz4ksTHupJRb8lnT51Lii4I9x60u+lq+gH9lY2URywLVcckwCwnoUSw6GBaHp2NppMaM2VCD5d0a9OWHtITw+CxUk6/W4Iu2ajwXNMSkHwH9io1z0aqTSLUNI4gYs6XlsvVa1mavY7u5CH5IVngEFzRQi8xR5332OIRz3IqrbRlm","layer_level":1},{"id":"748c4203-f0c2-4cb1-ba70-419232bb95ee","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"工具类库","description":"utils-tools","prompt":"为工具类库创建全面文档。详细介绍PageConverter分页转换工具、BeanCopyUtils对象拷贝工具、EnumUtils枚举工具、ExcelUtil Excel文件处理工具等常用工具类。说明TreeUtils树形结构处理、AssertUtils断言工具、ServletUtils Servlet工具等的功能和使用方法。提供各工具类的API参考、使用示例和性能优化建议。","parent_id":"f18f3d0e-d3a3-4dee-9e06-6f273a611da0","order":5,"progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/utils/PageConverter.java,crm-base/src/main/java/com/crm/base/utils/BeanCopyUtils.java,crm-base/src/main/java/com/crm/base/utils/EnumUtils.java,crm-base/src/main/java/com/crm/base/utils/ExcelUtil.java,crm-base/src/main/java/com/crm/base/utils/TreeUtils.java,crm-base/src/main/java/com/crm/base/utils/AssertUtils.java,crm-base/src/main/java/com/crm/base/utils/ServletUtils.java","gmt_create":"2026-08-01T10:23:41.052918+08:00","gmt_modified":"2026-08-01T10:44:52.2420638+08:00","raw_data":"WikiEncrypted:xMGPTkeCxttYfKYvvBbBOQfnyF1TdBFJd2iZiksLsdkpqAKWf0QguRDQ0vJGAISAfebMm9j2B+kSr1VfHowO7vxt+ODSAvtZ6Ry7e+5MIAkS6ZCftj/EMtYDuR2evN9jbDJcV1vUbuWZQNf79XTEuELUtbkceHso042+O+jAeTlIxMA4AjlJftgpqW99eowad3JhYuk3iALeBxAmuDasVF2KwyineOTHYPq+k6/0IXfngZi4VpBAh73dMr50OcezSkwzd2Z+RfLJJ7V5RovZEUUhkR3UoFBM0CsoeT2NbOMl/fnhVcp9oGCdVBwNJkwnDsElnLDcnR9aMIiWJj3Olu+qHtjcCsHshe4vWWWfhiXis4bD6bmNR4JgG1N1iKkxtU9Xp3Ca8WYPQ8BzHtkOJ0EG1dsWRBSb1ydCd64Wf6sb3WPXBVPNJuz0fUrAHZ8sQ01USVRSicCHmtqAvDm4bosZHS98FX3sPI3/PEeqFIfHz+gLu4GOMxc32ueo6nduO0eGSvqxtDhbbL3YU4rgNA6nZPgtuZVNBRZsEnBrx3q5KY4VfDDm75Tz3zKIgYcvxcC0yGK57fJT8yuo0FWWCJW8Rb5G9Vc+5pMNhnO77Nlw197a9a0crXdsi7df6y+cBnuUe1mkwUzu4gCP0NWiTKgnIe9FbHpqWP+HsNe0+S5YdjYd8xe4N/aX3/FViqNL8hR8VXVkpKgvU7qlranAmyb7OpsiirG2Qtj/NY3QCmojo7ZhjpbtAWlhE3FJTLxy4CF7tSo4THRhwj/m3Pq5ME1h5cNuUgIgcN5omRnRl1APw+x7YQMf6wYIT6Ga0ODg/slKeT9LF6vU5LXU3q4sMiRXdmjiloJm7BlVgsEXqgXjEUuhk+Pe23uCkJ7wve4VbCA/duuyXZiQgXWYT1xSbYrRnqcXpfin+Q5MU+Rj4htQlvs3mawZI4lGsZky98uM1TVkd0j9GrMHVMFeh4BoKyjt75Z5wxmgEuaOZdjOqc4zLJVSlsNtOrqW7rDDR2qrQdwPhue6tye+a6DY0/wiEnV121/6gfzJxxQGV1P5BTyeyFLZxl719jXHvcDU8HAfTMhukWQ1dwpZNq6dnTy+vRS6HHwZVwLs25GLiagsniRvusbrBpxh8/xfljCLx3d1r8K95M3K5GdYZz7VpCMYv60rbfsigzfqABGOsAznlteL9RkxOxtirVjCzVVm8/hdBmwRIAcp6gpvvxv1xIXe7KIPMzAG/+bJbXKEmSyjGFnFkXR233LywVpMpa5QypK8t7HDB58K9Sn625T00bx/lDh2tS/k3gVWhPMaI21IdT6bprYEAiyBy5wJ0fT3KX2FbwBtCpSVDN36dU045Lw93ArBnBQgeVOc9NZR23PSq0hm2yz7X7T2nWWHYT/SwD/J/SyPWGDZx98pGrqoL7aJnBHUldETzQcycPv8iTZiSFk=","layer_level":1},{"id":"4b1f3f45-64c2-4894-baa6-28d84b08be88","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"雪花算法配置","description":"snowflake-configuration","prompt":"创建雪花算法配置详细文档。详细介绍分布式ID生成器的配置和使用,包括机器ID配置、数据中心ID配置、序列号配置、时钟回拨处理。包含自定义ID生成器实现、ID生成策略选择、ID格式规范。提供高可用配置、性能优化、故障恢复方案。包含ID冲突检测和处理机制。","parent_id":"1b327205-aef1-4e95-ba67-51808ac20eea","order":5,"progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/config/SnowflakeProperties.java,crm-base/src/main/java/com/crm/base/config/SnowflakeIdWorker.java,crm-base/src/main/java/com/crm/base/config/CustomIdGenerator.java","gmt_create":"2026-08-01T10:23:56.6332007+08:00","gmt_modified":"2026-08-01T10:45:02.6558417+08:00","raw_data":"WikiEncrypted:+MDtuQf/CrU+GPGCmJIlUESC35GEIbHn67UjAE1THeTaUnXxJ6FYWxUA4AG09efqXkhP3cVN1GqEfw8w1Zss8p27k5E2RkNeI8kkJocxTAm5T8X7odwZ6dn2HGcgwOIH4rjB1IPeebMjDXakysJfJ/Meicww3qdkF5ul4XAQ0oUengPG9oudGIiJgnrYnomg4cLLzd+g/bigkM2Cf/AdZYnScZNRyXCEZMwWNE35DURMO8SIMSJUPHE3aQujyUQy2DenBy7cIluRKXSxztFeuO6iXaG4I/JTP5yHSuGxPwQzAQtpeQkxrcor8jvmnVs14wwI24wwOS09HKlbZj6Ybc1iKa4qCUJDZBXjSfWKVVtRM/2YWIE7ea3qi3BEsR3awvP9hujdmrsI5kjyoT9Rcw7XM/w5SSEfv7XEmJusbxH5ZfjgmbWJiRWosrF38VumtAEdVImjBtCaB7YOiYQWfkEOK5A6qwFesb1hX/C98kb7om9v7k2wvbm3kA55Gahb6HnD1O80QeLryNAYEj4l4BW+h1jUYGYzWmvYynaJMdqaghkJOg21mN5fxggyUFzZUC0RTctcPBWUMoS2hNaM8Bs1nZ3LWRl7YQA8wgPw83FEYdvW7czxcLQRkCz/RDNY1JolOFHaaWfqZ8MQv7MA1kEHSRNjzdDOXUGsuLhBrJlTnleTJG0UOVluDZkphJ0uW+W8OeOdv05fS8BqZh9H8eUTb4etyY7n7PbRQjEVgyjWMoYBPu9edCJ0k8mYySw3G637pDv1OrytVz7SwU/IZQ1UFx32ux6sEcDM2Brj52hbW4FauArgp11CKVCPrikfeO2BpGnc22Q40TagMIV1RaBWihIOcDxIHccCQcOxyZBxh38NaS5LIAnUB/6lNWLh39ZiZ4p1ofMOyis9sYDwKTLoW3kjH87kdao9MLrLZjgbFQxII7ho4XLRGDMCk8YfcttOVVOY1MCKyd4mUVNGmSpWyrGwOh98uHTkpMtQxtWAPhco8GxuEm3l2GAX5YT1IXuDmQ+521x/yauCZ5A+T/TDpr/ms/oVsnzJKLEFfxlp6tVsi6g6fOw8PYyv/xTf","layer_level":1},{"id":"13592bb1-8d46-48d8-98f5-4828595924ff","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"跨域配置","description":"cors-config","prompt":"为跨域配置模块创建详细文档。说明CORS策略配置、允许的域名和方法集合、凭证处理等核心设置。详细介绍动态跨域配置、条件性跨域启用和安全最佳实践。解释预检请求处理、响应头定制和性能优化技巧。提供开发环境和生产环境的差异化配置方案和常见问题排查方法。","parent_id":"c12ea8f2-bd91-4cac-b219-49a005e97563","order":5,"progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/config/CorsConfig.java","gmt_create":"2026-08-01T10:24:08.1671452+08:00","gmt_modified":"2026-08-01T10:53:35.5334797+08:00","raw_data":"WikiEncrypted:4VOItIqKRX1STtVxuD5VPZWrRiX2WBsf9WnN4j7+lO3KVtWP9pAct6+Hn6eH+6oE6k/sWcYQ9yPPuEAMfNMlaA//OGKD8E6VGIjcrcFPBd3VXoCwiIiMwmghcu0Svvu97FzOLd8/iz39b0l2FdW7WAOiqK4A8msDUcczmXtAx/g/k7K/gPCGjwYSGPyOYgd8dUneUDSCLFWkx1CMctFBTCOITk8sMFHPaV3g1eWcxdZ7ISwzHAL/KQV6XyPRVq5Q5XTU5kHTVmsJaqZ/xiyFWa2fwIUqe6nNdB/baKppTxlJ1rDa4ObE+O9FOqPk+wkvRgTPUD1Mdtg8a2rySVe1o6Z759O2qQNY3rur8x74O+QioK7hkKpjG+9BjQhAW9jYpWqJvvr9xNvQ2DJrmB5TlxrQjMqV7XTbOyyLN32qY1Fn+gNnL46ACMQs2fm5NhDhqBwlgLW1iJQW4VyVXYkt0H4gMxl9HkFidevB1cXpHJYZYnnsDXEwrerldR8hWkpcnhb6W3rz/yznmbLC6YS+dn1LGYDj7a3q/384DNeaTD0SHKaPABsZixQhiq/SWZ9tCQxbw2NA3MC6+066WFBHejc1IL3nkmK8rgBz5kv7VE7On7pw9mLSt5vyFcynvH+HAvveFBxaAUCYDEq8NWVvVuDBKvgxmJtLkMIr3zdTKk+TiJJ7S5UxVJENTgVKjlm2NNleqdBPTEL8eEj+UN/kkSOBkT5/WEqujRRysHTVfAZ4kw4qE00ct8Zgw96uLyLDFN90IzaCG0WsohWKuIGVfxy3W22BOy/aWsAiB64OkcPOMfIC9KC06Hn0uUVOd7wzE+ZYub6c87QvIUD0vQDsokYBJ9t/k/8ei82YKkmH3B8hVHqMKk9FCstqIJVzQLBW","layer_level":2},{"id":"a4520266-217d-4939-b2f4-6b13109b47cd","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"性能优化","description":"performance-optimization","prompt":"创建性能优化的综合指南。详细介绍应用层面的优化策略,包括数据库查询优化、内存管理、线程池配置等。说明HTTP层面的优化技术,包括响应压缩、缓存策略、连接池配置等。以PageConverter为例,展示分页查询的性能优化方法。提供JVM调优建议,包括堆内存配置、GC策略、监控指标等。包含性能测试工具的使用方法和性能瓶颈定位技巧。","parent_id":"ab8a5041-5019-48dd-b58a-9870af2275b5","order":5,"progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/config/CorsConfig.java,crm-base/src/main/java/com/crm/base/config/JacksonConfig.java,crm-base/src/main/java/com/crm/base/utils/PageConverter.java","gmt_create":"2026-08-01T10:24:20.4896499+08:00","gmt_modified":"2026-08-01T10:54:07.1244715+08:00","raw_data":"WikiEncrypted:9uOBpMbLX4DyZqW4us3Wm3Q7klXxmeD+JMMoGiSO2oNryWBo1gw9kLkawvxQIW9CASZSiyAjiA/zeT5DwD4S8MWCvsWhjZOFxN3sfhf3ZPmmaEtvRuT1+/0U4XurSrWkAqX+/o/dPiV0SlMszxbF45VqOojnRNagFyTVX1QEpErDHjK6d4mPViP3CiRzhfFnRA3tXUzWAjsZBr0+CzN/k7C/oqvIgc6kWeccf3HiUYr68TMmZ3d7ksuA86f3kP5BlrKMpxsi+TWUzb45r2cw2J6VFHCyRfxrVSGBefd+vdKXbN0McBZe/7KrbBnjHLZ8CrYAU5ufcIMY3yCD6b+M+S1k9kSgu4WfLhQ+3Yxs5LpwrWKuYmuLE7WPHHYee71Mxli3mmOWCAS7nYMHltVlChJOoDjtScdS6peFIIopMkAieXxrHUN+1Uwzz9DsDe5Qd1ZQrd16B6sfS6/3QtcX7mxgAqpaa88QkduZKUshDtWgKRWSe6onTOCmKrGJi99Ptx2FhcPtdRPRvM592v2yd9xXJTB9pM3HOv6tkjSgi3YfiOLZzvKQl/MwLsJm3T+bH1LOCjuf9YPWzp0a2J+60d5waeE4OthwSL02I3iQkP3YDFBATB8t/sMBY7zt/WnAt6O5hFNlrw3MiR/n5cWC3RyqLOxcYpSGhC/fPDbC/suJ5sJXZsAX03uSf1nWtk88SitlseTyEQ1NkaiVyD7g+xQgkI2WKbjN1SAp1+MlJ+7SnI2LFZK55owK/97koZUvjQhiLLOk6gkVOUElB5i+WgKUHuX4iuV8C1LvLRvPhVnQ4AwDfberPSatk1rrQXCBtlTXMbd5iwhWXsldLMD8SYNSG4sMMZYCWnh5xt+if/HoTp8b3d3zvmJw9zEXf/Ng2GqaM9FgQtiIG8v8V6LDcvOVOUobt6YSfDfthJ2JgOOZpjKS4MX+EgTjlUKVHjP9rMO1Cf75CyO3FTK54+lzWh7iBap4a+fv9cMIoG3taPgRoxDdUSA2q88sFNTSol7cW/IXZMWaOBWPNHjg3nzWy5FMrAS2OcB6OKq9XHHZnUg4r3ds4ds/RJBct36BMwx4hb4qHnA9Uq9QLTbaC5we9YHub3xlkKNY5jqzFZlmNdVPRnp5WOG3PQ0DU1ui6Y5uqM+xyqC9WApqrckjWRYnkUGcbT1R40iVSNn3VTwdH/krmfDA9SgOmLSB4xtZT8L1XFJX4oGVdq9yvh0JlSxQ+kxm2VG4DHATafXD1jdPIIg=","layer_level":2},{"id":"39497cd1-5018-4a0f-a5b9-d9963f6c202f","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"框架配置","description":"configuration","prompt":"创建框架配置的详细文档。详细介绍Jackson序列化配置、Redis缓存配置、雪花ID生成器SnowflakeIdWorker、元对象填充处理器MetaObjectFillHandler的配置和使用。说明各配置项的作用、默认值、自定义方式。包含配置优化建议和故障排查指南。","parent_id":"2a7c08a9-ca56-47d1-8a19-08a778b4fbf0","order":5,"progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/config/JacksonConfig.java,crm-base/src/main/java/com/crm/base/config/RedisConfig.java,crm-base/src/main/java/com/crm/base/config/SnowflakeIdWorker.java,crm-base/src/main/java/com/crm/base/config/SnowflakeProperties.java,crm-base/src/main/java/com/crm/base/config/MetaObjectFillHandler.java","gmt_create":"2026-08-01T10:24:24.4058774+08:00","gmt_modified":"2026-08-01T10:57:54.4878207+08:00","raw_data":"WikiEncrypted:aC5ZtUyEKPSxjzg//aVllB9TGvdYeEh4zcG1OGQGWJQxUKpAVjQcne4MtA+PKI8uZuGbHVvF7w8BB2jl/OBwHwKhczc/MJpPZdmTND1ox+fP7MxlhMDbjYZZy8/sdEQfVPthxuJgJnObUYc1upxOWEnwdAvI+gjZk516FZkpWDVm2FvcaIonw1AgDgpac2j4vboEH6ei6zwQdiuES40m99ZE+uatqzcI9DJWZ3OsGEq8zhu8Gb8+wBZE49mqIPGI0gmPjKyxa+HlVjMiLDd54ZWG5ZV59WSfbpDh8mmAgBaP3tuJ/J62bp4FrFhODpUBa4ocVA1WaDxZRBuRYTypb3UQTjCDmfIqalQaijnyCNCSINtBC9nY5j4tr6SwdUlVXRu+0jUiS23pgXg5G+PQLAqGr+IAVs0zSeld+sdwmkccAgdmNzdzQ6loO45M5j++HF2oN4LVjZ/Z9gNOuq3ZWK+zeD1tr2UFJm9G4Lt2zCT/h/UdbZ2+c1EgYmfR0ipK6a0osTgDW44Knnbm68yMqRj4ajCD1mcc60HwHHpUpQnvrlmOCCZICGRKSgkZ8KT77ZhH6tU+qkRRQDWK2PQmPqPPD8OaK+lCDHzHTjhrS/eo026Rb1ig8PKmd5b3EDxeaUwDLdpMuitfUnr3m81TU0z/jzxwUsKm+DKhX6ZPRD0jwM/VNpYgqyOM7K0t1FOHJJ/BpVcU5FOzbaRuH4OSmovf5G8Qp/Qxpdegz1Gl74XlvU0Q8dehInFQ1UXu2PJ02T4NSg1t2DBfv8yyRCUyG5V3EYyH5HOyNRI3nZ0e51LXYuL1GP/yd92n1e8RMoTyF3+pNvjuqD7X7K8Bfg4BIK0J+01W0vWvGz+EGKFKx+Ux+4A2VsaQfgYfGtUFRntTgWOCpQJfnwz59+kf5ZAZzokGHYaIZZ7EPC11+AXGeUWzvuiLR6bcT2LL6JqbkuXf6TwMtcRDWbVzOFt+XlSY8CkZurIvdq5f7KxCtx2dGHr3VQfPo8attqxxnMyE124KMAfk1ImjYW1bid1I+97P9EIEw0bXV6KWb0Pe6Xm2nBvzBiDixNmjVLQ+JaYFLAjKxsGLUKj+/umktfLYYHMfJOBkkuy687lEPIBWeiZuJ1nh+TOxWYEK6EIBfQxHRr2FetpdxmLrLUhP8g1TohcuCQ==","layer_level":3},{"id":"972dc29b-39fa-4e22-b4a9-d06594d5fb55","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"API参考文档","description":"api-reference","prompt":"创建完整的API参考文档。详细记录所有RESTful API接口的HTTP方法、URL路径、请求参数、响应格式、状态码和错误信息。包含认证接口的鉴权方式、文件上传接口的多部分表单格式、系统管理接口的权限要求。提供完整的请求响应示例、参数验证规则、业务约束条件。按功能模块组织API文档,包含接口测试用例和常见问题解答。确保前端开发者能够快速集成和理解所有接口规范。","order":6,"progress_status":"completed","dependent_files":"crm-auth/src/main/java/com/crm/auth/controller/AuthController.java,crm-auth/src/main/java/com/crm/auth/controller/SystemController.java,crm-file/src/main/java/com/crm/file/controller/FileController.java","gmt_create":"2026-08-01T10:23:12.9572792+08:00","gmt_modified":"2026-08-01T10:28:01.6284073+08:00","raw_data":"WikiEncrypted:C34GewOyK1SlumqKiPsSg+WPNa2UHH7yP2PPjE4/OPkHS8z1Hn761hqag385wjgSGI8YqDrVu/o9V8BlKcXHBQfCKAhGLjJzH4D+QXx67Z3/qjMYf/zfxcCBUNaudBJ+j9FSL/FRlAQV9qdKc4An0mgnUigw3sZuhhHApuOjubIvSRB9R+8IQKe7cKMpKVuSea0h6Ki22a18uHrBW87lNsSxWBgOPinHdsCkzmv85jRlIkF9kXezwrfJA6IQA/JFRtYTXRQ9h2MycTojwAm0c/7CStbYRLfhn0UVkx5YlL6au7gnIXkTf25GQA2OmcaTq/5/nc4RVUofm56eK+NU6az8TCXELMace1PT6seIn7ek7bMq9AIiaRTxwaQijKCFM6X5/CBolUnOwhfwPToEf6iQSe2lSSAhG6CAToimsZ4cvUvlNg7HZCJ/XQVNKsjAtF0XBzhFRpb1Ex1qLfJU4D2bduAN57z+5CHv9lN5vPvAoEXWQHjBDKEJQyZqMK6OT6VaAkjBDhw6SN8RiwjUr8B8/pPMYo1+pWtxMBmnoH9uo8kuxN+g+VrDMUHVhkr15OrLNc6dfpezVZRBPrFsAccQ9UEsCGf80zdzF25I71o7YyVfC8PzA+2JyXH55UJ/6ITZLxIZp6nRM2vSMGCKv0y/lnkJT47NeRlXgyGN+PKa4/VdB/FL0svzktC/iGjAo6gD0DAC1ZiP26RGc3fer2vaetz9eT/TwyVCIcVZYGkZ18yFSVVTaAGaHDWQhx+jg8DveUsgtBg35IWUn9/9fsq+W9hUY+gv+FCPwxSzvLGOBlFeXx4qspUcdF/Td6UbSFJdNh7RL80c/Ema0ERHWUOw5MUistp5CbvS0DiTVCU5xC9ZG2255e46skqWgNJm7XEPV2wnRH2nQcf6vxY2qrEOvtRA9jvhc+L09y7W5AZaD6aL4iEkTOBNw+tqgLHFncQNlqY5Z8z1IYNwhp8C+vSBtp2SqivpSa/xYpxJuAr81GNGhwFXs72rssUoK4sxj4PK6CFsUds6QDkavUT0nB1FANfIYaRC/yWKudrDo7zFK6dX/CjADFI1I51TjUBHGV70BNNXxuDbAQXUcFpQpxo5Uw/61FIyShUt7SJ4t6y0cs7f7CvDIDgaFJrrumbQwwH74LPvRXbiy5zUh7pxcQPFkHyyqVZeyvf7QPJjTCMFAdnbbsl1rAFTvGhwfxx7351bA0xkV7YW4Vb+Wc23QROObvxJW7wFB1qdj/mcp5D4GBwlJ/noQ0PDxZf6Vt9P/V3m4V8KDdqOKlIAsluPHmxNBpI04pCVZy09CR09u77Qe8RwFkcZcAurcBD3VZZLrBZs7W2XCqmEtZRr+iKbeQ=="},{"id":"08889ece-81a5-477d-a6fd-7c934ab6f1cc","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"第三方登录集成","description":"third-party-auth","prompt":"为第三方登录集成模块创建详细的技术文档。深入介绍第三方登录的架构设计,详细说明OAuth2.0协议实现、客户端工厂模式、钉钉登录集成等核心功能。阐述用户身份绑定机制、跨平台用户映射、会话同步策略。包含第三方登录的配置方法、错误处理、安全考虑。提供扩展新第三方平台的开发指南和最佳实践。","parent_id":"3f1baad6-225c-4412-af0c-c52976d1f8b6","order":6,"progress_status":"completed","dependent_files":"crm-auth/src/main/java/com/crm/auth/service/client/ThirdPartyAuthClientFactory.java,crm-auth/src/main/java/com/crm/auth/service/client/DingTalkAuthClient.java,crm-auth/src/main/java/com/crm/auth/service/client/ThirdPartyUserInfo.java,crm-auth/src/main/java/com/crm/auth/domain/entity/AuthIdentity.java","gmt_create":"2026-08-01T10:23:32.4997591+08:00","gmt_modified":"2026-08-01T10:45:56.5157367+08:00","raw_data":"WikiEncrypted:WxCGFGSl9zR6IDeUdkqKNG7ZGOiQN8xJ0Zck8his54pxeVD/1lpKUGNE/zAfWgzrvsZeg+WvYulWQVP4zXg8KC1sWV2gfDxqUnfqFZt2gGohZBPN0KdZHN4aX2pMTr4NmiaIEH6NdlFMa/JVKaxUCbilvap/PVygBukZoCyxTjrxNVm5GuEq+26+0bsVeSgoO2kzoTdZjdbDIg4bY5XtKBQXN5M0V+ofSUaZkgnZaNVuX3MM3Vsq/ZXyziFpDEQ4GHutIZg9BxhXEdupffeipP1bLFjBib1QWdebhMW/ghgo09gwzCs50zkpGzu7X9yMoklkxn/1YQSqlFES9mOTNITtR4pfbCQzVR0Xtpj3yixrhsWUBE/HzbLCd+LuIGWeiyAlFy9+QKJZzRMRCNMI9eO9mRw0nUnXmrs6Ytag+dMfM4fYFYHsS+F0Dfi00IxsB6gac8NmEFGfG/27OtuGz2PZ6XPSiGtUx2Nt7iusG9koKRcb8oAfw30xlD8Ig0x4yK8MdDRkQdoiP7CiF29rttewXLMhx+K85OC7Xuafk0YyGLsmR3446j6UdwL8iSQetLb491DtSPf5ULdiV8hvQ2UYxrV/JDHSbefD9wBfFcYy5O4XYcIOfJvSslzoe2/V4Chz1iUEDi7w/fUppzzXuq3WDHysyhtEXU5Q3A3yzpD26miHRHBaPt5l6jM3AaR8ZOnOP3n4rylzb1El4ABvKYHA8Nw1/DRvhZMP+aRGt0I7NzCVyONs45LFkRAJO2P9DK6QY282LxHbctrNn292Lmx35gKbAR7MjkeR11alsHCUOoUf6+FXLIl9VHWTW3JT/B1bGwXdhdK2m3nIuPYs8bG2x5iSrP8eU1JHCmjxRf9OGX6J6yrrYYcjchqM2VABj/1FXFBBjowjRQ4867vgLX4mLQ3wfCzrrzT87mLGyfO1ZWTyVY/XNrvUdYpJHigE8ApoR5EmW5tHjQm8W0Iu/RiuJUCM1t/16yEWROfDhUc99ldOXfoV0lhK62XZwzP8kF3jfSN2QC5ZUDIItEOOOxDH6DTqyaLo3DpQHth0/ZU0Bjtv/J1OVEk7KhK7kvX7lT2t5EpfzHg4fv/yLs/jP0VJrqDVH2VxCqc4U8PubWvSn9+t8B9NssDgjQfksa7wcVkLeUMQHhPzXpKH+T2bCDjdczO5OBaSUE1xam0Bz7wvqX46hOrBgEH18K1DQwL6/kauAzKaT+L3HOR6B11qRBD+u6wBA8ogTRaw49qwikC95DM4Nc/EXd1TzKMYBzLIvSLVK43UOSBGxsogeKTVJry6KGydvX4THGP3KNlLRExu7HxDNA1KVCpPgZ7Py/RfroB3Vevl79wETJonCRfHPQ==","layer_level":1},{"id":"93e38594-db47-48d2-92a3-d6b4986c08bc","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"通用常量与枚举","description":"common-constants","prompt":"为通用常量和枚举创建详细文档。说明CommonConstants中的系统常量定义,包括HTTP状态码、请求头、数据库常量等。详细介绍HasValueEnum和StatusEnum等通用枚举的使用方法和扩展方式。解释ResultCodeEnum中定义的响应码规范和错误码体系。提供常量使用的最佳实践和自定义枚举的创建指导。","parent_id":"f18f3d0e-d3a3-4dee-9e06-6f273a611da0","order":6,"progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/constant/CommonConstants.java,crm-base/src/main/java/com/crm/base/domain/enums/HasValueEnum.java,crm-base/src/main/java/com/crm/base/domain/enums/StatusEnum.java,crm-base/src/main/java/com/crm/base/domain/result/ResultCodeEnum.java","gmt_create":"2026-08-01T10:23:41.052918+08:00","gmt_modified":"2026-08-01T10:45:59.4015537+08:00","raw_data":"WikiEncrypted:xN69xsyfHUnwfU68aQhW4QQXyrvPvU/0YTBz6MOQ4G247s+ZXzrvvrYJmbAFqIz7P7rjuwZG3PaXho3P1cAk81EpA00euQoEZPtprdeHf9ipZy+R+9jGSWh332RwkQOC9xsVbvmVlZLpEcaCtXXKMBRsSM0ZWaZXP5grLxrroBGZCzpnO5dmIW4ZDzpn/XoYDFVffu2dwzRU8DJHIHdL1XfGdNpa695ysm44jAxrMCChnZhZzageFEZtfZihjPD0N7pBofxl8u+84vyk26Zg0+i3GMz2C/lQCiXdpFSs3x5d2kPTmodFqCti86v8RVvuOuaDDKYkhWtUBK2K8qFbqnRmmwvx4OHPLc6LcyC9Yoi83xplba9xvNmd0l60ipG8zJO9cVKnsXseX4S7ZAxwOWqNgPrb0REej9Q455ibGOnx89lcLg8jEzKBGgF8OFtC5w0ck8SYKwwwt7LacoZrpSt/FbnmTRnaAPbbVqH41u361xoix4pXgg4wk5kGsRpALUz3X4uXdUM71uMjh/pCZ3yP9WGcVH4kR/PNl4q4RsKzfkClOmQPnlhImnAIll5feFLtSCzIj/lThJ1OTb1HAC7LOrNALNz8NPvqleziAjEev9yjxX9+9d2v+Fg7szrOy69wOmqIFaEPNliZXI172adY2jmuZlD8qPPc39eV1v355fvHqg1Kio5hRpQS+ywO4a8B9ZkZwbna0rV9niwRPnN4Se/Qto+B2G/9z6AA/RylhUdClNVc8pGmFavJJtSlul3ZhijbDj0qQGl0DfKe/czsZBDORlMETv8W6N3fQGIYCUzh7ILQdSZO9L9k7//I1WIcpX0tZRitwz/rXQDDAMQvkrw3uXqnxofxM6Ab9xG3ym21JdNlUqAWHImEcW1ERbT8YUrKwaq3lXctLBlMjogo7xVHDnofulOgjIjFmqVPMNTSV3TMV2lge4lAJKcA9eK5MFRgG1FarfYY5SietZdK0ya3ra4oYTEuoko5fizE+GaeN6AHpUG86O+FOCtzViFuWXejYuhz5bd9uiWyDfrXb6OfWqfY9iRQ2piEEetq44VWCFhCvjvok1z7BMgZBhI0RaCxPQ924Rntou4vxrJOJWPod8rLC3haQcmXhgCHkiW9oLvfct9Li07+e7ZoW4fqjdYYHsGpDVdthk75LDioybE3rJmAu9Q/8qklcmE=","layer_level":1},{"id":"084e6769-6e4e-4978-9e7d-7740044913f6","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"工具类库","description":"utilities","prompt":"创建工具类库的详细文档。详细介绍PageConverter分页转换器、BeanCopyUtils对象拷贝、EnumUtils枚举工具、ExcelUtil Excel处理、TreeUtils树结构处理、AssertUtils断言工具等常用工具类的使用方法。包含每个工具类的API说明、使用示例、性能考虑。","parent_id":"2a7c08a9-ca56-47d1-8a19-08a778b4fbf0","order":6,"progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/utils/PageConverter.java,crm-base/src/main/java/com/crm/base/utils/BeanCopyUtils.java,crm-base/src/main/java/com/crm/base/utils/EnumUtils.java,crm-base/src/main/java/com/crm/base/utils/ExcelUtil.java,crm-base/src/main/java/com/crm/base/utils/TreeUtils.java,crm-base/src/main/java/com/crm/base/utils/AssertUtils.java","gmt_create":"2026-08-01T10:24:24.4063936+08:00","gmt_modified":"2026-08-01T10:58:25.6894762+08:00","raw_data":"WikiEncrypted:SvMc2PRoWqDcMfdzcPf97N9k/X3CAmdrcNtJiMgJv834CzQEkJYyXrO/i1eDfnSnlf7FCmatxpEM7YYSNAEB8X06Y2JFWDl50mrOFli+0s7biUaabgrp4e7bknyExu/f8c0oi93f+Y5g40W6CChHMXq2dxM4NoC5oaTMvMWutWwixsbIfuf7rpuUkKWINcEkP/7zNVVsMCAYeZRyQ4oiGIjkACeyu16xMCfU0zCmghsYT78cOD1HzZWiOnWcLiWliN02KvK7cdIhGrxEnj8CHxhPerPLXlzqsdJqae1I/trTv8k1JO56qJRNy0IuOiO0FA47PDZDnFwJezpUwGrmA5BB8g4/JKklk/1VOkkTnNbso1JDsAzXwVm1TshtNeRO8O1vldWdV3tltEkB4gBPYwHotex1ShitSrsBE7OCNxg4TsLRB/RvTZn573t/LKyASmw2Uj6fYB06ZW88Ntvq8Uj0RteWC+CgwmHMOVTCJCWffcfDadLT0ptfLytLp6JjQGYm5hUPwfwwYJUvnYfsbKc0e489iy+vQgaUpPpuf73Ud6LeI4I1pf0hcNFfY2G4y5qMn/S8p+TWdUN60qeRf5kZIf73WBSiVIk9Tev1ztiUe+J7+bi2Bx+WmbSGfWYHWH7j6/m/kBznKPnnjGI1+ZschegVHf1smfM8T7FC1ECj45qXBiIOucXAUW5uODbI3oY2vowhoNZpFcn59psQoWRlwDtUeyVsxprm0KjN5BrcYilcM86QhOuEJX09is9pBs/cfLci7JIKGNJGKCDhVM3eknLSx4216P68QtqhKDM4AZkED1t+8nHunpa1sdrGuuzdemNEtKzMVsorbuiwJ2gl+RWO4qqW9xuvauPdUUGH2h7u/ujkHbajOA3gXYiNORw6i8BujbsVTZ16tuMdJGILQb33S1632GMQrjyT1Kb8Gupj/u/J2szEIaJAlmlF2hY+W9ReGUnCDf24e0ibrbZWAHwJGkKVZQfrxyc2ormDjOeABtzaX2iS/E6Jgh9OQLd9OYg0W/YBJDZ85qu0VWw2PhfuMrTCQOsGsAFagUJIqLLgr1F/CYW2bNF1gMjGNSvttZvzIVb1yTxvqEipKe9QHU04rSqLvvSpP+8xIhKVeeAnv5kWNAikPiChcTqUVX4nwlF+n7gZr9HKnxwtgbq4e8aoV2CjlRh/DkigFzL//UYR1/eJ+ZEOGLw5N5SE","layer_level":3},{"id":"2e7654dc-4da7-4b34-910d-87bd6334f756","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"数据模型","description":"data-model","prompt":"创建全面的数据模型文档。详细描述所有实体类的字段定义、数据类型、约束条件和业务含义。包含用户、角色、菜单、部门、文件等核心实体的关系图和ER图。说明主键策略、外键关联、索引设计、数据完整性约束。提供数据字典、枚举值定义、默认值设置。包含数据迁移策略、版本兼容性、备份恢复方案。为数据库管理员和后端开发者提供完整的数据结构设计参考。","order":7,"progress_status":"completed","dependent_files":"crm-auth/src/main/java/com/crm/auth/domain/entity/AuthUser.java,crm-auth/src/main/java/com/crm/auth/domain/entity/SysRole.java,crm-auth/src/main/java/com/crm/auth/domain/entity/SysMenu.java,crm-file/src/main/java/com/crm/file/domain/entity/FileInfo.java","gmt_create":"2026-08-01T10:23:12.9577882+08:00","gmt_modified":"2026-08-01T10:28:12.3658971+08:00","raw_data":"WikiEncrypted:klcgW2PbPxJambbKMzvFtzKMOkAiMygw2jhMWheBgWjabVsg22USnmOBp3LIxuc8DqimwIdV0Go/3rgG45ncxtBgzKujz43jrU4upyKTxmO6IhI9OzFINCR5Nq46uqS7UJeINVG1OTMgQXpxzGIbEgpxDIg8JKsbh8nL4S7UnPFfQGx7kN6H4oAlIxlbqUFSchzXQsuLaKNqom2hEga7dCkGP5UDP/RbT2R1z5O3DtbkcYj+OZ2xOd6HMgBKiyH5zF1puJugouNCNV7U2seFickfdnDg4ZIsmtrxBnhA+9t8OdYBONSlffPsXTyLgZRmRhSQlAzfUhVnIxfsw3nY7RAOsixCuBXMhDyIRWswL9+vYnFfS913ldWUxl9Pr/WzFxfxWYMmnA63cfso18WFs2BKlQpfpWx1r2+yh6lNZHfYYcTPC7mBlw2bnBbtGvtd4fyIJdA1eZ6twVkNSXAca/KbXFRfXJfW3CCgGu3yMYmjnMEQOCX+Zl+xnaUV5p03reEY592mH/3JBT1Rm7twqHL1Q1OcizQuE16b9MkFkaEd4bAysyja4EYGbOX2yIrSlPgpAziudAiDcKMCLceGdPKpvVxWGgbkVVfa5P4x5ljMH4NWKK6uNSZxPq7K3v+UOafCIitQXHTLF5etam1UF5oW02BbMeQnZ2fe28F00XcUppWYXkzH94q8uP6UdXMEVqkmGp7vFu+yxaE80zQERnjKRqHedw0vjXMOJz+QL+D6SkuruveVPHCseCKLu3vK79Umoyba3ngvtbC1W6JryC73wZdmg0yj9ckFPqzEkotaMoqhYpKbA00PxRkIM3FZQsFMejFz518woU8SU8ZYa+liJklc3nBlbo2l4Rl7biqX+k18lEuv44/a5NEt47ZIFjG+jyTZ2a2Jr75MnpZ5K1qtb5tctBTG/88YbN15v8tuyCDPp4YfBx2QjHw5BzbPG8gY3/jEIMDkW+lMj1nR37kqEcK8emWywPbdOlHeJzFswaiEHVq+mYp/C4/FDh0CUYMofD5sAu1zgAq4SwuhVZZPrnbvdxjPH3AgtSFEcZnnsBPR9Z2ez7GsagaFvjKFPwQOoLcsBxOkC7Wa9exK8ViUVdey9f7LokaiT/vQcxiNt4/05ND9SM2J9oKB9pDv/qlVuGEEe0D1Znyee7s7oNtpI03eNR8yda1iGpearuhNNrGbmlOpbB0XP+eiqD/ojkN8AqwRS/iV4TNXWuOYelHPgccGq9d/7H3SJHF58EQ4c6O8twhyBhx3JZCw+V3uDp6iucscxtkyrJsfXHuaU8jdXRYUIdh7NwnPCxW8ZcnmKDyWW9PVMlhnlF7Bud9cu70M1OXkGScg5By4MY6VJbZItfQK5z/DbKGCTlrLslmMOPuUmeY7FoQgfteqmK/bUPplezbm9kIXFzsIGOlfVcrS1MDTLZzcF+wGPSFKpnQ="},{"id":"8cdf8923-14ac-408b-92a0-c80eb87aaf8a","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"认证API接口","description":"认证API接口","prompt":"为认证API接口创建详细的API文档。全面介绍所有认证相关的RESTful API接口,包括用户登录、登出、令牌刷新、用户信息查询等端点。详细说明每个接口的HTTP方法、URL路径、请求参数、响应格式、错误码。包含完整的请求响应示例、鉴权方式、调用频率限制。提供API调用的最佳实践和常见问题解决方案。","parent_id":"3f1baad6-225c-4412-af0c-c52976d1f8b6","order":7,"progress_status":"completed","dependent_files":"crm-auth/src/main/java/com/crm/auth/controller/AuthController.java,crm-auth/src/main/java/com/crm/auth/controller/SystemController.java,crm-auth/src/main/java/com/crm/auth/domain/dto/LoginResultDTO.java,crm-auth/src/main/java/com/crm/auth/domain/param/LoginParam.java","gmt_create":"2026-08-01T10:23:32.4997591+08:00","gmt_modified":"2026-08-01T12:28:52.4014404+08:00","raw_data":"WikiEncrypted:1O68LCvyq1zgacF3KZk5YU57bnnRylQ+AqeY9X6/raLJYq57d/8iyLp3ZCX53ZchDFoCCtFKGz+DmEdPWQG8Bg/NQ0FEmWDA3o1JSnAeYprHTApDEFLhYn0vPE/a0R1oQkQ2zCSMCJUk6JPWi3Ff/OFFClo3o1EMwMKhKkfT+6XPFJ7TeLKQ2KKCLLgGE4vQHuQGWh1e/rkYMOELz8HuvCH/NV/VjPP7FeP1Y78NNRNMLW/f+XLHcbtSll8HoXb2RH38XPQaSzcPT2J8Z2ajeAG0pR1PfjcxaWXGHxGx7Kw6dAWqdwANqydIJrAEhqviz8M08fSdggwG7AZBMw2HKvfwBl5wS406W2a7/mzS7aZsdT00/Kpn5G33Fq/lHPdoA+KrjMUvbopouGns+SZi2R+MW7VpHR6ine5MKF9/TSy2+BTyjOP8X2CzGDn2DZ6QcuaBNC50pdXLy5gYpnjv5r4zY5W4A+xFWyWlwBWD2IAhQjTNOU3u/PLtCVAlP3Z4yu7CgI3PRymSw984b7FLbS3FwUz4Dq6uXU4O96B4yVp8JIxAMLfd+RuMJy/KhBPemeSNSR7Z9fci6T8xozwzEoanc0ISwHrlPI5GtE0zhsmXwGgrpDLSc8ubvWcFiiE76aWyipL15ArETnqukk1v3DyjCP2bTdrGrmYUCq2uv8biUofj5HJau2F1XXDyHKc9FmuybIa2sHlsnNKk1DgROrl+l65ZAsM9vji4LiKyhjw6/davM+BcrxtGSS1Lu7NzsynoOncSjQ5DHRBlnN5QQOLV/JMJXzmIxl+g3fpif2HSgP2FricdfjaDpGj+8QZhB94lZcaOMlCid33EMrqi2HAtiKP+vLUdwJazzO6+Y1obSQjiRujJZED9/8Wo9Ge9/PwNF6KVywnF6oPXgLYeACwthY3YCGcJFEiLs2FRzaUbaT5VQZc1k4SCAfcU6CVri9Gx+PZgnY6BewKjzoOrSOwov7+Q4Sddj8SPsBfrPVIt8axLjs6pElw+mcGl77DefHZlLx7WON+SOhNBN9IAbrfWF0wle8/mVIdIHxgMGnYHnTmZm1iF/po1b9ONmAW8V6sDO661/7jdZDu6TsPzeEjnSYfqhhUVS4JIaMfNmE8w5HZfydXgy48l0uGCaSXuxeSrST9o0ckx+2Uayz8r3DqllQ1QCMELm5wejX8ub80oi7r42AUTes8Y3n1Q/mgXUabME8tnGlu2+9dpB/kdkpyERdQeVnt7C8hn33HhTqLyKOIRlJGNgUPDi8yZZym3","layer_level":1},{"id":"4b3affc8-944f-47fb-aa62-a87e3003ec2b","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"领域模型","description":"domain-models","prompt":"为领域模型创建全面文档。详细说明BaseDTO数据传输对象、BaseParam参数对象的基类设计和继承关系。介绍Result统一响应结果封装和PageResult分页结果封装的结构和使用方法。解释DTO和Param的设计原则、字段验证规则和转换策略。提供领域模型的扩展指导和自定义数据对象的创建规范。","parent_id":"f18f3d0e-d3a3-4dee-9e06-6f273a611da0","order":7,"progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/domain/dto/BaseDTO.java,crm-base/src/main/java/com/crm/base/domain/param/BaseParam.java,crm-base/src/main/java/com/crm/base/domain/result/Result.java,crm-base/src/main/java/com/crm/base/domain/result/PageResult.java","gmt_create":"2026-08-01T10:23:41.0534368+08:00","gmt_modified":"2026-08-01T10:46:48.633977+08:00","raw_data":"WikiEncrypted:JLXqlo28VAn5UOPLsLiQgcwzmZVo55gd2CQnKq2/+OJPnVzw6blPNjNxKvILWx7nW/aTV41vQ37XDtGHN5Unclwr+QfmrcIzay0vRGQPJzkw/PJY21kF01UQIa0lA0PjFG8rWiqtNX1y/nOCVyWGK1Vtz3yL9wp6+R4FJylMcFotkKPFpMiGpadR2jHD9DY6jdoCqUzlQcxfovIY1/MUgBCSK83lK6cmrQCP2/3fsMAfHA9SyPau5vGBLpLamUUuLbsWYKnMyiutUq3/A4qfCk58jLv5RFv5zgK47ssh2RdFp12B7JkZX0twBhq5W65k8vFAiQKM/7+KoGXY3yMVLfZP1G+5FOcHIr/c/L3Z2oxz6jAI0k/bdpzgKr7zUJ09ZF3GLiJoILQpn0rQNGlBgfqJFHAihs97eCYIOVCEjpL/N3WovZGtK3y9vNwqBnmlwNkuyNjVXG/HENDWTrKnkq9dQYgSFVHkivHRJjp9SvO0msb2ixS15+KjnGlooAKsasAsQvs/Ewtu/DEE4+09iPoXQl+O5kJ1ApUCMo+GBaz1Jn+u1+VKch94jnR5t1SJfTTTdLOWWH+d/8nBG86IlIe0LtZQPy/3FxY31gC9xTgrFwJq4MXRjSUWVywfTrCo7wErTIaS3r8naymgEfdPgOVOxT5crMG/gF49PWngRitkAei3b8HhRZZN8LNirvsXRXX3auZQjP4+zwWUqR8lp5sVm/KFhwYynrAx4Ok1MBCJLqhGeRVdWz0dqj5Hv96bwKpgIYfdeup3AL3edfw3UOPg1X0Z1I+HqrTuve1/6OCJBAb1Bzc8sD/3P+191uWfS1FBVFnuAlq3DeHlDx7mVg6HbrExjh8uv8sbtAfEmQ/J/DUbD3pEISii5Ly7KFTE9Lk3dGnqmhtmb4WaQ0l+rQGUGbINAvPdfIwEcYQW+IHIPlOoSNZ3dkGsLxxBzF4bBsGVqOWPq9AkHEtaKcj6Euqlhgk7NyyDlyEK7ArUolmWFkTgyiyyJ8DQqMZLArMpEPYNUA/hsJr6UVWuguzj+Vg6l/iodZAkpurhO395l63hpgWbKZbxZ062kKwjuqn6MLA8rROFf7m2vV8Ocq5aNKnaedP0ERAJAwZILqT2HZ1VODqYpywFRvQK3n12kJEw6I+pzKt4ZB1Yow19aXN59UBK+KYvNEdPQUPmkX2Be0M=","layer_level":1},{"id":"2ef0a54a-9710-4f81-8a04-b47fadc74003","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"公共常量与枚举","description":"common-constants","prompt":"创建公共常量与枚举的详细文档。详细介绍CommonConstants中的系统常量定义、HasValueEnum和StatusEnum等枚举类型的含义和使用场景。说明常量的命名规范、枚举的设计原则。包含扩展新常量和枚举的指南。","parent_id":"2a7c08a9-ca56-47d1-8a19-08a778b4fbf0","order":7,"progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/constant/CommonConstants.java,crm-base/src/main/java/com/crm/base/domain/enums/HasValueEnum.java,crm-base/src/main/java/com/crm/base/domain/enums/StatusEnum.java","gmt_create":"2026-08-01T10:24:24.4063936+08:00","gmt_modified":"2026-08-01T10:58:43.7990757+08:00","raw_data":"WikiEncrypted:xN69xsyfHUnwfU68aQhW4QQXyrvPvU/0YTBz6MOQ4G3xyWzVl1VXJbNy8i3N/qL4OK9+zQJo8nt/jYtfMWHulNvNEET/2yRcXTXhmieXEMTmEwW4UMObsbAKAqtAqJg+6eHJxxXmkB1VelU65BM6AgeK4dzi7c1EEJaxkjSgYULUKzvcS3FWOBhMzFq4f/dNmgKHklFBud4J2uh7ZvfSTs15sdlaeb6+KbzW28YwwojBGYBQCAuRBB54/eDC2YfHOXcVruf+0gxCQnb0OKpeobuUf6nATMrSzyWDvkZE0IWW4WZYxcHOzWBnfeYG6aB6pv0FgP7mB4rHRbd2ewp3p65Ak4s6p2ZJbmHQfyew4nBmzeYs98xK7o0nmMNbvqIkfygfILFSpAWWReOXjriRTuCy37R/Ndu2bb0wQqtlXB6D8GUb3hTDwlhlD3Ui8KP7nPh+m698dZwn15NFw3WYWPOMUphKdMdyUCaK5HOtDVzLNRrhwdSdAfiTb2TT1fbUmwsvgPx164aVP+PKDv3JFOv86MieQJcPDNgsC/EWgHE5+3CzOv3z2g+1/zRW7KhkFateGQ3/OhCY4JRxXUljp62alTFSneiL9oKrroxlbpwFZcWuN23AoSC+AMgpiaDpOnHCg+AbHbTtaJ6GhVL8Y8sXX/MkfJ0wslJwymgJsV6oz06p1NkbgfjfIPmcvR10wicblq7/g+eUumWVk8wE2jPr5n3zr+au09a5rhpGMGrSFHcvL/UB6P870sS0uo0RdTaq3/MOga7YlW9BPfdPP5df3a9l4k3orvKjbH8eeg0BpUj/z+ISE3Ec6FSwUky/uYPTzk2WsU0Im2NMOjK3lZNsQt/YiMMoDWEPf18/8D4QyMkBjzFVttJq29TAhZyCDW/hYn/hKtSFN/H/vFZ14Axlxegq/+Vk/euSEK67HvI=","layer_level":3},{"id":"1b327205-aef1-4e95-ba67-51808ac20eea","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"配置指南","description":"configuration-guide","prompt":"创建详细的配置指南文档。全面介绍所有配置文件项的含义、默认值、环境变量覆盖、动态配置更新等特性。包含数据库连接配置、Redis缓存配置、MinIO文件存储配置、JWT安全配置、日志级别配置等关键配置项。提供不同环境的配置模板(开发、测试、生产)、配置验证规则、配置热更新机制。包含配置最佳实践、性能调优参数、故障排查指南。为运维人员和开发人员提供完整的配置管理参考。","order":8,"progress_status":"completed","dependent_files":"crm-app/src/main/resources/application.yml,crm-auth/src/main/resources/application.yml,crm-file/src/main/resources/application.yml,crm-base/src/main/java/com/crm/base/config/SnowflakeProperties.java","gmt_create":"2026-08-01T10:23:12.9577882+08:00","gmt_modified":"2026-08-01T10:28:23.6739433+08:00","raw_data":"WikiEncrypted:aC5ZtUyEKPSxjzg//aVllG3KeKoHrt3VUYbwJdfZuc2dPyQcD1PZ05yyIHRTzwtN/pshN+ZNfyeL35Bp8z/bRVSpvRkfSP1bYdaPvdOBh0q00sbGjeR9AZLGdqvHenuGC/HwVF/Ja3Yh4oIMVfW3LhSTpCoOmBFSdpWNO1S9EDOwYuoj+qS0KpA4YYfeVzFmyTbXWNW4DJpIl/D/nBbxM9luQY3ETbaqm/f9VWlmD1kOKyaB5vrXH56+J7Lq5bUFok5bef871n0VEMZr6yAIsJaT8iVRIyf/bjcnuXoRZ4MF+zHpm0STV7ph98t7i7V9+DGVhQYmnfEqUM1C1nDQ5gYUpAq0s9Pvyt5I/ux5TcHlZ8xveMv/TNf4OQJ4DvhPRJ9AMJUpaqzgY5hFOjRjt9Gd+V2G9LBKTvd69BfvNTCGk66DHYVTpSs36hF59aB194hf4xe5AKCsjlcw+BtmammPAyNqSCGSfY/ra6PlDub4k/x3gYxM2kSKTzvNP0bVjMP6DCbSokYXwLTMwPx6gqn08gc4omjNxp1leX9vXNmHEvI1P2jkKvnkrRWFWp1N2K4jxrhoO3cyi4clfsfgILZuT0LFPgcRqAdbXOMuoYnBDYQC7NrInC7YPOXdU5JeUMNlmSMbk/ugeEOArgub24QvoEkPWMZEkzkveHVkKRcQiGHVpo/kZqrwepDTg9BatBxK6Mpful+Cewp84tiKkgXs57oTqwR4WdcJmmNnUt+qa1NWvzIzYwcDWLGXZNdDAFIip6yYQO7iDsC4XPtCDyI9kMcfkuTYGchimv83PSgNMfSgVREzU36v0HvHiu2xZXffTXSjXL/PL4yCHa1G6SL0mOwXhZpyZwDk8AWTXNPcIqiZ5/GQl53hvZ63VZ0CUqL3zVcSRqlzG48X/nxosILe7hYUfejQF6jVM6xDjBcNETfbdMywXppiYWNedJGPTfIlITBGDFc58sJrDLhWhzefZ/v1ICZMAJcE52Hhg6efjHPayGP1k5zR62fFSdAj1nb0ddIk+5LqnlrDyDGQP4bTEGgbqZJquUw1erQleryJGZFl78FlVEtfR2H0wGaAln+LWADYGFVpmir3piIqbnFXfm8XdiJxqN7F7IbnAc/69I97PgPWopD8jPN09stQKTajlErrayq3dMxmmQoUC0J6YbVlr+rrTL9LwQmuoFSrbDbLyg/thRxcPn87+ZXMmFGXPUvfoCyTzUZ8oSoGq/it8Vbbw/OErZUSGMTYAunGa9bIjK4zWd/EQPzUrJMuAVCRHFYY9wIGbxWNV6u/EHS4h2wscCndQ1OS2bdCBQgjtU9uvWy/6VMI6GJs5U+hZ37Hd0jeSseqPML/zLroTyCegVXaN4P6LCt5b+3TXNuqZpsG+6fGEb73FcZsz2eXm6QbGYgQQdWrzSdNItJ1Uw=="},{"id":"11df22f9-1e94-421c-92ed-7e2cf9535bf0","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"测试指南","description":"testing-guide","prompt":"创建全面的测试指南文档。详细介绍单元测试、集成测试、端到端测试的编写规范和最佳实践。包含Mock策略、测试数据准备、测试环境搭建、测试覆盖率要求。说明如何测试认证逻辑、权限控制、文件操作、异常处理等核心功能。提供测试工具类使用指南、测试配置、持续集成配置。包含性能测试、压力测试、安全测试的方法和工具推荐。帮助开发者建立完善的测试体系和质量保证流程。","order":9,"progress_status":"completed","dependent_files":"crm-auth/src/test/java/com/crm/auth/service/impl/UserListIntegrationTest.java,crm-auth/src/test/java/com/crm/auth/security/scope/DataScopeIntegrationTest.java,crm-auth/src/test/java/com/crm/auth/service/impl/AuthServiceImplTest.java,crm-file/src/test/java/com/crm/file/service/impl/FileApiImplTest.java,crm-base/src/test/java/com/crm/base/security/DataVisibilityTest.java","gmt_create":"2026-08-01T10:23:12.958324+08:00","gmt_modified":"2026-08-01T11:58:56.086475+08:00","raw_data":"WikiEncrypted:Xd2Zu8BM8p49theGlFJHkP7LNymxc1WsyjHwG1uqjX391VdN34XQRqMsMMIeEcRBnJexODjh7WY2XETLvWBC2w32dDBBriNb5LTtMndVZQqYKqcJ3P2hnUEa2tjrvWHP3GdzBYTKs9XV7yf7Ut7k9QgsgXLSF1tvKttfSyT3Cj6fuz64OADT4SmwLQNNUu6PunqQFy+oYJ3BKAJjnnQtQ1xd9ZSFRw8rQH4g5irCZL1ISQJcD6exsPcrHiR3hn2hzZlqz2Nl8FL90M+AIvC6wnof/6vW6YZ/q28m3f1lrWbKQQfgmca/JWNgIMRlu3XIKtUurCn4FNwd/X9jW958v1uyXLNM+71LEuHGPRXdOqmuVKwm9xgiy8WAku6FbSJnsP9XR79PCngiSRJw1Cqh+r037SfBpV9xICE4EQKv3dkKGwwrz//k9m4TBlKHYnSAFBgJCBpkKdLtjz2aYKTpDCXvXCfL+49aYmcJDMLv/4d1BL3vj1oRJ7SMdBjfzqdBQ4H8twZDXEev9SfY26du6GevyNqhReJqaGetw11QgpZw39hu3vUaWPijpx0EKXe3AxdadyGg5kgyc2Bzc3eegJv2RrM9/3xt6Ni4LvygXDazz4IXFBlEf+CyvN5Bl6TumlrgCX2LubszP+cR/xIyLkb8hGkQ0q6OGdvoJ2ru/ew1eY298C63+dyP1GYStotXOZFPc1EthRPR3iQXUWJom2X+xcpZZROQXgcR5olRhH4YLI6LC4Xnqhrpr8seQomGv8C5WfpyjUDcBj2IyepDzUbfD2sMxqwDlfeQplPRibtEohuz8+X5YvTTG080LdbuRsBqm4EFE3vaVzdtmwa/HAc7NQtn5xx0iYWrrKbLGI2MGjsXaoRoqtPKzTd0yitEbpYxqNmNb+n0q6OLVdjqrWKOTYJSa00MDNBOOdeUDkT6Sy8ChMSNyhduSHxEQA5SMwyPxSz5ileMvuP1iy0xr76wwddbtMzNh+lC/MlCunMXwZohF1oEZQK8A/U2IDF6MU+SpvCUciHhRtt0/2Nn7GHzOuT4UA9I4vtBQt4afRGnI1XWOocBYqTSkwrQj+J1qTalYAXf3jNEgHj9OBrF0p30a3zPfOLoIwnH2TKT7FmLhfB5UkJyMFqxlTqqRfMl+FiWwoXyTjGByi5rfrstgi6/UoZWUunAkV8H5+qdBpHcVhmsOrHAxFCystNL2XZpdYmb9Qw9CesRN8YpKfdu6U8ZGXzP93sFfByhLZ4svnu5sW+LonZ3uZcxN8mX34C1mMFEbY+S5TkuyV7vlxUe1TXYituIFpWvwQe3u6R9+qEGYAWxm9NdWsjBYBBJ2VBU8kTLjqUr+4fNrydHL2xHBkm5u1oYddnesSZXseJCzQhj39YpOR7LgpPTl8dMXYuhsyb1tEKUlxEgS3c7Ec8YCKnBgqlT8q3nWf7Y2TijHxhQF2/Jie9xkhPzuqHrjyb7EuclRewrglTXRYTQKBp0PVc/g9YgSOhjO5Hj4PwMSheE3W41I0bhzu9/k8lv7B+dF29YKHh+qFx4HRGHhfIkZLsq4r+Q86VooRxlnG8D1y9JrPVWW/Trr56nvZFUneT/7+5q1PzN6QHY725G7Xk1Dg=="},{"id":"002c7e2d-d606-4f03-bb8f-8b25b8c58321","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"部署指南","description":"deployment-guide","prompt":"创建详细的部署指南文档。介绍Docker容器化部署、Kubernetes集群部署、传统服务器部署等多种部署方式。包含环境准备、依赖服务安装、配置文件管理、数据库初始化、服务启动顺序。提供生产环境优化配置、监控告警设置、日志收集方案、备份恢复策略。包含负载均衡配置、SSL证书配置、域名绑定等运维相关内容。为运维团队提供完整的部署和运维手册,确保系统稳定可靠运行。","order":10,"progress_status":"completed","dependent_files":"pom.xml,crm-app/src/main/resources/application.yml,crm-auth/src/main/resources/application.yml,crm-file/src/main/resources/application.yml","gmt_create":"2026-08-01T10:23:12.9584978+08:00","gmt_modified":"2026-08-01T10:29:17.759386+08:00","raw_data":"WikiEncrypted:0IKfLNOWe9mZfG1jVts3wxq1Ie83+Lf6EMuycQSN7s3NFV5ooa3Scq2B9C67gTKq2J61WmIo8uwzopEI3o+rx2lsofMss2CX7FP58Vgcz+og0KbUNqQDj50zlqxUqNYpbb82KyHxixeFlhldO7uQxEHQv6YcekylkodC4dgvrkvl7y165qe69CoGKu9bff1v3aEUbqUYIidngIeLTndUHkwQ9oZyKoMNa4NOGGZlxiw24ue2m08ujAiVlxEC6IAqJ/emub1onbqdxi5UuC+qCp7lcTkoRsAooth0gRC6O+Bn458rSDGUP3ZDrvq/iQCqpcnyMraQDN4y7rmRQlXq7CpCzOyX7QAbgy2EPJCVxlS9hD4z0RQQb/U+oT03qpzSVSQcGA/jd39C/KR/X+XKr1gfzwq+j66INDUNP3FvRb12cXMi1j3yzvAWGlvKVuXpWKvUzBmokC3k6abZc9L93E0Kh+OE9VRgmQK9PKD/YcfaGbsAJZ1KJiZLtuAosCMxQbvUnteoswRCtLFqAIcp1hFenta4N73OAApY+pwA32VNaS5paR+cqoqR8mm46YzT6+nPuc6oN6oGGH5VBLPrVBdFAq3J2PY4I/VsRLKIarnNaMkaIDAyWli+lxWCYKoUnhGYVMAqwIsJEw/SiVgBhY9ehufgj1deVTI/gxGMs/50/bxwW5UpQFyAd5/PcJkJJQhI+UBsH5ZGqIbs6E5VpWTwz97sES9GZWyC7DLZIY5uyP8V7RlAI7sKhJblx87Ncn5S9A/YOc/19md93ohtBf2VAWZaZ53TFGOGXhEVP+5a3zXiFWKupw21RTd6mhJ6JHqQY4t5If4l5l/6PDp0/D91o/eem+0RSaj8ML7vAz7hHb5JWRh+1Ffv7tAu4lq/4QySh/1e+smZkDWLyrMlVpwNNVrSuWLGXA2FdZsjZDPwzxGSJrL3ywgQyRR2v45HX2KIAIelgrWCHQZAbCsTjNtwd5po21Fs3j1yElEYLBlaZuR19v/qYfC6MuCjnP1DuEKyin4bb4juMA7LAiEo40DOWfTzG1AL1JOKB8HATYyIQN4HP4rXx7YmSmXo3pm+wyT6Zx4JeUbQGbtFAr05n8nYjA0rPl3Mw/IsyX9NYZOi8Zp0qeUouUpHiDIuKZBlqnxUtAOmr77AGfYaQR4AJSS2TDDus8tP0YTrNGXLTjGEm8yWYwKMA67+9B1So5OdGNcvKAX4lhm1eiPvdi/RLuM2Xg0oFwmno49LKv9mgrL2j/3KW29AhslrP9crOD07IhEjh/YGUh4SffoaOre+Vw=="},{"id":"6ed8a750-2109-4e77-b62b-7c1fbc070030","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"开发指南","description":"development-guide","prompt":"创建全面的开发指南文档。详细介绍项目开发规范、代码风格、命名约定、Git工作流。说明如何使用基础框架快速开发业务模块,包括实体类创建、Service层开发、Controller接口编写、数据访问层实现。包含自定义注解使用、AOP切面开发、消息队列集成、定时任务开发等高级特性。提供代码审查清单、性能优化建议、安全编码规范。为新加入的开发者提供快速上手的完整指导,确保代码质量和团队协作效率。","order":11,"progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/domain/entity/BaseEntity.java,crm-base/src/main/java/com/crm/base/service/IBaseService.java,crm-base/src/main/java/com/crm/base/annotation/DataScope.java","gmt_create":"2026-08-01T10:23:12.9590262+08:00","gmt_modified":"2026-08-01T10:29:22.063274+08:00","raw_data":"WikiEncrypted:F3QgleoEfoy16cQggYe9C/ucQxiwh0okVA48AmODs5RKNS8ZgNngqmnHSFcG/1UaJxx+3dUn+EkMTpYUsOg40rL22hMnvmVAYyZuFSVJGOdkTZGYqMmtuVOBgvosMCJMBUhMuSqPW1JNhmnJrK+r/EahVZyS6RLU2o1sE8vOtilgPcAzRyJjJUHENRWOLpJsLNpGVdO9ieUOF4AAgDoa9RZkCYyXeP2oI8r0j5mDkRr9lS+uNxYQl9W3vcS87521SK/GdqCveS7u9RNn47V9eBdXRtsSVcLaz44enDFM71L3lP7E9S8tQEcfWUlHB/ysvKejvZ0EARolWf066vCPuHCObhxanmxCgQk2OGjTZc1qAw++emB+ddyYoS+0uNc9ctajroimADZJ5zxBBJI4sYf66QjiDEfCynMBrwz3+oqj3s//CnN1yWneVDJ2II3X6uZYUYCZTynCOHXpwWUv/grPadeVTbEpesCUJ+CFuv4J67FmkeAXWrxDfiptMbxKkE1C8sNHTXl2KAMJbXA+Zb21cG0EzgtlXvBGtW6TYKCbUwBMMuxfouP17SuuSjnAKUQF0Oq+/mPzFXLOqsojj02FLSdAsw0YqFGvKEwH8ngzN99B/HzgF9P6gRhVeV+X2qmkXtnyzqLD0u/E3Z6A8WYeYChxux+mMYAN2HDgjNMb2cOc5aknCzPlfY8iulLXd/QQdECS/3RELbfwHppdQlfipTzjE4/ldIObkYl6iQXi8mi/99gKOeB90pdTe2hKhT/UJQs4PRJWoDpdK25KIrZ0nO0G1pXhVHwNvZpkmgHxnhnD7hqAbroRqFG9cjsLBRuciGsk6noS9rjjlWbJ25mslDnY9r1u08rVfsUeLcqAMZ0oOL8ICpZ8/fioirhIxGpQ+4GjkuC9VUdaVrwZmWQeBp2p6lgpEfocykT+CA72P5T4pbF5eNw8E5XYZ+vmP/h1pdBAZV+wjKJOoCnY3QOl2HbxlgEsLSfNdXdoz5f6aBT+ru/JuCklRg3H04M/X0d9PI8rnrjNIsgedGajsUGBBhdvkgeATOzASSl16IrNJ13RiNQkno48dD5GU++urE6NTfEKJOc9oP625h696miexNcFTV+6dX6JQ9OD9Dtk+YjenQiWIiaQ4uNMIivJv986dTU6f46holmicTxFADR/v9qOxffu6wvNnKyeXrNK4qIkY2cB3yIBgwxEPEoOyL63MzN5Vi+ag+IhLStilkM5BqDZSuQ+E2TomaLhmql16HnPJJkEO9PcFC3FlcXuUHp+hvX3NqCSzq23O+e5CpzHJ0wVJnaieIh477xNO/VL+CFbol1NOk7lkWX65Zb0zZXNd5dzDmylRnJrhxoeesWWKSMJfAwad2ypYvY++kkDcwPoqB3liNovX9hK2plBXNE7T/foc1/eiXU1wlnBmg=="},{"id":"12c08036-43ca-43ae-9f08-a5f62420dd83","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"故障排查","description":"troubleshooting","prompt":"创建详细的故障排查文档。收集和整理常见的系统问题、错误信息和解决方案。包含认证失败、权限拒绝、文件上传失败、数据库连接异常等典型问题的诊断方法和修复步骤。提供日志分析技巧、性能监控指标、内存泄漏检测、线程死锁排查等高级调试技能。包含常用命令、监控工具、日志查询语句。为运维人员和开发人员提供快速定位和解决问题的实用指南,减少系统停机时间。","order":12,"progress_status":"completed","dependent_files":"crm-base/src/main/java/com/crm/base/advice/GlobalExceptionHandlerAdvice.java,crm-auth/src/main/java/com/crm/auth/security/SecurityExceptionHandlers.java,crm-base/src/main/java/com/crm/base/filter/TraceIdFilter.java","gmt_create":"2026-08-01T10:23:12.9590262+08:00","gmt_modified":"2026-08-01T10:30:13.3710634+08:00","raw_data":"WikiEncrypted:CaKOW8OSSWs4aEYk06Hu0hGGy7zXJE5t3XZJK+9x87X6q4zHAytjLlmcpwH9PAb9okQW7m6Z5SF5zgqYCgJVTWUM+OBP/CzepXICjLz5iwHNgtkxVgNWamHmYCSftZme59WDnY4bkZogrO+aPJ0m7Hn2m0u2FEZCwjlmuqcBXaGpg8OFCIgK0L0olZWb7hl78WX2ICHtVHhxInubVOoctMtYp3tPc0AKqtjdFEvBBFVPadSSbGUdJqz9oQc4PZfITl4AQDdbOB4n0tTI60H4PR4G95kmjpEfU6PdReQYC1a34zu0XOTpZb4Xk8ACnCbOQRYYQAqcXz5Lk8Oh4edYBjO8iDskiJVNFi0aXYONNbxJjtDyIzUgAwkqo8MYYc7F5I7q3UdPRcbvcr7cr5rrdZ94yadlxTT/E4cyI51TbDj/uyG0M8TXmmdHAxXk2N2TUXVohS94OXfTNiW4Y7Br2Vj1pxXsUxMdFs5NfhQzTvSTG9e6Ta+a5u6PWDN5qBN9z8enUpzAxVPeQne47VHu00diX+kMUGOfblrICCO0c7AyemjYd8beNf3ibUHKluWr8CnsMOp1NzkIY3LuQieFv/Dt97Ea7+jccD4+qa/iR3uTam3cwUqppGx8NphDF0iw8YNsd22jHebo6TifS8COrcmQZnnOCeoqYQed0Z1Iy85gyA6yMt6+DtOQnRRMIcWRim0uPrKDo1nCfl+8BhIRHGJu2ESZFelAUYwiimmQ9ZArGQSXG05xkxvu4yqkKT/5MKxOQQgdlfAWAsAC7Etb030uDubHfvrEsqNR+B5zvLeNZWNAdABm0Evnt0j5B2KMByju5RQ5E4grV4VAIKhcixV257UPCg8Z/X2WfE79np/Jll+7J/0PoHN9avsLsJUQQPElaTokmX8BFUD45w+P8ggH7d4rYBmWfVEhDEH4/Z+J5497CvMIrz8RJ5faVk3x6kOP1QpLqE6MukHYD6Xamla1jBrKOAuJG97q5C9Vpfh5qjvo2Z+1IEgv1hU8XOsSCigRGRGBPHRC/WwbZos2E4/jGdOz1VTPyUFO4KznBkTAMoZSPLAq5De0c3Jyc2bPuYSI2lEvUdrk5sn/drz7f364Js/d0GWtqcvIHvLlfZ5PwhG8zmRwvMKaCAJ0y3d81XP9I2cx+GaGTBZNMStUB3JpxKZanaJEYSmpEkItXDqCXRAmdiQVOnwp636Kj+Qp+m6jfIGsEvEnCwutgPvL6HvbG7Z/HGS/7yUWBHHIE6oS/Xm3zXT0KMk9p9b3dIoDV8ZKo+cp4xPeuMga775ly5CYy6OGzrSALY0cknSYrFU9bi6PL+WCzuxtuBke5y+YuYF2Df36cgru3MfSQ9ti9A=="}],"wiki_items":[{"catalog_id":"a894a655-5840-44a9-a639-04a0c1885521","title":"项目概览","description":"project-overview","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"835b2a5a-3749-48a1-877a-445eefd2921a","gmt_create":"2026-08-01T10:25:31.9953719+08:00","gmt_modified":"2026-08-01T10:25:32.0652021+08:00"},{"catalog_id":"dd587951-175e-4829-b096-36d9e6d5eaea","title":"快速开始","description":"getting-started","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"d9d4d4d8-4955-465b-9853-9fb697e79f45","gmt_create":"2026-08-01T10:25:35.3259911+08:00","gmt_modified":"2026-08-01T10:25:35.3351865+08:00"},{"catalog_id":"0825e6e0-bfad-4739-9586-d2ec50ce2dcb","title":"架构设计","description":"architecture-design","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"c0741164-f5df-4211-9366-481c2bfaefdd","gmt_create":"2026-08-01T10:25:40.4797226+08:00","gmt_modified":"2026-08-01T10:25:40.4861835+08:00"},{"catalog_id":"61603fbe-2a48-4f60-89e4-cdf37e119d32","title":"文件服务","description":"file-service","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"f809cf60-fb54-482f-ba5e-b19b957bba4f","gmt_create":"2026-08-01T10:26:52.2692539+08:00","gmt_modified":"2026-08-01T10:26:52.2781457+08:00"},{"catalog_id":"f18f3d0e-d3a3-4dee-9e06-6f273a611da0","title":"基础框架","description":"base-framework","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"f974312e-2807-4ebd-9fad-3eca5e05a8de","gmt_create":"2026-08-01T10:26:52.771115+08:00","gmt_modified":"2026-08-01T10:26:52.7788352+08:00"},{"catalog_id":"3f1baad6-225c-4412-af0c-c52976d1f8b6","title":"认证服务","description":"auth-service","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"dce63e18-37d0-459b-9f80-0b22e0f89b2b","gmt_create":"2026-08-01T10:27:24.0432767+08:00","gmt_modified":"2026-08-01T10:27:24.0553729+08:00"},{"catalog_id":"972dc29b-39fa-4e22-b4a9-d06594d5fb55","title":"API参考文档","description":"api-reference","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"de8d54c2-b3f5-446e-84c8-d197d614857d","gmt_create":"2026-08-01T10:28:01.6215022+08:00","gmt_modified":"2026-08-01T10:28:01.6284073+08:00"},{"catalog_id":"2e7654dc-4da7-4b34-910d-87bd6334f756","title":"数据模型","description":"data-model","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"ae9abd4e-ed02-4ce6-b76d-6f6e769d7654","gmt_create":"2026-08-01T10:28:12.3582817+08:00","gmt_modified":"2026-08-01T10:28:12.3658971+08:00"},{"catalog_id":"1b327205-aef1-4e95-ba67-51808ac20eea","title":"配置指南","description":"configuration-guide","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"88f456c9-e905-4ab8-8c8d-910b1e7bced7","gmt_create":"2026-08-01T10:28:23.6672306+08:00","gmt_modified":"2026-08-01T10:28:23.6739433+08:00"},{"catalog_id":"002c7e2d-d606-4f03-bb8f-8b25b8c58321","title":"部署指南","description":"deployment-guide","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"268ab0f5-65fc-49f6-a72b-62390594a976","gmt_create":"2026-08-01T10:29:17.7530654+08:00","gmt_modified":"2026-08-01T10:29:17.759386+08:00"},{"catalog_id":"6ed8a750-2109-4e77-b62b-7c1fbc070030","title":"开发指南","description":"development-guide","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"060cac65-05a5-4a8e-91c0-3fa0b6e3eb60","gmt_create":"2026-08-01T10:29:22.0568486+08:00","gmt_modified":"2026-08-01T10:29:22.063274+08:00"},{"catalog_id":"11df22f9-1e94-421c-92ed-7e2cf9535bf0","title":"测试指南","description":"testing-guide","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"82fe823e-7260-4351-9cb3-dc01ac4a62a4","gmt_create":"2026-08-01T10:29:30.3046832+08:00","gmt_modified":"2026-08-01T11:58:56.086475+08:00"},{"catalog_id":"12c08036-43ca-43ae-9f08-a5f62420dd83","title":"故障排查","description":"troubleshooting","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"b7bd8ae4-1cfd-4cef-a9fc-bd183f668f0a","gmt_create":"2026-08-01T10:30:13.363801+08:00","gmt_modified":"2026-08-01T10:30:13.3710634+08:00"},{"catalog_id":"78ac8ca5-1992-44f0-aa14-f1776a557eff","title":"整体架构模式","description":"overall-architecture","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"d496a48a-7729-483b-b9a6-c417666b53cf","gmt_create":"2026-08-01T10:30:23.8691145+08:00","gmt_modified":"2026-08-01T10:30:23.8772403+08:00"},{"catalog_id":"cdf8610c-1f66-4fcd-a8bb-816e8fa5e29f","title":"架构设计","description":"architecture-design","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"a7e3868c-bf54-49cf-8b09-da179cd49b00","gmt_create":"2026-08-01T10:30:47.0038771+08:00","gmt_modified":"2026-08-01T10:30:47.0153478+08:00"},{"catalog_id":"a4335df0-1d8d-4bd9-b9f9-7a83a2522db5","title":"认证核心机制","description":"auth-core","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"c6b3c46f-1eab-4ddd-bab3-051a9fc3e5c3","gmt_create":"2026-08-01T10:31:02.3002775+08:00","gmt_modified":"2026-08-01T10:31:02.3054717+08:00"},{"catalog_id":"a11cb84f-70ea-42cf-9dfb-e644c1d2bcdd","title":"文件上传下载","description":"file-upload-download","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"dd99122b-3207-4b57-a3f0-9123477387bd","gmt_create":"2026-08-01T10:31:18.0943967+08:00","gmt_modified":"2026-08-01T10:31:18.101729+08:00"},{"catalog_id":"e2e50fda-d3c4-4b07-8ded-1931eef5b705","title":"认证API","description":"auth-api","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"d1644805-fad0-4c88-837f-8b5ebe55ba82","gmt_create":"2026-08-01T10:31:57.474041+08:00","gmt_modified":"2026-08-01T10:31:57.482644+08:00"},{"catalog_id":"d54ac4b2-811a-400d-89e5-be4b3db5d39a","title":"通用实体类","description":"base-entities","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"739f48f0-1ddd-445d-93ec-e6e27f17be8b","gmt_create":"2026-08-01T10:32:06.9057569+08:00","gmt_modified":"2026-08-01T10:32:06.9108667+08:00"},{"catalog_id":"e77ca833-d53b-4372-aadb-d9db1597b2ad","title":"用户认证模型","description":"user-auth-models","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"98467387-2104-4105-8022-54584f55d093","gmt_create":"2026-08-01T10:32:27.3410746+08:00","gmt_modified":"2026-08-01T10:32:27.3529223+08:00"},{"catalog_id":"280dcba9-9e7e-4d0d-b3f1-e9179c16b97f","title":"应用配置","description":"application-configuration","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"871fadc5-8e0b-4190-a31b-a0f727c64553","gmt_create":"2026-08-01T10:32:56.6495169+08:00","gmt_modified":"2026-08-01T10:32:56.6530971+08:00"},{"catalog_id":"b887ea86-369b-42eb-8c7b-7f6dcf2cb50a","title":"开发规范","description":"development-standards","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"b6d63b77-8358-4231-8181-c4ca5666ff14","gmt_create":"2026-08-01T10:33:13.0133507+08:00","gmt_modified":"2026-08-01T10:33:13.0201505+08:00"},{"catalog_id":"8f718fa2-87c5-48d6-81a2-f1e34445f5a8","title":"技术栈","description":"technology-stack","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"46f44ec3-2ed5-4794-a294-29af3806350c","gmt_create":"2026-08-01T10:33:18.2030217+08:00","gmt_modified":"2026-08-01T10:33:18.2060852+08:00"},{"catalog_id":"dfba2481-1f15-4203-89c4-a87c16ee2d90","title":"安全架构设计","description":"security-architecture","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"c6764f02-7eca-4a98-9c34-59ed848dc61a","gmt_create":"2026-08-01T10:34:01.6669732+08:00","gmt_modified":"2026-08-01T10:34:01.6727633+08:00"},{"catalog_id":"94bc6715-e744-4fd6-a155-9ea006d50fd6","title":"文件预览","description":"file-preview","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"cdadc305-f41d-403b-8423-d51ec201bb2e","gmt_create":"2026-08-01T10:34:15.7890575+08:00","gmt_modified":"2026-08-01T10:34:15.7938667+08:00"},{"catalog_id":"ff5cfc51-76e6-4697-9f94-ea25f3355e72","title":"用户管理","description":"user-management","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"d076a6b7-0b4d-4684-9fd8-4a8d28601f9e","gmt_create":"2026-08-01T10:34:45.2957122+08:00","gmt_modified":"2026-08-01T11:59:25.4101216+08:00"},{"catalog_id":"79598583-a6e6-4db9-82e8-5998a4d58726","title":"系统管理API","description":"system-api","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"20483fce-853c-49c8-9ec1-fa13c71e70e9","gmt_create":"2026-08-01T10:35:11.3005769+08:00","gmt_modified":"2026-08-01T10:35:11.3067686+08:00"},{"catalog_id":"1b891e44-a9af-491e-8b61-13fa14c4028a","title":"基础服务层","description":"base-service","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"af2f204d-1540-4290-a5b4-ab906d6e2a79","gmt_create":"2026-08-01T10:35:16.8147416+08:00","gmt_modified":"2026-08-01T10:35:16.8193566+08:00"},{"catalog_id":"e4828085-0300-4408-98a9-ae4794d0b96e","title":"权限体系模型","description":"permission-models","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"1a72341c-b76a-4424-ac9b-0c582ce278d5","gmt_create":"2026-08-01T10:36:03.0062425+08:00","gmt_modified":"2026-08-01T10:36:03.0146665+08:00"},{"catalog_id":"7b5d5ce0-fffa-4545-9494-5964f52edf84","title":"数据库配置","description":"database-configuration","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"88337c10-c005-4f9a-955d-1656ab0269fa","gmt_create":"2026-08-01T10:36:11.9669918+08:00","gmt_modified":"2026-08-01T10:36:11.9706157+08:00"},{"catalog_id":"6d4c21ec-6b43-4c80-91e4-1e0b0bbb32db","title":"框架使用","description":"framework-usage","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"87256e45-1bb1-4bd8-ac1b-4bb17dfd4c19","gmt_create":"2026-08-01T10:36:12.5060727+08:00","gmt_modified":"2026-08-01T10:36:12.514654+08:00"},{"catalog_id":"29bcd926-1b3f-456c-afa0-def23a7e583f","title":"数据访问架构","description":"data-access-architecture","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"e7288499-90bb-49bc-a65f-b1512e3b3381","gmt_create":"2026-08-01T10:37:08.4331508+08:00","gmt_modified":"2026-08-01T10:37:08.4411256+08:00"},{"catalog_id":"1c70012f-a18d-41ae-98f4-ea82b9515129","title":"角色权限管理","description":"role-permission","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"dca695f7-b800-4204-9977-ed394004ae5d","gmt_create":"2026-08-01T10:37:38.0882964+08:00","gmt_modified":"2026-08-01T10:37:38.0993966+08:00"},{"catalog_id":"ce73559d-e232-4666-a740-5db08637816c","title":"模块说明","description":"module-overview","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"578a7b52-5069-4091-b20c-0a2719998171","gmt_create":"2026-08-01T10:37:45.0839569+08:00","gmt_modified":"2026-08-01T10:37:45.0980508+08:00"},{"catalog_id":"08c2baa6-fc49-4dc0-aaaf-71248388f21d","title":"存储管理","description":"storage-management","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"e2d056dd-e698-4446-9a12-7511654dd87b","gmt_create":"2026-08-01T10:38:08.7729172+08:00","gmt_modified":"2026-08-01T10:38:08.7807147+08:00"},{"catalog_id":"fbf35410-3ee5-49e3-b276-7d0af5f9d6f3","title":"全局异常处理","description":"exception-handling","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"4962231f-487f-4931-be07-9407f400b4f2","gmt_create":"2026-08-01T10:38:36.6730095+08:00","gmt_modified":"2026-08-01T10:38:36.6770971+08:00"},{"catalog_id":"53368e02-c2b3-4396-bb2a-06aba885c0f1","title":"文件API","description":"file-api","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"9824ed4a-9f48-4b22-abb2-8389cf0c78d6","gmt_create":"2026-08-01T10:38:56.2660545+08:00","gmt_modified":"2026-08-01T10:38:56.2878056+08:00"},{"catalog_id":"c6f66819-c07b-4680-93e1-0cab24368beb","title":"文件管理模型","description":"file-models","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"3f0f5e2e-4454-4342-894a-d0465bef487a","gmt_create":"2026-08-01T10:39:18.6268808+08:00","gmt_modified":"2026-08-01T10:39:18.6380533+08:00"},{"catalog_id":"39bff5e4-389a-4286-b17e-8ddf67a4749c","title":"缓存配置","description":"cache-configuration","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"f0adf36f-aaef-42c9-9edc-316ad8e8cb33","gmt_create":"2026-08-01T10:39:34.2986669+08:00","gmt_modified":"2026-08-01T10:39:34.3017786+08:00"},{"catalog_id":"ab8a5041-5019-48dd-b58a-9870af2275b5","title":"高级特性","description":"advanced-features","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"1d76fd1c-9468-4ff7-819c-620a1aa32680","gmt_create":"2026-08-01T10:39:39.5564525+08:00","gmt_modified":"2026-08-01T10:39:39.5633978+08:00"},{"catalog_id":"cdabba0c-11af-44f7-a110-87567998fd6b","title":"快速开始","description":"quick-start","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"cc9e475c-e6e1-44b2-9448-5198b2b22167","gmt_create":"2026-08-01T10:40:06.0544394+08:00","gmt_modified":"2026-08-01T10:40:06.0661951+08:00"},{"catalog_id":"97d99d29-ae7f-4f14-88c1-16ab0e1b5f29","title":"缓存架构设计","description":"caching-architecture","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"58cd732e-1dad-4901-ad9e-e4361eb7c8a9","gmt_create":"2026-08-01T10:40:30.8205335+08:00","gmt_modified":"2026-08-01T10:40:30.8247731+08:00"},{"catalog_id":"3d099f9d-eddb-43c8-8fa4-fe483ec9508c","title":"菜单权限控制","description":"menu-access-control","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"e68c0bcd-bcf0-409b-98e5-e73abcd07eab","gmt_create":"2026-08-01T10:40:34.4081913+08:00","gmt_modified":"2026-08-01T10:40:34.4296158+08:00"},{"catalog_id":"751fe14c-b61f-4838-9a6d-857bc4dba035","title":"任务调度","description":"task-scheduling","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"679d7719-8478-4b8f-8fa1-e57fa19b0e03","gmt_create":"2026-08-01T10:41:00.911803+08:00","gmt_modified":"2026-08-01T10:41:00.9203615+08:00"},{"catalog_id":"f83c373b-8c09-4cca-834e-af2de949bcf5","title":"基础实体模型","description":"base-models","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"465ea2cf-ea85-46b0-adb8-f23e0f51dc0d","gmt_create":"2026-08-01T10:41:36.6925275+08:00","gmt_modified":"2026-08-01T10:41:36.7005101+08:00"},{"catalog_id":"0f6c546f-985a-419a-9924-a0951e18b7bb","title":"测试指南","description":"testing-guide","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"83b5d55c-3806-4d43-b9a0-96b208a5f635","gmt_create":"2026-08-01T10:41:42.9194417+08:00","gmt_modified":"2026-08-01T12:30:44.7881468+08:00"},{"catalog_id":"09833ae7-ef9f-4e37-9c16-22301b4ad52e","title":"安全框架","description":"security-framework","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"2a67478e-68fd-4c5f-8d3b-4c85a6d43302","gmt_create":"2026-08-01T10:41:55.5437641+08:00","gmt_modified":"2026-08-01T10:41:55.5587879+08:00"},{"catalog_id":"7e7e534e-d2ab-495c-ae78-18ebc7067dad","title":"文件存储配置","description":"file-storage-configuration","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"370c9ddf-9cc5-4fbc-95f4-30125ec04c07","gmt_create":"2026-08-01T10:42:50.8608972+08:00","gmt_modified":"2026-08-01T10:42:50.8693902+08:00"},{"catalog_id":"7e0d6412-017c-42d6-a460-ed9a1e77897a","title":"存储架构设计","description":"storage-architecture","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"af9f4de4-1412-4728-a72e-7fe9e237e33e","gmt_create":"2026-08-01T10:42:52.4182745+08:00","gmt_modified":"2026-08-01T10:42:52.4228756+08:00"},{"catalog_id":"aa1243a4-2495-4803-a88e-ec4e8a9131fa","title":"部门管理","description":"department-management","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"c8887b82-7caa-476e-a7b3-37a0da8ca941","gmt_create":"2026-08-01T10:42:53.6966416+08:00","gmt_modified":"2026-08-01T10:42:53.7012247+08:00"},{"catalog_id":"985c349f-80e6-41de-ab03-f127e5ec0900","title":"安全配置","description":"security-configuration","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"5e5d62c5-3a5e-416a-92fb-361b19cca8c7","gmt_create":"2026-08-01T10:43:52.8855776+08:00","gmt_modified":"2026-08-01T10:43:52.8934224+08:00"},{"catalog_id":"c12ea8f2-bd91-4cac-b219-49a005e97563","title":"核心配置","description":"configuration","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"5ffbd455-cadd-4f60-83a2-6d4a8cbca3ea","gmt_create":"2026-08-01T10:43:54.4901753+08:00","gmt_modified":"2026-08-01T10:43:54.4966007+08:00"},{"catalog_id":"b76b20f6-16ac-4c25-9bec-84be749d636a","title":"调试与故障排查","description":"debugging-troubleshooting","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"27f4b863-ad48-4671-934f-7ad121133892","gmt_create":"2026-08-01T10:44:04.3873171+08:00","gmt_modified":"2026-08-01T10:44:04.3926346+08:00"},{"catalog_id":"748c4203-f0c2-4cb1-ba70-419232bb95ee","title":"工具类库","description":"utils-tools","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"7bebed75-a6b5-44c6-8b82-ea3803183cb8","gmt_create":"2026-08-01T10:44:52.2390017+08:00","gmt_modified":"2026-08-01T10:44:52.2420638+08:00"},{"catalog_id":"4b1f3f45-64c2-4894-baa6-28d84b08be88","title":"雪花算法配置","description":"snowflake-configuration","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"82457347-6367-456a-9356-2e5acbfdb390","gmt_create":"2026-08-01T10:45:02.6514592+08:00","gmt_modified":"2026-08-01T10:45:02.6558417+08:00"},{"catalog_id":"7bca2b84-ceac-4312-8616-600dbfc11b6b","title":"数据权限控制","description":"data-scope","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"0578c02d-17e0-4521-b976-1590c45adfc8","gmt_create":"2026-08-01T10:45:02.7518707+08:00","gmt_modified":"2026-08-01T10:45:02.7568739+08:00"},{"catalog_id":"8cdf8923-14ac-408b-92a0-c80eb87aaf8a","title":"认证API接口","description":"auth-api","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"3ac2b9bb-6133-44bc-bf03-6873b7a2c9b6","gmt_create":"2026-08-01T10:45:53.1197021+08:00","gmt_modified":"2026-08-01T12:28:52.4014404+08:00"},{"catalog_id":"08889ece-81a5-477d-a6fd-7c934ab6f1cc","title":"第三方登录集成","description":"third-party-auth","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"f1cd91eb-6089-40e0-ba34-48626a1649c1","gmt_create":"2026-08-01T10:45:56.5077709+08:00","gmt_modified":"2026-08-01T10:45:56.5157367+08:00"},{"catalog_id":"93e38594-db47-48d2-92a3-d6b4986c08bc","title":"通用常量与枚举","description":"common-constants","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"26f1483c-c42d-4fff-9ce1-2b5ad38352e9","gmt_create":"2026-08-01T10:45:59.3968966+08:00","gmt_modified":"2026-08-01T10:45:59.4015537+08:00"},{"catalog_id":"4b3affc8-944f-47fb-aa62-a87e3003ec2b","title":"领域模型","description":"domain-models","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"a7c8e7fb-dd50-4d48-8e97-53abb3d8e2be","gmt_create":"2026-08-01T10:46:48.6271018+08:00","gmt_modified":"2026-08-01T10:46:48.633977+08:00"},{"catalog_id":"02662906-d5fa-498c-97ec-6b984ac00ece","title":"认证机制","description":"authentication-mechanism","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"dedca28d-2bd5-4710-8fd5-84eda4378859","gmt_create":"2026-08-01T10:46:49.9392494+08:00","gmt_modified":"2026-08-01T10:46:49.9440437+08:00"},{"catalog_id":"ac97848d-30cb-4326-a786-d6ff15c3b403","title":"认证服务模块(crm-auth)","description":"auth-module","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","gmt_create":"2026-08-01T10:47:32.6955934+08:00","gmt_modified":"2026-08-01T12:29:28.0092453+08:00"},{"catalog_id":"c0fa7e49-ec5c-4aea-837f-c36960b529d4","title":"MyBatis Plus配置","description":"mybatis-plus-config","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"669ce1d2-0875-4103-832c-e872b5bc25fe","gmt_create":"2026-08-01T10:47:44.8723982+08:00","gmt_modified":"2026-08-01T10:47:44.8765359+08:00"},{"catalog_id":"d211ba82-0e6e-4228-bc5e-89f3551b2d13","title":"数据所有权控制","description":"data-ownership","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"35cac571-af96-43f9-b4c8-3dab1e836bec","gmt_create":"2026-08-01T10:47:46.4086397+08:00","gmt_modified":"2026-08-01T10:47:46.4148252+08:00"},{"catalog_id":"7709d8bb-c65a-4912-bb47-42975a880b8e","title":"自定义注解开发","description":"custom-annotations","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"42b4f623-7f24-4764-832e-2de9e17e8317","gmt_create":"2026-08-01T10:48:34.6429689+08:00","gmt_modified":"2026-08-01T10:48:34.6510143+08:00"},{"catalog_id":"6827cdab-284c-4075-b2b1-5aacae806079","title":"授权模型","description":"authorization-model","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"b1cf2f70-ee01-46e5-bcd6-7157f0df3a64","gmt_create":"2026-08-01T10:48:57.7251895+08:00","gmt_modified":"2026-08-01T10:48:57.7308703+08:00"},{"catalog_id":"2a7c08a9-ca56-47d1-8a19-08a778b4fbf0","title":"基础框架模块(crm-base)","description":"base-module","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"eb5fc685-6b02-430d-aacc-bf8baf0b30aa","gmt_create":"2026-08-01T10:49:11.7399534+08:00","gmt_modified":"2026-08-01T10:49:11.7495166+08:00"},{"catalog_id":"ea7f8a9d-19de-4c12-a9e5-0bbcb69bcb52","title":"数据范围助手","description":"data-scope-helper","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"46877382-98e5-4a69-85f8-52c9317452f3","gmt_create":"2026-08-01T10:49:36.8599435+08:00","gmt_modified":"2026-08-01T10:49:36.8645967+08:00"},{"catalog_id":"c938aa92-1653-4064-8193-296fea4ca49a","title":"Redis缓存配置","description":"redis-config","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"2f3be026-db25-43bf-b241-7a7d5e8d6c17","gmt_create":"2026-08-01T10:49:45.8823139+08:00","gmt_modified":"2026-08-01T10:49:45.8848686+08:00"},{"catalog_id":"977c278e-41a8-4826-8551-1a6df59f0040","title":"分布式ID生成","description":"distributed-id-generation","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"51e8d9a1-92fe-4561-bddb-333fac216f79","gmt_create":"2026-08-01T10:50:03.3249269+08:00","gmt_modified":"2026-08-01T10:50:03.3290469+08:00"},{"catalog_id":"ebb87dc2-eef0-4d73-9ee6-67d355b9c281","title":"文件服务模块(crm-file)","description":"file-module","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"b69e8856-d6fc-4f7a-a439-e7a22dce434e","gmt_create":"2026-08-01T10:50:36.4930802+08:00","gmt_modified":"2026-08-01T10:50:36.4987405+08:00"},{"catalog_id":"56974072-cdf9-44f9-b63d-f8750dcb09d5","title":"数据权限控制","description":"data-scope-control","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"25518006-c055-4ba0-acb5-fc063b4b3b84","gmt_create":"2026-08-01T10:51:08.6936592+08:00","gmt_modified":"2026-08-01T10:51:08.7005432+08:00"},{"catalog_id":"0fb5342f-41c3-4a6a-8227-f920e7612de7","title":"用户安全信息","description":"user-security","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"57aa3d52-9f51-4f33-bae7-6dbd8fba9b21","gmt_create":"2026-08-01T10:51:10.2821626+08:00","gmt_modified":"2026-08-01T10:51:10.2874376+08:00"},{"catalog_id":"6abacb8f-b1fa-4b2c-9284-1eb33ee629b5","title":"Jackson序列化配置","description":"jackson-config","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"f562463e-96a1-4061-9cd0-c35c162755df","gmt_create":"2026-08-01T10:51:32.3130903+08:00","gmt_modified":"2026-08-01T10:51:32.3171735+08:00"},{"catalog_id":"581c54c4-4193-4d2d-9b14-b12d7451d901","title":"应用入口模块(crm-app)","description":"app-module","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"33860bb6-3fe5-457a-9c8b-f6d52e51cbfa","gmt_create":"2026-08-01T10:51:56.3555913+08:00","gmt_modified":"2026-08-01T10:51:56.3586701+08:00"},{"catalog_id":"81de4762-02d8-4ff8-82cd-1f0cdd6fc4fc","title":"JWT认证机制","description":"jwt-authentication","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"0eee2d19-c134-4448-9c32-6f44d9c263f4","gmt_create":"2026-08-01T10:52:01.0416275+08:00","gmt_modified":"2026-08-01T10:52:01.0478193+08:00"},{"catalog_id":"93763d9b-30a2-4efa-ae72-6b9812ac4b50","title":"安全配置","description":"security-configuration","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"590e4f01-6f30-4261-9df2-3d16f9e54802","gmt_create":"2026-08-01T10:52:26.5195101+08:00","gmt_modified":"2026-08-01T10:52:26.5241375+08:00"},{"catalog_id":"25d4ed5c-6711-4e10-a4f5-1233f3d9055f","title":"缓存策略","description":"caching-strategies","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"0183a3a0-b70e-4bd8-9ef9-58a80fb9d16c","gmt_create":"2026-08-01T10:52:44.737672+08:00","gmt_modified":"2026-08-01T10:52:44.7407405+08:00"},{"catalog_id":"a6310567-14d2-4be3-a801-b3367082923e","title":"Knife4j API文档配置","description":"knife4j-config","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"afae8ec4-6d94-4a7b-98cf-63806d7628b7","gmt_create":"2026-08-01T10:52:51.5740447+08:00","gmt_modified":"2026-08-01T10:52:51.5789177+08:00"},{"catalog_id":"0b53bbc1-ce50-4684-a2f7-ae29594e0f39","title":"雪花算法ID配置","description":"snowflake-config","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"7f519117-7bc1-40df-a903-dee68830d81d","gmt_create":"2026-08-01T10:53:14.1134469+08:00","gmt_modified":"2026-08-01T10:53:14.1185026+08:00"},{"catalog_id":"c9034e8c-7793-4960-b47c-77f33ee8b077","title":"定时任务","description":"scheduled-tasks","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"ace33c50-eea1-4a9c-a55b-7aa665892ae8","gmt_create":"2026-08-01T10:53:29.0552614+08:00","gmt_modified":"2026-08-01T10:53:29.0593661+08:00"},{"catalog_id":"13592bb1-8d46-48d8-98f5-4828595924ff","title":"跨域配置","description":"cors-config","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"b4388d32-165b-4835-a667-5a8100caf17c","gmt_create":"2026-08-01T10:53:35.5303566+08:00","gmt_modified":"2026-08-01T10:53:35.5340016+08:00"},{"catalog_id":"a4520266-217d-4939-b2f4-6b13109b47cd","title":"性能优化","description":"performance-optimization","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"766ad4ed-5ff8-426a-803f-390ee1362c29","gmt_create":"2026-08-01T10:54:07.1208922+08:00","gmt_modified":"2026-08-01T10:54:07.1249879+08:00"},{"catalog_id":"6d9e49cf-5d63-4f9b-a7aa-4e7f794e9254","title":"认证核心功能","description":"auth-core","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"121d6223-4b50-4f14-b316-a48642a9b6ef","gmt_create":"2026-08-01T10:54:25.5788243+08:00","gmt_modified":"2026-08-01T10:54:25.5834368+08:00"},{"catalog_id":"4ea40cfe-cfc8-4fc9-a38d-be371286aa3d","title":"通用实体类","description":"base-entity","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"3b7d1597-4486-4a34-8f50-64dfda4fd89e","gmt_create":"2026-08-01T10:54:30.1358129+08:00","gmt_modified":"2026-08-01T10:54:30.1404+08:00"},{"catalog_id":"09190ec6-9b2f-40cf-b233-d5c19998c934","title":"服务层封装","description":"service-layer","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"f69d5d81-5661-4100-89e4-c6b0ebf7189f","gmt_create":"2026-08-01T10:55:14.8986326+08:00","gmt_modified":"2026-08-01T10:55:14.9037665+08:00"},{"catalog_id":"ae7870c0-eeb7-44e6-b0e9-08b1393e34c8","title":"权限管理系统","description":"permission-system","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"0792dbca-20cb-4e0b-bde8-cadd57aa7bb2","gmt_create":"2026-08-01T10:55:30.5094825+08:00","gmt_modified":"2026-08-01T11:59:11.3637812+08:00"},{"catalog_id":"ab7d47ea-7c65-46c6-b312-5478e7a10676","title":"第三方登录集成","description":"third-party-auth","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"e7c93a3f-2f55-4647-b8cc-640e9b1b8beb","gmt_create":"2026-08-01T10:55:35.9787121+08:00","gmt_modified":"2026-08-01T10:55:35.9869804+08:00"},{"catalog_id":"f4902b5a-1300-47f2-ab4f-21e68abdcc73","title":"异常处理机制","description":"exception-handling","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"acad7822-89eb-4886-bad3-c205238abddc","gmt_create":"2026-08-01T10:56:16.3875954+08:00","gmt_modified":"2026-08-01T10:56:16.3922024+08:00"},{"catalog_id":"f5f2c36d-9d50-4b96-a7c7-0e698a0329ab","title":"安全配置与过滤器","description":"security-config","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"84b6fa9b-8bb5-4a1c-9709-23f2e18a78be","gmt_create":"2026-08-01T10:56:32.2785732+08:00","gmt_modified":"2026-08-01T12:29:52.0744385+08:00"},{"catalog_id":"c076b789-345a-4ad8-bfff-1d588fbab43a","title":"数据访问层","description":"data-access","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"871f728c-3b52-4e48-aba8-85d419828db2","gmt_create":"2026-08-01T10:56:55.8398915+08:00","gmt_modified":"2026-08-01T10:56:55.8492552+08:00"},{"catalog_id":"799920df-d704-4a40-8b78-ab17f08eea28","title":"领域模型与实体","description":"domain-models","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"30275e72-7abf-42cd-a02d-b692ab10a425","gmt_create":"2026-08-01T10:57:28.1624544+08:00","gmt_modified":"2026-08-01T12:29:28.1711398+08:00"},{"catalog_id":"0acdb7e6-b7ce-42d9-a976-a8183cbcfc53","title":"安全与权限控制","description":"security-permission","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"115aabe2-05c0-4655-91ac-4a20b674e18c","gmt_create":"2026-08-01T10:57:37.8211656+08:00","gmt_modified":"2026-08-01T10:57:37.8280009+08:00"},{"catalog_id":"39497cd1-5018-4a0f-a5b9-d9963f6c202f","title":"框架配置","description":"configuration","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"c77935c8-6adf-4378-b023-af20bbc387eb","gmt_create":"2026-08-01T10:57:54.483189+08:00","gmt_modified":"2026-08-01T10:57:54.4878207+08:00"},{"catalog_id":"084e6769-6e4e-4978-9e7d-7740044913f6","title":"工具类库","description":"utilities","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"b536efef-bc32-48ed-b2d1-14b0c344df06","gmt_create":"2026-08-01T10:58:25.684839+08:00","gmt_modified":"2026-08-01T10:58:25.6894762+08:00"},{"catalog_id":"2ef0a54a-9710-4f81-8a04-b47fadc74003","title":"公共常量与枚举","description":"common-constants","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"cb774213-8f87-4d1f-bab1-1e1f251b5e51","gmt_create":"2026-08-01T10:58:43.7944145+08:00","gmt_modified":"2026-08-01T10:58:43.7990757+08:00"}],"wiki_overview":{"content":"我将对这个CRM后端项目进行全面的架构分析。让我首先查看项目的核心文件和结构。\n\n\u003ctool_call\u003e\n\u003cfunction=read_file\u003e\n\u003cparameter=file_path\u003e\nd:\\code\\crm-backend-matt\\pom.xml\n\u003c/parameter\u003e\n\u003c/function\u003e\n\u003c/tool_call\u003e","gmt_create":"2026-08-01T10:22:28.1936085+08:00","gmt_modified":"2026-08-01T10:22:28.1936085+08:00","id":"7446ac31-9214-484a-a016-00b66b44ead9","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85"},"wiki_readme":{"content":"No readme file","gmt_create":"2026-08-01T10:22:06.8875504+08:00","gmt_modified":"2026-08-01T10:22:06.8875504+08:00","id":"ba45cfbb-1dd8-4abb-bdd4-1bc2bcd1d060","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85"},"wiki_repo":{"id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"crm-backend-matt","progress_status":"completed","wiki_present_status":"COMPLETED","optimized_catalog":"\".\\n├── crm-app\\\\\\n│ ├── src\\\\main\\\\\\n│ │ ├── java\\\\com\\\\crm\\\\app\\\\\\n│ │ │ └── CrmAppApplication.java\\n│ │ └── resources\\\\\\n│ │ └── application.yml\\n│ ├── target\\\\\\n│ └── pom.xml\\n├── crm-auth\\\\\\n│ ├── src\\\\\\n│ │ ├── main\\\\\\n│ │ │ ├── java\\\\com\\\\crm\\\\auth\\\\\\n│ │ │ │ ├── config\\\\\\n│ │ │ │ │ ├── AuthProperties.java\\n│ │ │ │ │ ├── DataInitializer.java\\n│ │ │ │ │ ├── PermissionConfig.java\\n│ │ │ │ │ └── SecurityConfig.java\\n│ │ │ │ ├── constant\\\\\\n│ │ │ │ │ └── AuthConstants.java\\n│ │ │ │ ├── controller\\\\\\n│ │ │ │ │ ├── AuthController.java\\n│ │ │ │ │ └── SystemController.java\\n│ │ │ │ ├── domain\\\\\\n│ │ │ │ │ ├── dto\\\\\\n│ │ │ │ │ │ ├── LoginResultDTO.java\\n│ │ │ │ │ │ └── UserInfoDTO.java\\n│ │ │ │ │ ├── entity\\\\\\n│ │ │ │ │ │ ├── AuthIdentity.java\\n│ │ │ │ │ │ ├── AuthUser.java\\n│ │ │ │ │ │ ├── SysDept.java\\n│ │ │ │ │ │ ├── SysMenu.java\\n│ │ │ │ │ │ ├── SysRole.java\\n│ │ │ │ │ │ ├── SysRoleMenu.java\\n│ │ │ │ │ │ ├── SysUserDept.java\\n│ │ │ │ │ │ └── SysUserRole.java\\n│ │ │ │ │ ├── enums\\\\\\n│ │ │ │ │ │ ├── DataScopeEnum.java\\n│ │ │ │ │ │ ├── IdentityTypeEnum.java\\n│ │ │ │ │ │ └── MenuTypeEnum.java\\n│ │ │ │ │ └── param\\\\\\n│ │ │ │ │ └── LoginParam.java\\n│ │ │ │ ├── mapper\\\\\\n│ │ │ │ │ ├── AuthIdentityMapper.java\\n│ │ │ │ │ ├── AuthUserMapper.java\\n│ │ │ │ │ ├── SysDeptMapper.java\\n│ │ │ │ │ ├── SysMenuMapper.java\\n│ │ │ │ │ ├── SysRoleMapper.java\\n│ │ │ │ │ ├── SysRoleMenuMapper.java\\n│ │ │ │ │ ├── SysUserDeptMapper.java\\n│ │ │ │ │ └── SysUserRoleMapper.java\\n│ │ │ │ ├── security\\\\\\n│ │ │ │ │ ├── AuthLoginUser.java\\n│ │ │ │ │ ├── DataScopeInterceptor.java\\n│ │ │ │ │ ├── DataScopeTables.java\\n│ │ │ │ │ ├── JwtAuthenticationFilter.java\\n│ │ │ │ │ ├── SecurityExceptionHandlers.java\\n│ │ │ │ │ └── TokenService.java\\n│ │ │ │ ├── service\\\\\\n│ │ │ │ │ ├── client\\\\\\n│ │ │ │ │ │ ├── DingTalkAuthClient.java\\n│ │ │ │ │ │ ├── ThirdPartyAuthClient.java\\n│ │ │ │ │ │ ├── ThirdPartyAuthClientFactory.java\\n│ │ │ │ │ │ └── ThirdPartyUserInfo.java\\n│ │ │ │ │ ├── impl\\\\\\n│ │ │ │ │ │ ├── AuthIdentityServiceImpl.java\\n│ │ │ │ │ │ ├── AuthServiceImpl.java\\n│ │ │ │ │ │ ├── AuthUserServiceImpl.java\\n│ │ │ │ │ │ ├── PermissionServiceImpl.java\\n│ │ │ │ │ │ ├── SysDeptServiceImpl.java\\n│ │ │ │ │ │ ├── SysMenuServiceImpl.java\\n│ │ │ │ │ │ └── SysRoleServiceImpl.java\\n│ │ │ │ │ ├── DeptTreeCache.java\\n│ │ │ │ │ ├── IAuthIdentityService.java\\n│ │ │ │ │ ├── IAuthService.java\\n│ │ │ │ │ ├── IAuthUserService.java\\n│ │ │ │ │ ├── ISysDeptService.java\\n│ │ │ │ │ ├── ISysMenuService.java\\n│ │ │ │ │ └── ISysRoleService.java\\n│ │ │ │ └── AuthApplication.java\\n│ │ │ └── resources\\\\\\n│ │ │ └── application.yml\\n│ │ └── test\\\\\\n│ │ ├── java\\\\com\\\\crm\\\\auth\\\\\\n│ │ │ ├── security\\\\scope\\\\\\n│ │ │ │ ├── DataScopeIntegrationTest.java\\n│ │ │ │ ├── TestOwnedData.java\\n│ │ │ │ └── TestOwnedDataMapper.java\\n│ │ │ └── service\\\\\\n│ │ │ ├── client\\\\\\n│ │ │ │ ├── DingTalkAuthClientTest.java\\n│ │ │ │ └── ThirdPartyAuthClientFactoryTest.java\\n│ │ │ └── impl\\\\\\n│ │ │ ├── AuthServiceImplTest.java\\n│ │ │ ├── AuthUserServiceImplTest.java\\n│ │ │ └── SysDeptServiceImplTest.java\\n│ │ └── resources\\\\\\n│ ├── target\\\\\\n│ ├── crm-auth.iml\\n│ └── pom.xml\\n├── crm-base\\\\\\n│ ├── src\\\\\\n│ │ ├── main\\\\java\\\\com\\\\crm\\\\base\\\\\\n│ │ │ ├── advice\\\\\\n│ │ │ │ └── GlobalExceptionHandlerAdvice.java\\n│ │ │ ├── annotation\\\\\\n│ │ │ │ └── DataScope.java\\n│ │ │ ├── config\\\\\\n│ │ │ │ ├── CorsConfig.java\\n│ │ │ │ ├── CrmSqlInjector.java\\n│ │ │ │ ├── CustomIdGenerator.java\\n│ │ │ │ ├── InsertBatchOnDuplicateKeyUpdate.java\\n│ │ │ │ ├── JacksonConfig.java\\n│ │ │ │ ├── Knife4jConfig.java\\n│ │ │ │ ├── MetaObjectFillHandler.java\\n│ │ │ │ ├── MybatisPlusConfig.java\\n│ │ │ │ ├── RedisConfig.java\\n│ │ │ │ ├── ScheduledTaskProperties.java\\n│ │ │ │ ├── SnowflakeIdWorker.java\\n│ │ │ │ └── SnowflakeProperties.java\\n│ │ │ ├── constant\\\\\\n│ │ │ │ └── CommonConstants.java\\n│ │ │ ├── domain\\\\\\n│ │ │ │ ├── dto\\\\\\n│ │ │ │ │ └── BaseDTO.java\\n│ │ │ │ ├── entity\\\\\\n│ │ │ │ │ ├── BaseEntity.java\\n│ │ │ │ │ └── OwnedEntity.java\\n│ │ │ │ ├── enums\\\\\\n│ │ │ │ │ ├── HasValueEnum.java\\n│ │ │ │ │ └── StatusEnum.java\\n│ │ │ │ ├── exception\\\\\\n│ │ │ │ │ ├── BusinessErrorException.java\\n│ │ │ │ │ ├── MissingParameterException.java\\n│ │ │ │ │ ├── PermissionErrorException.java\\n│ │ │ │ │ └── ResourceNotExistException.java\\n│ │ │ │ ├── param\\\\\\n│ │ │ │ │ └── BaseParam.java\\n│ │ │ │ └── result\\\\\\n│ │ │ │ ├── PageResult.java\\n│ │ │ │ ├── Result.java\\n│ │ │ │ └── ResultCodeEnum.java\\n│ │ │ ├── filter\\\\\\n│ │ │ │ └── TraceIdFilter.java\\n│ │ │ ├── mapper\\\\\\n│ │ │ │ └── CrmBaseMapper.java\\n│ │ │ ├── security\\\\\\n│ │ │ │ ├── DataOwnership.java\\n│ │ │ │ ├── DataScopeHelper.java\\n│ │ │ │ ├── DataScopeLevel.java\\n│ │ │ │ ├── DataVisibilityContext.java\\n│ │ │ │ ├── LoginUser.java\\n│ │ │ │ └── SecurityUtils.java\\n│ │ │ ├── service\\\\\\n│ │ │ │ ├── impl\\\\\\n│ │ │ │ │ └── BaseServiceImpl.java\\n│ │ │ │ └── IBaseService.java\\n│ │ │ └── utils\\\\\\n│ │ │ ├── AssertUtils.java\\n│ │ │ ├── BeanCopyUtils.java\\n│ │ │ ├── EnumUtils.java\\n│ │ │ ├── ExcelUtil.java\\n│ │ │ ├── PageConverter.java\\n│ │ │ ├── ServletUtils.java\\n│ │ │ └── TreeUtils.java\\n│ │ └── test\\\\java\\\\com\\\\crm\\\\base\\\\security\\\\\\n│ │ └── DataVisibilityTest.java\\n│ ├── target\\\\\\n│ ├── crm-base.iml\\n│ └── pom.xml\\n├── crm-file\\\\\\n│ ├── src\\\\\\n│ │ ├── main\\\\java\\\\com\\\\crm\\\\file\\\\\\n│ │ │ ├── api\\\\\\n│ │ │ │ └── FileApi.java\\n│ │ │ ├── config\\\\\\n│ │ │ │ ├── FileProperties.java\\n│ │ │ │ ├── MinioConfig.java\\n│ │ │ │ └── SchedulingConfig.java\\n│ │ │ ├── constant\\\\\\n│ │ │ │ └── FileConstants.java\\n│ │ │ ├── controller\\\\\\n│ │ │ │ └── FileController.java\\n│ │ │ ├── domain\\\\\\n│ │ │ │ ├── dto\\\\\\n│ │ │ │ │ ├── FileDownloadDTO.java\\n│ │ │ │ │ ├── FileInfoDTO.java\\n│ │ │ │ │ ├── MultipartInitDTO.java\\n│ │ │ │ │ └── UploadSession.java\\n│ │ │ │ └── entity\\\\\\n│ │ │ │ └── FileInfo.java\\n│ │ │ ├── mapper\\\\\\n│ │ │ │ └── FileInfoMapper.java\\n│ │ │ ├── service\\\\\\n│ │ │ │ ├── impl\\\\\\n│ │ │ │ │ ├── FileApiImpl.java\\n│ │ │ │ │ └── FileInfoServiceImpl.java\\n│ │ │ │ ├── IFileInfoService.java\\n│ │ │ │ └── KkFileViewClient.java\\n│ │ │ └── task\\\\\\n│ │ │ └── OrphanChunkCleanupTask.java\\n│ │ └── test\\\\java\\\\com\\\\crm\\\\file\\\\\\n│ │ ├── service\\\\\\n│ │ │ ├── impl\\\\\\n│ │ │ │ └── FileApiImplTest.java\\n│ │ │ └── KkFileViewClientTest.java\\n│ │ └── task\\\\\\n│ │ └── OrphanChunkCleanupTaskTest.java\\n│ ├── target\\\\\\n│ └── pom.xml\\n├── docs\\\\agents\\\\\\n│ ├── domain.md\\n│ ├── issue-tracker.md\\n│ └── triage-labels.md\\n├── AGENTS.md\\n├── CONTEXT-MAP.md\\n└── pom.xml\\n\"","current_document_structure":"WikiEncrypted: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","catalogue_think_content":"WikiEncrypted:d45SgZtN4Jq1t6soxMe5H9Kpbj8zRKINytn5yDduSAfgNPrv0gaYL3xmw4MDZreqyY9rDQaF/v0/NDjh4qfPAUvIgyjBjTbhIbb/sXH1jWEZvKPilhX7qtLw4UTA63bchonAXJvE5RJ5Mbupq0RHPbdhqbsa6XBDvbotzz/PdUtsLLD479pgpbE9i2257svZnmWmUpGjSbAUkDBjeZZW74kF6UYM1CrlN7P9fJ2shnNi9MpJzmYudv9yk8bJ/cL2NCHJ5yc34Bgg83Sczz4/bW9NOCvQ+/7HwsFd7EmYTtRJuIqrQ/yd76ug9F1P3/RaZZ4Gq+SE9ruHlSB93bYPSNPn6VO05gYlvjuTF4fALdcCTNt/cV2BrqG3EuT1iQwj","recovery_checkpoint":"wiki_generation_completed","last_commit_id":"6329a6ba7431f4b95cef31ff4fa59d1e7b45da90","last_commit_update":"2026-08-01T12:30:45.3965502+08:00","gmt_create":"2026-08-01T10:22:05.6819004+08:00","gmt_modified":"2026-08-01T12:30:45.3965502+08:00","extend_info":"{\"language\":\"zh\",\"active\":true,\"branch\":\"master\",\"shareStatus\":\"\",\"server_error_code\":\"\",\"cosy_version\":\"\"}"}}