{"code_snippets":[{"id":"9c3911a56d8521ef26f3e3ec2accd8a5","path":"crm-auth/src/main/java/com/crm/auth/controller/AuthController.java","line_range":"30-34","gmt_create":"2026-08-03T19:26:09.3538194+08:00","gmt_modified":"2026-08-03T19:26:09.3538194+08:00"},{"id":"7b901ed8b88126265d0f6a5b26105fac","path":"crm-auth/src/main/java/com/crm/auth/service/IAuthService.java","line_range":"14-15","gmt_create":"2026-08-03T19:26:09.3538194+08:00","gmt_modified":"2026-08-03T19:26:09.3538194+08:00"},{"id":"daaa931a3614c39bba377186b1f5be5f","path":"crm-auth/src/main/java/com/crm/auth/service/impl/AuthServiceImpl.java","line_range":"64-93","gmt_create":"2026-08-03T19:26:09.3538194+08:00","gmt_modified":"2026-08-03T19:26:09.3538194+08:00"},{"id":"c440d4eea295917cf8174d31ba36318a","path":"crm-auth/src/main/java/com/crm/auth/domain/dto/LoginResultDTO.java","line_range":"13-23","gmt_create":"2026-08-03T19:26:09.3548166+08:00","gmt_modified":"2026-08-03T19:26:09.3548166+08:00"},{"id":"bb69d53898126328709f0ffa74b84a21","path":"crm-auth/src/main/java/com/crm/auth/controller/AuthController.java","line_range":"36-41","gmt_create":"2026-08-03T19:26:09.3548166+08:00","gmt_modified":"2026-08-03T19:26:09.3548166+08:00"},{"id":"08f1e1f256663048fa344ad9d0b2ec50","path":"crm-auth/src/main/java/com/crm/auth/controller/AuthController.java","line_range":"43-47","gmt_create":"2026-08-03T19:26:09.3548166+08:00","gmt_modified":"2026-08-03T19:26:09.3548166+08:00"},{"id":"bf93fb5169672f79ac4fd9358def044a","path":"crm-auth/src/main/java/com/crm/auth/domain/dto/UserInfoDTO.java","line_range":"12-41","gmt_create":"2026-08-03T19:26:09.355814+08:00","gmt_modified":"2026-08-03T19:26:09.355814+08:00"},{"id":"e2830d81d6e28aed10dccc2713cc2d1b","path":"crm-auth/src/main/java/com/crm/auth/controller/ResourceController.java","line_range":"1-48","gmt_create":"2026-08-04T09:56:41.6441443+08:00","gmt_modified":"2026-08-04T09:56:41.6441443+08:00"},{"id":"45bf77ddaa679acca8c5535083b5945c","path":"crm-auth/src/main/java/com/crm/auth/service/impl/ResourceServiceImpl.java","line_range":"1-262","gmt_create":"2026-08-04T09:56:41.6441443+08:00","gmt_modified":"2026-08-04T09:56:41.6441443+08:00"},{"id":"8db96ae3b010284910f8431c1c2367f0","path":"crm-auth/src/main/java/com/crm/auth/service/IResourceService.java","line_range":"1-26","gmt_create":"2026-08-04T09:56:41.6446554+08:00","gmt_modified":"2026-08-04T09:56:41.6446554+08:00"},{"id":"9488e996384d45f67488bdccc4e0f0b6","path":"crm-auth/src/main/java/com/crm/auth/domain/dto/ResourceNode.java","line_range":"1-80","gmt_create":"2026-08-04T09:57:47.7435815+08:00","gmt_modified":"2026-08-04T09:57:47.7435815+08:00"},{"id":"57d5a8ab851652a3705c29fe5c19864f","path":"crm-file/src/main/java/com/crm/file/api/FileApi.java","line_range":"1-106","gmt_create":"2026-08-04T09:57:47.7440898+08:00","gmt_modified":"2026-08-04T09:57:47.7440898+08:00"},{"id":"0415a1cb895b4930fc134a552eb7fcd9","path":"crm-auth/src/main/java/com/crm/auth/security/PermissionResolver.java","line_range":"16-35","gmt_create":"2026-08-04T17:27:53.0830064+08:00","gmt_modified":"2026-08-04T17:27:53.0830064+08:00"},{"id":"de8131647b7f08746c909c1fdda7ae19","path":"crm-auth/src/main/java/com/crm/auth/security/PermissionGrant.java","line_range":"23-67","gmt_create":"2026-08-04T17:27:53.0830064+08:00","gmt_modified":"2026-08-04T17:27:53.0830064+08:00"},{"id":"a5d94bb70272c22b15814a900046743e","path":"crm-auth/src/main/java/com/crm/auth/security/PermissionResolverImpl.java","line_range":"39-139","gmt_create":"2026-08-04T17:29:09.6036544+08:00","gmt_modified":"2026-08-04T17:29:09.6036544+08:00"},{"id":"fe2b7c626178194ac3902aff308e602c","path":"crm-auth/src/main/java/com/crm/auth/controller/RoleController.java","line_range":"1-98","gmt_create":"2026-08-05T12:33:48.8062431+08:00","gmt_modified":"2026-08-05T12:33:48.8062431+08:00"},{"id":"cec4b333c23562375f8ba726ff8e33d4","path":"crm-auth/src/main/java/com/crm/auth/service/ISysRoleService.java","line_range":"1-43","gmt_create":"2026-08-05T12:33:48.8067546+08:00","gmt_modified":"2026-08-05T12:33:48.8067546+08:00"},{"id":"0258e4223cc6ad38e6889a0dbe4226f4","path":"crm-auth/src/main/java/com/crm/auth/service/impl/SysRoleServiceImpl.java","line_range":"1-137","gmt_create":"2026-08-05T12:33:48.8067546+08:00","gmt_modified":"2026-08-05T12:33:48.8067546+08:00"},{"id":"b0e4bf2cdfbf64b762ff202adf131edb","path":"crm-auth/src/main/java/com/crm/auth/domain/entity/SysRole.java","line_range":"1-41","gmt_create":"2026-08-05T12:33:48.8067546+08:00","gmt_modified":"2026-08-05T12:33:48.8067546+08:00"},{"id":"f8cfac232dc38f8f3198444a305761ef","path":"crm-auth/src/main/java/com/crm/auth/domain/entity/SysRoleMenu.java","line_range":"1-31","gmt_create":"2026-08-05T12:33:48.8072632+08:00","gmt_modified":"2026-08-05T12:33:48.8072632+08:00"},{"id":"d1e517ee862539fcf0ee0b7bed6c3189","path":"crm-auth/src/main/java/com/crm/auth/domain/entity/SysUserRole.java","line_range":"1-31","gmt_create":"2026-08-05T12:33:48.8072632+08:00","gmt_modified":"2026-08-05T12:33:48.8072632+08:00"},{"id":"3e766fa579578b179ce86668688a696e","path":"crm-auth/src/main/java/com/crm/auth/domain/dto/RoleDetailVO.java","line_range":"1-61","gmt_create":"2026-08-05T12:33:48.8072632+08:00","gmt_modified":"2026-08-05T12:33:48.8072632+08:00"},{"id":"07a8887f4e7fde1c73077d609aa10f43","path":"crm-auth/src/main/java/com/crm/auth/mapper/SysRoleMapper.java","line_range":"1-10","gmt_create":"2026-08-05T12:33:48.8077714+08:00","gmt_modified":"2026-08-05T12:33:48.8077714+08:00"},{"id":"46567007ceb2af56690cfffb5ef3c61a","path":"crm-auth/src/main/java/com/crm/auth/mapper/SysRoleMenuMapper.java","line_range":"1-10","gmt_create":"2026-08-05T12:33:48.8082827+08:00","gmt_modified":"2026-08-05T12:33:48.8082827+08:00"},{"id":"14203855e6a38089b8bcec9e06c6e5ed","path":"crm-auth/src/main/java/com/crm/auth/mapper/SysUserRoleMapper.java","line_range":"1-10","gmt_create":"2026-08-05T12:33:48.8082827+08:00","gmt_modified":"2026-08-05T12:33:48.8082827+08:00"},{"id":"f21526f799560a3243f63662d5312c4a","path":"crm-auth/src/main/java/com/crm/auth/config/DataInitializer.java","line_range":"1-159","gmt_create":"2026-08-05T12:33:48.8087914+08:00","gmt_modified":"2026-08-05T12:33:48.8087914+08:00"},{"id":"d5ba78cb63ff66928528f5216580f2f5","path":"crm-base/src/main/java/com/crm/base/domain/entity/BaseEntity.java","line_range":"1-79","gmt_create":"2026-08-05T12:33:48.8087914+08:00","gmt_modified":"2026-08-05T12:33:48.8087914+08:00"},{"id":"63afa1df57820970e5a45b15aad6abe3","path":"docs/adr/0012-role-management-architecture.md","line_range":"1-69","gmt_create":"2026-08-05T12:33:48.8092999+08:00","gmt_modified":"2026-08-05T12:33:48.8092999+08:00"},{"id":"82e6c9f2a821a4ef65e14b39ad492b85","path":"crm-auth/src/main/java/com/crm/auth/constant/AuthConstants.java","line_range":"1-64","gmt_create":"2026-08-05T12:33:48.8108348+08:00","gmt_modified":"2026-08-05T12:33:48.8108348+08:00"},{"id":"efef262e25286d75b659aabf71860707","path":"crm-auth/src/main/java/com/crm/auth/service/impl/SysRoleServiceImpl.java","line_range":"36-79","gmt_create":"2026-08-05T12:33:48.8113429+08:00","gmt_modified":"2026-08-05T12:33:48.8113429+08:00"},{"id":"d98daec0996fc2871941a9bbe3f467c5","path":"crm-auth/src/main/java/com/crm/auth/service/impl/SysRoleServiceImpl.java","line_range":"36-135","gmt_create":"2026-08-05T12:33:48.8154539+08:00","gmt_modified":"2026-08-05T12:33:48.8154539+08:00"},{"id":"6893a95771f515d6b1f78cab0286312a","path":"crm-auth/src/main/java/com/crm/auth/config/DataInitializer.java","line_range":"76-95","gmt_create":"2026-08-05T12:33:48.8154539+08:00","gmt_modified":"2026-08-05T12:33:48.8154539+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":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":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":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":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":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":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":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":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":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":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":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":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":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":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":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":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":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":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":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":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":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":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":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":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":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":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":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":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":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":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":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":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":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":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":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":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":546,"source_id":"d1644805-fad0-4c88-837f-8b5ebe55ba82","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-03T19:26:09.355814+08:00","gmt_modified":"2026-08-03T19:26:09.355814+08:00"},{"id":547,"source_id":"d1644805-fad0-4c88-837f-8b5ebe55ba82","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-03T19:26:09.3568112+08:00","gmt_modified":"2026-08-03T19:26:09.3568112+08:00"},{"id":548,"source_id":"d1644805-fad0-4c88-837f-8b5ebe55ba82","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-03T19:26:09.3578093+08:00","gmt_modified":"2026-08-03T19:26:09.3578093+08:00"},{"id":549,"source_id":"d1644805-fad0-4c88-837f-8b5ebe55ba82","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-03T19:26:09.3588061+08:00","gmt_modified":"2026-08-03T19:26:09.3588061+08:00"},{"id":550,"source_id":"d1644805-fad0-4c88-837f-8b5ebe55ba82","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-03T19:26:09.3588061+08:00","gmt_modified":"2026-08-03T19:26:09.3588061+08:00"},{"id":551,"source_id":"d1644805-fad0-4c88-837f-8b5ebe55ba82","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-03T19:26:09.3598034+08:00","gmt_modified":"2026-08-03T19:26:09.3598034+08:00"},{"id":552,"source_id":"d1644805-fad0-4c88-837f-8b5ebe55ba82","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-03T19:26:09.3598034+08:00","gmt_modified":"2026-08-03T19:26:09.3598034+08:00"},{"id":553,"source_id":"d1644805-fad0-4c88-837f-8b5ebe55ba82","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-03T19:26:09.3598034+08:00","gmt_modified":"2026-08-03T19:26:09.3598034+08:00"},{"id":554,"source_id":"d1644805-fad0-4c88-837f-8b5ebe55ba82","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-03T19:26:09.3608003+08:00","gmt_modified":"2026-08-03T19:26:09.3608003+08:00"},{"id":555,"source_id":"d1644805-fad0-4c88-837f-8b5ebe55ba82","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-03T19:26:09.3608003+08:00","gmt_modified":"2026-08-03T19:26:09.3608003+08:00"},{"id":556,"source_id":"d1644805-fad0-4c88-837f-8b5ebe55ba82","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-03T19:26:09.3617981+08:00","gmt_modified":"2026-08-03T19:26:09.3617981+08:00"},{"id":557,"source_id":"d1644805-fad0-4c88-837f-8b5ebe55ba82","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-03T19:26:09.3617981+08:00","gmt_modified":"2026-08-03T19:26:09.3617981+08:00"},{"id":558,"source_id":"d1644805-fad0-4c88-837f-8b5ebe55ba82","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-03T19:26:09.3617981+08:00","gmt_modified":"2026-08-03T19:26:09.3617981+08:00"},{"id":559,"source_id":"d1644805-fad0-4c88-837f-8b5ebe55ba82","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-03T19:26:09.3627949+08:00","gmt_modified":"2026-08-03T19:26:09.3627949+08:00"},{"id":560,"source_id":"d1644805-fad0-4c88-837f-8b5ebe55ba82","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-03T19:26:09.3627949+08:00","gmt_modified":"2026-08-03T19:26:09.3627949+08:00"},{"id":561,"source_id":"d1644805-fad0-4c88-837f-8b5ebe55ba82","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-03T19:26:09.3627949+08:00","gmt_modified":"2026-08-03T19:26:09.3627949+08:00"},{"id":562,"source_id":"d1644805-fad0-4c88-837f-8b5ebe55ba82","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-03T19:26:09.3627949+08:00","gmt_modified":"2026-08-03T19:26:09.3627949+08:00"},{"id":563,"source_id":"d1644805-fad0-4c88-837f-8b5ebe55ba82","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-03T19:26:09.3637923+08:00","gmt_modified":"2026-08-03T19:26:09.3637923+08:00"},{"id":564,"source_id":"d1644805-fad0-4c88-837f-8b5ebe55ba82","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-03T19:26:09.3637923+08:00","gmt_modified":"2026-08-03T19:26:09.3637923+08:00"},{"id":565,"source_id":"d1644805-fad0-4c88-837f-8b5ebe55ba82","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-03T19:26:09.3637923+08:00","gmt_modified":"2026-08-03T19:26:09.3637923+08:00"},{"id":566,"source_id":"d1644805-fad0-4c88-837f-8b5ebe55ba82","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-03T19:26:09.3647898+08:00","gmt_modified":"2026-08-03T19:26:09.3647898+08:00"},{"id":567,"source_id":"d1644805-fad0-4c88-837f-8b5ebe55ba82","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-03T19:26:09.3647898+08:00","gmt_modified":"2026-08-03T19:26:09.3647898+08:00"},{"id":568,"source_id":"d1644805-fad0-4c88-837f-8b5ebe55ba82","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-03T19:26:09.3657877+08:00","gmt_modified":"2026-08-03T19:26:09.3657877+08:00"},{"id":569,"source_id":"d1644805-fad0-4c88-837f-8b5ebe55ba82","target_id":"9c3911a56d8521ef26f3e3ec2accd8a5","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: crm-auth/src/main/java/com/crm/auth/controller/AuthController.java#30-34","gmt_create":"2026-08-03T19:26:09.3657877+08:00","gmt_modified":"2026-08-03T19:26:09.3657877+08:00"},{"id":570,"source_id":"246da6901c21f063ab47e58aaebcdd3c","target_id":"9c3911a56d8521ef26f3e3ec2accd8a5","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 30-34","gmt_create":"2026-08-03T19:26:09.3657877+08:00","gmt_modified":"2026-08-03T19:26:09.3657877+08:00"},{"id":571,"source_id":"d1644805-fad0-4c88-837f-8b5ebe55ba82","target_id":"7b901ed8b88126265d0f6a5b26105fac","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/IAuthService.java#14-15","gmt_create":"2026-08-03T19:26:09.3667878+08:00","gmt_modified":"2026-08-03T19:26:09.3667878+08:00"},{"id":572,"source_id":"cff6e76ddd2bdf3e405ed171c279d307","target_id":"7b901ed8b88126265d0f6a5b26105fac","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 14-15","gmt_create":"2026-08-03T19:26:09.3667878+08:00","gmt_modified":"2026-08-03T19:26:09.3667878+08:00"},{"id":573,"source_id":"d1644805-fad0-4c88-837f-8b5ebe55ba82","target_id":"daaa931a3614c39bba377186b1f5be5f","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/AuthServiceImpl.java#64-93","gmt_create":"2026-08-03T19:26:09.3677822+08:00","gmt_modified":"2026-08-03T19:26:09.3677822+08:00"},{"id":574,"source_id":"5725c122fbf467925192bf42403e7787","target_id":"daaa931a3614c39bba377186b1f5be5f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 64-93","gmt_create":"2026-08-03T19:26:09.3677822+08:00","gmt_modified":"2026-08-03T19:26:09.3677822+08:00"},{"id":575,"source_id":"d1644805-fad0-4c88-837f-8b5ebe55ba82","target_id":"c440d4eea295917cf8174d31ba36318a","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/dto/LoginResultDTO.java#13-23","gmt_create":"2026-08-03T19:26:09.3677822+08:00","gmt_modified":"2026-08-03T19:26:09.3677822+08:00"},{"id":576,"source_id":"58507cf1cc358b2da45575d16c857d87","target_id":"c440d4eea295917cf8174d31ba36318a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 13-23","gmt_create":"2026-08-03T19:26:09.3677822+08:00","gmt_modified":"2026-08-03T19:26:09.3677822+08:00"},{"id":577,"source_id":"d1644805-fad0-4c88-837f-8b5ebe55ba82","target_id":"bb69d53898126328709f0ffa74b84a21","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: crm-auth/src/main/java/com/crm/auth/controller/AuthController.java#36-41","gmt_create":"2026-08-03T19:26:09.3691198+08:00","gmt_modified":"2026-08-03T19:26:09.3691198+08:00"},{"id":578,"source_id":"246da6901c21f063ab47e58aaebcdd3c","target_id":"bb69d53898126328709f0ffa74b84a21","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 36-41","gmt_create":"2026-08-03T19:26:09.37007+08:00","gmt_modified":"2026-08-03T19:26:09.37007+08:00"},{"id":579,"source_id":"d1644805-fad0-4c88-837f-8b5ebe55ba82","target_id":"08f1e1f256663048fa344ad9d0b2ec50","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: crm-auth/src/main/java/com/crm/auth/controller/AuthController.java#43-47","gmt_create":"2026-08-03T19:26:09.37007+08:00","gmt_modified":"2026-08-03T19:26:09.37007+08:00"},{"id":580,"source_id":"246da6901c21f063ab47e58aaebcdd3c","target_id":"08f1e1f256663048fa344ad9d0b2ec50","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 43-47","gmt_create":"2026-08-03T19:26:09.3710631+08:00","gmt_modified":"2026-08-03T19:26:09.3710631+08:00"},{"id":581,"source_id":"d1644805-fad0-4c88-837f-8b5ebe55ba82","target_id":"bf93fb5169672f79ac4fd9358def044a","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/dto/UserInfoDTO.java#12-41","gmt_create":"2026-08-03T19:26:09.3710631+08:00","gmt_modified":"2026-08-03T19:26:09.3710631+08:00"},{"id":582,"source_id":"8cac10327042dbf538d05120f601aa48","target_id":"bf93fb5169672f79ac4fd9358def044a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 12-41","gmt_create":"2026-08-03T19:26:09.3710631+08:00","gmt_modified":"2026-08-03T19:26:09.3710631+08:00"},{"id":583,"source_id":"f1cd91eb-6089-40e0-ba34-48626a1649c1","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-03T19:26:44.0334676+08:00","gmt_modified":"2026-08-03T19:26:44.0334676+08:00"},{"id":584,"source_id":"f1cd91eb-6089-40e0-ba34-48626a1649c1","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-03T19:26:44.0340074+08:00","gmt_modified":"2026-08-03T19:26:44.0340074+08:00"},{"id":585,"source_id":"f1cd91eb-6089-40e0-ba34-48626a1649c1","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-03T19:26:44.0345249+08:00","gmt_modified":"2026-08-03T19:26:44.0345249+08:00"},{"id":586,"source_id":"f1cd91eb-6089-40e0-ba34-48626a1649c1","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-03T19:26:44.0365193+08:00","gmt_modified":"2026-08-03T19:26:44.0365193+08:00"},{"id":587,"source_id":"f1cd91eb-6089-40e0-ba34-48626a1649c1","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-03T19:26:44.0395055+08:00","gmt_modified":"2026-08-03T19:26:44.0395055+08:00"},{"id":588,"source_id":"f1cd91eb-6089-40e0-ba34-48626a1649c1","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-03T19:26:44.0395055+08:00","gmt_modified":"2026-08-03T19:26:44.0395055+08:00"},{"id":589,"source_id":"f1cd91eb-6089-40e0-ba34-48626a1649c1","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-03T19:26:44.0405028+08:00","gmt_modified":"2026-08-03T19:26:44.0405028+08:00"},{"id":590,"source_id":"f1cd91eb-6089-40e0-ba34-48626a1649c1","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-03T19:26:44.0430091+08:00","gmt_modified":"2026-08-03T19:26:44.0430091+08:00"},{"id":591,"source_id":"f1cd91eb-6089-40e0-ba34-48626a1649c1","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-03T19:26:44.046519+08:00","gmt_modified":"2026-08-03T19:26:44.046519+08:00"},{"id":592,"source_id":"f1cd91eb-6089-40e0-ba34-48626a1649c1","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-03T19:26:44.0474069+08:00","gmt_modified":"2026-08-03T19:26:44.0474069+08:00"},{"id":593,"source_id":"f1cd91eb-6089-40e0-ba34-48626a1649c1","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-03T19:26:44.0484477+08:00","gmt_modified":"2026-08-03T19:26:44.0484477+08:00"},{"id":594,"source_id":"f1cd91eb-6089-40e0-ba34-48626a1649c1","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-03T19:26:44.049187+08:00","gmt_modified":"2026-08-03T19:26:44.049187+08:00"},{"id":595,"source_id":"f1cd91eb-6089-40e0-ba34-48626a1649c1","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-03T19:26:44.0496987+08:00","gmt_modified":"2026-08-03T19:26:44.0496987+08:00"},{"id":596,"source_id":"f1cd91eb-6089-40e0-ba34-48626a1649c1","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-03T19:26:44.0531745+08:00","gmt_modified":"2026-08-03T19:26:44.0531745+08:00"},{"id":597,"source_id":"f1cd91eb-6089-40e0-ba34-48626a1649c1","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-03T19:26:44.0554569+08:00","gmt_modified":"2026-08-03T19:26:44.0554569+08:00"},{"id":598,"source_id":"f1cd91eb-6089-40e0-ba34-48626a1649c1","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-03T19:26:44.0564966+08:00","gmt_modified":"2026-08-03T19:26:44.0564966+08:00"},{"id":599,"source_id":"f1cd91eb-6089-40e0-ba34-48626a1649c1","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-03T19:26:44.058952+08:00","gmt_modified":"2026-08-03T19:26:44.058952+08:00"},{"id":600,"source_id":"f1cd91eb-6089-40e0-ba34-48626a1649c1","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-03T19:26:44.0599994+08:00","gmt_modified":"2026-08-03T19:26:44.0599994+08:00"},{"id":601,"source_id":"f1cd91eb-6089-40e0-ba34-48626a1649c1","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-03T19:26:44.0614142+08:00","gmt_modified":"2026-08-03T19:26:44.0614142+08:00"},{"id":602,"source_id":"f1cd91eb-6089-40e0-ba34-48626a1649c1","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-03T19:26:44.0616153+08:00","gmt_modified":"2026-08-03T19:26:44.0616153+08:00"},{"id":603,"source_id":"f1cd91eb-6089-40e0-ba34-48626a1649c1","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-03T19:26:44.0626663+08:00","gmt_modified":"2026-08-03T19:26:44.0626663+08:00"},{"id":604,"source_id":"f1cd91eb-6089-40e0-ba34-48626a1649c1","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-03T19:26:44.0631978+08:00","gmt_modified":"2026-08-03T19:26:44.0631978+08:00"},{"id":605,"source_id":"f1cd91eb-6089-40e0-ba34-48626a1649c1","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-03T19:26:44.0642442+08:00","gmt_modified":"2026-08-03T19:26:44.0642442+08:00"},{"id":606,"source_id":"f1cd91eb-6089-40e0-ba34-48626a1649c1","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-03T19:26:44.0652797+08:00","gmt_modified":"2026-08-03T19:26:44.0652797+08:00"},{"id":607,"source_id":"f1cd91eb-6089-40e0-ba34-48626a1649c1","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-03T19:26:44.0652797+08:00","gmt_modified":"2026-08-03T19:26:44.0652797+08:00"},{"id":608,"source_id":"f1cd91eb-6089-40e0-ba34-48626a1649c1","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-03T19:26:44.0657979+08:00","gmt_modified":"2026-08-03T19:26:44.0657979+08:00"},{"id":609,"source_id":"f1cd91eb-6089-40e0-ba34-48626a1649c1","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-03T19:26:44.0663119+08:00","gmt_modified":"2026-08-03T19:26:44.0663119+08:00"},{"id":658,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","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-03T19:27:26.9376022+08:00","gmt_modified":"2026-08-03T19:27:26.9376022+08:00"},{"id":659,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","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-03T19:27:26.9381126+08:00","gmt_modified":"2026-08-03T19:27:26.9381126+08:00"},{"id":660,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","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-03T19:27:26.9381126+08:00","gmt_modified":"2026-08-03T19:27:26.9381126+08:00"},{"id":661,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","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-03T19:27:26.9381126+08:00","gmt_modified":"2026-08-03T19:27:26.9381126+08:00"},{"id":662,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","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-03T19:27:26.9386266+08:00","gmt_modified":"2026-08-03T19:27:26.9386266+08:00"},{"id":663,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","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-03T19:27:26.9386266+08:00","gmt_modified":"2026-08-03T19:27:26.9386266+08:00"},{"id":664,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","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-03T19:27:26.9386266+08:00","gmt_modified":"2026-08-03T19:27:26.9386266+08:00"},{"id":665,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","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-03T19:27:26.9391353+08:00","gmt_modified":"2026-08-03T19:27:26.9391353+08:00"},{"id":666,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","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-03T19:27:26.9391353+08:00","gmt_modified":"2026-08-03T19:27:26.9391353+08:00"},{"id":667,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","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-03T19:27:26.9391353+08:00","gmt_modified":"2026-08-03T19:27:26.9391353+08:00"},{"id":668,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","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-03T19:27:26.9396434+08:00","gmt_modified":"2026-08-03T19:27:26.9396434+08:00"},{"id":669,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","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-03T19:27:26.9396434+08:00","gmt_modified":"2026-08-03T19:27:26.9396434+08:00"},{"id":670,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","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-03T19:27:26.9401546+08:00","gmt_modified":"2026-08-03T19:27:26.9401546+08:00"},{"id":671,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","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-03T19:27:26.9401546+08:00","gmt_modified":"2026-08-03T19:27:26.9401546+08:00"},{"id":672,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","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-03T19:27:26.9401546+08:00","gmt_modified":"2026-08-03T19:27:26.9401546+08:00"},{"id":673,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","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-03T19:27:26.9406642+08:00","gmt_modified":"2026-08-03T19:27:26.9406642+08:00"},{"id":674,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","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-03T19:27:26.9406642+08:00","gmt_modified":"2026-08-03T19:27:26.9406642+08:00"},{"id":675,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","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-03T19:27:26.9406642+08:00","gmt_modified":"2026-08-03T19:27:26.9406642+08:00"},{"id":676,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","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-03T19:27:26.9411864+08:00","gmt_modified":"2026-08-03T19:27:26.9411864+08:00"},{"id":677,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","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-03T19:27:26.9411864+08:00","gmt_modified":"2026-08-03T19:27:26.9411864+08:00"},{"id":678,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","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-03T19:27:26.9411864+08:00","gmt_modified":"2026-08-03T19:27:26.9411864+08:00"},{"id":679,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","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-03T19:27:26.9416957+08:00","gmt_modified":"2026-08-03T19:27:26.9416957+08:00"},{"id":680,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","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-03T19:27:26.9416957+08:00","gmt_modified":"2026-08-03T19:27:26.9416957+08:00"},{"id":681,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","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-03T19:27:26.9422037+08:00","gmt_modified":"2026-08-03T19:27:26.9422037+08:00"},{"id":682,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","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-03T19:27:26.9422037+08:00","gmt_modified":"2026-08-03T19:27:26.9422037+08:00"},{"id":683,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","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-03T19:27:26.9422037+08:00","gmt_modified":"2026-08-03T19:27:26.9422037+08:00"},{"id":684,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","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-03T19:27:26.9427123+08:00","gmt_modified":"2026-08-03T19:27:26.9427123+08:00"},{"id":685,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","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-03T19:27:26.9427123+08:00","gmt_modified":"2026-08-03T19:27:26.9427123+08:00"},{"id":686,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","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-03T19:27:26.9432226+08:00","gmt_modified":"2026-08-03T19:27:26.9432226+08:00"},{"id":687,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","target_id":"01c3b61921ce0cdb4028d7335ad82908","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/api/FileApi.java","gmt_create":"2026-08-03T19:27:26.9432226+08:00","gmt_modified":"2026-08-03T19:27:26.9432226+08:00"},{"id":688,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","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-03T19:27:26.9437317+08:00","gmt_modified":"2026-08-03T19:27:26.9437317+08:00"},{"id":689,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","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-03T19:27:26.9437317+08:00","gmt_modified":"2026-08-03T19:27:26.9437317+08:00"},{"id":690,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","target_id":"dd4e6c7873de5b24deefcc3d24077825","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/config/MinioConfig.java","gmt_create":"2026-08-03T19:27:26.9437317+08:00","gmt_modified":"2026-08-03T19:27:26.9437317+08:00"},{"id":691,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","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-03T19:27:26.9442398+08:00","gmt_modified":"2026-08-03T19:27:26.9442398+08:00"},{"id":692,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","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-03T19:27:26.9442398+08:00","gmt_modified":"2026-08-03T19:27:26.9442398+08:00"},{"id":693,"source_id":"c0741164-f5df-4211-9366-481c2bfaefdd","target_id":"de4842c7b9763f7398ef2c3dec53465d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: docs/adr/0009-sso-reuses-scan-login-endpoint.md","gmt_create":"2026-08-03T19:27:26.9442398+08:00","gmt_modified":"2026-08-03T19:27:26.9442398+08:00"},{"id":694,"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-03T19:27:27.7477592+08:00","gmt_modified":"2026-08-03T19:27:27.7477592+08:00"},{"id":695,"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-03T19:27:27.7482688+08:00","gmt_modified":"2026-08-03T19:27:27.7482688+08:00"},{"id":696,"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-03T19:27:27.7482688+08:00","gmt_modified":"2026-08-03T19:27:27.7482688+08:00"},{"id":698,"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-03T19:27:27.7488111+08:00","gmt_modified":"2026-08-03T19:27:27.7488111+08:00"},{"id":699,"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-03T19:27:27.7504197+08:00","gmt_modified":"2026-08-03T19:27:27.7504197+08:00"},{"id":700,"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-03T19:27:27.7509313+08:00","gmt_modified":"2026-08-03T19:27:27.7509313+08:00"},{"id":707,"source_id":"2f3be026-db25-43bf-b241-7a7d5e8d6c17","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-03T19:55:26.44695+08:00","gmt_modified":"2026-08-03T19:55:26.44695+08:00"},{"id":708,"source_id":"2f3be026-db25-43bf-b241-7a7d5e8d6c17","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-03T19:55:26.4479819+08:00","gmt_modified":"2026-08-03T19:55:26.4479819+08:00"},{"id":709,"source_id":"2f3be026-db25-43bf-b241-7a7d5e8d6c17","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-03T19:55:26.4484932+08:00","gmt_modified":"2026-08-03T19:55:26.4484932+08:00"},{"id":710,"source_id":"f0adf36f-aaef-42c9-9edc-316ad8e8cb33","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-03T19:55:33.933419+08:00","gmt_modified":"2026-08-03T19:55:33.933419+08:00"},{"id":711,"source_id":"f0adf36f-aaef-42c9-9edc-316ad8e8cb33","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-03T19:55:33.9349599+08:00","gmt_modified":"2026-08-03T19:55:33.9349599+08:00"},{"id":712,"source_id":"f0adf36f-aaef-42c9-9edc-316ad8e8cb33","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-03T19:55:33.9354722+08:00","gmt_modified":"2026-08-03T19:55:33.9354722+08:00"},{"id":713,"source_id":"f0adf36f-aaef-42c9-9edc-316ad8e8cb33","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-03T19:55:33.9354722+08:00","gmt_modified":"2026-08-03T19:55:33.9354722+08:00"},{"id":714,"source_id":"f0adf36f-aaef-42c9-9edc-316ad8e8cb33","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-03T19:55:33.9365057+08:00","gmt_modified":"2026-08-03T19:55:33.9365057+08:00"},{"id":715,"source_id":"f0adf36f-aaef-42c9-9edc-316ad8e8cb33","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-03T19:55:33.9365057+08:00","gmt_modified":"2026-08-03T19:55:33.9365057+08:00"},{"id":716,"source_id":"871fadc5-8e0b-4190-a31b-a0f727c64553","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-03T19:55:41.4622258+08:00","gmt_modified":"2026-08-03T19:55:41.4622258+08:00"},{"id":717,"source_id":"871fadc5-8e0b-4190-a31b-a0f727c64553","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-03T19:55:41.4637616+08:00","gmt_modified":"2026-08-03T19:55:41.4637616+08:00"},{"id":718,"source_id":"871fadc5-8e0b-4190-a31b-a0f727c64553","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-03T19:55:41.464275+08:00","gmt_modified":"2026-08-03T19:55:41.464275+08:00"},{"id":719,"source_id":"871fadc5-8e0b-4190-a31b-a0f727c64553","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-03T19:55:41.464275+08:00","gmt_modified":"2026-08-03T19:55:41.464275+08:00"},{"id":720,"source_id":"871fadc5-8e0b-4190-a31b-a0f727c64553","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-03T19:55:41.464275+08:00","gmt_modified":"2026-08-03T19:55:41.464275+08:00"},{"id":721,"source_id":"871fadc5-8e0b-4190-a31b-a0f727c64553","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-03T19:55:41.464787+08:00","gmt_modified":"2026-08-03T19:55:41.464787+08:00"},{"id":722,"source_id":"871fadc5-8e0b-4190-a31b-a0f727c64553","target_id":"5368e7e708ac910d97280b3bcf8d2fea","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/config/FileProperties.java","gmt_create":"2026-08-03T19:55:41.464787+08:00","gmt_modified":"2026-08-03T19:55:41.464787+08:00"},{"id":723,"source_id":"871fadc5-8e0b-4190-a31b-a0f727c64553","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-03T19:55:41.5524585+08:00","gmt_modified":"2026-08-03T19:55:41.5524585+08:00"},{"id":724,"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-03T19:55:42.143125+08:00","gmt_modified":"2026-08-03T19:55:42.143125+08:00"},{"id":725,"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-03T19:55:42.1436385+08:00","gmt_modified":"2026-08-03T19:55:42.1436385+08:00"},{"id":726,"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-03T19:55:42.1615514+08:00","gmt_modified":"2026-08-03T19:55:42.1615514+08:00"},{"id":727,"source_id":"e68c0bcd-bcf0-409b-98e5-e73abcd07eab","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-04T09:27:03.4261858+08:00","gmt_modified":"2026-08-04T09:27:03.4261858+08:00"},{"id":728,"source_id":"e68c0bcd-bcf0-409b-98e5-e73abcd07eab","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-04T09:27:03.4710647+08:00","gmt_modified":"2026-08-04T09:27:03.4710647+08:00"},{"id":729,"source_id":"e68c0bcd-bcf0-409b-98e5-e73abcd07eab","target_id":"f648b675f6acc57fd1e4fe32e9a205c4","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/MenuType.java","gmt_create":"2026-08-04T09:27:03.4722861+08:00","gmt_modified":"2026-08-04T09:27:03.4722861+08:00"},{"id":730,"source_id":"e68c0bcd-bcf0-409b-98e5-e73abcd07eab","target_id":"d63e53ca9d76d8f81dd89d981569d9f3","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/ResourceNode.java","gmt_create":"2026-08-04T09:27:03.4728024+08:00","gmt_modified":"2026-08-04T09:27:03.4728024+08:00"},{"id":731,"source_id":"e68c0bcd-bcf0-409b-98e5-e73abcd07eab","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-04T09:27:03.4733162+08:00","gmt_modified":"2026-08-04T09:27:03.4733162+08:00"},{"id":732,"source_id":"e68c0bcd-bcf0-409b-98e5-e73abcd07eab","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-04T09:27:03.4733162+08:00","gmt_modified":"2026-08-04T09:27:03.4733162+08:00"},{"id":733,"source_id":"e68c0bcd-bcf0-409b-98e5-e73abcd07eab","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-04T09:27:03.4733162+08:00","gmt_modified":"2026-08-04T09:27:03.4733162+08:00"},{"id":734,"source_id":"e68c0bcd-bcf0-409b-98e5-e73abcd07eab","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-04T09:27:03.473826+08:00","gmt_modified":"2026-08-04T09:27:03.473826+08:00"},{"id":735,"source_id":"e68c0bcd-bcf0-409b-98e5-e73abcd07eab","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-04T09:27:03.473826+08:00","gmt_modified":"2026-08-04T09:27:03.473826+08:00"},{"id":736,"source_id":"e68c0bcd-bcf0-409b-98e5-e73abcd07eab","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-04T09:27:03.473826+08:00","gmt_modified":"2026-08-04T09:27:03.473826+08:00"},{"id":737,"source_id":"e68c0bcd-bcf0-409b-98e5-e73abcd07eab","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-04T09:27:03.4743397+08:00","gmt_modified":"2026-08-04T09:27:03.4743397+08:00"},{"id":738,"source_id":"e68c0bcd-bcf0-409b-98e5-e73abcd07eab","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-04T09:27:03.4743397+08:00","gmt_modified":"2026-08-04T09:27:03.4743397+08:00"},{"id":739,"source_id":"e68c0bcd-bcf0-409b-98e5-e73abcd07eab","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-04T09:27:03.4743397+08:00","gmt_modified":"2026-08-04T09:27:03.4743397+08:00"},{"id":740,"source_id":"e68c0bcd-bcf0-409b-98e5-e73abcd07eab","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-04T09:27:03.4748481+08:00","gmt_modified":"2026-08-04T09:27:03.4748481+08:00"},{"id":741,"source_id":"e68c0bcd-bcf0-409b-98e5-e73abcd07eab","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-04T09:27:03.4748481+08:00","gmt_modified":"2026-08-04T09:27:03.4748481+08:00"},{"id":742,"source_id":"e68c0bcd-bcf0-409b-98e5-e73abcd07eab","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-04T09:27:03.4753654+08:00","gmt_modified":"2026-08-04T09:27:03.4753654+08:00"},{"id":760,"source_id":"d63e53ca9d76d8f81dd89d981569d9f3","target_id":"ef0fb46c0db255fd9bde4380928104bf","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-200","gmt_create":"2026-08-04T09:27:04.1402979+08:00","gmt_modified":"2026-08-04T09:27:04.1402979+08:00"},{"id":780,"source_id":"f648b675f6acc57fd1e4fe32e9a205c4","target_id":"aafd447ec3bbf25736e2c0c9c6fa613c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 12-51","gmt_create":"2026-08-04T09:27:04.1814078+08:00","gmt_modified":"2026-08-04T09:27:04.1814078+08:00"},{"id":782,"source_id":"26cb8256b5c728bdc24b532313d3a166","target_id":"f3443603f743cb75a94a04d692a61a9f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 12-76","gmt_create":"2026-08-04T09:27:04.1819767+08:00","gmt_modified":"2026-08-04T09:27:04.1819767+08:00"},{"id":784,"source_id":"d63e53ca9d76d8f81dd89d981569d9f3","target_id":"0be9e4b0a80212931a37787fb4305723","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 16-79","gmt_create":"2026-08-04T09:27:04.1824798+08:00","gmt_modified":"2026-08-04T09:27:04.1824798+08:00"},{"id":801,"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-04T09:27:06.7380085+08:00","gmt_modified":"2026-08-04T09:27:06.7380085+08:00"},{"id":822,"source_id":"197b55f1b7d7d1be28b124897acfa1eb","target_id":"e2830d81d6e28aed10dccc2713cc2d1b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-48","gmt_create":"2026-08-04T09:56:41.6606102+08:00","gmt_modified":"2026-08-04T09:56:41.6606102+08:00"},{"id":824,"source_id":"145452b72cda2735ac97a690f2b5cbd9","target_id":"45bf77ddaa679acca8c5535083b5945c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-262","gmt_create":"2026-08-04T09:56:41.6616082+08:00","gmt_modified":"2026-08-04T09:56:41.6616082+08:00"},{"id":826,"source_id":"e42a3afd007bd414adca430109ffa7f2","target_id":"8db96ae3b010284910f8431c1c2367f0","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-26","gmt_create":"2026-08-04T09:56:41.6616082+08:00","gmt_modified":"2026-08-04T09:56:41.6616082+08:00"},{"id":836,"source_id":"f9926a70a628c5e92f0d239030b13f71","target_id":"88730f3c070dfa62a6a9093270580a8b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-123","gmt_create":"2026-08-04T09:56:41.6646002+08:00","gmt_modified":"2026-08-04T09:56:41.6646002+08:00"},{"id":857,"source_id":"5be8fe765c8b4c953e524cdf749f440b","target_id":"c0493efa487cf930abd2933af3e72781","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-19","gmt_create":"2026-08-04T09:56:41.6725781+08:00","gmt_modified":"2026-08-04T09:56:41.6725781+08:00"},{"id":863,"source_id":"4194d46035c0037d3488ab82e57001ba","target_id":"5fe39f4159a0d5a68c0d1ee34a2b6103","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-76","gmt_create":"2026-08-04T09:56:41.6765674+08:00","gmt_modified":"2026-08-04T09:56:41.6765674+08:00"},{"id":947,"source_id":"d63e53ca9d76d8f81dd89d981569d9f3","target_id":"9488e996384d45f67488bdccc4e0f0b6","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-80","gmt_create":"2026-08-04T09:57:47.7601069+08:00","gmt_modified":"2026-08-04T09:57:47.7601069+08:00"},{"id":949,"source_id":"01c3b61921ce0cdb4028d7335ad82908","target_id":"57d5a8ab851652a3705c29fe5c19864f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-106","gmt_create":"2026-08-04T09:57:47.7601069+08:00","gmt_modified":"2026-08-04T09:57:47.7601069+08:00"},{"id":1037,"source_id":"145452b72cda2735ac97a690f2b5cbd9","target_id":"14a15fa440881d50b36d8c53e94dd736","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 165-194","gmt_create":"2026-08-04T10:27:21.445736+08:00","gmt_modified":"2026-08-04T10:27:21.445736+08:00"},{"id":1039,"source_id":"f648b675f6acc57fd1e4fe32e9a205c4","target_id":"7b42b81da49de266d4cee69b9c075f9a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 37-50","gmt_create":"2026-08-04T10:27:21.4467709+08:00","gmt_modified":"2026-08-04T10:27:21.4467709+08:00"},{"id":1041,"source_id":"145452b72cda2735ac97a690f2b5cbd9","target_id":"89b76c08a217330b3e8334f4e696a002","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 235-238","gmt_create":"2026-08-04T10:27:21.4477568+08:00","gmt_modified":"2026-08-04T10:27:21.4477568+08:00"},{"id":1152,"source_id":"d63e53ca9d76d8f81dd89d981569d9f3","target_id":"b2e64975f941d389f848f0911b5d21fc","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 16-84","gmt_create":"2026-08-04T11:27:20.3451727+08:00","gmt_modified":"2026-08-04T11:27:20.3451727+08:00"},{"id":1154,"source_id":"197b55f1b7d7d1be28b124897acfa1eb","target_id":"11ff686199a527b16c34abb2c1c3f179","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-56","gmt_create":"2026-08-04T11:27:20.3461992+08:00","gmt_modified":"2026-08-04T11:27:20.3461992+08:00"},{"id":1156,"source_id":"145452b72cda2735ac97a690f2b5cbd9","target_id":"204b3d8b3f185c9d4e51d901e51ade12","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-265","gmt_create":"2026-08-04T11:27:20.346708+08:00","gmt_modified":"2026-08-04T11:27:20.346708+08:00"},{"id":1172,"source_id":"f648b675f6acc57fd1e4fe32e9a205c4","target_id":"77b6a344d88f4c26037ba82e391ac061","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 12-52","gmt_create":"2026-08-04T11:27:20.3507243+08:00","gmt_modified":"2026-08-04T11:27:20.3507243+08:00"},{"id":1194,"source_id":"145452b72cda2735ac97a690f2b5cbd9","target_id":"eebd80b02064751aa384ae1f18d557dd","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 169-198","gmt_create":"2026-08-04T11:27:20.4106117+08:00","gmt_modified":"2026-08-04T11:27:20.4106117+08:00"},{"id":1196,"source_id":"f648b675f6acc57fd1e4fe32e9a205c4","target_id":"f8d3167a88d67e6e0bc04c71cca4a65d","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 37-51","gmt_create":"2026-08-04T11:27:20.4111272+08:00","gmt_modified":"2026-08-04T11:27:20.4111272+08:00"},{"id":1198,"source_id":"145452b72cda2735ac97a690f2b5cbd9","target_id":"7687130ee4a47c1e4e4ef1082d573508","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 239-242","gmt_create":"2026-08-04T11:27:20.4116416+08:00","gmt_modified":"2026-08-04T11:27:20.4116416+08:00"},{"id":1200,"source_id":"53e5a23ce2cd9f508b08b6e1eb290542","target_id":"91398e71753529e02986d50a8cfc06e8","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 36-71","gmt_create":"2026-08-04T11:27:20.4121545+08:00","gmt_modified":"2026-08-04T11:27:20.4121545+08:00"},{"id":1202,"source_id":"145452b72cda2735ac97a690f2b5cbd9","target_id":"887ed5c02b23a570f50766518fc13e38","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 44-50","gmt_create":"2026-08-04T11:27:20.4131785+08:00","gmt_modified":"2026-08-04T11:27:20.4131785+08:00"},{"id":1204,"source_id":"53e5a23ce2cd9f508b08b6e1eb290542","target_id":"62a16405b98e80047bc86598efeeb2c2","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-91","gmt_create":"2026-08-04T11:27:20.4136882+08:00","gmt_modified":"2026-08-04T11:27:20.4136882+08:00"},{"id":1257,"source_id":"4b325dd0ffe965ccff6bc2e8acc431d6","target_id":"0415a1cb895b4930fc134a552eb7fcd9","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 16-35","gmt_create":"2026-08-04T17:27:53.1031162+08:00","gmt_modified":"2026-08-04T17:27:53.1031162+08:00"},{"id":1259,"source_id":"74123de2770c04a2d8a4787f177714fc","target_id":"de8131647b7f08746c909c1fdda7ae19","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 23-67","gmt_create":"2026-08-04T17:27:53.1036297+08:00","gmt_modified":"2026-08-04T17:27:53.1036297+08:00"},{"id":1261,"source_id":"46bb7615dec0d0825cbcc4b846b93bf6","target_id":"6a73c502cfcf49993f7db005be0fcab3","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 42-139","gmt_create":"2026-08-04T17:27:53.1041706+08:00","gmt_modified":"2026-08-04T17:27:53.1041706+08:00"},{"id":1263,"source_id":"db5d3491fb45251456163d012a823f5d","target_id":"3f842d4f63feb4acb460bc265c59f76f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 36-44","gmt_create":"2026-08-04T17:27:53.1046809+08:00","gmt_modified":"2026-08-04T17:27:53.1046809+08:00"},{"id":1267,"source_id":"10a536bc357c7840a6eec61b40741915","target_id":"4bc2656567f222fc1007eb4c97ee0ba6","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 32-56","gmt_create":"2026-08-04T17:27:53.1062084+08:00","gmt_modified":"2026-08-04T17:27:53.1062084+08:00"},{"id":1269,"source_id":"db5d3491fb45251456163d012a823f5d","target_id":"e01f752bbb39023b7a1da28487f33237","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 40-44","gmt_create":"2026-08-04T17:27:53.1073035+08:00","gmt_modified":"2026-08-04T17:27:53.1073035+08:00"},{"id":1271,"source_id":"46bb7615dec0d0825cbcc4b846b93bf6","target_id":"1d5a19e1dc4ede80e406d2b2e272b233","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 52-104","gmt_create":"2026-08-04T17:27:53.1093725+08:00","gmt_modified":"2026-08-04T17:27:53.1093725+08:00"},{"id":1291,"source_id":"10a536bc357c7840a6eec61b40741915","target_id":"75a46f3591b3d8dabe1cc291265c081d","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-66","gmt_create":"2026-08-04T17:27:53.1170432+08:00","gmt_modified":"2026-08-04T17:27:53.1170432+08:00"},{"id":1295,"source_id":"46bb7615dec0d0825cbcc4b846b93bf6","target_id":"531190a76ae5ec374ada9f89dab44f26","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 118-139","gmt_create":"2026-08-04T17:27:53.8441773+08:00","gmt_modified":"2026-08-04T17:27:53.8441773+08:00"},{"id":1308,"source_id":"46bb7615dec0d0825cbcc4b846b93bf6","target_id":"61e37dd02adf31774fc29a3f3bdc2e9b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 115","gmt_create":"2026-08-04T17:27:53.8477675+08:00","gmt_modified":"2026-08-04T17:27:53.8477675+08:00"},{"id":1313,"source_id":"46bb7615dec0d0825cbcc4b846b93bf6","target_id":"8bfb66ee95e0b604e7e00a10d54b97e2","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-140","gmt_create":"2026-08-04T17:27:53.8503299+08:00","gmt_modified":"2026-08-04T17:27:53.8503299+08:00"},{"id":1314,"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-04T17:29:09.6051833+08:00","gmt_modified":"2026-08-04T17:29:09.6051833+08:00"},{"id":1315,"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-04T17:29:09.6051833+08:00","gmt_modified":"2026-08-04T17:29:09.6051833+08:00"},{"id":1316,"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-04T17:29:09.6056952+08:00","gmt_modified":"2026-08-04T17:29:09.6056952+08:00"},{"id":1317,"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-04T17:29:09.6056952+08:00","gmt_modified":"2026-08-04T17:29:09.6056952+08:00"},{"id":1318,"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-04T17:29:09.6056952+08:00","gmt_modified":"2026-08-04T17:29:09.6056952+08:00"},{"id":1319,"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-04T17:29:09.6062048+08:00","gmt_modified":"2026-08-04T17:29:09.6062048+08:00"},{"id":1320,"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-04T17:29:09.6062048+08:00","gmt_modified":"2026-08-04T17:29:09.6062048+08:00"},{"id":1321,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"197b55f1b7d7d1be28b124897acfa1eb","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/ResourceController.java","gmt_create":"2026-08-04T17:29:09.6067187+08:00","gmt_modified":"2026-08-04T17:29:09.6067187+08:00"},{"id":1322,"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-04T17:29:09.6067187+08:00","gmt_modified":"2026-08-04T17:29:09.6067187+08:00"},{"id":1323,"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-04T17:29:09.6072276+08:00","gmt_modified":"2026-08-04T17:29:09.6072276+08:00"},{"id":1324,"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-04T17:29:09.6077509+08:00","gmt_modified":"2026-08-04T17:29:09.6077509+08:00"},{"id":1325,"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-04T17:29:09.6077509+08:00","gmt_modified":"2026-08-04T17:29:09.6077509+08:00"},{"id":1326,"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-04T17:29:09.6082814+08:00","gmt_modified":"2026-08-04T17:29:09.6082814+08:00"},{"id":1327,"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-04T17:29:09.6082814+08:00","gmt_modified":"2026-08-04T17:29:09.6082814+08:00"},{"id":1328,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"4b325dd0ffe965ccff6bc2e8acc431d6","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/PermissionResolver.java","gmt_create":"2026-08-04T17:29:09.6087881+08:00","gmt_modified":"2026-08-04T17:29:09.6087881+08:00"},{"id":1329,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"46bb7615dec0d0825cbcc4b846b93bf6","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/PermissionResolverImpl.java","gmt_create":"2026-08-04T17:29:09.6087881+08:00","gmt_modified":"2026-08-04T17:29:09.6087881+08:00"},{"id":1330,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"74123de2770c04a2d8a4787f177714fc","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/PermissionGrant.java","gmt_create":"2026-08-04T17:29:09.6087881+08:00","gmt_modified":"2026-08-04T17:29:09.6087881+08:00"},{"id":1331,"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-04T17:29:09.6093001+08:00","gmt_modified":"2026-08-04T17:29:09.6093001+08:00"},{"id":1332,"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-04T17:29:09.6093001+08:00","gmt_modified":"2026-08-04T17:29:09.6093001+08:00"},{"id":1333,"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-04T17:29:09.6098197+08:00","gmt_modified":"2026-08-04T17:29:09.6098197+08:00"},{"id":1334,"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-04T17:29:09.6098197+08:00","gmt_modified":"2026-08-04T17:29:09.6098197+08:00"},{"id":1335,"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-04T17:29:09.6103362+08:00","gmt_modified":"2026-08-04T17:29:09.6103362+08:00"},{"id":1336,"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-04T17:29:09.6108462+08:00","gmt_modified":"2026-08-04T17:29:09.6108462+08:00"},{"id":1337,"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-04T17:29:09.6108462+08:00","gmt_modified":"2026-08-04T17:29:09.6108462+08:00"},{"id":1338,"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-04T17:29:09.6113611+08:00","gmt_modified":"2026-08-04T17:29:09.6113611+08:00"},{"id":1339,"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-04T17:29:09.6113611+08:00","gmt_modified":"2026-08-04T17:29:09.6113611+08:00"},{"id":1340,"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-04T17:29:09.6118774+08:00","gmt_modified":"2026-08-04T17:29:09.6118774+08:00"},{"id":1341,"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-04T17:29:09.6123936+08:00","gmt_modified":"2026-08-04T17:29:09.6123936+08:00"},{"id":1342,"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-04T17:29:09.6123936+08:00","gmt_modified":"2026-08-04T17:29:09.6123936+08:00"},{"id":1343,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"e42a3afd007bd414adca430109ffa7f2","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/IResourceService.java","gmt_create":"2026-08-04T17:29:09.6129128+08:00","gmt_modified":"2026-08-04T17:29:09.6129128+08:00"},{"id":1344,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"145452b72cda2735ac97a690f2b5cbd9","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/ResourceServiceImpl.java","gmt_create":"2026-08-04T17:29:09.6129128+08:00","gmt_modified":"2026-08-04T17:29:09.6129128+08:00"},{"id":1345,"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-04T17:29:09.613433+08:00","gmt_modified":"2026-08-04T17:29:09.613433+08:00"},{"id":1346,"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-04T17:29:09.613433+08:00","gmt_modified":"2026-08-04T17:29:09.613433+08:00"},{"id":1347,"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-04T17:29:09.6139498+08:00","gmt_modified":"2026-08-04T17:29:09.6139498+08:00"},{"id":1348,"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-04T17:29:09.6139498+08:00","gmt_modified":"2026-08-04T17:29:09.6139498+08:00"},{"id":1349,"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-04T17:29:09.6144637+08:00","gmt_modified":"2026-08-04T17:29:09.6144637+08:00"},{"id":1350,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"d63e53ca9d76d8f81dd89d981569d9f3","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/ResourceNode.java","gmt_create":"2026-08-04T17:29:09.6144637+08:00","gmt_modified":"2026-08-04T17:29:09.6144637+08:00"},{"id":1351,"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-04T17:29:09.6149776+08:00","gmt_modified":"2026-08-04T17:29:09.6149776+08:00"},{"id":1352,"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-04T17:29:09.6149776+08:00","gmt_modified":"2026-08-04T17:29:09.6149776+08:00"},{"id":1353,"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-04T17:29:09.6154909+08:00","gmt_modified":"2026-08-04T17:29:09.6154909+08:00"},{"id":1354,"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-04T17:29:09.616005+08:00","gmt_modified":"2026-08-04T17:29:09.616005+08:00"},{"id":1355,"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-04T17:29:09.6165165+08:00","gmt_modified":"2026-08-04T17:29:09.6165165+08:00"},{"id":1356,"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-04T17:29:09.6165165+08:00","gmt_modified":"2026-08-04T17:29:09.6165165+08:00"},{"id":1357,"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-04T17:29:09.6170254+08:00","gmt_modified":"2026-08-04T17:29:09.6170254+08:00"},{"id":1358,"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-04T17:29:09.6170254+08:00","gmt_modified":"2026-08-04T17:29:09.6170254+08:00"},{"id":1359,"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-04T17:29:09.6175353+08:00","gmt_modified":"2026-08-04T17:29:09.6175353+08:00"},{"id":1360,"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-04T17:29:09.618047+08:00","gmt_modified":"2026-08-04T17:29:09.618047+08:00"},{"id":1361,"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-04T17:29:09.618047+08:00","gmt_modified":"2026-08-04T17:29:09.618047+08:00"},{"id":1362,"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-04T17:29:09.6185722+08:00","gmt_modified":"2026-08-04T17:29:09.6185722+08:00"},{"id":1363,"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-04T17:29:09.6185722+08:00","gmt_modified":"2026-08-04T17:29:09.6185722+08:00"},{"id":1364,"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-04T17:29:09.6190832+08:00","gmt_modified":"2026-08-04T17:29:09.6190832+08:00"},{"id":1365,"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-04T17:29:09.6190832+08:00","gmt_modified":"2026-08-04T17:29:09.6190832+08:00"},{"id":1366,"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-04T17:29:09.6195943+08:00","gmt_modified":"2026-08-04T17:29:09.6195943+08:00"},{"id":1367,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"01c3b61921ce0cdb4028d7335ad82908","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/api/FileApi.java","gmt_create":"2026-08-04T17:29:09.6195943+08:00","gmt_modified":"2026-08-04T17:29:09.6195943+08:00"},{"id":1368,"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-04T17:29:09.6201067+08:00","gmt_modified":"2026-08-04T17:29:09.6201067+08:00"},{"id":1369,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","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-04T17:29:09.6201067+08:00","gmt_modified":"2026-08-04T17:29:09.6201067+08:00"},{"id":1370,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","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-04T17:29:09.6206201+08:00","gmt_modified":"2026-08-04T17:29:09.6206201+08:00"},{"id":1371,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","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-04T17:29:09.6206201+08:00","gmt_modified":"2026-08-04T17:29:09.6206201+08:00"},{"id":1372,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"0415a1cb895b4930fc134a552eb7fcd9","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/PermissionResolver.java#16-35","gmt_create":"2026-08-04T17:29:09.6206201+08:00","gmt_modified":"2026-08-04T17:29:09.6206201+08:00"},{"id":1373,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"a5d94bb70272c22b15814a900046743e","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/PermissionResolverImpl.java#39-139","gmt_create":"2026-08-04T17:29:09.6206201+08:00","gmt_modified":"2026-08-04T17:29:09.6206201+08:00"},{"id":1374,"source_id":"46bb7615dec0d0825cbcc4b846b93bf6","target_id":"a5d94bb70272c22b15814a900046743e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 39-139","gmt_create":"2026-08-04T17:29:09.6206201+08:00","gmt_modified":"2026-08-04T17:29:09.6216093+08:00"},{"id":1375,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"de8131647b7f08746c909c1fdda7ae19","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/PermissionGrant.java#23-67","gmt_create":"2026-08-04T17:29:09.6216093+08:00","gmt_modified":"2026-08-04T17:29:09.6216093+08:00"},{"id":1376,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"e2830d81d6e28aed10dccc2713cc2d1b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: crm-auth/src/main/java/com/crm/auth/controller/ResourceController.java#1-48","gmt_create":"2026-08-04T17:29:09.6216093+08:00","gmt_modified":"2026-08-04T17:29:09.6216093+08:00"},{"id":1377,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"45bf77ddaa679acca8c5535083b5945c","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/ResourceServiceImpl.java#1-262","gmt_create":"2026-08-04T17:29:09.6216093+08:00","gmt_modified":"2026-08-04T17:29:09.6216093+08:00"},{"id":1378,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"8db96ae3b010284910f8431c1c2367f0","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/IResourceService.java#1-26","gmt_create":"2026-08-04T17:29:09.6226075+08:00","gmt_modified":"2026-08-04T17:29:09.6226075+08:00"},{"id":1379,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"9488e996384d45f67488bdccc4e0f0b6","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/dto/ResourceNode.java#1-80","gmt_create":"2026-08-04T17:29:09.6226075+08:00","gmt_modified":"2026-08-04T17:29:09.6226075+08:00"},{"id":1380,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"57d5a8ab851652a3705c29fe5c19864f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: crm-file/src/main/java/com/crm/file/api/FileApi.java#1-106","gmt_create":"2026-08-04T17:29:09.6231133+08:00","gmt_modified":"2026-08-04T17:29:09.6231133+08:00"},{"id":1381,"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-04T17:29:11.0459725+08:00","gmt_modified":"2026-08-04T17:29:11.0459725+08:00"},{"id":1382,"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-04T17:29:11.0490299+08:00","gmt_modified":"2026-08-04T17:29:11.0490299+08:00"},{"id":1384,"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-04T17:29:11.0500278+08:00","gmt_modified":"2026-08-04T17:29:11.0500278+08:00"},{"id":1386,"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-04T17:29:11.0500278+08:00","gmt_modified":"2026-08-04T17:29:11.0500278+08:00"},{"id":1387,"source_id":"58cd732e-1dad-4901-ad9e-e4361eb7c8a9","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-04T17:57:13.4010798+08:00","gmt_modified":"2026-08-04T17:57:13.4010798+08:00"},{"id":1388,"source_id":"58cd732e-1dad-4901-ad9e-e4361eb7c8a9","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-04T17:57:13.4015931+08:00","gmt_modified":"2026-08-04T17:57:13.4015931+08:00"},{"id":1389,"source_id":"58cd732e-1dad-4901-ad9e-e4361eb7c8a9","target_id":"91ab5af5f40c9f910746f8c5c7825100","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/ApiPermissionCache.java","gmt_create":"2026-08-04T17:57:13.4015931+08:00","gmt_modified":"2026-08-04T17:57:13.4015931+08:00"},{"id":1390,"source_id":"58cd732e-1dad-4901-ad9e-e4361eb7c8a9","target_id":"46667b5e631f28a6dd940cfc171debf2","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/ApiPermissionInterceptor.java","gmt_create":"2026-08-04T17:57:13.4015931+08:00","gmt_modified":"2026-08-04T17:57:13.4015931+08:00"},{"id":1391,"source_id":"58cd732e-1dad-4901-ad9e-e4361eb7c8a9","target_id":"1c8f46373fde157638a9331bc5ac12f1","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/ApiPermissionRule.java","gmt_create":"2026-08-04T17:57:13.4021049+08:00","gmt_modified":"2026-08-04T17:57:13.4021049+08:00"},{"id":1392,"source_id":"58cd732e-1dad-4901-ad9e-e4361eb7c8a9","target_id":"145452b72cda2735ac97a690f2b5cbd9","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/ResourceServiceImpl.java","gmt_create":"2026-08-04T17:57:13.4026151+08:00","gmt_modified":"2026-08-04T17:57:13.4026151+08:00"},{"id":1393,"source_id":"58cd732e-1dad-4901-ad9e-e4361eb7c8a9","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-04T17:57:13.4026151+08:00","gmt_modified":"2026-08-04T17:57:13.4026151+08:00"},{"id":1394,"source_id":"58cd732e-1dad-4901-ad9e-e4361eb7c8a9","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-04T17:57:13.4031241+08:00","gmt_modified":"2026-08-04T17:57:13.4031241+08:00"},{"id":1395,"source_id":"58cd732e-1dad-4901-ad9e-e4361eb7c8a9","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-04T17:57:13.4036335+08:00","gmt_modified":"2026-08-04T17:57:13.4036335+08:00"},{"id":1396,"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-04T17:58:25.09386+08:00","gmt_modified":"2026-08-04T17:58:25.09386+08:00"},{"id":1397,"source_id":"84b6fa9b-8bb5-4a1c-9709-23f2e18a78be","target_id":"3d68f400d8919945b4f8a1aff4375e39","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/WebMvcConfig.java","gmt_create":"2026-08-04T17:58:25.09437+08:00","gmt_modified":"2026-08-04T17:58:25.09437+08:00"},{"id":1398,"source_id":"84b6fa9b-8bb5-4a1c-9709-23f2e18a78be","target_id":"46667b5e631f28a6dd940cfc171debf2","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/ApiPermissionInterceptor.java","gmt_create":"2026-08-04T17:58:25.0949486+08:00","gmt_modified":"2026-08-04T17:58:25.0949486+08:00"},{"id":1399,"source_id":"84b6fa9b-8bb5-4a1c-9709-23f2e18a78be","target_id":"91ab5af5f40c9f910746f8c5c7825100","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/ApiPermissionCache.java","gmt_create":"2026-08-04T17:58:25.0949486+08:00","gmt_modified":"2026-08-04T17:58:25.0949486+08:00"},{"id":1400,"source_id":"84b6fa9b-8bb5-4a1c-9709-23f2e18a78be","target_id":"1c8f46373fde157638a9331bc5ac12f1","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/ApiPermissionRule.java","gmt_create":"2026-08-04T17:58:25.0954836+08:00","gmt_modified":"2026-08-04T17:58:25.0954836+08:00"},{"id":1401,"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-04T17:58:25.0960058+08:00","gmt_modified":"2026-08-04T17:58:25.0960058+08:00"},{"id":1402,"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-04T17:58:25.0965238+08:00","gmt_modified":"2026-08-04T17:58:25.0965238+08:00"},{"id":1403,"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-04T17:58:25.0965238+08:00","gmt_modified":"2026-08-04T17:58:25.0965238+08:00"},{"id":1404,"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-04T17:58:25.0970383+08:00","gmt_modified":"2026-08-04T17:58:25.0970383+08:00"},{"id":1405,"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-04T17:58:25.0975491+08:00","gmt_modified":"2026-08-04T17:58:25.0975491+08:00"},{"id":1406,"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-04T17:58:25.0975491+08:00","gmt_modified":"2026-08-04T17:58:25.0975491+08:00"},{"id":1407,"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-04T17:58:25.0980576+08:00","gmt_modified":"2026-08-04T17:58:25.0980576+08:00"},{"id":1408,"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-04T17:58:25.0985715+08:00","gmt_modified":"2026-08-04T17:58:25.0985715+08:00"},{"id":1409,"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-04T17:58:25.0985715+08:00","gmt_modified":"2026-08-04T17:58:25.0985715+08:00"},{"id":1410,"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-04T17:58:25.0996741+08:00","gmt_modified":"2026-08-04T17:58:25.0996741+08:00"},{"id":1411,"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-04T17:58:25.1001922+08:00","gmt_modified":"2026-08-04T17:58:25.1001922+08:00"},{"id":1412,"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-04T17:58:25.1007072+08:00","gmt_modified":"2026-08-04T17:58:25.1007072+08:00"},{"id":1413,"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-04T17:58:25.1007072+08:00","gmt_modified":"2026-08-04T17:58:25.1007072+08:00"},{"id":1414,"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-04T17:58:25.1017547+08:00","gmt_modified":"2026-08-04T17:58:25.1017547+08:00"},{"id":1415,"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-04T17:58:25.1022754+08:00","gmt_modified":"2026-08-04T17:58:25.1022754+08:00"},{"id":1416,"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-04T17:58:25.1022754+08:00","gmt_modified":"2026-08-04T17:58:25.1022754+08:00"},{"id":1417,"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-04T17:58:25.1027856+08:00","gmt_modified":"2026-08-04T17:58:25.1027856+08:00"},{"id":1418,"source_id":"84b6fa9b-8bb5-4a1c-9709-23f2e18a78be","target_id":"197b55f1b7d7d1be28b124897acfa1eb","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/ResourceController.java","gmt_create":"2026-08-04T17:58:25.1027856+08:00","gmt_modified":"2026-08-04T17:58:25.1027856+08:00"},{"id":1419,"source_id":"84b6fa9b-8bb5-4a1c-9709-23f2e18a78be","target_id":"e42a3afd007bd414adca430109ffa7f2","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/IResourceService.java","gmt_create":"2026-08-04T17:58:25.1032958+08:00","gmt_modified":"2026-08-04T17:58:25.1032958+08:00"},{"id":1420,"source_id":"84b6fa9b-8bb5-4a1c-9709-23f2e18a78be","target_id":"145452b72cda2735ac97a690f2b5cbd9","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/ResourceServiceImpl.java","gmt_create":"2026-08-04T17:58:25.1032958+08:00","gmt_modified":"2026-08-04T17:58:25.1032958+08:00"},{"id":1421,"source_id":"84b6fa9b-8bb5-4a1c-9709-23f2e18a78be","target_id":"d63e53ca9d76d8f81dd89d981569d9f3","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/ResourceNode.java","gmt_create":"2026-08-04T17:58:25.1032958+08:00","gmt_modified":"2026-08-04T17:58:25.1032958+08:00"},{"id":1422,"source_id":"84b6fa9b-8bb5-4a1c-9709-23f2e18a78be","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-04T17:58:25.1042872+08:00","gmt_modified":"2026-08-04T17:58:25.1042872+08:00"},{"id":1423,"source_id":"84b6fa9b-8bb5-4a1c-9709-23f2e18a78be","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-04T17:58:25.1042872+08:00","gmt_modified":"2026-08-04T17:58:25.1042872+08:00"},{"id":1424,"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-04T17:58:25.1042872+08:00","gmt_modified":"2026-08-04T17:58:25.1042872+08:00"},{"id":1425,"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-04T17:58:25.1052844+08:00","gmt_modified":"2026-08-04T17:58:25.1052844+08:00"},{"id":1426,"source_id":"84b6fa9b-8bb5-4a1c-9709-23f2e18a78be","target_id":"4b325dd0ffe965ccff6bc2e8acc431d6","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/PermissionResolver.java","gmt_create":"2026-08-04T17:58:25.1052844+08:00","gmt_modified":"2026-08-04T17:58:25.1052844+08:00"},{"id":1427,"source_id":"84b6fa9b-8bb5-4a1c-9709-23f2e18a78be","target_id":"46bb7615dec0d0825cbcc4b846b93bf6","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/PermissionResolverImpl.java","gmt_create":"2026-08-04T17:58:25.1052844+08:00","gmt_modified":"2026-08-04T17:58:25.1052844+08:00"},{"id":1428,"source_id":"84b6fa9b-8bb5-4a1c-9709-23f2e18a78be","target_id":"74123de2770c04a2d8a4787f177714fc","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/PermissionGrant.java","gmt_create":"2026-08-04T17:58:25.1062818+08:00","gmt_modified":"2026-08-04T17:58:25.1062818+08:00"},{"id":1429,"source_id":"a7c8e7fb-dd50-4d48-8e97-53abb3d8e2be","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-04T17:58:26.7989682+08:00","gmt_modified":"2026-08-04T17:58:26.7989682+08:00"},{"id":1430,"source_id":"a7c8e7fb-dd50-4d48-8e97-53abb3d8e2be","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-04T17:58:26.7995235+08:00","gmt_modified":"2026-08-04T17:58:26.7995235+08:00"},{"id":1431,"source_id":"a7c8e7fb-dd50-4d48-8e97-53abb3d8e2be","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-04T17:58:26.8006373+08:00","gmt_modified":"2026-08-04T17:58:26.8006373+08:00"},{"id":1432,"source_id":"a7c8e7fb-dd50-4d48-8e97-53abb3d8e2be","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-04T17:58:26.8011523+08:00","gmt_modified":"2026-08-04T17:58:26.8011523+08:00"},{"id":1433,"source_id":"a7c8e7fb-dd50-4d48-8e97-53abb3d8e2be","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-04T17:58:26.8016667+08:00","gmt_modified":"2026-08-04T17:58:26.8016667+08:00"},{"id":1434,"source_id":"a7c8e7fb-dd50-4d48-8e97-53abb3d8e2be","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-04T17:58:26.8016667+08:00","gmt_modified":"2026-08-04T17:58:26.8016667+08:00"},{"id":1435,"source_id":"a7c8e7fb-dd50-4d48-8e97-53abb3d8e2be","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-04T17:58:26.8021806+08:00","gmt_modified":"2026-08-04T17:58:26.8021806+08:00"},{"id":1436,"source_id":"a7c8e7fb-dd50-4d48-8e97-53abb3d8e2be","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-04T17:58:26.8027017+08:00","gmt_modified":"2026-08-04T17:58:26.8027017+08:00"},{"id":1437,"source_id":"a7c8e7fb-dd50-4d48-8e97-53abb3d8e2be","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-04T17:58:26.8027017+08:00","gmt_modified":"2026-08-04T17:58:26.8027017+08:00"},{"id":1438,"source_id":"a7c8e7fb-dd50-4d48-8e97-53abb3d8e2be","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-04T17:58:26.8032123+08:00","gmt_modified":"2026-08-04T17:58:26.8032123+08:00"},{"id":1439,"source_id":"a7c8e7fb-dd50-4d48-8e97-53abb3d8e2be","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-04T17:58:26.8037219+08:00","gmt_modified":"2026-08-04T17:58:26.8037219+08:00"},{"id":1440,"source_id":"a7c8e7fb-dd50-4d48-8e97-53abb3d8e2be","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-04T17:58:26.8037219+08:00","gmt_modified":"2026-08-04T17:58:26.8037219+08:00"},{"id":1441,"source_id":"a7c8e7fb-dd50-4d48-8e97-53abb3d8e2be","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-04T17:58:26.8042308+08:00","gmt_modified":"2026-08-04T17:58:26.8042308+08:00"},{"id":1442,"source_id":"a7c8e7fb-dd50-4d48-8e97-53abb3d8e2be","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-04T17:58:26.8047466+08:00","gmt_modified":"2026-08-04T17:58:26.8047466+08:00"},{"id":1443,"source_id":"a7c8e7fb-dd50-4d48-8e97-53abb3d8e2be","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-04T17:58:26.8047466+08:00","gmt_modified":"2026-08-04T17:58:26.8047466+08:00"},{"id":1444,"source_id":"a7c8e7fb-dd50-4d48-8e97-53abb3d8e2be","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-04T17:58:26.8052566+08:00","gmt_modified":"2026-08-04T17:58:26.8052566+08:00"},{"id":1445,"source_id":"a7c8e7fb-dd50-4d48-8e97-53abb3d8e2be","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-04T17:58:26.8057677+08:00","gmt_modified":"2026-08-04T17:58:26.8057677+08:00"},{"id":1446,"source_id":"a7c8e7fb-dd50-4d48-8e97-53abb3d8e2be","target_id":"f648b675f6acc57fd1e4fe32e9a205c4","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/MenuType.java","gmt_create":"2026-08-04T17:58:26.8057677+08:00","gmt_modified":"2026-08-04T17:58:26.8057677+08:00"},{"id":1447,"source_id":"a7c8e7fb-dd50-4d48-8e97-53abb3d8e2be","target_id":"d63e53ca9d76d8f81dd89d981569d9f3","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/ResourceNode.java","gmt_create":"2026-08-04T17:58:26.806277+08:00","gmt_modified":"2026-08-04T17:58:26.806277+08:00"},{"id":1448,"source_id":"a7c8e7fb-dd50-4d48-8e97-53abb3d8e2be","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-04T17:58:26.806785+08:00","gmt_modified":"2026-08-04T17:58:26.806785+08:00"},{"id":1478,"source_id":"46667b5e631f28a6dd940cfc171debf2","target_id":"c7ff1beb76c7878f41399e8a37963bf9","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 32-82","gmt_create":"2026-08-04T17:58:44.2171659+08:00","gmt_modified":"2026-08-04T17:58:44.2171659+08:00"},{"id":1480,"source_id":"91ab5af5f40c9f910746f8c5c7825100","target_id":"c59878733ad9e7cf774fd82979f42d25","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 25-65","gmt_create":"2026-08-04T17:58:44.2181632+08:00","gmt_modified":"2026-08-04T17:58:44.2181632+08:00"},{"id":1486,"source_id":"46667b5e631f28a6dd940cfc171debf2","target_id":"e8680ff04a8988d52062654d16035cfd","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 38-80","gmt_create":"2026-08-04T17:58:44.21916+08:00","gmt_modified":"2026-08-04T17:58:44.21916+08:00"},{"id":1489,"source_id":"91ab5af5f40c9f910746f8c5c7825100","target_id":"81b3ed8cea65cbbd40a26d546b96aa3a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 37-63","gmt_create":"2026-08-04T17:58:44.2380265+08:00","gmt_modified":"2026-08-04T17:58:44.2380265+08:00"},{"id":1491,"source_id":"1c8f46373fde157638a9331bc5ac12f1","target_id":"c191f80770cdfbd42d079b477b9ef1c6","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 9","gmt_create":"2026-08-04T17:58:44.2385372+08:00","gmt_modified":"2026-08-04T17:58:44.2385372+08:00"},{"id":1493,"source_id":"3d68f400d8919945b4f8a1aff4375e39","target_id":"fda4a55656a04a4bafb61c25479a6f61","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 19-23","gmt_create":"2026-08-04T17:58:44.2390465+08:00","gmt_modified":"2026-08-04T17:58:44.2390465+08:00"},{"id":1496,"source_id":"5725c122fbf467925192bf42403e7787","target_id":"e4e1f9c3df14c385331f03cd7f1d7bd7","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 98-111","gmt_create":"2026-08-04T17:58:44.2400686+08:00","gmt_modified":"2026-08-04T17:58:44.2400686+08:00"},{"id":1498,"source_id":"5725c122fbf467925192bf42403e7787","target_id":"2f06083130bf64ee2a878837250ee2af","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 117-139","gmt_create":"2026-08-04T17:58:44.2405787+08:00","gmt_modified":"2026-08-04T17:58:44.2405787+08:00"},{"id":1503,"source_id":"145452b72cda2735ac97a690f2b5cbd9","target_id":"7af9f92dea6c03cc1cacc7868fddf4f2","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 55-97","gmt_create":"2026-08-04T17:58:44.2421146+08:00","gmt_modified":"2026-08-04T17:58:44.2421146+08:00"},{"id":1529,"source_id":"145452b72cda2735ac97a690f2b5cbd9","target_id":"676a386c8ae96ff7ed07a984816d5c22","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 174-202","gmt_create":"2026-08-04T17:58:44.2513902+08:00","gmt_modified":"2026-08-04T17:58:44.2513902+08:00"},{"id":1532,"source_id":"145452b72cda2735ac97a690f2b5cbd9","target_id":"0e411be361bec3bcaa87f1cbec364743","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 243-246","gmt_create":"2026-08-04T17:58:44.2524239+08:00","gmt_modified":"2026-08-04T17:58:44.2524239+08:00"},{"id":1539,"source_id":"f69d5d81-5661-4100-89e4-c6b0ebf7189f","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-04T17:59:25.1731342+08:00","gmt_modified":"2026-08-04T17:59:25.1731342+08:00"},{"id":1540,"source_id":"f69d5d81-5661-4100-89e4-c6b0ebf7189f","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-04T17:59:25.1731342+08:00","gmt_modified":"2026-08-04T17:59:25.1731342+08:00"},{"id":1541,"source_id":"f69d5d81-5661-4100-89e4-c6b0ebf7189f","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-04T17:59:25.1731342+08:00","gmt_modified":"2026-08-04T17:59:25.1731342+08:00"},{"id":1542,"source_id":"f69d5d81-5661-4100-89e4-c6b0ebf7189f","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-04T17:59:25.1736432+08:00","gmt_modified":"2026-08-04T17:59:25.1736432+08:00"},{"id":1543,"source_id":"f69d5d81-5661-4100-89e4-c6b0ebf7189f","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-04T17:59:25.1736432+08:00","gmt_modified":"2026-08-04T17:59:25.1736432+08:00"},{"id":1544,"source_id":"f69d5d81-5661-4100-89e4-c6b0ebf7189f","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-04T17:59:25.1736432+08:00","gmt_modified":"2026-08-04T17:59:25.1736432+08:00"},{"id":1545,"source_id":"f69d5d81-5661-4100-89e4-c6b0ebf7189f","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-04T17:59:25.1741533+08:00","gmt_modified":"2026-08-04T17:59:25.1741533+08:00"},{"id":1546,"source_id":"f69d5d81-5661-4100-89e4-c6b0ebf7189f","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-04T17:59:25.1741533+08:00","gmt_modified":"2026-08-04T17:59:25.1741533+08:00"},{"id":1547,"source_id":"f69d5d81-5661-4100-89e4-c6b0ebf7189f","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-04T17:59:25.1746623+08:00","gmt_modified":"2026-08-04T17:59:25.1746623+08:00"},{"id":1548,"source_id":"f69d5d81-5661-4100-89e4-c6b0ebf7189f","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-04T17:59:25.1746623+08:00","gmt_modified":"2026-08-04T17:59:25.1746623+08:00"},{"id":1549,"source_id":"f69d5d81-5661-4100-89e4-c6b0ebf7189f","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-04T17:59:25.1751751+08:00","gmt_modified":"2026-08-04T17:59:25.1751751+08:00"},{"id":1550,"source_id":"f69d5d81-5661-4100-89e4-c6b0ebf7189f","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-04T17:59:25.1751751+08:00","gmt_modified":"2026-08-04T17:59:25.1751751+08:00"},{"id":1551,"source_id":"f69d5d81-5661-4100-89e4-c6b0ebf7189f","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-04T17:59:25.1751751+08:00","gmt_modified":"2026-08-04T17:59:25.1751751+08:00"},{"id":1552,"source_id":"f69d5d81-5661-4100-89e4-c6b0ebf7189f","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-04T17:59:25.1756901+08:00","gmt_modified":"2026-08-04T17:59:25.1756901+08:00"},{"id":1553,"source_id":"f69d5d81-5661-4100-89e4-c6b0ebf7189f","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-04T17:59:25.1756901+08:00","gmt_modified":"2026-08-04T17:59:25.1756901+08:00"},{"id":1554,"source_id":"f69d5d81-5661-4100-89e4-c6b0ebf7189f","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-04T17:59:25.1762005+08:00","gmt_modified":"2026-08-04T17:59:25.1762005+08:00"},{"id":1555,"source_id":"f69d5d81-5661-4100-89e4-c6b0ebf7189f","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-04T17:59:25.1762005+08:00","gmt_modified":"2026-08-04T17:59:25.1762005+08:00"},{"id":1556,"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-04T18:00:49.8183986+08:00","gmt_modified":"2026-08-04T18:00:49.8183986+08:00"},{"id":1557,"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-04T18:00:49.8194299+08:00","gmt_modified":"2026-08-04T18:00:49.8194299+08:00"},{"id":1559,"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-04T18:00:49.8284237+08:00","gmt_modified":"2026-08-04T18:00:49.8284237+08:00"},{"id":1560,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"4ae9c818-bd2f-4a7f-97cc-304ce5757574","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 4c74b943-94bc-46c7-b16a-e33abc3af2c4 -\u003e 4ae9c818-bd2f-4a7f-97cc-304ce5757574","gmt_create":"2026-08-04T18:00:49.8284237+08:00","gmt_modified":"2026-08-04T18:00:49.8284237+08:00"},{"id":1561,"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-04T18:00:49.8294406+08:00","gmt_modified":"2026-08-04T18:00:49.8294406+08:00"},{"id":1563,"source_id":"b4071322-5dbe-4e72-83d0-f500f65a4f17","target_id":"443c00696b8cf69bb4c73995c949f40d","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/RoleController.java","gmt_create":"2026-08-05T12:33:48.8159617+08:00","gmt_modified":"2026-08-05T12:33:48.8159617+08:00"},{"id":1564,"source_id":"b4071322-5dbe-4e72-83d0-f500f65a4f17","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-05T12:33:48.8164702+08:00","gmt_modified":"2026-08-05T12:33:48.8164702+08:00"},{"id":1565,"source_id":"b4071322-5dbe-4e72-83d0-f500f65a4f17","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-05T12:33:48.8164702+08:00","gmt_modified":"2026-08-05T12:33:48.8164702+08:00"},{"id":1566,"source_id":"b4071322-5dbe-4e72-83d0-f500f65a4f17","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-05T12:33:48.8169784+08:00","gmt_modified":"2026-08-05T12:33:48.8169784+08:00"},{"id":1567,"source_id":"b4071322-5dbe-4e72-83d0-f500f65a4f17","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-05T12:33:48.8169784+08:00","gmt_modified":"2026-08-05T12:33:48.8169784+08:00"},{"id":1568,"source_id":"b4071322-5dbe-4e72-83d0-f500f65a4f17","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-05T12:33:48.8174901+08:00","gmt_modified":"2026-08-05T12:33:48.8174901+08:00"},{"id":1569,"source_id":"b4071322-5dbe-4e72-83d0-f500f65a4f17","target_id":"34070e2c4487d700b9aae2fc036dcced","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/RoleDetailVO.java","gmt_create":"2026-08-05T12:33:48.8174901+08:00","gmt_modified":"2026-08-05T12:33:48.8174901+08:00"},{"id":1570,"source_id":"b4071322-5dbe-4e72-83d0-f500f65a4f17","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-05T12:33:48.8174901+08:00","gmt_modified":"2026-08-05T12:33:48.8174901+08:00"},{"id":1571,"source_id":"b4071322-5dbe-4e72-83d0-f500f65a4f17","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-05T12:33:48.8179997+08:00","gmt_modified":"2026-08-05T12:33:48.8179997+08:00"},{"id":1572,"source_id":"b4071322-5dbe-4e72-83d0-f500f65a4f17","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-05T12:33:48.8179997+08:00","gmt_modified":"2026-08-05T12:33:48.8179997+08:00"},{"id":1573,"source_id":"b4071322-5dbe-4e72-83d0-f500f65a4f17","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-05T12:33:48.8179997+08:00","gmt_modified":"2026-08-05T12:33:48.8179997+08:00"},{"id":1574,"source_id":"b4071322-5dbe-4e72-83d0-f500f65a4f17","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-05T12:33:48.818511+08:00","gmt_modified":"2026-08-05T12:33:48.818511+08:00"},{"id":1575,"source_id":"b4071322-5dbe-4e72-83d0-f500f65a4f17","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-05T12:33:48.818511+08:00","gmt_modified":"2026-08-05T12:33:48.818511+08:00"},{"id":1576,"source_id":"b4071322-5dbe-4e72-83d0-f500f65a4f17","target_id":"d69b837e582d5569a7b66e11580aff38","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: docs/adr/0012-role-management-architecture.md","gmt_create":"2026-08-05T12:33:48.818511+08:00","gmt_modified":"2026-08-05T12:33:48.818511+08:00"},{"id":1577,"source_id":"b4071322-5dbe-4e72-83d0-f500f65a4f17","target_id":"fe2b7c626178194ac3902aff308e602c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: crm-auth/src/main/java/com/crm/auth/controller/RoleController.java#1-98","gmt_create":"2026-08-05T12:33:48.8190192+08:00","gmt_modified":"2026-08-05T12:33:48.8190192+08:00"},{"id":1578,"source_id":"443c00696b8cf69bb4c73995c949f40d","target_id":"fe2b7c626178194ac3902aff308e602c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-98","gmt_create":"2026-08-05T12:33:48.8190192+08:00","gmt_modified":"2026-08-05T12:33:48.8190192+08:00"},{"id":1579,"source_id":"b4071322-5dbe-4e72-83d0-f500f65a4f17","target_id":"cec4b333c23562375f8ba726ff8e33d4","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/ISysRoleService.java#1-43","gmt_create":"2026-08-05T12:33:48.8196085+08:00","gmt_modified":"2026-08-05T12:33:48.8196085+08:00"},{"id":1580,"source_id":"8a7bb9534d7381df886b1a476664b902","target_id":"cec4b333c23562375f8ba726ff8e33d4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-43","gmt_create":"2026-08-05T12:33:48.8196085+08:00","gmt_modified":"2026-08-05T12:33:48.8196085+08:00"},{"id":1581,"source_id":"b4071322-5dbe-4e72-83d0-f500f65a4f17","target_id":"0258e4223cc6ad38e6889a0dbe4226f4","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-137","gmt_create":"2026-08-05T12:33:48.8201381+08:00","gmt_modified":"2026-08-05T12:33:48.8201381+08:00"},{"id":1582,"source_id":"435000e19b9da20904d5764f4f2352c5","target_id":"0258e4223cc6ad38e6889a0dbe4226f4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-137","gmt_create":"2026-08-05T12:33:48.8201381+08:00","gmt_modified":"2026-08-05T12:33:48.8201381+08:00"},{"id":1583,"source_id":"b4071322-5dbe-4e72-83d0-f500f65a4f17","target_id":"b0e4bf2cdfbf64b762ff202adf131edb","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-41","gmt_create":"2026-08-05T12:33:48.8206518+08:00","gmt_modified":"2026-08-05T12:33:48.8206518+08:00"},{"id":1584,"source_id":"5da86b8d801192fd63ea6aa57b666057","target_id":"b0e4bf2cdfbf64b762ff202adf131edb","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-41","gmt_create":"2026-08-05T12:33:48.8206518+08:00","gmt_modified":"2026-08-05T12:33:48.8206518+08:00"},{"id":1585,"source_id":"b4071322-5dbe-4e72-83d0-f500f65a4f17","target_id":"f8cfac232dc38f8f3198444a305761ef","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-31","gmt_create":"2026-08-05T12:33:48.8211657+08:00","gmt_modified":"2026-08-05T12:33:48.8211657+08:00"},{"id":1586,"source_id":"20f7693b186c4e003d04031dafd605b5","target_id":"f8cfac232dc38f8f3198444a305761ef","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-31","gmt_create":"2026-08-05T12:33:48.8211657+08:00","gmt_modified":"2026-08-05T12:33:48.8211657+08:00"},{"id":1587,"source_id":"b4071322-5dbe-4e72-83d0-f500f65a4f17","target_id":"d1e517ee862539fcf0ee0b7bed6c3189","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-31","gmt_create":"2026-08-05T12:33:48.821674+08:00","gmt_modified":"2026-08-05T12:33:48.821674+08:00"},{"id":1588,"source_id":"aea6b84411302cc9a5fbcaf774ac6a29","target_id":"d1e517ee862539fcf0ee0b7bed6c3189","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-31","gmt_create":"2026-08-05T12:33:48.821674+08:00","gmt_modified":"2026-08-05T12:33:48.821674+08:00"},{"id":1589,"source_id":"b4071322-5dbe-4e72-83d0-f500f65a4f17","target_id":"3e766fa579578b179ce86668688a696e","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/dto/RoleDetailVO.java#1-61","gmt_create":"2026-08-05T12:33:48.8221851+08:00","gmt_modified":"2026-08-05T12:33:48.8221851+08:00"},{"id":1590,"source_id":"34070e2c4487d700b9aae2fc036dcced","target_id":"3e766fa579578b179ce86668688a696e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-61","gmt_create":"2026-08-05T12:33:48.8221851+08:00","gmt_modified":"2026-08-05T12:33:48.8221851+08:00"},{"id":1591,"source_id":"b4071322-5dbe-4e72-83d0-f500f65a4f17","target_id":"07a8887f4e7fde1c73077d609aa10f43","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: crm-auth/src/main/java/com/crm/auth/mapper/SysRoleMapper.java#1-10","gmt_create":"2026-08-05T12:33:48.8226992+08:00","gmt_modified":"2026-08-05T12:33:48.8226992+08:00"},{"id":1592,"source_id":"38d9b83ff8f46a8113aa787616b2f802","target_id":"07a8887f4e7fde1c73077d609aa10f43","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-10","gmt_create":"2026-08-05T12:33:48.8226992+08:00","gmt_modified":"2026-08-05T12:33:48.8226992+08:00"},{"id":1593,"source_id":"b4071322-5dbe-4e72-83d0-f500f65a4f17","target_id":"46567007ceb2af56690cfffb5ef3c61a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: crm-auth/src/main/java/com/crm/auth/mapper/SysRoleMenuMapper.java#1-10","gmt_create":"2026-08-05T12:33:48.8232133+08:00","gmt_modified":"2026-08-05T12:33:48.8232133+08:00"},{"id":1594,"source_id":"eb41d1eb6dbcb66d966ca3b557af45d3","target_id":"46567007ceb2af56690cfffb5ef3c61a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-10","gmt_create":"2026-08-05T12:33:48.8232133+08:00","gmt_modified":"2026-08-05T12:33:48.8232133+08:00"},{"id":1595,"source_id":"b4071322-5dbe-4e72-83d0-f500f65a4f17","target_id":"14203855e6a38089b8bcec9e06c6e5ed","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: crm-auth/src/main/java/com/crm/auth/mapper/SysUserRoleMapper.java#1-10","gmt_create":"2026-08-05T12:33:48.8237268+08:00","gmt_modified":"2026-08-05T12:33:48.8237268+08:00"},{"id":1596,"source_id":"30ac7fd632012faca8156feaa071ff46","target_id":"14203855e6a38089b8bcec9e06c6e5ed","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-10","gmt_create":"2026-08-05T12:33:48.8237268+08:00","gmt_modified":"2026-08-05T12:33:48.8237268+08:00"},{"id":1597,"source_id":"b4071322-5dbe-4e72-83d0-f500f65a4f17","target_id":"f21526f799560a3243f63662d5312c4a","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-159","gmt_create":"2026-08-05T12:33:48.8237268+08:00","gmt_modified":"2026-08-05T12:33:48.8237268+08:00"},{"id":1598,"source_id":"4194d46035c0037d3488ab82e57001ba","target_id":"f21526f799560a3243f63662d5312c4a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-159","gmt_create":"2026-08-05T12:33:48.8242387+08:00","gmt_modified":"2026-08-05T12:33:48.8242387+08:00"},{"id":1599,"source_id":"b4071322-5dbe-4e72-83d0-f500f65a4f17","target_id":"d5ba78cb63ff66928528f5216580f2f5","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: crm-base/src/main/java/com/crm/base/domain/entity/BaseEntity.java#1-79","gmt_create":"2026-08-05T12:33:48.8242387+08:00","gmt_modified":"2026-08-05T12:33:48.8242387+08:00"},{"id":1600,"source_id":"7a809dc905a15b19452162b602354d4f","target_id":"d5ba78cb63ff66928528f5216580f2f5","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-79","gmt_create":"2026-08-05T12:33:48.8242387+08:00","gmt_modified":"2026-08-05T12:33:48.8242387+08:00"},{"id":1601,"source_id":"b4071322-5dbe-4e72-83d0-f500f65a4f17","target_id":"63afa1df57820970e5a45b15aad6abe3","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: docs/adr/0012-role-management-architecture.md#1-69","gmt_create":"2026-08-05T12:33:48.8247487+08:00","gmt_modified":"2026-08-05T12:33:48.8247487+08:00"},{"id":1602,"source_id":"d69b837e582d5569a7b66e11580aff38","target_id":"63afa1df57820970e5a45b15aad6abe3","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-69","gmt_create":"2026-08-05T12:33:48.8252672+08:00","gmt_modified":"2026-08-05T12:33:48.8252672+08:00"},{"id":1603,"source_id":"b4071322-5dbe-4e72-83d0-f500f65a4f17","target_id":"82e6c9f2a821a4ef65e14b39ad492b85","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: crm-auth/src/main/java/com/crm/auth/constant/AuthConstants.java#1-64","gmt_create":"2026-08-05T12:33:48.8262846+08:00","gmt_modified":"2026-08-05T12:33:48.8262846+08:00"},{"id":1604,"source_id":"086d66e96aa620aca8a7c9d337100360","target_id":"82e6c9f2a821a4ef65e14b39ad492b85","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-64","gmt_create":"2026-08-05T12:33:48.826793+08:00","gmt_modified":"2026-08-05T12:33:48.826793+08:00"},{"id":1605,"source_id":"b4071322-5dbe-4e72-83d0-f500f65a4f17","target_id":"efef262e25286d75b659aabf71860707","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#36-79","gmt_create":"2026-08-05T12:33:48.8273017+08:00","gmt_modified":"2026-08-05T12:33:48.8273017+08:00"},{"id":1606,"source_id":"435000e19b9da20904d5764f4f2352c5","target_id":"efef262e25286d75b659aabf71860707","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 36-79","gmt_create":"2026-08-05T12:33:48.8278124+08:00","gmt_modified":"2026-08-05T12:33:48.8278124+08:00"},{"id":1607,"source_id":"b4071322-5dbe-4e72-83d0-f500f65a4f17","target_id":"d98daec0996fc2871941a9bbe3f467c5","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#36-135","gmt_create":"2026-08-05T12:33:48.8303316+08:00","gmt_modified":"2026-08-05T12:33:48.8303316+08:00"},{"id":1608,"source_id":"435000e19b9da20904d5764f4f2352c5","target_id":"d98daec0996fc2871941a9bbe3f467c5","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 36-135","gmt_create":"2026-08-05T12:33:48.8303316+08:00","gmt_modified":"2026-08-05T12:33:48.8303316+08:00"},{"id":1609,"source_id":"b4071322-5dbe-4e72-83d0-f500f65a4f17","target_id":"6893a95771f515d6b1f78cab0286312a","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#76-95","gmt_create":"2026-08-05T12:33:48.8303316+08:00","gmt_modified":"2026-08-05T12:33:48.8303316+08:00"},{"id":1610,"source_id":"4194d46035c0037d3488ab82e57001ba","target_id":"6893a95771f515d6b1f78cab0286312a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 76-95","gmt_create":"2026-08-05T12:33:48.8313288+08:00","gmt_modified":"2026-08-05T12:33:48.8313288+08:00"},{"id":1611,"source_id":"20483fce-853c-49c8-9ec1-fa13c71e70e9","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-05T12:34:15.1109197+08:00","gmt_modified":"2026-08-05T12:34:15.1109197+08:00"},{"id":1612,"source_id":"20483fce-853c-49c8-9ec1-fa13c71e70e9","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-05T12:34:15.1114298+08:00","gmt_modified":"2026-08-05T12:34:15.1114298+08:00"},{"id":1613,"source_id":"20483fce-853c-49c8-9ec1-fa13c71e70e9","target_id":"443c00696b8cf69bb4c73995c949f40d","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/RoleController.java","gmt_create":"2026-08-05T12:34:15.1114298+08:00","gmt_modified":"2026-08-05T12:34:15.1114298+08:00"},{"id":1614,"source_id":"20483fce-853c-49c8-9ec1-fa13c71e70e9","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-05T12:34:15.1119379+08:00","gmt_modified":"2026-08-05T12:34:15.1119379+08:00"},{"id":1615,"source_id":"20483fce-853c-49c8-9ec1-fa13c71e70e9","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-05T12:34:15.1119379+08:00","gmt_modified":"2026-08-05T12:34:15.1119379+08:00"},{"id":1616,"source_id":"20483fce-853c-49c8-9ec1-fa13c71e70e9","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-05T12:34:15.1119379+08:00","gmt_modified":"2026-08-05T12:34:15.1119379+08:00"},{"id":1617,"source_id":"20483fce-853c-49c8-9ec1-fa13c71e70e9","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-05T12:34:15.1124483+08:00","gmt_modified":"2026-08-05T12:34:15.1124483+08:00"},{"id":1618,"source_id":"20483fce-853c-49c8-9ec1-fa13c71e70e9","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-05T12:34:15.1124483+08:00","gmt_modified":"2026-08-05T12:34:15.1124483+08:00"},{"id":1619,"source_id":"20483fce-853c-49c8-9ec1-fa13c71e70e9","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-05T12:34:15.112959+08:00","gmt_modified":"2026-08-05T12:34:15.112959+08:00"},{"id":1620,"source_id":"20483fce-853c-49c8-9ec1-fa13c71e70e9","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-05T12:34:15.112959+08:00","gmt_modified":"2026-08-05T12:34:15.112959+08:00"},{"id":1621,"source_id":"20483fce-853c-49c8-9ec1-fa13c71e70e9","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-05T12:34:15.112959+08:00","gmt_modified":"2026-08-05T12:34:15.112959+08:00"},{"id":1622,"source_id":"20483fce-853c-49c8-9ec1-fa13c71e70e9","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-05T12:34:15.1135091+08:00","gmt_modified":"2026-08-05T12:34:15.1135091+08:00"},{"id":1623,"source_id":"20483fce-853c-49c8-9ec1-fa13c71e70e9","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-05T12:34:15.1135091+08:00","gmt_modified":"2026-08-05T12:34:15.1135091+08:00"},{"id":1624,"source_id":"20483fce-853c-49c8-9ec1-fa13c71e70e9","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-05T12:34:15.1135091+08:00","gmt_modified":"2026-08-05T12:34:15.1135091+08:00"},{"id":1625,"source_id":"20483fce-853c-49c8-9ec1-fa13c71e70e9","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-05T12:34:15.1140338+08:00","gmt_modified":"2026-08-05T12:34:15.1140338+08:00"},{"id":1626,"source_id":"20483fce-853c-49c8-9ec1-fa13c71e70e9","target_id":"34070e2c4487d700b9aae2fc036dcced","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/RoleDetailVO.java","gmt_create":"2026-08-05T12:34:15.1140338+08:00","gmt_modified":"2026-08-05T12:34:15.1140338+08:00"},{"id":1627,"source_id":"20483fce-853c-49c8-9ec1-fa13c71e70e9","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-05T12:34:15.1145473+08:00","gmt_modified":"2026-08-05T12:34:15.1145473+08:00"},{"id":1628,"source_id":"20483fce-853c-49c8-9ec1-fa13c71e70e9","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-05T12:34:15.1145473+08:00","gmt_modified":"2026-08-05T12:34:15.1145473+08:00"},{"id":1629,"source_id":"20483fce-853c-49c8-9ec1-fa13c71e70e9","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-05T12:34:15.1150592+08:00","gmt_modified":"2026-08-05T12:34:15.1150592+08:00"},{"id":1630,"source_id":"20483fce-853c-49c8-9ec1-fa13c71e70e9","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-05T12:34:15.1150592+08:00","gmt_modified":"2026-08-05T12:34:15.1150592+08:00"},{"id":1631,"source_id":"20483fce-853c-49c8-9ec1-fa13c71e70e9","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-05T12:34:15.1150592+08:00","gmt_modified":"2026-08-05T12:34:15.1150592+08:00"},{"id":1632,"source_id":"20483fce-853c-49c8-9ec1-fa13c71e70e9","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-05T12:34:15.1155697+08:00","gmt_modified":"2026-08-05T12:34:15.1155697+08:00"},{"id":1633,"source_id":"20483fce-853c-49c8-9ec1-fa13c71e70e9","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-05T12:34:15.1155697+08:00","gmt_modified":"2026-08-05T12:34:15.1155697+08:00"},{"id":1634,"source_id":"20483fce-853c-49c8-9ec1-fa13c71e70e9","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-05T12:34:15.1160729+08:00","gmt_modified":"2026-08-05T12:34:15.1160729+08:00"},{"id":1635,"source_id":"20483fce-853c-49c8-9ec1-fa13c71e70e9","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-05T12:34:15.1160801+08:00","gmt_modified":"2026-08-05T12:34:15.1160801+08:00"},{"id":1636,"source_id":"20483fce-853c-49c8-9ec1-fa13c71e70e9","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-05T12:34:15.1160801+08:00","gmt_modified":"2026-08-05T12:34:15.1160801+08:00"},{"id":1637,"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-05T12:34:15.6914276+08:00","gmt_modified":"2026-08-05T12:34:15.6914276+08:00"},{"id":1638,"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-05T12:34:15.6944196+08:00","gmt_modified":"2026-08-05T12:34:15.6944196+08:00"},{"id":1639,"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-05T12:34:15.699407+08:00","gmt_modified":"2026-08-05T12:34:15.699407+08:00"},{"id":1640,"source_id":"4c74b943-94bc-46c7-b16a-e33abc3af2c4","target_id":"b4071322-5dbe-4e72-83d0-f500f65a4f17","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 4c74b943-94bc-46c7-b16a-e33abc3af2c4 -\u003e b4071322-5dbe-4e72-83d0-f500f65a4f17","gmt_create":"2026-08-05T12:34:15.7004031+08:00","gmt_modified":"2026-08-05T12:34:15.7004031+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":"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":"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":"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":"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":"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":"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"},{"id":"01c3b61921ce0cdb4028d7335ad82908","path":"crm-file/src/main/java/com/crm/file/api/FileApi.java","filename":"FileApi.java","gmt_create":"2026-08-03T19:27:26.9370908+08:00","gmt_modified":"2026-08-03T19:27:26.9370908+08:00"},{"id":"dd4e6c7873de5b24deefcc3d24077825","path":"crm-file/src/main/java/com/crm/file/config/MinioConfig.java","filename":"MinioConfig.java","gmt_create":"2026-08-03T19:27:26.9376022+08:00","gmt_modified":"2026-08-03T19:27:26.9376022+08:00"},{"id":"de4842c7b9763f7398ef2c3dec53465d","path":"docs/adr/0009-sso-reuses-scan-login-endpoint.md","filename":"0009-sso-reuses-scan-login-endpoint.md","gmt_create":"2026-08-03T19:27:26.9376022+08:00","gmt_modified":"2026-08-03T19:27:26.9376022+08:00"},{"id":"5368e7e708ac910d97280b3bcf8d2fea","path":"crm-file/src/main/java/com/crm/file/config/FileProperties.java","filename":"FileProperties.java","gmt_create":"2026-08-03T19:55:41.4616955+08:00","gmt_modified":"2026-08-03T19:55:41.4616955+08:00"},{"id":"f648b675f6acc57fd1e4fe32e9a205c4","path":"crm-auth/src/main/java/com/crm/auth/domain/enums/MenuType.java","filename":"MenuType.java","gmt_create":"2026-08-04T09:27:03.4231933+08:00","gmt_modified":"2026-08-04T09:27:03.4231933+08:00"},{"id":"d63e53ca9d76d8f81dd89d981569d9f3","path":"crm-auth/src/main/java/com/crm/auth/domain/dto/ResourceNode.java","filename":"ResourceNode.java","gmt_create":"2026-08-04T09:27:03.424193+08:00","gmt_modified":"2026-08-04T09:27:03.424193+08:00"},{"id":"197b55f1b7d7d1be28b124897acfa1eb","path":"crm-auth/src/main/java/com/crm/auth/controller/ResourceController.java","filename":"ResourceController.java","gmt_create":"2026-08-04T09:56:41.6420795+08:00","gmt_modified":"2026-08-04T09:56:41.6420795+08:00"},{"id":"145452b72cda2735ac97a690f2b5cbd9","path":"crm-auth/src/main/java/com/crm/auth/service/impl/ResourceServiceImpl.java","filename":"ResourceServiceImpl.java","gmt_create":"2026-08-04T09:56:41.6420795+08:00","gmt_modified":"2026-08-04T09:56:41.6420795+08:00"},{"id":"e42a3afd007bd414adca430109ffa7f2","path":"crm-auth/src/main/java/com/crm/auth/service/IResourceService.java","filename":"IResourceService.java","gmt_create":"2026-08-04T09:56:41.6420795+08:00","gmt_modified":"2026-08-04T09:56:41.6420795+08:00"},{"id":"4b325dd0ffe965ccff6bc2e8acc431d6","path":"crm-auth/src/main/java/com/crm/auth/security/PermissionResolver.java","filename":"PermissionResolver.java","gmt_create":"2026-08-04T17:27:32.1804587+08:00","gmt_modified":"2026-08-04T17:27:32.1804587+08:00"},{"id":"46bb7615dec0d0825cbcc4b846b93bf6","path":"crm-auth/src/main/java/com/crm/auth/security/PermissionResolverImpl.java","filename":"PermissionResolverImpl.java","gmt_create":"2026-08-04T17:27:32.1804587+08:00","gmt_modified":"2026-08-04T17:27:32.1804587+08:00"},{"id":"74123de2770c04a2d8a4787f177714fc","path":"crm-auth/src/main/java/com/crm/auth/security/PermissionGrant.java","filename":"PermissionGrant.java","gmt_create":"2026-08-04T17:27:32.1804587+08:00","gmt_modified":"2026-08-04T17:27:32.1804587+08:00"},{"id":"91ab5af5f40c9f910746f8c5c7825100","path":"crm-auth/src/main/java/com/crm/auth/security/ApiPermissionCache.java","filename":"ApiPermissionCache.java","gmt_create":"2026-08-04T17:57:13.4005642+08:00","gmt_modified":"2026-08-04T17:57:13.4005642+08:00"},{"id":"46667b5e631f28a6dd940cfc171debf2","path":"crm-auth/src/main/java/com/crm/auth/security/ApiPermissionInterceptor.java","filename":"ApiPermissionInterceptor.java","gmt_create":"2026-08-04T17:57:13.4005642+08:00","gmt_modified":"2026-08-04T17:57:13.4005642+08:00"},{"id":"1c8f46373fde157638a9331bc5ac12f1","path":"crm-auth/src/main/java/com/crm/auth/security/ApiPermissionRule.java","filename":"ApiPermissionRule.java","gmt_create":"2026-08-04T17:57:13.4005642+08:00","gmt_modified":"2026-08-04T17:57:13.4005642+08:00"},{"id":"3d68f400d8919945b4f8a1aff4375e39","path":"crm-auth/src/main/java/com/crm/auth/config/WebMvcConfig.java","filename":"WebMvcConfig.java","gmt_create":"2026-08-04T17:58:25.0907462+08:00","gmt_modified":"2026-08-04T17:58:25.0907462+08:00"},{"id":"443c00696b8cf69bb4c73995c949f40d","path":"crm-auth/src/main/java/com/crm/auth/controller/RoleController.java","filename":"RoleController.java","gmt_create":"2026-08-05T12:33:48.7749505+08:00","gmt_modified":"2026-08-05T12:33:48.7749505+08:00"},{"id":"34070e2c4487d700b9aae2fc036dcced","path":"crm-auth/src/main/java/com/crm/auth/domain/dto/RoleDetailVO.java","filename":"RoleDetailVO.java","gmt_create":"2026-08-05T12:33:48.7780495+08:00","gmt_modified":"2026-08-05T12:33:48.7780495+08:00"},{"id":"d69b837e582d5569a7b66e11580aff38","path":"docs/adr/0012-role-management-architecture.md","filename":"0012-role-management-architecture.md","gmt_create":"2026-08-05T12:33:48.8018853+08:00","gmt_modified":"2026-08-05T12:33:48.8018853+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-03T19:26:09.385025+08:00","raw_data":"WikiEncrypted:1O68LCvyq1zgacF3KZk5YcEWVe61ncvcHAQ/jwtfRO6nsymr3iAj03wbEczPXFPdkTnCBFG7/2OfbbpeK1tBfymMkkI9XyA9US6+PtyXqh/dl0guhgpht+fnBqZUjLPtCKDITwEY8BQFVEwnrAfITga+QRBGsv7TBFSkaEtASwLlYLJ8+UDp8YpV55gwKwHQp/f09seyq1OaV3sk7/BUa0NOa4awOflPsg5XFlVK/rUGF3rqKJcuD0G1glpopz5m3uMHnV2ifBa0D4VSW+zToYa5InFXJXhuY+0gTKSGgsNeM7WfWd9IgP5nF1m42lXF2i1h8uMdxI4tC4Pwyw+cxIQgbgF2wBk2pXuFgTBenf2ttdk1YTAafXd4PnQaAtTkefXDaALJUyhsoVElwDZAoDJ8Hi3BbyoeDGX4+giN3elHH4W+0DoiAxehb7bWQL3h4LgDt61mM7eISghb7avmOf4YDre4tIVHy7db7js9LllH0MhJQEn9vD3bxy364rSM//K3C3REi5VY4+c2MkjObRNnUNJW9QmDF8HSRebX3+quD48HzuI31rEH/sgIyeK3IEKLeJ6pXkVIztfyr/dPATDArleKdh50Tzr/ORAaDwb9//Lp2zmJcKAJfd8/pTJ6URAyJ62B/X5vZLvcepdJRQ5qtjEchSxqRAk/3jlXbiBfehtza3tsa0q3bi64hgk0+hnh+dNCdw9NezPGgoBAPt8su1Xw6zBanlZPiLVYkgXeN8mgxaCwqyMlgHbLd9Ik+YTSAFvwKWy4OXDyQ5nQjLpsOLuoy4XepjNYJDRuAAidsmD522fRm2RdwI1VTsCbg3ar4YuRIYGCu7IDg4hGBz8Wh/MZthE6V6+1lDMcZPEV50kDhNAH9A8pLHZkFv9/g8w7k3xtwEzUCoe0pbBcT1Y6Ozat4RQnDHOxjaZkqH9088Zs7wZNPrglwDgJJeFp28auAoxVcxEcT3BvwgS8RdHq/tYtwpyjlgLk9wIVLCd74u0aWUQJr3Yp6ATTh8rJv4x9rp0mSu5Qj9x7zszzAQ==","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-03T19:55:41.5545223+08:00","raw_data":"WikiEncrypted:aeKFMGEcevAvGLRT/IQFCqpj6WDzjXLrVIlQChodXp1E0jDrH3G8xRWv+80n8VNexqmtBGOYlUgd8BJVtuco9q3zUaTu9MAY9GkkHcx7mowiM6FtpJz89sNC0IYAGceFzCI1Se4Wz+FtlXnpdDlvDaf/TMYgTbLOPOIKXPdrcowG+Fj3qGmJYzUw7Wl9NuOQDlPUFNpwByw7m7K3VpQItWm09FLi4/FiOR62qzwIBLjtreMvnOrkHY1GxXmvDWRzlg89jhgHMwhNYHmJT0NFvZJUUF4F9d5N023C9bNrEz45x4vVuc4dhbI8k2QpHumHtQCf7GS808XzPWxv0q7uL+k3CrltEITxd8sxTomBW4fm1veEopFAokU+rVDNDOLq1rZQBeqddIZiqfUjosOi4U18PJ++2fxcpqro0ITXUmd6ChD4kWF8jhakTnhGm3flqy4FR3MFFRtIhgORcvylRk6MyRUzMvbfvhTgJ82idGvjN4AptNqSFVPEKcpVmp4DCdC57aoRVQwqN7/QkJGqDpUOjUwKT+EwzVKe3Gx5hcmTsVKA7Hk7sTW2dPBbWP1iCPQQGQ+xxz3+D448L8Pb+dFKhNHBVs5sS+uep+ZqYx8dU9vmwlXmuB7leWaxEcqTjnu9T3IhzcrI/CyjXd+VLKByyK91bKeQPQdJ2IBDklCQFm8aPADmcQHGnid5oR1o1nIsxkLz1GjyR5iuXlBiShMwousPk59btcbN9mQVHdE21Gne3678B0O8NqLpX9wdCex4ui8jtkLb8ersFPx5u6DGYPD3XB7pO3RpYz/eKx/UjhjpH80EWRTxdq3XXaIEoU4tVEacaj321uXH9itxnjQFdx/7wcGMCtsn4cKJraX/nVARp7VJYb3c9HFbWeExnXydRB3qi6qzPSkVLT16pYf+FcIw2w1vqNeTa225XbCc6QSS0oWnKyVN9XsD9QuZO/l7n/+xTbaUuKdLoh4mWSY8PyfLJA4SKJWZ97qK0pmprIvlET8fMnpvJQphAMc4","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-04T17:29:09.6231133+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-05T12:34:15.1165894+08:00","raw_data":"WikiEncrypted:V54XpkSFRoi9DmCIedijXBi4K0ykXjKn0cOf7w8Tuq6G1C0tZp+y+hnQLBj4qTEOs13VgN0raSgQRQRqsXd9xzbKrrD9tk/DTVdxzOWKorAO2pIKRRuMpBoliSOLSSs1n2VV3AHx5XBzJHIm36lNYP4TUkHFz5oKIU9Tok2sAFEeuqyXf9Q1kP3Nnzn1qQ0LfzcYNYfv7iNFYMnJLEOFmMoh894HiifDpNLF8MjMfVq8nG75K9IvFCMuniQczmNdi1LZRhDHa2V2EFH1bz5rXtTmRJi9l+vQuPtj8ZgbxCTEB2SoF7zcgV3t7QZpbZUso4X5KorSTLKgeD6xOsd/afe9HpCltq7Em2Z2xWbzyRhUXUa1nA1qVlLGcdswqJN0tMoJJ+7QS+JuWevw2ZqFKm1L48FwmhxC/Fdk3m9/3EPrWdi3/z5LrR5uzupvrqED4U34OC3QambnxAjfqXpaI0vzj5op99MyIGfy3JUsprFJ4zEHeXaF7LV3T+IizxsYqWx8Xfz4FMatcUekZQjYqE0LT8Ndl3CzjwLqYP53/LnS8/CtnKargtQCIpbrlkjNCfIvRWy3yogbQnSpJLmvj/PIkmpBNjfRf6AhPY2bo5rXSHjeHM0MCI1fjVa2hQrcSLq1iJJCa480Uerqo4VTwvYdhSEy7mq0MW7k+lQuP3TonQskXwsEO3eVl/WJ8sF/hklXiZqVvZ8wCSYSli7228+uxLYv+9XdF7irRPINF4UHXar6ji5nYZyag3ShOgA9/NSfPgXvW+Nhc9v5NJwpDa06lULQlTEQTGsWW4nEcOMqCj5+zHx/xs50wboD83FRJfI0SLUCum9z4KjllW84/M6fM0JaY7xd1LBHmDvruKPx8xAy4gyvNFJPTKaiZ4ukQow8LoOSo2DXFSvWoQZJRYBGfNsHUx0N6t7f4qkXMnIY81vPznikp1R8WNnaCtfweBeQzwzhCbKv2XZubYIu29QyOiuZwU9Xe+JNm1EI6sjyDWAxA/MNGPl5+R8reFKoTwerZyITxYWLD05Sr510njptZ4///dHTQqRTjbe8A4+fGqAhVp1YgA3hd/TCR4MfB5la68R2MJGyL5jVc/Ep3GYVZQGMew4IzJhJtgeLY5b0yDOD5ZC2POUUT2zRojWKVT1vOZdsDiljhsdPH6JcrQ==","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-05T12:07:19.0294362+08:00","raw_data":"WikiEncrypted:PZpJ8pzdz+YMrqPdFMSEcDK6PsJXLzjF4e08nksjHl9XW1I586HGQAJCJSy0JqxsIBJL4DB08p28S5xExfBrvpCqgU6IbxM0FBx97AgG1C/P9yVIlI/kQUMZNdjaN82Js0hms9UXoUX26acj/KyJ1yJ1dVq+DYnDFrkencjahWTnqrfuRw5j40UwUMXHGY/M6i8ZoOm1NSlwl/yJI1XmHQAMEqWQB8OpeIv8pV8U4jx6TihJ3ohBqlT3aF9hkLv6qFS0Be775g5SVNuQmA1Jlk2cqJXc3+oFV/OITnk0YidG/rIF0rEfT71flovecIoVWGftiVLb9vdxMpFbT9XmJGF8J9BgztBAeyD3/4M1ZDV4PC8F/Y7LTe9u0k+LH1PBZx+nA+4dzWW2Psw+LE5xtMXbmDcyVxqoY+ZB9zNKd1EL1QaSdDAZnzsbTcA92gU9NzrWe/jkxF634yenhGT7w09VOtfp3Yj6oVpZQGOeYiiMt70o+uy4pHo891fWBZ/l8embHFTSLHbCdYKxtt3Akz+fEPrxZtBUWaq8Y2Sl9/8QjKODTkAk9rZAyMsWjMdXZZPcunya7UFLMgSamM/aGmqPlEf3T+gJBibbZlOeuGNgOsR2QAaxwRFVuS8FX8IBPqVan93nalfBRFKza1Yz2wQ9fMCCcCzZufidV9zl2LxWPQAIB86mfsBEAX/RMh8m/3xxZF9FFiyPShWo6FX8sA07RMcFD1JVI5KxCa7SJqoFKkp4DObY6z2D9ZIwD074xQPt6S/oaKwNBBd9/EhXLdfc09IJPwG1MRy9Bvv44n+6PU5tBY0k0lzOO7V+cgBvP9rr5FjLd9JNTW7g3971T4yFgwNfjdPM6O18ZI5LuMlQGNF8uXylyyr1FnlM7IfMz1fsBWCiZaI5GXqRjWBekI8p3rlAM8cAhhL7YpiQQ6Fa0MYOskuQjxISx+70oSPQe0G7f0sJ3DXrNAcWz3mT0x9ozCFn83YIvk6V7H+/6sUoc85iI598dLiW5IMZ9BxCIVzscAi9b5Jo+Gu5hnGHFNLRTGidt9X1wLMUFhb406rijmjWpuMSB402g41OsxGfQcNEr98wCAVL4VNrp7LO8unS1joHjQJGreXcMFUU1DZIXMRyicvRGuQvNCTTPzHFKgJrZg8jAcVGFULHiAx3DHBSg4ffK3SkyBW2ssB0hi/aW4GN0zwyGVl4UrPDX2Hx0pH1QVNgnNQkdLItDottlQbzL/F69limLdPWbF83P6aN3BHkykhr9KBBUtdrgXYnkNQCLivsuxraN9mlxMtfcJZZs6VEs5HOVovyawFSXp8DTzk0ntSz2Vm31/uOz7qPlR8DnAK5ktLTzX1rnyZkzogF6XU6tB2irYMqBIYgtk72WHOsztPhfCd19Zs6cy1VcCwRmLxyuyCOEkHlB2pOFKJll+/Tb3gz2jfsw05uGen3NUg6k2oMtkC0rM5ts9k9","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-03T19:55:26.4490153+08:00","raw_data":"WikiEncrypted:iqPJQzVx1dw/J2D5HnoGAa3GlQlFd4NfIvCWopKSIlwe/Z6QhxuFm/9C30Vy5wugfxkJbRV5hkN5IJFFR/eTAOjKGaN0L4MDv7F4pgE6jzRovikSh2aaYNFOkg4Ov9k7oKAZavegZ8xbHAgjqS6C4/i8iSTqRqQi0Q6B5NUSF0C/1Rl6KYVC/dgND4LponSOT10pFcbpAULvpJLDkEZJEyHO+lYakqUYBhwi7YalMopm6jjoNCySG2GIDxgyC0oml+dR183aKlIROEygsTT/ogzlqpmllWzkB7yr923pEr8ff6uQgrKMC/uXtRVx/XG0ap4Hktw+kxU5iXCx+QcB87wrn0zl5zVK/Chv4VbDDYHpAFUw1E2QfVb0x79NKwahSmkxiIB25U839oFqS1qKnJwE+tyZOBbLP6KzGG1U3/TDlRQaEyCKgiABPj33CIHDWQzPKDEqbexsz1HlK/z+EJVKthgNDKvnUmjT9D9eePvU8SzR1HO0wixRSgAg6iz94HoEWcNdRRNMtFewjg2o18+cMnZ26VodNEG4eFacW9tvVOA7/HJkwilPNVLnP4XNZTyJ2y0tcThVylWtM26n2DPDmfFPMQtR6aDoi0ayV4/JQuS9kqCHXK5sqiGvvxl5xv0sSD8GFPUTuK7beD4ocR0KyPSQuXqeSXdEjFpgi/1ggI3PvfTY9RDemwCYtqScOPs3tij/QZUzwa4tvActlUwSnD5bf+NVpf5Mr6gPkQz3dJ1Pj13zTzmgYY9gsHN0oV/iKl46X1oIC4yd9rxCMTGM09QWysob83eok+pSD8qG4et7mGvLrq9v4o43Z6YvFQsYUgw1o5VJAYHjF++IjG+OYz4CyOo7dc/v4kknzgpFt7TaM1RPs14CefPQD3mpma1/u27R9cBeNeDBOyP64LcReqLb57+kmfzKDWsf3LeYD//9QZNh3jRQ622430nq","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/AuthServiceImpl.java,crm-auth/src/test/java/com/crm/auth/security/ApiPermissionInterceptorTest.java,crm-auth/src/main/java/com/crm/auth/domain/dto/ResourceNode.java,crm-auth/src/main/java/com/crm/auth/service/impl/ResourceServiceImpl.java,crm-auth/src/main/java/com/crm/auth/controller/ResourceController.java,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-05T12:07:19.0314282+08:00","raw_data":"WikiEncrypted:5hUdDwptUa2XAejnqFZaMegupivwphd5LpU2thPo6FOrpQbJ067RcD2I/iuBGXzA3UMx5WqULDITnE2VOLHGXt4Un8YQTG5hGiZQmu9MH6ci4b874fXoHpOrp6qnhDzLmbSbJAOJvM0r+c+VJbuMDT8tMvPh2C37i7okvUsoeKQDkPW+WHQQFzY/dofdxx+12AuqbIR3KzOu3pHRKWq5GR+0H2XyOkSOmPLGYc9rprn6HeEirJ/Gral1B9I0cD4jOJskajTd+eSRcJ5h2Hoimh+JsEt/MbxKQ1ON467pabZDFmAB9QSYYIaXvDYB7pOmU3kPPkfNr8INAtH+zvGrEbriVIRequ//Fc2LC9VQtPrx4zFyPYbKOdP2dVe/pNEGAxn/mPtOx+Edp+E896A/wFZ8tGwwpbNILH68FHAT+DxpQbP9oo/zUhwzgJpl/EaG5mtFG6/gJaNtaCIqQoD0M27AMXjpC6BcN+0QMKyc0Riz3qZIrgEHNGCXxtHOOfnVTfye67Jn2vR2dNz/ZKjrkyuusBSf0jSm3nZtMeT2V1DZtMHihSrbw/pFDIgUr4hnLuwqKRI8M+DBjtSntt5EiInDapeUtwlJylgq84XgOGbVUZo3CrKU+qEw0XhM8WYP6we3QJkvXY4ynLQNI0uUxUvZ+6aX45HM1Pi9+vW4Hy9nWAgsnluH7e6nvI3g55uWINd7ecmMxmtzkwkLuCfgNvX+JjpTWr8HcjNnm6qkY5Fjl3HKkX4tMII0dL5fMz7vCPQh/LjIa65zIErYXjwn3b/T2ywzTO+moM3ob3pwEVxUrZ0mHT/L1aTdqFJPrjcG/PJWRKazaulKLB4FByUF9eDlQCD4e8MqQwaNcJlu+HbdOpJPBaB7NGWuNkeCaAWNnR6fOLaXEcNWeqx9B3dpQj4iJ7q26PlJmFD8epVhTK/D8ObgosUrBNj9rXf6bruswHkKWwsSzHyAYpMwo9r06Nygr9H1lwmnguTEkakPUgzaPW3skp/DsjideE5uKZ3Lfxyy0jiiYA6bX9tNGNngS4fQSICdxFP8qzXYR0ayhgZ7S8BJuTSB66wdgV8/wm1JQ19Jbn5OLX3b/yFumCdCfm04lv4m4zT2IG3dVSSF5OQR4OR8rX8I2i1uqFwqI6TF0GK4/LtiL0ZhPQ7OforqPa2/1Um4E+ILQPrr7lKkfNa4iBMUAIjYnDmTca3JHVtG6Ux6zlkJKeRCVjJn1MMAoxhhNrpFTwuOf6bOk/TP9CXYNbXs5u1DbsencLVQc/NZDtbTxys7SV/+dZrJa49EA4qO2BcPG+vy5d6lITxCIbqqLBESq8p05f6S9e0eI0lPJawaXBnaNIpqjri7IDHYMUeKgEmdph0BEN06bPTkyprZAKAQxH5DEXH/XDhhBUr5Rc5xx1iZH7snPHpXB8Gb8lHmXW8Ib6RuKNTFT5QdpuBxvm5NUvroNo8oEEcDMTlkyCnZAjHqf3MiwKNxlorTNKiMAHwxmq0sPlkbssr5vE98cKQaCA9cPMNShrMGtKGUslnU7PWTJ+j6Murpsa3Q8oudbU8Rnf6tGxeEG/5j/Ql12TVILIuil1kb28BOkthksmOltBz+rA2P9TstNb5SZR3ojhkvVGp7xtgFgyuY5+Z08Pdw5Pnifn1m1m0TXBqaCQWDP3ClzEGm7RaLHyXCJlpVpzUSNeO4QIjK8BRDZ5/B7IqwIbLPr2rilgiIdcbDjDfsiuS6V54aVf58QqYeohViCB9+W19HqAoE42CQekSJ3BApAiAxGYhnuKQ+umxGjoAONSduy7fNP8t7GKoRHeLBrI7CUuE+fWVdjOu0LHqQABrCDmyux9yDM4+wq5aZNCHIFNHB9vZmXXpSPNk1pQ==","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-auth/src/main/java/com/crm/auth/service/impl/SysRoleServiceImpl.java,crm-auth/src/main/java/com/crm/auth/service/impl/AuthUserServiceImpl.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:24:24.404345+08:00","gmt_modified":"2026-08-04T17:59:25.1767114+08:00","raw_data":"WikiEncrypted:/cFDcxsYgzh7zlnG711dxvABGRAYXK/sX7fIkU9zq6ho4dpYZcR3s7XFnZSgs1xeqddEamjxdf/Eyx6hwxzGy1EsxZ2YzXfh6Zga5dRIaEYmduPNbpa5z4QbsIkrr40pKcC3/3jrry00GDHAPF6zphsEq5IOFpBW6r+883lYYYe88DrZhWHqHsBixN8UbV+2u92SnwjWXhRZcd1BlD0jlTgcpX6SyoOVKc/bp+gmWo6duOpBlkqG+Mc7KeaDfmcUxmjp9E90MDDnDiOSkavjPM6KBa2pKX1LpSkZRVOLudwnHyU6lz2VRMH604EDKlY/HFqlj6aLamqXKkux64vPgfd4Mdz52/GF5NU5S0tIDD/kEiRJx/H80C0aKnTKHlDI6yCOQCPwxLcZsvkBsojk3UvrBpeLr/9vVOkUFxtOa9sOg+h8KWrhbpRKRKDmQKDtlJBdCga5WidqCsAeJihRXIHWh6T+R6L7hQ5LjQaFGDuELWiGogxL4ZqBjO4n8TStZQriRJyqp4BEUXuW9OEPwpiJAIExMq2+cYQVDdpPzHK7A/z0j4TkccKuZep1HzV9isSVDmgh3qNx/ID0+kwNAN8Jr7K1apMgGUla5qVO5re7bCBw/qNIjPuf7a3FWuOjqdslUHFQhSri2sNIRnjjJ4fX7LopxnvdQHPve1MraGGxB2LM7y/k2rNiHlAuwcqlE3SE9SYchAwJBHNVxAHnRgwD4Od9Z7UTqhhpVn7GC78aYyBh5X/GyiYjvCqD1lBakRaFJYE18Bf/S+vdXpnkzUE/5q8iaYhsQU8+E0Aqdhfyb03Dj1wq+39MCUw+ht3VUR+bADgd0iZnVY4IuCQB4xNUzKBDbPQIOTi/yEFT+2npu291EHvemdJBI5uMDPXY4lyT18RocmSmkZE0z/cejiMBezTpQaxnnEptN4Hrw/vnrpxTnCsjia5cjwKdbzIYZ6CCcVz0XvDEIdaib2JmRdoxNXv1hTe/MIZ5eccA6waH+H8UAoydl6jiMKy51T6YBpQmySTrrB1YS9B5OWYEjwmbrRnQt+DDAFd6XqGWowA=","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-03T19:27:26.9448411+08:00","raw_data":"WikiEncrypted:Jk0nNOIGshX80o3G9X0igBLknfZT5v7zZXeQ+tv6q9qpFyin4OnjRV0gFu+HicYJzz/KlPriLK2NWiMS9xCdlAVCxwfSyq0PQjIpTWD7e/K4+IO1wu/GyYdInxDNlo2cy2CVRF1YaFzqQcTBkERIkMB1zNegRGFDzQ52Ibgkk1mSivTvPzD4gK4QrboWg/iJ3Om1hougDkYhkLS7VYotSyy/HcCdM+sQ1w8t5EQ24z7xxK7WAE0sPqnrV8pKS7SzZrzhKq49/lUe8aSKHCgX7auLO5MQSvM8rxLPk45Iup/JtszaTxoS158aIbcIyt/F8OqkX45S5iZ0SUhiO/jFficeCtadp6bN1lzYbNW8FecfjXzBSCrha+pbON3wv8B36VRnMpDWe/Qbt6FPEREUGvzLDiAgckB2OObgBHPz6AqTqdhz70Rnje5OZhVHmaMuehgp+HeyRw835/GpQO3+m3JJcF0kB8l25g+V9I6b8WVHkCYeNfE54zF34EpHjr2trhvj2MVzTh6+LYHlJR9SCQF4AUR9hipize10G+VTKbV8TIMvrxvHYBvoFgiXXMM0hM0LnX+CVEtR34xNVXeLv17dfI1C+0/SxVJiD6ZW5kbkebmf+BMloCWF9Bpigj35LpyRXpzehPiI/E5rJ4MJDUE5tHgwGSsztlT0kFixi61eFyt4sZvjieu+6KQA8CadWxXQh3KBE7Qdvd6zVHccsbm1NaCR8SCUK0C2dVOA2mzQzYGBFeCNUaoAYay9st11BjPHXCEaMXZq+BqJBruTwrf+Sq3a+ZxbGHw7wn0A/aWBIOz0PeZNxTxBmf09K1xKS68hJE5X/6OvuMrziTuiuqIwDfSaCf2zwu16xPdpJKdECsOB/mt/6UEkOmdgsNkHyAjH1SRqbB1trjnjbar6OQjrOBDpD/k7IW/XJD0ID6ISfx3gk3/CX7if9/shg7av+ga9NPb+tc8dJZwJiqohbiF5s8m7S/uQM/YvVFQMs+hfpOTAw9Xh2hRP0JwRvFUtqm+5M/SSulEH1NTrTsM/Yi0wAya0FZjPPud6w/K2gxwAYEx2OML/YvHHvdAjhnVWVzo82zaQxHOPMx8KiQYrZrxdTEPerq0zO5+xon+9QBuu6vNftMMEvJtDWRDqs9CgHX7/ClERnPiuz1OT0Qj3r5SDcLOzSTQqtrmOPA0GEpEFdpB34eD2NE0iKWfpyHwjrLx/xADYF3femvaYgDNqxihk+IjLgQmhKrzKKc+R0wj9/FyI21Nq/LhSvEkb6+ccZwZwXtpAV4/iPyhzOWJxRe0KAkJbwgVIdCTcNv3ytVVuRlxeJgDwTJRrH4mm205FleRBzfaR8r7a1AhiJpsSVw=="},{"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-03T19:55:33.9375386+08:00","raw_data":"WikiEncrypted:qF2VoNuQmlFJjqRbYbbhOn1Gcpo5RLb2/0xjtWV+uzqzDk30tb9Rapo8M/sksKTrQuCXAIdF7thOcMPEhfurbsvjhdmhDDrwJ2rjR4prjndFdPuf+oFry+kI3BuU9ssEpzh3rV8ZEuC6UJ94oJLh9gYeADKJVV0h1e1Fy3bCeyEG0ThrgVYroYhZ7jmUvj377MLVi359qHNht4AzPGVaMmT5+fqP7DqSLTASSBM55nqXBi6lNZYXvjRafNeV9GNu5hax0ya8ZbZGV+aZ6vqNZgI3KkzvgKuOlIj/a6x9y99PgFipY23RCe0PM+htFOdgJbb6gKe/P5aTepvJ6xe8MrRK+9HFfL5ylitsu9GMwZO6ytGXE7k/mmdXcjs3p2Zd/EMDKlb1SmWbiRiHDR8AFXLRmeBXAgJ4aAAhyHaoI3X7kpJh2OyBhUxL8qacl7drmrI4tdsoGJDpXTZGN8Ut3ouWO7WL3NOTpC2+Eyy21Cg4xSyZXWqySZ/veStjDYvwA4ki0m5Xh9+oED8qQHreBGu7ruyAtgvzl7aB0lTpp64zyvdnSO5aDXcz2NlmlhP+AMUi2aCvbfNgfo13OEQOKplnajok3EwfNWXXR/tGnDqxSY6L4iRb+AaNLvFNqf9WxLTo8MHpwBM9uU2AaRwxHFVwQUHm5idtp2qoRKYO9HblGfoI7pJbaLvx8Jy83H98MkDW6Dr0VTtHSXkyDj66XLpYsVDkdCmKXVUm02l2704BuAWzDlMfS3z1tSWPpg07/wS5e61AYzXXM1kVw5Yd8zuSZme7l8y1C6jEy8dIhDG+nlG2aFqBXRPQzbAycriHu+UNOIfaYrt89UI4CBPx/bwSxvZTRYtQNIbmouy2+j8W0F1h4bWEctJqFXnhgdAV3h1yaQB/j1HI8j7atAjiDGiXlOczjCOijloVl8Vpn5NLUwRE7ehzSRIsWORZmf4bL555unx+z7VaOQCTeT53ZA==","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-auth/src/main/java/com/crm/auth/security/ApiPermissionCache.java,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-04T17:57:13.4041443+08:00","raw_data":"WikiEncrypted:qF2VoNuQmlFJjqRbYbbhOnT2DfxRkciLXjb4wH4Mv0kqK3BmoeNnk7IAzaZtmURgMu9u6fxk5rcT5QMlX/W1/K/bjpY0lj3EhozOhebASgAS8JrcFCRY7GInLzDNTM8LsP9NF+Kw8iyj8uf7NoipfQoEaqkipqC8652cNqZ95n0i9JL695p7i2g2XLDIFpc4mErf9DJx0DITAbiaLSaZj/adtHbnNpdT3aWh5eoHhNeJRiUDMsJqbxRXrV1WKzZb80IcY+geX47+djbVXrUCx/mdl4IcyP9PP5c9c6u44I45C/G13VHHEDcpZVErgPeW7gY/Qo1lE8A34JDtNmvVS+4bSZvumE8BTP5WO1yxAgQnppS160Lv8qkjhiFjLlyB+WLxKHTEQOz1OT1mjhBNkFjdj/sHgH5s3CaQdlHoLRK7cPHVdWQaL1LObWZmU8g6y6VyiUKhsyM3GXRqxWapcsbu094kAKlb9q3zMia59oyhAtJmEeGscIlITTXYJwd8idol9zP1WN4l5USN8e/UZInEYGlA1PlIpWDZ9sOnkppzNqyQQlhXMGMJvAHkuY0pNWf28YWdeGEUkPhIoK0MfICHW6dxP3Ve/HfHMAJUwAGjEV/tvIraCOigBjkc9j0mtt+50b7zJTElSTYOxCglE+tS5n9LhChIHl4qRga/mB9odlc+LxG0OiN61cvtzeh7VefHs0F79lGZG+IUjBj/AbL68kpoWFetNPD6J4q2L8Foyd8Oikvj8O/q7rvQKHPouZCfKBPAKmdHR0vJA2C9S7bO5dtCU7YEaWxTDhCuJtXmqqMs2AO29olDcP7Oi/tTBGUvClrbpTE1OaxUM6pdv0Si5PN6E8vps5izKLNjWdSO4BBNNUmoV58ZNNeBi/1+Y20aX2jOqr8USwlnvcHH+gr63N/rNSlMeHugp1KdNalA9Y687HlqcGl+smlK8ZWPkWd6UCV0zwqkWoYvK81SMnBLf3ekXCd35lxVpa4pvOXFlULjkRL3thD7dLiLmws1XV7OY+eGnQBUuoEa3OE1FUAu/kzxdojnUsfzIR4Y5mmVooztc+z6Eo/eavd17r73q7WzoLrPoSOAQTZ8cCmQhXZjUpmuRnEIk+7Mflgglyy9SgPfoUl08gd5Vq3kWWGFlDaIDtMa4oNdl5taU5CJLVusJKmDbVpchHewusOFS63Uc4lJc0ZNZvgi3PyJoRX5SDV/V1ntzKQizjlgFHKe6Jm5TjMISY0+7tsyjFNTDYAnKFg7DDTI4SEgb3dE4EJyl4EiAYOyvD7JA3qY0aOWoVQDujvqINUzHqEyRkSS7zn++NiJFgbtqkq2P00UzFzwz/NFslhDRjHMbzMf/na4ZyXiZwlFlHXGSl8uJ6eeoSTtemzFttuvVwb5Wvos2D6mGF5fWNLmsU5ht3CxBc+fyaNRUuegWGQfvthAVFV+xY0=","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-04T09:27:03.4758753+08:00","raw_data":"WikiEncrypted:SFq4naTIXfRmvCSi9PrDlS97tSpEG+LKZREhhwLzTBYkoSzdfB3zS//OFuGCDAKE+NY3HcWDImN5jtY02wCvu2EDo+uliBxYhUcRUgq1u0V8TJO7utPBDaUQK5bmSMLxWQ7FKRD6f/IqubwZh1ZG51BHw/ILfPEfv10+Se0QCADOfjiRAB5ffHvL2unZ3fTw7ru0kgtdCX5Q+y9AyLKs0eNBt7D3SnfuQOvNhIOsASZ0scb+ET6s1MdfNexuV+NdpmtZr3NUfzlP5CQ1wBaWaTUWbnlgy5TDbDFUDIVEHSeVQ2lbSBCUk2yA6TOPxh2PIPfFr+gwnc7qViBI1JPKPUluu1MuuwTjilYr1gEEo+YPH5Ar3xx2eAQ8gbXnHQU8ODSV5KAq0O2onJB50G7MTSeVnXu53ANs/euc1YffnshBtBXDGubA8ThNS5i9LxNpGVLqLLxWWLq0nvuhxIfEIm2yUgM3+FXZhfIdcIkYKos/oanY4uBmDoEixOa8J6jA9rnHcUBE1Y7uTIlLaLvT4EGfu69CMOu583fCQux/j2M+ImFgqT8VTd1IkWl2EO2KWItRkDxSSK74rFNaCeasMGev2HrQZr9fSDLhp8CisSOi3RZMRLDp9Kvs28NWUCgOWKXxDNGURMjYZIYXQ1vWTSqg/Hyn+7YZZcPomhHPsNKcaqTJ0GaRI8sMh7SeHNHFFhB4m+1sqSD7pJJXBitne0OeD4sLe80ScEedi0ZmKN7ooGkdrE6wfyPVJcIDomO/AfULtQ/FFcS8kOY5fWHtsHYxGZxeeLhcriXNofmXeisAAe4t997+yovaxW7IQIl1dEoq8WzaHUHJVsdakiilqZJxemNqBw5egLsdvzmXO0Ac8Rs5c2Ev4IuiGIIOcQjwl2IhfuSpKa2QT4Cwj3zYLaG0fAiXRhUM4/CwrXcveQH0zj4EEm3+DF7OyW3ZfxMSdF7DYnAWikTIlvgfVCnxj1hSNdzt0370SB28y+7NqZh+l1myQg9nJoR/xx1z6Poduva8lhACd9mKAHmgDXCKfr3H5+B1UE/9+0/2kWKPbS7sYupAf2FblxfeYi7khcirXJ8NtFrH2i81AzwpAmDaciWLClv0hweis5sgK4HZVLHgqL3g1ejvdrUanIZMN6hdWEtmAV0er+anzeCSwyY8fgwMG82Tub1GP20eJRwKWFHNIz2Gaz5kvFGNd/22dYedq69Wr5YJpHseaaPVZXVqp8n0Vzm7LoLY2R2jlsVPSew=","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/config/WebMvcConfig.java,crm-auth/src/main/java/com/crm/auth/controller/ResourceController.java,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-04T17:58:25.1062818+08:00","raw_data":"WikiEncrypted:6g8iffgXzed698CsRven+aU5VvAGKe2X2jE2K2Xo6GDnQXTxlPDQ2BHPs/i9dHxLsbJ4FOIT6P8NOPSbpkaX0tBFVWPW2vxKgaSQYKTSStFfqitkZs9hLuzbJNjRfdawR5X/cE9ePDfrLS0JkYOOR2549C67QFkpMgsuSAzeO973PSKBg3L/PUqEzaKfmVDIJ9I4cDfvJJPbLJP4dr+OlZeSJJBQDSp953pfXWE04APnkp89KxRL1uXvJBI3wooQGaMtJjGDd4Cea7iqHLlJwcKpBrmzZ+JKk34/tCGaKM+MOX2VhLtpnTM6WoHnc8OEg+9s7IbIanQBFPmZzP+BQR8uRZHNZF4uRbKQNITF3d6QGByLrHWmXjeeiM//7W+YvTgKoGftTDx+DLER6cS9+ti32wQtVPRqyRSWrbcckyvWQBYLt64QF8aNZHukx0GmaYHRMhgp+25e02gFuwkfJlfhJDz1/0OTJZRS8TbUF46Ys8cBkfFiBjfFpdrO1SA0sItGtJBcSmPEBrSV7IDikvc+2ufFm/lCSSeeyAAdJFRZlDNasKcyqg3AxqNZ+FjTfc0fVezMEMwsJWfYH79Q6sBv79p8Z7hyG9k+NrRZpg/Uxc/ZTKkkKG3TNIE5uYd2w6X/BncVIDta1yBq9L49ffgvCrfEvpzBBTBh3ebsz5irpnrjTXW47cI5Rj0mzsmsH7PeIjRrJ4+vJPzD9VjeRKXqQvWKMrpMWTl2Y34EFfB7Jm8qFk6EJeccoFnNiPGWyMlarvCILUX4WRoY0Ck0uops3m2Iszuq/M9gDHMoym14hF+3qT8SMvx0e3nuG7VWrWtWGZW9QZv17QoINEegi/4f7pOXUAbtS4tZjNgUdEtRYXjZlEmPqRYJ9XAhEmFmUDI7/xlgFs9fKY/elOMLj7CoGtQjvKkIZQrvV4IskJYAn96SsmTasxk39wxGve19PNrMjXmS8ZN12nJQhJDOWoZXXVEKNwhGBrsrq77nX0puA3Sv4oCKkVoZpy1C2mWa/fSdTFnyMjFnHw4aJaeYJAPo3i9CkSSTl7NTFWA/2hUTV2TPkhm0Wkv97/hl4T1PS5rYczamyjTPfpTLIRFvdDXF5eB3ilYP7RljAtMnasnM6waA13aPh5815kXEBvPrKjoiziQgvALeHmZKzKLXn+4RkDmGcYIpoeDXFXVNHWGHRup8zDRfttdCH8MfSt7K8jTpP2Q0FeNiqdomBgEbKK25B0h8ZKOu3PESwp/EeHJkDkya7OwpGs9HOmDcM0a7YcRbO9g2K/tfJdVNNCBzszQkIhetJTXLRyeWuyUmNuhuBe8Zb1Wg2TDZlJsaONtlkOOVgIp+Ey2rBDk7mXoM/nMbPQcObeVmLc9QoS3aSew5kO2UcZoxWpSkv64lb+oKa+UWQepAbHizBnY7uZL10i2yb51NiaYnTQ0XfoHMrQrxlT4NJbeGq2flLg0nCa0WjufprwTO7QDJM8PyzZ/Q7m4cyaZ4rAMr1mtJwWZv1WipIxzJ/Phtd295tJb2bPK7y/5fZjJWxNq7utZlUodKJhiOcEUhkYWQP0pQtevxSPKFCsgCaFdv8NlNhSO6p97aEQMIMKPgPd942g8Oa5QJZ9X3DMR/7bqE1xeCcvY5mdbbY5R17taEvfgseHo1KPkj","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":"ad56c197-6603-4d28-bec7-64431fce9bec","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"动态API权限拦截器","description":"dynamic-api-permission-interceptor","parent_id":"ac97848d-30cb-4326-a786-d6ff15c3b403","order":5,"progress_status":"completed","dependent_files":"crm-auth/src/main/java/com/crm/auth/security/ApiPermissionCache.java,crm-auth/src/main/java/com/crm/auth/security/ApiPermissionInterceptor.java,crm-auth/src/main/java/com/crm/auth/security/ApiPermissionRule.java,crm-auth/src/main/java/com/crm/auth/config/WebMvcConfig.java","gmt_create":"2026-08-04T17:59:25.8093257+08:00","gmt_modified":"2026-08-04T18:00:48.9651712+08:00","raw_data":"WikiEncrypted:juMsv69HY0hjMAj09/nIlYUwGMwwWHyRczX79yJUy1ZCBBsTN4dFEgaHJbybij2vfkMVf2BKNp4hnb7UQSZOnb4Lvu4vm0LGHJrDScvcjyWwLXWLQYCWaLcZQTQ4ZE94uNsML0oEzyRsVaSYfzX/s5RyqUGEd4iquIfB/KpWcSou1HynbOHE5h1KXcvJ1TeM/hg3+Od1SFd8PH9iK9RKocgwlJQ90Ye1yBrRoePV8shU9hmewxuUQYXmazuCvDM29th2BP1iowyBrVsJ7nn2oBPaEIwWG61uV2e+HTEhMwC/qzJTqc5NHcm+a4FOkGDjftgo7ba+vC7kTqRwewsvRW8AcGyyxm4GizNBXucTuwj+P/MN16G5qwg1sijoms7XvHCVohRZws5yEr3gjsViaUMWNc0RRCzXrJYxLC1ojNAjhAaILYvAgoPxS4goTFrCmdbo7LWa27DXRaWQwjI/g/Z12CDwgt3XYfU89BKfK1ul2kJ63aGgh33TkG1XjuOSEfrpOSkQGTBRRa8AElH1T54mkDg0P43f/EmZ25XnMTi6JOe8hRE0znZngyxvpuFc","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-03T19:26:44.066846+08:00","raw_data":"WikiEncrypted:TNVQwQ2JITC++477rMKpIYsFZiNzaeHbR4XKRlu9bDqA0R0zXfIcIYfpXXtG9hrlEtg0OfKAWNYmVbZXRbjTRFmRxuMbmpB/AJxVRYLkY/D9stQO4KD/zK2j95aDnQNLnsOpw07J4B5iPtj05vLibfe6k6OUeucgx8k7dKwia5RvBiIOBJY4GAq0oWOfjjYhqA+ldgeHgCGehWxAZxvrmA2PC2Bdw5MT8+I2m+onbaPRmpVZ4J6djinf292KJVB9llwbknyKoG5rxHRoae9Ef3eJpMpYHVUQ/W7zzj8iJLM0myvqHL6qjSkVGbE7Zl3tLEnScBlq2p2OgfhWzV67jMmfcBEnkDZDaSdDB0+dDEzYNfdIx+E0ErkLgJzobx0tZB11W9VCg0K/2fE1H/Pvt31pTMbsxvkBXTRS2KAGAA/Vft4xIlIoJKyAF7t3KR8kNZiGlleMxjUw/w0hZrzPox5ANxg1Ih2N1b0/5QdXw3mQYZlbepTx6ljm/sHsNFc5e+oL+XxXWMhUpK7/eu6pxYaLs4gPUBvhP/zMoh2KWcR+azMblFIe7FbkXjshPJqp+C0J/tEV4dolT/dfFzv0K18RIyv2XOM7ZBV9L7vNFtCSJa8LtXOi9nneOKUGDzzEP4Ikg5Pg4X88pkSWz9k4/CGbQ1seRcEGelBmDPZbUnC1AVezftlc78pBQz1UFBr6DLB+f0c5hDiZqHbZ78joVIiIKZXslisGMSDdyTaofcTXcBMbJO3zoK8kqnEEWiNtoCpjBFeLCildJxs6sugI6P38lD1Ldl4A0pwmnS3cEUnKQVK07zemV9/CyEVlNVk1Lzk1Bj56TjyGDADSGV1nqk4Tmc0PURsho3LF0+sRHI8csdc1iu6lSUrKiBn0z00zSKIGoFBxNzia8CVyIMCKwt7tPdH+SMS0vdSCZ1kqGf7NQuCYGgDuU3RqWvKWITXlaLhWcShK9AKZ1eQJEjPmd9aIevmdTDtTHPLQVeybaFbQoOMt7TPes+pc8kAxhpfUaphKKgPGVwgMHqJUqeRbmDxL6v/5rKYwvrHg5GTd9/guySqM7iwBRhVYf1bKSsY9ijferucYiQERV5e+brwMKgxnw7V2sc9cquxazQ6/zogGxbkJQk3yFOnFj6am82E4xr2ouAiunSuWVOff57yNbowKVntdxhcFwzvMcs0M8oTfLj9xgcf0jMXEldJNHU8F9RwXYzOr2XGArVKm5XUMeFMR9kUirLT0VuJYd2eDN8Cy5AC57UJMsRNQ+Gnj57tzyRtf2NA4Z0dL58vVtmke0nyl7Dch1XfFW/R/8A7uDfa8/jZsMairggSpcfaeani//66g/C3C4zPSfEPyUplG2Q==","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":"a9c5e12e-b0b6-4fad-ac66-cf64e001f0db","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","name":"角色管理模块","description":"role-management","parent_id":"ac97848d-30cb-4326-a786-d6ff15c3b403","order":6,"progress_status":"completed","gmt_create":"2026-08-05T12:05:57.7185598+08:00","gmt_modified":"2026-08-05T12:33:48.8318435+08:00","raw_data":"WikiEncrypted:sqopOHmfiR5tcNE/geHOiGYa7NDZ70naV1BSvfSbc0SN3nqY4kQsQ08oCMsH8lJdcOH9MvMqwhVjoIoWRWog16nmLZcriMMxmc7XJUBebs12dU+s5BxM2W58MyautBIKl76lBj+vwdqqfwpTFZDZa3ehwhcNpm84x7wkpnTPMTVj0xyCXLBxrcEFhd88O2Kb","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-auth/src/main/java/com/crm/auth/domain/enums/MenuType.java,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-04T17:58:26.8072952+08:00","raw_data":"WikiEncrypted:9fTixMuSRA59yaGkTVjDL5sEpI90fm9hiuBLZeHNGEvlxds7GbSeEHtRLvuOWApbjFLfUR4GebcDu7msjKRqzWyMyGLnGGvOzTl+SNmgny/soMp4kJYjaAMHQQi2yF8IX8dWFHD4pe6Ikx6XfPt8ifrRaSCS7My/s6fb5jzo4RcVsx2Lapt66YPM7/O0pXRFFX6cVv2yoJIi5vlN1Jg0ajs5i93lxiJiA8ydTwzAbHrFZ9lkei8GKcPAhCxuVMwTuRKVQNZZW2GAp6dGpfB2cu7c63iNHWMaAnETWrXcjl+FRKvNwlHJkyDhB9jpqUuuKF7aVbIJFQ7+j3z7QC86w48JFXsjLEI3TAFlzUkpdaVU478x9vvmFG+546RJ5aDspj6zfN8NuKFfmnMqJl87Brza6wp8PDIGlsn0ahy+QtGLdZXuNgOSG9qU61DbXgw6DpLU40v79hN+/7H4vi+9oWfulKenaZLWs76YLYkKvpVeq5URmXckpFTAhj0QLx8by1k16wRMGcB4nWDbbcGL3G7812MW6nUZt6s1wkzbG3S7d/BGtojqwr5Cx143d3hJRUMdaO1N7OUM2vOxrjU7U3Z5ThPLNNafIeJc0W+jZ6dsMy8f17dFh0LGNzVv6X2ntMR6bsSDa7JVgy9ur5yqBDwcmRxo0UB1qpHbRO876QhaQwv5+GF8e2fJwbLTur3b3V6Dzo0DqODIEJYjIMB16javrw9bnew2CedR2iGpRZKSo29vkWbTNRezc/4OETCGruFov+Im+kNJ8eGZ8rgC6JTtmzbIbwGx17gPVxE/Nx06UhmQ8WTxqhOQavUL+4iwDx2GDIMpA74CcEJ+j2xtqBJMaoumgjpCL6B+ldsGyHIAEHLtSdje+nmO9l2XLBA9cS4Gk2Ir1KUa6Oh7EF7/xd488lo5q3eMB4QKpZBrp+I52n6dCRtr+BvdswsAmtTWgtAkINb5drGGz2ibSLkPwf0i4qNzuuqXNGCo+cSNDKB5ISqqJg9AyHCCvyExE6XN4Fk8pd95pGQtxx3PgDu7AdcXXvKVYVrZVarHQbqPQ0YOrCzOi6q/xsqOkadd+ZSnxL5cg206t90TySl/pPc1WLU50bFC28JMeOpbcBTPEJ2T8qpuNZSZ5DN7sLesuzAzni9c/QNc2fOPfgwKtt5smF4W/GJWLo/ujqcpu9xFJTCXAopwNTEUnamTuprccZWLBf19VJ+zKhmZfNWQnXMh5KvCZFdhUxIar3pIwC1yuhqki1jM+HC39+2Rfuh3qDlr","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-03T19:27:26.9448411+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-03T19:26:09.385025+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-03T19:55:41.5545223+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-05T12:34:15.1165894+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-03T19:55:33.9375386+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-04T17:57:13.4041443+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-04T09:27:03.4758753+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-03T19:26:44.0673747+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-04T17:58:26.8072952+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-04T17:29:09.6231133+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-05T12:07:19.0274395+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-03T19:55:26.4490153+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-04T17:59:25.1767114+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-05T12:07:19.0294362+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-04T17:58:25.1062818+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"},{"catalog_id":"ad56c197-6603-4d28-bec7-64431fce9bec","title":"动态API权限拦截器","description":"dynamic-api-permission-interceptor","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"4ae9c818-bd2f-4a7f-97cc-304ce5757574","gmt_create":"2026-08-04T18:00:48.9619456+08:00","gmt_modified":"2026-08-04T18:00:48.9657104+08:00"},{"catalog_id":"a9c5e12e-b0b6-4fad-ac66-cf64e001f0db","title":"角色管理模块","description":"role-management","extend":"{}","progress_status":"completed","repo_id":"26178ed3-332b-44ae-8692-e7ca355f2e85","reference_count":0,"id":"b4071322-5dbe-4e72-83d0-f500f65a4f17","gmt_create":"2026-08-05T12:07:18.3732696+08:00","gmt_modified":"2026-08-05T12:33:48.8318435+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":"d6c7a36bacd2121f03e6b587df9bfdc65246e4ec","last_commit_update":"2026-08-05T12:34:15.7363072+08:00","gmt_create":"2026-08-01T10:22:05.6819004+08:00","gmt_modified":"2026-08-05T12:34:15.7363072+08:00","extend_info":"{\"language\":\"zh\",\"active\":true,\"branch\":\"master\",\"shareStatus\":\"\",\"server_error_code\":\"\",\"cosy_version\":\"\"}"}}