Compare commits
3011 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8f2f0ea096 | |||
| 0dff03b8b1 | |||
| 6898c17adf | |||
| a039ab3a64 | |||
| 91a7e6b44b | |||
| 9572fef995 | |||
| 34bdf00d66 | |||
| 35a1908bc6 | |||
| 5e8988b73b | |||
| 499134cfa2 | |||
| 2cdf61a56b | |||
| fcef0f7f50 | |||
| 6a6e95fcb6 | |||
| 7f1ebb35cb | |||
| a6ef21b1b7 | |||
| 292d35eed0 | |||
| a9891405aa | |||
| 023a7b14d8 | |||
| aa716642ab | |||
| f4a55d3e26 | |||
| ba3fe15ec5 | |||
| fea84deca0 | |||
| ee1870802f | |||
| 2655110865 | |||
| a5dc4e7876 | |||
| 0abc618a1b | |||
| 6624a93a84 | |||
| 3cc127496e | |||
| ca55282516 | |||
| 867d8bc3cd | |||
| 4c200eda92 | |||
| 75f2b207a4 | |||
| dd0a2b73e8 | |||
| 93ff08863e | |||
| adfbb1433c | |||
| 7b36eb888e | |||
| ff9cef6a92 | |||
| 3720a648d7 | |||
| 6dbc942cdd | |||
| fc2a8f1311 | |||
| 9df6cc76e7 | |||
| 8f171ba3d0 | |||
| 1bc472b528 | |||
| 555bac151d | |||
| e21c262bd7 | |||
| 5ae1d0ab3e | |||
| 9819e05d4e | |||
| a886ad9785 | |||
| 510b4fd3de | |||
| 410c551e03 | |||
| e64e60c711 | |||
| cc6cb83507 | |||
| 9b7f6cfbac | |||
| 4ca1f72d4f | |||
| 64e1d68923 | |||
| 454e800067 | |||
| e16f1caae0 | |||
| 0c30f59e02 | |||
| 5efa0f327f | |||
| 4558ecd836 | |||
| b249c4e852 | |||
| 50f7be9976 | |||
| f361d05940 | |||
| 73c459f360 | |||
| 2de0fb48ea | |||
| fe0bde8417 | |||
| ed34b18d82 | |||
| eaa8e4be96 | |||
| d58da7b2b0 | |||
| 8b3bfcbd6b | |||
| bbee720710 | |||
| 1b87b8a42f | |||
| 7226f9b9b3 | |||
| df29f0682f | |||
| 8d2008f2b5 | |||
| 6891b75e27 | |||
| 19c0227cef | |||
| e79c750b46 | |||
| d80406acbb | |||
| bf966cd610 | |||
| f6c8159dac | |||
| fe5c5e4223 | |||
| f8e85575e0 | |||
| 008f88d185 | |||
| 803816b162 | |||
| 31a28cb40d | |||
| d6b59743a3 | |||
| 680718c78f | |||
| 30fce2911f | |||
| 2ab2b510cc | |||
| df609df2cf | |||
| 6b426fcd01 | |||
| ad4044f932 | |||
| 19fa65b0c3 | |||
| ba103d6e86 | |||
| 1a5fe6fa9a | |||
| 9bba1ce8a4 | |||
| 0ee7fedea8 | |||
| 99b8465e29 | |||
| 1280f49a04 | |||
| 722b33513c | |||
| 6a93484260 | |||
| e4936725f5 | |||
| 81f838c5d2 | |||
| 4d68e5e747 | |||
| 4237cfb4a9 | |||
| 63db275af1 | |||
| 772b794374 | |||
| dab0211385 | |||
| 4afff6185e | |||
| 2d1e57554d | |||
| 3c7f63c356 | |||
| df9ff3fc5c | |||
| 761ab8a0e5 | |||
| d728c36c1e | |||
| 19d5a0c2aa | |||
| 450cd1baf1 | |||
| bbba83ef61 | |||
| eb048532f7 | |||
| 44d828023c | |||
| a259e032e1 | |||
| 68f5edaa88 | |||
| 3170e7fd97 | |||
| 9ce50ec369 | |||
| 269816446a | |||
| f73cb540cf | |||
| a1c17b9b00 | |||
| 9203f485e9 | |||
| d8bb55fc0b | |||
| 3091a0882f | |||
| ee250c74d6 | |||
| ea4b4b8956 | |||
| e6f4c1f0d5 | |||
| a974d055b6 | |||
| c6a9751511 | |||
| 2668e0cfeb | |||
| b9f1e8ffaf | |||
| 9e895c8af1 | |||
| 02324f9e60 | |||
| cff6e520ee | |||
| f8f5e525be | |||
| 2e7c3e09a9 | |||
| d0df0e8e16 | |||
| e18ac461ea | |||
| 90bdc1fd83 | |||
| 0253846fdf | |||
| 1da8006af3 | |||
| 9e3055ee1e | |||
| 39d26cc84d | |||
| 2d0537387b | |||
| 8c9b483ac5 | |||
| 9c3cf1d6b6 | |||
| 290f45dd6e | |||
| 6c0978407b | |||
| 8a947990f4 | |||
| a98d00a7fe | |||
| 2fb36563ec | |||
| 81c726542b | |||
| 51968c4c19 | |||
| e35b8c45a0 | |||
| baabebb5d1 | |||
| 078ead536b | |||
| be0e0f5d71 | |||
| 9a03f1a796 | |||
| 2ede505987 | |||
| c48e0b9f48 | |||
| b5e19c63f7 | |||
| c38790655f | |||
| d31a12aff7 | |||
| 8dc56cc3f5 | |||
| 53a64272b9 | |||
| b0857aedbc | |||
| f0fd0c6677 | |||
| 8de2eea1f7 | |||
| ed1b55fed7 | |||
| b1be080e2f | |||
| 6d5fe962b7 | |||
| 0f6f204320 | |||
| 06977644ce | |||
| ff162e9c6c | |||
| 475e932aec | |||
| 039a2b1278 | |||
| 29405b9e41 | |||
| 0861372755 | |||
| bc93325b9e | |||
| 829965e50a | |||
| 46e60d6b0a | |||
| 08ff391f78 | |||
| 33c3686bef | |||
| 1f3f3d789b | |||
| c019136f07 | |||
| a1ee0991f1 | |||
| e5377074d5 | |||
| 6950368991 | |||
| 2f5afdb5c9 | |||
| 5de6a8bd23 | |||
| 82a25474f6 | |||
| 7542b6a78d | |||
| 525d41bad1 | |||
| 7286f33a7f | |||
| 60e684c455 | |||
| bd5c7d57dc | |||
| 7b482f5729 | |||
| e8ade5f1fe | |||
| 59752d43b7 | |||
| d65c28d7f7 | |||
| 106c1ecf4c | |||
| 0944584029 | |||
| a05d3bc1d1 | |||
| f56d8a2751 | |||
| 1fae341cae | |||
| 46f929ee8c | |||
| 1bdb389c89 | |||
| cd45fc35ea | |||
| 55a215da44 | |||
| 3e91ac73c4 | |||
| 9c341be4ae | |||
| 3bab9748db | |||
| 09724adb8d | |||
| 4cd36b2502 | |||
| b4612262b3 | |||
| e59f43408c | |||
| 805190300f | |||
| 0b7d42482f | |||
| bd76ea59a7 | |||
| 8434a8cd68 | |||
| f374e778bb | |||
| 86a9c4bbf4 | |||
| de8f2800e5 | |||
| ddb6fe7ec8 | |||
| 5851bcb479 | |||
| bada32750c | |||
| b0b6544887 | |||
| 4a007f0c98 | |||
| e1bb546460 | |||
| 8298896efd | |||
| 35f796875d | |||
| 07e610b3f7 | |||
| 8913572e51 | |||
| c1429dd3a0 | |||
| daf4651a4f | |||
| 289f0409d0 | |||
| 3c74b22933 | |||
| 6de17c38fd | |||
| c74881c8f0 | |||
| 13d6c42a48 | |||
| c5cc818a49 | |||
| 72cebfca14 | |||
| 1e5b0a1c0d | |||
| a7189e7425 | |||
| ff00748d11 | |||
| d2c071bbb6 | |||
| e71867683e | |||
| 8fa8f2890b | |||
| c234f5b5f8 | |||
| 63431082e5 | |||
| 1ac68aca97 | |||
| e4d3175f06 | |||
| a6a9f4e3a6 | |||
| 6a8baff080 | |||
| 1316f92081 | |||
| 9bac10c6f7 | |||
| a8c14614ab | |||
| 5c60202c14 | |||
| 23df8633f4 | |||
| 8f578a9a82 | |||
| 517f3bc187 | |||
| 8c67d1d0ba | |||
| 7c54affb16 | |||
| 57b8411f03 | |||
| 72865b5ebb | |||
| 802ac89b73 | |||
| 10d245afc3 | |||
| f69a18fd23 | |||
| 490418a1fc | |||
| 9ea0607339 | |||
| 5c395fc1c4 | |||
| f8604e17a1 | |||
| 8b80c9f415 | |||
| a0d72ffb00 | |||
| 7e806c65dc | |||
| db62d70f3f | |||
| 9574b23d9a | |||
| 8f2a156f30 | |||
| 0be3947199 | |||
| a321805ff0 | |||
| 59ff4be03d | |||
| 3cd27c83d2 | |||
| 98697ee075 | |||
| a8e8c14ab3 | |||
| 2ad27a487f | |||
| a9ae7b0865 | |||
| 30bf72f50e | |||
| 77e8600040 | |||
| 39b4cac33f | |||
| b8f8cab699 | |||
| 7cbdd1670b | |||
| 6b1f94f122 | |||
| ae98d17473 | |||
| 090b1bcd45 | |||
| f9fede3ea7 | |||
| ea59975d54 | |||
| 85994b6920 | |||
| c9482452e3 | |||
| 7038db5785 | |||
| 6a4449e03f | |||
| 076bf13687 | |||
| 0d3efe4f80 | |||
| 5e9cbb9cad | |||
| 9350523b35 | |||
| 5894d2be01 | |||
| 7c43c3a2b1 | |||
| 8507fa9172 | |||
| 9d10c74599 | |||
| 5bf7cd396f | |||
| 9451287264 | |||
| 160e3584d3 | |||
| 9eb4f49b4d | |||
| f333aa38c1 | |||
| 3707662187 | |||
| d430063eec | |||
| a36fe8c40e | |||
| 21a3870c00 | |||
| 3678752a61 | |||
| c94f71a3df | |||
| a9b2656971 | |||
| e0bdc4f4c1 | |||
| 73e76ab453 | |||
| a11d5dc5f1 | |||
| d59d1428d7 | |||
| c463f831f4 | |||
| 9a898a81fd | |||
| c69fbe540a | |||
| 455a4ebc7b | |||
| 78165f2161 | |||
| b2621c8891 | |||
| 9c1687dc25 | |||
| a62399fbca | |||
| da829f7cf5 | |||
| c2e9ecf7be | |||
| 6f237a10b5 | |||
| f656888965 | |||
| d2e965fb02 | |||
| 4dab6d0217 | |||
| dab751dc74 | |||
| 910bc09e19 | |||
| 319c73feaf | |||
| 47b77d7360 | |||
| 30fef09eee | |||
| e541fe6324 | |||
| c7386d9e04 | |||
| 35d171b1d9 | |||
| fc3bb430c3 | |||
| 645e6f3cc8 | |||
| 42dc4b6194 | |||
| d4cf945af7 | |||
| 5bb8fdca7e | |||
| e61ecb63dd | |||
| 8b67111733 | |||
| 2dd835893a | |||
| 73d53dbaad | |||
| 9aed06af5d | |||
| 5eb5472dec | |||
| b77b6322e1 | |||
| 4225db217d | |||
| 8eb04d6805 | |||
| c493397653 | |||
| a9c8f6c8e9 | |||
| 72969e921e | |||
| f02b9464bd | |||
| a5c59c6079 | |||
| 8ecc8cddba | |||
| eeeafcc10c | |||
| fa1aa51c96 | |||
| bc6cdecb23 | |||
| 58b901a8c1 | |||
| db03b10d24 | |||
| 2d9f5cc4d0 | |||
| fe4b51b9ad | |||
| 53b8e37f36 | |||
| 103e38b82c | |||
| 25595a13f4 | |||
| 1a93e3a110 | |||
| 591bc36737 | |||
| 36a51b68d9 | |||
| 6f882ca24e | |||
| 7724d6e830 | |||
| d3a565f011 | |||
| b79f6a8859 | |||
| 7b587a79ca | |||
| 79600774ec | |||
| 1580789334 | |||
| 6c536caad4 | |||
| c437201236 | |||
| b4d16b368d | |||
| 5ebebf1579 | |||
| fd2af50202 | |||
| 492adfe8e5 | |||
| 455f8e49fb | |||
| 16084d468d | |||
| 3f3899f5d3 | |||
| d6d4e50c4b | |||
| 4e897f3a9b | |||
| df51a678eb | |||
| 12bcee2a72 | |||
| 6d228828f4 | |||
| 4f42e7ca68 | |||
| 86160f40de | |||
| 4a51b20155 | |||
| f87d73724b | |||
| 8f06d02293 | |||
| 7f569f3299 | |||
| 930b5a8dd5 | |||
| d2c6c285f7 | |||
| f766474ff4 | |||
| 18c8a11a89 | |||
| e4378e5628 | |||
| b580356051 | |||
| 81f1800f40 | |||
| d07869f461 | |||
| a1e6348a37 | |||
| ee25b8aedb | |||
| 0bf24c6d16 | |||
| fbf864b6b4 | |||
| 033f13c6ad | |||
| ab3748d102 | |||
| f2ff30e465 | |||
| 6d7491fb02 | |||
| 6b3a54c8df | |||
| bb06c11405 | |||
| c7ab595460 | |||
| bd91276155 | |||
| ae763f727f | |||
| 63f9bcb0a3 | |||
| 3e9eb59de3 | |||
| 899e40deb9 | |||
| d1579499f4 | |||
| 8e480162c4 | |||
| 13e5d70be7 | |||
| ec67e63c67 | |||
| 1842549634 | |||
| 9a5f6f13b4 | |||
| fb8f5b6339 | |||
| 8bcc732c33 | |||
| d4bc6ce52d | |||
| 4a3aa1fa08 | |||
| 3021b405d2 | |||
| a597eb17d4 | |||
| 4e1d9d6292 | |||
| 0233b092b8 | |||
| be20178f12 | |||
| 0d821d705d | |||
| 1941a7b3e6 | |||
| 6a61db8508 | |||
| 6b86793b9d | |||
| 05369a36a3 | |||
| 770086ac5b | |||
| b41d469d46 | |||
| 77d7bcc73f | |||
| 780526f484 | |||
| 49accc946d | |||
| 0955ad0fc0 | |||
| 41c324acc3 | |||
| edea17e781 | |||
| 7506a1b012 | |||
| 6f135303d8 | |||
| 3d2022e31f | |||
| c50d27f5cb | |||
| 80db28ee5b | |||
| b5a667cb9c | |||
| 822e441765 | |||
| a0e3cb11ab | |||
| 737ea4635c | |||
| 87778f7fd9 | |||
| 827897807f | |||
| e40c0e3057 | |||
| 7f75f0abfc | |||
| 6fd8d0095c | |||
| c7a21b2a64 | |||
| 667957c941 | |||
| 867293a4f9 | |||
| 6270975902 | |||
| 7e1ffcbc0c | |||
| f589881de5 | |||
| e519b41244 | |||
| 86050d411b | |||
| 58ede7d69c | |||
| 716b081464 | |||
| 677a6d348f | |||
| 8c9873c425 | |||
| 8c9c91f0ca | |||
| 90f135ad95 | |||
| 5122aee924 | |||
| 966690125b | |||
| bf8bfef8cb | |||
| a440b354ba | |||
| 29ff418091 | |||
| 7ac74b44d8 | |||
| ac80aa97b3 | |||
| 067d53ac48 | |||
| a25fea18e7 | |||
| a88c93fc60 | |||
| df69fecbb4 | |||
| ee918a6d3f | |||
| 330380c2d0 | |||
| d2aee55ed2 | |||
| 2aecdbf09e | |||
| 5b9879ca8d | |||
| 01a55b93c2 | |||
| f5ea270be3 | |||
| a2f7067494 | |||
| 0d49691aa0 | |||
| d83e0413b8 | |||
| 413640f593 | |||
| 91d7938ddf | |||
| 7e6b084f77 | |||
| 5e6e02e4f4 | |||
| ddb5bce0a2 | |||
| b47c4fbd8d | |||
| 06649624e5 | |||
| 794649ea8a | |||
| a75bb825d7 | |||
| a51e9645ef | |||
| 7c48aaba8a | |||
| 01bdb33696 | |||
| 90842542a9 | |||
| a4b1395e92 | |||
| 256c560d43 | |||
| e67a6a2fe9 | |||
| 322411304c | |||
| 07e71e2ab0 | |||
| 7af80ba248 | |||
| 7598ed05cf | |||
| 0a8257a565 | |||
| 5b295d56b6 | |||
| 055eb350aa | |||
| ebb8f04fb5 | |||
| 7c09a1fc86 | |||
| 2915b46fa5 | |||
| 9abff2c7ad | |||
| 01b62a9b0c | |||
| 2f6456e2b0 | |||
| 5a5a42463b | |||
| 92be763c6f | |||
| 670c0962a7 | |||
| f4c92089e5 | |||
| 388e07c834 | |||
| 533b7295ab | |||
| c8ed99a5a4 | |||
| cbaadc3a77 | |||
| 5facac7330 | |||
| daa7d14b09 | |||
| cba0b08730 | |||
| e04c4b11df | |||
| 18de22dc39 | |||
| 645fe827a3 | |||
| b06432b8f8 | |||
| 2afc2caf1d | |||
| 71574da2cf | |||
| 53afc9d50a | |||
| 4ae3d34801 | |||
| 15313c2992 | |||
| 4235beec3b | |||
| 9705ae061c | |||
| 668fae9398 | |||
| a24919e555 | |||
| e8bc284dd0 | |||
| 9762a2a7c3 | |||
| d48a236d4c | |||
| e63ae8e1e7 | |||
| feba904fd8 | |||
| c162b39e1e | |||
| 09d45e6393 | |||
| 24b9688894 | |||
| 8efdf3141a | |||
| 381b8ea63a | |||
| 9537669d01 | |||
| 370d6df473 | |||
| 023b592299 | |||
| ca184026cf | |||
| b400aaac36 | |||
| 989d7c44d0 | |||
| 1eff9822ce | |||
| 787de1be94 | |||
| f9e64a9f0a | |||
| bf42f8e9ff | |||
| 87bc3f510c | |||
| e9317bf293 | |||
| 01641cd1be | |||
| ecf728966f | |||
| 9ee6a27b86 | |||
| 64db1a9c90 | |||
| e6d79eaf8d | |||
| acdfc28ee6 | |||
| 9a007de947 | |||
| 5bb91f139e | |||
| b7900c2035 | |||
| 0a58790c6b | |||
| fdaa08c258 | |||
| 71ce831d59 | |||
| 20b11092c2 | |||
| 4092f298ed | |||
| bdfb5b8894 | |||
| cf114409b0 | |||
| f4d600398c | |||
| 9996608da6 | |||
| 497d826ac4 | |||
| c886e7eff2 | |||
| 456b0c8ddd | |||
| 20725e3dfd | |||
| b8d5a665be | |||
| e1c34e9124 | |||
| f8ed0e15f0 | |||
| 68c9d563bc | |||
| 23cfbfe491 | |||
| 7a8ffd9ccb | |||
| 91dd61edc0 | |||
| bee4b761ec | |||
| a385a37c4a | |||
| c6422dc657 | |||
| 98aae5ed1a | |||
| 32499be98f | |||
| 3dade7fd54 | |||
| a0c142f886 | |||
| ab9dc8ad71 | |||
| 95e9dc81c9 | |||
| f1f180ff77 | |||
| 798dd3269f | |||
| 921c2ab757 | |||
| c066ea46f9 | |||
| df8a81f658 | |||
| 4dab376ca9 | |||
| 7767a8f837 | |||
| 5bfb8098d6 | |||
| 9f1b92abd9 | |||
| 7cd5272e7f | |||
| c2fd817989 | |||
| e6eaa3a24a | |||
| d048daf7d6 | |||
| 19c9b6ae93 | |||
| bec8a27a21 | |||
| 48b1c19f28 | |||
| ccccd9f226 | |||
| 1d3ef770a0 | |||
| b5f9ed9edf | |||
| 87fb47ca6a | |||
| fc087fa252 | |||
| 054d80b472 | |||
| 53afce0bff | |||
| 973b710992 | |||
| d1978d318b | |||
| c637a172ec | |||
| 67ac11b56c | |||
| 9608cf0539 | |||
| 677e8ab2fc | |||
| f73b857551 | |||
| fe50356ae8 | |||
| 0657c357bf | |||
| d8e49fa0f6 | |||
| 722e9c8a04 | |||
| 36a76c5ce6 | |||
| d9f6fb241a | |||
| 3af9688383 | |||
| c18f5baa4b | |||
| f4ea648ac9 | |||
| b0ddd522fb | |||
| 301f497527 | |||
| 81b6aebf47 | |||
| bf247a6626 | |||
| 74f786f8ed | |||
| 0719efb4c2 | |||
| ecb36eef67 | |||
| 3a2ccc9d6b | |||
| 8552e86d8a | |||
| 75115bcc48 | |||
| 5f29399cf4 | |||
| 626bd0bd55 | |||
| 12ae5bf128 | |||
| 738fcef453 | |||
| eb4b719b4b | |||
| 866eaedfeb | |||
| 04613af0cd | |||
| 126dc610b1 | |||
| 3fdc132c17 | |||
| 3a9ac56f96 | |||
| c11300d33a | |||
| a4aa1fac0b | |||
| 52e735f360 | |||
| 07dbfc5546 | |||
| c7695def5e | |||
| dd2f5ba2c3 | |||
| ff3b1e942a | |||
| d9a5ef3321 | |||
| df00126fa4 | |||
| af788e36ce | |||
| 86598dd177 | |||
| fc2d30cfaf | |||
| 7bff98b658 | |||
| 9095394fed | |||
| 633a4c5687 | |||
| 054569a3d3 | |||
| 3672d0f245 | |||
| 6723cae781 | |||
| a39a0e68a0 | |||
| 98561731f5 | |||
| f0d3614c34 | |||
| 1611dd4b23 | |||
| f3f2efcced | |||
| a778c25075 | |||
| 918ffc40ae | |||
| 728308cbc0 | |||
| 94c2ad5d1d | |||
| d0caa77f80 | |||
| ec27a1bae5 | |||
| 55f9e0131c | |||
| 723707c7ed | |||
| b5560fa0be | |||
| 9cf4cfca86 | |||
| f942e2c7f2 | |||
| 56b59cf383 | |||
| 6f8fd383f7 | |||
| 24e6deb82b | |||
| 9697aee898 | |||
| 3bb3e4caf6 | |||
| cc67174f87 | |||
| 0db4581030 | |||
| 3e570b8b89 | |||
| 6dfef29834 | |||
| aca65a66b5 | |||
| 785fbeeb5b | |||
| 90fb2c62b8 | |||
| 0e754a9924 | |||
| f363c598d8 | |||
| 89e847c8cd | |||
| 1bb2010dc0 | |||
| 2f7371b4ea | |||
| e4eeaa1d69 | |||
| 435d7dcfca | |||
| 34a5785768 | |||
| e4943f0dfa | |||
| db0fbf0596 | |||
| 183206e2d3 | |||
| f18a4741a9 | |||
| 73f4fc8ceb | |||
| f462ac7f96 | |||
| 04061b028c | |||
| 283ca908b7 | |||
| 01490c879c | |||
| bee6f41211 | |||
| 6e11154010 | |||
| 52ebcaaad7 | |||
| 6c8e82ca5a | |||
| 8bd1942083 | |||
| 3590336b1c | |||
| 453f69931f | |||
| 64b842ed94 | |||
| e21422d119 | |||
| f8e4aece31 | |||
| 14f006088a | |||
| 630890d0ac | |||
| 439edcd1be | |||
| 48661f980c | |||
| 979b484d7f | |||
| 6f757e5297 | |||
| d256275099 | |||
| 1b6c8574cd | |||
| a09ee495b6 | |||
| 00e18a480f | |||
| ffbf9278b8 | |||
| 6081ce30d5 | |||
| 2f69389982 | |||
| 0c4713b7e0 | |||
| 5842a361e2 | |||
| 0612a13cce | |||
| ee1d5c7e60 | |||
| b133acd8cd | |||
| 43985bff93 | |||
| 4b0333f3e9 | |||
| 0dcab0363d | |||
| 3c6c8aab01 | |||
| 07f3d09e38 | |||
| 0af205ede1 | |||
| c629fd2208 | |||
| b1e0129046 | |||
| 5e65512a92 | |||
| ba271da427 | |||
| 164be5732b | |||
| eedb528412 | |||
| e26bd20a5b | |||
| d842708c23 | |||
| d2112458d2 | |||
| 1ff9bc6a71 | |||
| 34210d3534 | |||
| 7d0bcf5d3b | |||
| b89ae001ad | |||
| 7aa1ecceeb | |||
| cebdc190b6 | |||
| 6fbb7d6d6d | |||
| b6e63e885d | |||
| 4273b8f09c | |||
| 01ef5f7911 | |||
| 1502159608 | |||
| 76f512fc7a | |||
| b6d400e04a | |||
| 6f08645f61 | |||
| d3385dcb4f | |||
| 8e35a786ba | |||
| 4f731e9904 | |||
| bb82c631e9 | |||
| ea810bb5d6 | |||
| 7345933d6b | |||
| df70402484 | |||
| f5dac38ca5 | |||
| 69268b525a | |||
| 4359c584bb | |||
| 3db7b30e66 | |||
| fcbbbc737d | |||
| 4f7c7f5619 | |||
| 0d45acaf20 | |||
| 7bc3b7b2ff | |||
| 7e312aae02 | |||
| 7cb8f8fab9 | |||
| b009f0b058 | |||
| 26d3672668 | |||
| 1fe6c82899 | |||
| 55eed1377a | |||
| 944e3862a5 | |||
| a47ab32800 | |||
| 6e4a9c3b01 | |||
| ca5e3f7bd1 | |||
| 8fd814e0c1 | |||
| 82fd800ad2 | |||
| fa600dbb44 | |||
| 3110e427fb | |||
| 970e524088 | |||
| 1ac2f2b5c2 | |||
| 0eb86ca269 | |||
| 82545ddaac | |||
| a4613f0af9 | |||
| e06f61ef39 | |||
| 8cd7941fc3 | |||
| 04d491b90d | |||
| 625504333b | |||
| 3105d86b7d | |||
| 2e207019b3 | |||
| 571961b4da | |||
| 7a9dbfe41d | |||
| b30754a0a4 | |||
| a72869b97e | |||
| 9a876cff3d | |||
| 4be709b815 | |||
| 66cdf4ca4c | |||
| fef808d88c | |||
| 704087ce86 | |||
| 670a098aa8 | |||
| 8d40f1d71a | |||
| 708af92a0f | |||
| b0179457ce | |||
| 41e5cf5285 | |||
| 7181ccbcef | |||
| 150a1c9771 | |||
| 2e5cc0537b | |||
| cfbc8b4849 | |||
| bccd270fc7 | |||
| 599d13b1ac | |||
| fdbebc406c | |||
| 42fcbe0501 | |||
| bc781d9473 | |||
| 245f14b8f1 | |||
| 2c10dde195 | |||
| 91d0bbf8b1 | |||
| 74a5e40d8d | |||
| df16278a03 | |||
| 6388950ab2 | |||
| 831983e314 | |||
| 45a2cd70f0 | |||
| 5d6faa8023 | |||
| e845872adc | |||
| 57407a39d2 | |||
| c869d99a0f | |||
| cd887511d8 | |||
| e09f07475a | |||
| 53e67c0437 | |||
| 10af05066c | |||
| 7b727d5ce2 | |||
| 781ec1028f | |||
| 2c0f1121ca | |||
| 2e559ebe06 | |||
| c71bdd158a | |||
| c8a9d68933 | |||
| 8a11ca8126 | |||
| 01e6140d67 | |||
| 99649bfdb8 | |||
| 6a38da4ad9 | |||
| c917f01d83 | |||
| 6636ee7420 | |||
| 1a0fda23b1 | |||
| 89b240c1f9 | |||
| c485c6e04d | |||
| c95317577d | |||
| f40bd23f6a | |||
| ec2c3e508a | |||
| c7b5df930e | |||
| c8f1269d6e | |||
| 1d9db4874f | |||
| 6099786c1b | |||
| 8b480c52cc | |||
| 34bf360da6 | |||
| ce77d510bb | |||
| 383439f902 | |||
| 4f33a0c9c0 | |||
| a76760c419 | |||
| 8e7b295d24 | |||
| 5f57cc6247 | |||
| 3d51c67f1a | |||
| 92da91a7dc | |||
| 9d7285c4ed | |||
| 07493bc7e5 | |||
| 3f6f7f404b | |||
| 474eebd8c9 | |||
| f732e7a750 | |||
| 038e23a6b3 | |||
| aec8e853e4 | |||
| 0b2943ba8b | |||
| 07d6ab5842 | |||
| 1bda3c8b53 | |||
| 6a04d6c458 | |||
| 269da3d56d | |||
| cd45be1fe2 | |||
| 16e436a0f5 | |||
| cc087e4eca | |||
| a37427c355 | |||
| c5824eedf7 | |||
| 6f39b2c030 | |||
| 8dbabb9efc | |||
| 7a15b340b0 | |||
| 60ea719b46 | |||
| 8e905f706d | |||
| dc1347184f | |||
| 20f5834d9a | |||
| a1e9bedf34 | |||
| 5819b08740 | |||
| 3c5917a6cd | |||
| a9e822762d | |||
| ac55a9657c | |||
| c66b4e7bc0 | |||
| 1bc1be14fb | |||
| df4716d5a1 | |||
| d874346d42 | |||
| b7359706db | |||
| d0f0bc5888 | |||
| 7fdd36d979 | |||
| 1f910992d6 | |||
| 2f0483ce9f | |||
| fdb10aeced | |||
| 6f4c04d944 | |||
| 0c1f5c9582 | |||
| f8b4a08fae | |||
| d4417d2474 | |||
| 057952bdeb | |||
| b74169acfc | |||
| 4f7d6b4959 | |||
| 00c2153fd3 | |||
| abfebebdd5 | |||
| 11921fab5a | |||
| afd306a71d | |||
| 2168145c3e | |||
| ab35fcbe9b | |||
| 4f03635fcd | |||
| a04a3a27a9 | |||
| d3f03540f8 | |||
| 82210a9583 | |||
| 7d68bdc7c8 | |||
| cafa938ff4 | |||
| e7876b1520 | |||
| 3875c80471 | |||
| d2c5eaf916 | |||
| aaa01de21d | |||
| d0d21b2787 | |||
| 16cea61435 | |||
| 42a899c5d3 | |||
| fc432ba073 | |||
| 9d71dff2a4 | |||
| 497ea2eee8 | |||
| d7ae944438 | |||
| cd678e997a | |||
| be6399238b | |||
| 86e2523069 | |||
| 3489144757 | |||
| 367b45e3bd | |||
| 597eacaaeb | |||
| 0b35d4a7e3 | |||
| 5ecd0d94eb | |||
| b376de1ad3 | |||
| 6b7f071988 | |||
| 26628913cb | |||
| 929ff4286a | |||
| 171161e6c7 | |||
| 96b1662e4a | |||
| 9ee0aebd3f | |||
| 80d532b0f1 | |||
| 7d497ce09b | |||
| 71ec06393a | |||
| 57d782bc94 | |||
| ce6f7ab1b1 | |||
| aa2f651124 | |||
| 666ba351a2 | |||
| 3c643f814c | |||
| d402bdb7e0 | |||
| 62f821abf2 | |||
| f9bf41d773 | |||
| b1ce971a2f | |||
| 9cd36abf10 | |||
| 5913ee0706 | |||
| eeb8873b1d | |||
| 9e3564bd6a | |||
| 8811ce0200 | |||
| b2c608e7a5 | |||
| 565a8e0e6b | |||
| b9018baa03 | |||
| c5f2d07c87 | |||
| 26dfbfb2ac | |||
| be426235dd | |||
| bc07e1dbf4 | |||
| 74ef98f8fc | |||
| 2766dd672a | |||
| 11ffa45b89 | |||
| 53bd1b9ec1 | |||
| cd2d0b7089 | |||
| 77f7763560 | |||
| cf41347cb3 | |||
| b1ac3a0b8b | |||
| f9aec7d8fd | |||
| debf568750 | |||
| 0a3a6825d5 | |||
| ad535e674f | |||
| a8c78f3097 | |||
| a431bccc02 | |||
| 9e99b04375 | |||
| 826d792ff2 | |||
| 5a5f92d2e9 | |||
| bce96b29a6 | |||
| 42c47d9b44 | |||
| f088fdff84 | |||
| 8649b285cf | |||
| 3972fbd1d9 | |||
| 437185cb1d | |||
| 6fcff0863a | |||
| 56c4595058 | |||
| e384b810bf | |||
| 1553900193 | |||
| d6e736bd56 | |||
| c92365128a | |||
| 16af31d980 | |||
| 0f0e6eb8ba | |||
| 3dca66eefa | |||
| f864aa1cfd | |||
| 0669b9da34 | |||
| 9b7c757942 | |||
| 0b84c18736 | |||
| 3a297271eb | |||
| 83a133b344 | |||
| 967e578d54 | |||
| 9856e17974 | |||
| 96d4e7bc56 | |||
| ffdaf3a859 | |||
| e9fd377772 | |||
| 63fee66657 | |||
| cfec4b12ca | |||
| 13f135abe9 | |||
| a98a7c7645 | |||
| 22041b6f8d | |||
| 8187398bdf | |||
| 0b649fd3e1 | |||
| 4efa93b03b | |||
| 3826846368 | |||
| 921f99d39d | |||
| 421bb7d154 | |||
| 60f766f35c | |||
| 51899c4c13 | |||
| f7296d18b9 | |||
| b420c5b8fe | |||
| 9b8312f596 | |||
| 29b806e675 | |||
| 798ae7c2c7 | |||
| 2a9aa357cb | |||
| b4587fd79e | |||
| 53e789dfdc | |||
| bf0e7d2c77 | |||
| aa5525d1f5 | |||
| 1da14a3f53 | |||
| a9485ad6bf | |||
| e9c9ac0cab | |||
| b13f71424b | |||
| 052328c5fa | |||
| 71d6311bd4 | |||
| 54fe0174bc | |||
| 9451342aae | |||
| dc46dff62c | |||
| f30fa39067 | |||
| bbd18afbcc | |||
| 6e6486ccae | |||
| ad0513c87c | |||
| bf40767fa1 | |||
| 7c4fbc63dc | |||
| ee15b802b2 | |||
| 972b01c001 | |||
| 92f6c8f4d6 | |||
| 910ffa7a5a | |||
| 7a8a440eb6 | |||
| eddc897cd8 | |||
| 637ae8ce1d | |||
| c146c98b72 | |||
| f72a087007 | |||
| 594e4d5fee | |||
| a7de955926 | |||
| 5ed99a9105 | |||
| 24111c1548 | |||
| 5949727c8d | |||
| c880dbfa60 | |||
| dbd7ab5f23 | |||
| b94f89b4f5 | |||
| 8060aeb5e7 | |||
| 35569c5ec8 | |||
| 1b477aaa0d | |||
| 583a0a2dd5 | |||
| 6ef94ade6a | |||
| 52848d6341 | |||
| 1d2a6ad065 | |||
| c766f7daa5 | |||
| 1b154699c6 | |||
| 2278ad4652 | |||
| 962f2bbf69 | |||
| 9630f236f8 | |||
| de7699d972 | |||
| e22c577f7a | |||
| 8cfb738db3 | |||
| 32e1fc66ce | |||
| 581f9d4101 | |||
| edfa7bcefb | |||
| 04a391cd4b | |||
| 408df683d8 | |||
| f998d43e68 | |||
| a3e161a9a3 | |||
| 6c80ef38f5 | |||
| a3e8b42be6 | |||
| af6016bba5 | |||
| 75874035a4 | |||
| be1ecf96d4 | |||
| 477342d324 | |||
| 080c32b9f3 | |||
| b81ebe6f19 | |||
| 436fef7efa | |||
| 222daa5366 | |||
| a51579a77d | |||
| 48fd4972da | |||
| ab800aa891 | |||
| 50371b3676 | |||
| 62c4838ba7 | |||
| ebb3a04251 | |||
| 6a371f06b0 | |||
| 808ff6abb9 | |||
| f0f5b52150 | |||
| 08d39d4593 | |||
| a52e490c86 | |||
| d4a891e6c4 | |||
| 0907ca2081 | |||
| bbc16bb937 | |||
| 73e4976ae4 | |||
| e893cfd757 | |||
| 9d262e8e7f | |||
| 2c821d2bbf | |||
| ebd4ea548c | |||
| 0e1b8126dd | |||
| cfaffd3c88 | |||
| 1b9a3f9f63 | |||
| bcb3b19418 | |||
| a10d77cdfe | |||
| 437131cc7a | |||
| 9358639c41 | |||
| e8bdd8349c | |||
| a2ba5518e0 | |||
| bdd81e4cbc | |||
| 82c6354e1d | |||
| 18c9f22560 | |||
| c67ecbf61d | |||
| 950ec10cff | |||
| 254d7828aa | |||
| 1f327ef8ca | |||
| f2ee213caa | |||
| 8b50cd9661 | |||
| 4674caa01a | |||
| 092e48b9d5 | |||
| 5e9e41c045 | |||
| 1184b46c40 | |||
| 97a91e5454 | |||
| c5b78a2af5 | |||
| e1b92c3d64 | |||
| 314dee430e | |||
| 77daa0085e | |||
| 7fb455096c | |||
| cddeb37289 | |||
| 4eedf6ad36 | |||
| 290d1671a2 | |||
| 0c9485a6bf | |||
| dffdd471d5 | |||
| 6c193f723f | |||
| 3976011af0 | |||
| 499a054eb9 | |||
| 40e1a879e3 | |||
| 57f0ea04f7 | |||
| c023209aa5 | |||
| 51dab96889 | |||
| 50354462fe | |||
| 95d8be0455 | |||
| 2bbd86e25d | |||
| 4265441e1d | |||
| a47d744f64 | |||
| 797680895b | |||
| cd51d57f12 | |||
| 426594ae00 | |||
| 643602d038 | |||
| 5858f57fe9 | |||
| 5a940b1d2c | |||
| a5e33f6d3a | |||
| ca55e61dd2 | |||
| 65d7b30011 | |||
| 55f8585ea8 | |||
| fcf8ec98a0 | |||
| 5719b7df06 | |||
| 5d4a750dfb | |||
| 7bf21fb02d | |||
| 57d2b7e3be | |||
| 557b09a157 | |||
| 3b5215db21 | |||
| 4e9be7a181 | |||
| 259734964d | |||
| f97c7a0f6e | |||
| d7488e70b0 | |||
| 87c55784c4 | |||
| 5235aff8ad | |||
| 6ef36d5ca6 | |||
| 1ead368595 | |||
| 4b43304c76 | |||
| 3e09da0128 | |||
| f36a6c5d6c | |||
| b85d660a5c | |||
| 2fd201c7fa | |||
| 0a0c3c0ede | |||
| ddcebb1986 | |||
| 1cc2dfc963 | |||
| 166b1b31c0 | |||
| 5d6bb84d25 | |||
| 0e8755972c | |||
| 5808f77ade | |||
| a4d6d5e6c3 | |||
| b3d3efc8c4 | |||
| b8a4d8cab2 | |||
| 1bf182c341 | |||
| 76a8fb8a0a | |||
| eb342d5abf | |||
| 62a4e8242b | |||
| ea26691967 | |||
| bf92727b27 | |||
| fcca69d243 | |||
| beb385aab4 | |||
| 2591ab5d36 | |||
| 9074312fe3 | |||
| 4a0fa2a3a4 | |||
| 3f51be6a2d | |||
| fa53a3b15e | |||
| 9336a0a102 | |||
| e4b153a866 | |||
| a68691f2d9 | |||
| 6474502738 | |||
| 0329f13fbf | |||
| 9eb7837b67 | |||
| a708521b9d | |||
| 2f6092005b | |||
| f99e2aec2d | |||
| f3ca0f066b | |||
| a58d7d63ed | |||
| 090058a2ba | |||
| c7ef8519c8 | |||
| eae8218f0d | |||
| 7389e4fb65 | |||
| fc56a15f76 | |||
| cc4c924717 | |||
| 91b03e7c93 | |||
| 6a819da0b6 | |||
| 991b53649b | |||
| 36b3cfafd2 | |||
| 5308e309ea | |||
| 379c143dbb | |||
| a532ba0579 | |||
| 05fc322919 | |||
| 0cb7d8a29a | |||
| 4db3de8d86 | |||
| a1f6826e14 | |||
| 4809e9b462 | |||
| 8f86f65884 | |||
| 482a84a6f1 | |||
| 670f2ef5da | |||
| 8321d14b0b | |||
| b69d4e0852 | |||
| 80a5889757 | |||
| 7870283bfa | |||
| e67b62f2f6 | |||
| 9148170926 | |||
| 71efa0ed6f | |||
| 8bbaaf1ce9 | |||
| 6a7be19d3a | |||
| 11ad7ad5e4 | |||
| c25bf38f50 | |||
| 9c0d0c809a | |||
| 68c1113ed1 | |||
| a6ec3fefcf | |||
| c06d3c3d26 | |||
| 3fbce643ee | |||
| 76f510f247 | |||
| b3fcefa677 | |||
| af0771a175 | |||
| 28adfff10e | |||
| 8dd600a300 | |||
| dd6adb8ee6 | |||
| e26814be31 | |||
| 1f9968d784 | |||
| 1ca5dd7e93 | |||
| 891ed3d055 | |||
| 361ad2e22a | |||
| e6f1e5d968 | |||
| 26129b52a8 | |||
| d982a95fdd | |||
| ba444c9538 | |||
| bca6fb4698 | |||
| f28b960319 | |||
| 457312d5aa | |||
| 7d4d3bea55 | |||
| 60d4aa97fb | |||
| 059202a588 | |||
| 73f1636daa | |||
| 3e4b1c0552 | |||
| 5a788af084 | |||
| 278f2af8f8 | |||
| 716727bfa7 | |||
| e8662e35e1 | |||
| dac0d2d693 | |||
| 3e488d4308 | |||
| 9507b6d800 | |||
| d5fe7708ce | |||
| cc71aabd3d | |||
| ddcb3e69f9 | |||
| 6132443d26 | |||
| 0411b3464a | |||
| 9077f14bae | |||
| 3d894ca7f5 | |||
| 7237bc07bb | |||
| 498edfffb1 | |||
| 655eefc340 | |||
| c7f6f92159 | |||
| d82729e4c6 | |||
| 8b98d13d8b | |||
| 1baa7f4aee | |||
| 35c1ba44d3 | |||
| 2acf5c878f | |||
| 02bc9d28de | |||
| 3dd273a30d | |||
| 6696bb8943 | |||
| 40560f9618 | |||
| 7d99c6dbe8 | |||
| 544e650e15 | |||
| acee734554 | |||
| 17f0297fb6 | |||
| 530ec7ab24 | |||
| f5c5d38303 | |||
| 806228be8b | |||
| 99dd33c408 | |||
| bef7937835 | |||
| 1e2c83d90f | |||
| 02abe86253 | |||
| f10b638caf | |||
| f6f33a07d0 | |||
| b75d777670 | |||
| f8952f8e34 | |||
| 583d34a801 | |||
| 1b192b5032 | |||
| 3badd5158c | |||
| 61d51e54dc | |||
| e490195cbc | |||
| fd126ba2f7 | |||
| d4acacec60 | |||
| dad56fd096 | |||
| f33b66558c | |||
| 1ffbd9399e | |||
| 9aee08ee0e | |||
| 2895ae3ddb | |||
| 2132de9dd1 | |||
| 65eddc63af | |||
| 5cc3e6510b | |||
| 9b6f5bd503 | |||
| 0619989586 | |||
| 55cae6d2aa | |||
| b119aadba5 | |||
| 81c12b1852 | |||
| eb4434ecbc | |||
| 282c15c7c4 | |||
| da8b2eab6d | |||
| 4dd2d80887 | |||
| 4132cf1437 | |||
| dc382d80bb | |||
| 60875a0472 | |||
| 175d244dee | |||
| 5932e8e931 | |||
| 287a17a9ff | |||
| c0ffaf8ea9 | |||
| c7f0b5c73d | |||
| 4c634245e9 | |||
| 54bf24b966 | |||
| b7f54a3061 | |||
| ca51056c00 | |||
| 002475f33a | |||
| d2c135eda9 | |||
| 0753df68b8 | |||
| 551a968449 | |||
| 883bdc65a1 | |||
| 292f23c4b2 | |||
| d29c5a556c | |||
| bdb38c4157 | |||
| eff9fafde8 | |||
| 5a2d9d14df | |||
| 7fd497fcc9 | |||
| 7b2f639324 | |||
| 716f11e80b | |||
| 9d9638b15b | |||
| 8123354f09 | |||
| 8ae3401452 | |||
| c2b6c0d72a | |||
| 800c44a46e | |||
| 4cd5b5712b | |||
| 0d1fc1138a | |||
| de83531285 | |||
| e711092440 | |||
| 8ffbc15cec | |||
| f884054d2c | |||
| 8f9404f99b | |||
| c3e4e23459 | |||
| 3124948175 | |||
| 281ba1e369 | |||
| a83c156bf1 | |||
| c5e85f3bfb | |||
| 4257cad46a | |||
| e2032e7e97 | |||
| 9eca965dd6 | |||
| c7285da9a7 | |||
| bfc72a9802 | |||
| fe53e426a4 | |||
| fe68b42a8c | |||
| 29ae1bcbca | |||
| 2584911d88 | |||
| 8191d9e141 | |||
| 95254341a1 | |||
| 4f589cad53 | |||
| 5d4a7ffa3b | |||
| 87e5b2bed1 | |||
| 4153331535 | |||
| 94a32d34b2 | |||
| 9b6e2114c7 | |||
| a4e2cacc46 | |||
| e8c1bdde3d | |||
| db1f44305d | |||
| 2e9dfac9ab | |||
| 61fbb9909a | |||
| fe07e223e4 | |||
| f217ba0807 | |||
| 6446b753d3 | |||
| 97fc4027de | |||
| 5dd6e5bee8 | |||
| 6fbf7b261b | |||
| d3c02f2a57 | |||
| c3de25e760 | |||
| 1b03fdb08b | |||
| a159a983a2 | |||
| 159c74ce15 | |||
| 60171ce7e4 | |||
| e4a2c738b2 | |||
| 5b9106fdb5 | |||
| 5c2723c7bf | |||
| de828e3d04 | |||
| e2a8f7b389 | |||
| 651725e3e8 | |||
| a8223fc4f2 | |||
| e6f4d649aa | |||
| 36da5d69b0 | |||
| 715c42574f | |||
| 7dc398717a | |||
| 503c996acd | |||
| e159b2e500 | |||
| ba31d5f6fb | |||
| baa2e69cdf | |||
| 1a999cbb75 | |||
| b55c1b942d | |||
| 6fdd4da0b3 | |||
| ebf4ac1d5a | |||
| 3bfaa3d5c3 | |||
| be2ee905df | |||
| 4177071758 | |||
| 5fcd0a21da | |||
| ee53d2ad51 | |||
| 9ff67b479f | |||
| 8960a82978 | |||
| b5515799dc | |||
| b53bfb0976 | |||
| aadf2778fe | |||
| 815755fa3a | |||
| a97e06b460 | |||
| 1130434b02 | |||
| 4d0873374f | |||
| 27b8202053 | |||
| 134e5ca20f | |||
| 64c8dd6292 | |||
| c4a7da9233 | |||
| e1fe21f24c | |||
| 47698bfc6c | |||
| 72d2dcc68f | |||
| f221f58973 | |||
| 93effe8fa7 | |||
| d397758dd1 | |||
| 8f43fba629 | |||
| bae94d06ac | |||
| 33323c1483 | |||
| bcf7dd0917 | |||
| ead8741393 | |||
| 14c7465bc6 | |||
| ba59ec85e0 | |||
| 0219e6d907 | |||
| b052c8457a | |||
| 384359c9d4 | |||
| 5f9184904a | |||
| afaef0dfbb | |||
| 222d1cf69b | |||
| 5e2fa48f20 | |||
| 7a7ae3b8ec | |||
| 105f1a2707 | |||
| 1f3794db77 | |||
| c4755c49b1 | |||
| c434c960a1 | |||
| 8edc4f68a2 | |||
| 3b715a1380 | |||
| 508ad76cb8 | |||
| a82898ca13 | |||
| 92b10e2ecf | |||
| f5079b1c57 | |||
| d156d43d63 | |||
| 68049b85b9 | |||
| bc30c1d9d2 | |||
| ae98315616 | |||
| 59e6006572 | |||
| 402a3809a3 | |||
| bf3e848c17 | |||
| 7a49e45b4b | |||
| 24a406e47d | |||
| d67f4a7f46 | |||
| dfa09c787a | |||
| 27e70e73a3 | |||
| 5e7e3d816c | |||
| 95edd1d451 | |||
| 418ae829da | |||
| 48f5d3f0e2 | |||
| 09a2cfaaa7 | |||
| a6ffb5d650 | |||
| 0fb3c4bfcc | |||
| 446951bd11 | |||
| 7f657ee931 | |||
| c33186569d | |||
| 5d6308e4bb | |||
| 859cf74a6c | |||
| 6a38738760 | |||
| 21b3744544 | |||
| 0c51e7fdba | |||
| b287fdb9f2 | |||
| 6c174d9c83 | |||
| 14d7db0c60 | |||
| 114f1e4833 | |||
| 461c789492 | |||
| a0417f182e | |||
| b84f7825c5 | |||
| 414c1be128 | |||
| e2ed0b7afb | |||
| c42ff645d1 | |||
| 91769f0b75 | |||
| 1dee258c18 | |||
| d9522808eb | |||
| 8e51de5349 | |||
| 91aacefc3d | |||
| eb0a1eb293 | |||
| d1796e51ff | |||
| bd1153fbe2 | |||
| 870873e480 | |||
| 999dfd7c4a | |||
| 7f0901e0bb | |||
| 7c165fb1f6 | |||
| 9d10c85be8 | |||
| 3a1694dea3 | |||
| 0fcc0072c2 | |||
| 5ae43a238d | |||
| 73e1158836 | |||
| c9c176ea05 | |||
| 7957cfa50d | |||
| 8d13ecc9c8 | |||
| 00e1c30f57 | |||
| 3f988a890d | |||
| 3a24d05bdc | |||
| 6aea461e8d | |||
| ebeb14be2f | |||
| 9812881094 | |||
| 0e5e6c7ce0 | |||
| 5b066ea693 | |||
| ac5646b84d | |||
| cc853a2b92 | |||
| 15cca8f3de | |||
| 348d073718 | |||
| 717caf527a | |||
| f46a037164 | |||
| b426c63eeb | |||
| e27ec2fd50 | |||
| f92a5899f3 | |||
| d556877b13 | |||
| c95a1d0a7d | |||
| 6c5ea2bc11 | |||
| 91b4280625 | |||
| f23e1b857a | |||
| a73e078593 | |||
| 259807600a | |||
| 29d61beb11 | |||
| da529851bd | |||
| 654b70c514 | |||
| b54f7e9256 | |||
| 721adfbf60 | |||
| 3caa5f14bd | |||
| b84da30234 | |||
| 5dcb3db5d7 | |||
| 888c488206 | |||
| 3f410c2735 | |||
| 1c282bd3cb | |||
| d80bf5a368 | |||
| 6f475f8c85 | |||
| 7cf4c5415e | |||
| d0a7f41875 | |||
| 68a4ef98ca | |||
| 66ed61c641 | |||
| 7caf8e900f | |||
| ecdc39612f | |||
| a6437b7cc5 | |||
| c44ace6011 | |||
| 518e89dc4b | |||
| 1c3521c5fa | |||
| 147cd271b8 | |||
| 7cdb321fe4 | |||
| 927f71c7e2 | |||
| fbb63ee262 | |||
| 47ba5b7b44 | |||
| 35ceef371c | |||
| 052e4689ee | |||
| 0ac599a3d9 | |||
| f1c4c7964a | |||
| cad508def6 | |||
| ca4afc2909 | |||
| 2485a5ebc9 | |||
| e7d8643665 | |||
| 0134375401 | |||
| 0fa3ed9421 | |||
| 9cbd0fec1c | |||
| 5d2d52020e | |||
| 4682650e11 | |||
| b06a21f9af | |||
| e31b40eefa | |||
| 4014137a4c | |||
| efb221b1fe | |||
| e615be971e | |||
| d76bc7aa82 | |||
| 284506b356 | |||
| f492797fba | |||
| eaeb435459 | |||
| 2865c28a9f | |||
| 75afab1f86 | |||
| 3f33ca2d6b | |||
| d224b6b9be | |||
| cbc61184bd | |||
| 67d60e32f8 | |||
| b697ee3298 | |||
| b78f814552 | |||
| 78b3d2a20f | |||
| 20eb0a2a88 | |||
| 41d996f7f3 | |||
| c563051841 | |||
| 409ec555e8 | |||
| 23e3c4d0d9 | |||
| 08e9772f66 | |||
| 11c4c950b7 | |||
| 6b42efd786 | |||
| 040a66965c | |||
| 2f42964a96 | |||
| 9b90320985 | |||
| 1b558a02b0 | |||
| 6fc724545b | |||
| 6206dd94e2 | |||
| 0a20f7fe9e | |||
| 3750dc76c7 | |||
| 3a1e5c1b5f | |||
| ef656cf762 | |||
| b3c1be108c | |||
| a918b54b28 | |||
| c1e020a286 | |||
| 0200fa6e53 | |||
| c7ced55a6c | |||
| 5ffea93731 | |||
| 846405d8b1 | |||
| 3e9768374b | |||
| 7ad3b6ad2b | |||
| 7036a6652c | |||
| 8ea46b8fc2 | |||
| 9826bd614b | |||
| c1782c432f | |||
| d44c29296d | |||
| 4393c5da1c | |||
| 02fe0329e4 | |||
| 0899f5fd29 | |||
| bdb18b4ced | |||
| 5c9a99c83e | |||
| e5c556f106 | |||
| bb0bb2a4fa | |||
| 4a3703e302 | |||
| 050f0bb6a2 | |||
| b582206003 | |||
| ad1f656dfa | |||
| 1dfbe45913 | |||
| 07884ef423 | |||
| bc54e2fb35 | |||
| b92ed60136 | |||
| 2efdbf93cb | |||
| b16632ea41 | |||
| 6b1d996b66 | |||
| 26f563df57 | |||
| ab30ff6480 | |||
| b0fcd96dfe | |||
| f5b2bb4d7d | |||
| c33bd38b5d | |||
| b44ad3a0f7 | |||
| 666925da6e | |||
| 772a982b5f | |||
| 700d95a43d | |||
| 8dfb298376 | |||
| 9517ffdfb8 | |||
| bf7f68a04b | |||
| 8a7f7fd641 | |||
| 2f0aaee823 | |||
| d6bd4be8b0 | |||
| 32b348a2d3 | |||
| 6b3af71735 | |||
| b7c0fef63f | |||
| 2672b3e2fa | |||
| a93b9a616f | |||
| 7fc1016e90 | |||
| 850d028ec7 | |||
| 331be53b8b | |||
| 49d726019a | |||
| fc570b6062 | |||
| d795dbc7ac | |||
| cd4940d710 | |||
| a93acd2a74 | |||
| 6573849f56 | |||
| 7d0e9ea762 | |||
| 60b24e36d5 | |||
| 1871a01944 | |||
| 59e16795be | |||
| 35df912be7 | |||
| 08535d6019 | |||
| 16f2a5b91a | |||
| 32cca12cd2 | |||
| fd072b7d6e | |||
| 798e322f08 | |||
| 8e3a65d84c | |||
| 8d58b1e862 | |||
| a4c11b890c | |||
| 079fa42ba3 | |||
| 74aebfca3e | |||
| c7e3a8c126 | |||
| 1f4f8c0747 | |||
| ecfe0b864b | |||
| a978c99617 | |||
| 16dd86a8db | |||
| 933bb188bd | |||
| 281590c48e | |||
| 03d7d2eead | |||
| 09776a73b5 | |||
| e791a06e2e | |||
| 749fe9d515 | |||
| 7e6a3d2e36 | |||
| 0d47d6cead | |||
| 59d5fef592 | |||
| 07fe52939d | |||
| 5b324f90a4 | |||
| 8ec3733882 | |||
| af9334c9b2 | |||
| 1662d17fc9 | |||
| e69e6d880b | |||
| 217a31a123 | |||
| af0eeb6e3b | |||
| b74991e242 | |||
| b892a6d2bd | |||
| 25df1e2ecd | |||
| 296256a55a | |||
| 66f09ed54b | |||
| cd33f68e2b | |||
| 4953d5ec62 | |||
| ae8397422a | |||
| e23fb5024a | |||
| 573ad59edc | |||
| df6d63068d | |||
| 60172274ec | |||
| 70b48ca232 | |||
| 5cfcaa1a6e | |||
| 9ff873fe53 | |||
| 20100aa78b | |||
| dcb1660880 | |||
| e1a8e45ac7 | |||
| 0c283ded5d | |||
| b6c7a940be | |||
| 644d976a78 | |||
| 45e5578cb4 | |||
| 5ffc1ac9f3 | |||
| 5f64fe052b | |||
| 73d0e9d08a | |||
| 4f5ac0edbb | |||
| 143bff909a | |||
| 9e894e0430 | |||
| 66210e5ee2 | |||
| bb8e44a268 | |||
| dde89d51d5 | |||
| 1e1a22c256 | |||
| 84b365a707 | |||
| 25bea4920c | |||
| f2d803c111 | |||
| 4126e37d91 | |||
| f75f4e8846 | |||
| 0e817b190f | |||
| 91e357e59d | |||
| 8f7efbe4e2 | |||
| 151e58daa1 | |||
| 5bfca56efa | |||
| db7e47faa2 | |||
| 6ca09af97e | |||
| 3e350151bc | |||
| 87d4f9b71a | |||
| 9af0aa5f7d | |||
| 87670265b2 | |||
| 36c45bd44e | |||
| dd93215139 | |||
| e72f741d02 | |||
| f3a982da31 | |||
| f59119bf6e | |||
| ba380ea615 | |||
| 910d374cee | |||
| 36ce968893 | |||
| f1fa8eadd2 | |||
| 73a781cbbe | |||
| 0d08c814ec | |||
| 1452f6b231 | |||
| 636b14ccce | |||
| 2a9a869e01 | |||
| 51cf5b7c67 | |||
| e41935ea1d | |||
| 8d2bcc57aa | |||
| 5de8fa2e42 | |||
| e86214015d | |||
| e34eddc386 | |||
| 894b19b8ec | |||
| f8db53896f | |||
| 35daee84e7 | |||
| fcaa92d406 | |||
| 382c3a4699 | |||
| 151f659c99 | |||
| 8004a11036 | |||
| 406f69e21d | |||
| cc049566d1 | |||
| 5ffed46288 | |||
| 6bdc31a315 | |||
| 0631c51d93 | |||
| 6a9146ff8d | |||
| 22c70df111 | |||
| 55dbff7570 | |||
| 02fa6fc5c6 | |||
| 0083d12404 | |||
| b065a2a741 | |||
| 53e9be733f | |||
| c62da6a056 | |||
| fb7915c917 | |||
| a70c7ca855 | |||
| d08b9530a2 | |||
| cac5545762 | |||
| 16956a6501 | |||
| 3672c217f8 | |||
| 7bfb426a9d | |||
| 3b92042d4b | |||
| 01a67289a9 | |||
| 02e22c664d | |||
| e942b52a67 | |||
| e745bb6675 | |||
| be7c664e07 | |||
| 83aa656bda | |||
| e25099a49e | |||
| fbeaa06100 | |||
| 3da2eb89b2 | |||
| 39e52cb145 | |||
| f129eab36f | |||
| db73ddc942 | |||
| 8ed52701fd | |||
| 4faf61a475 | |||
| 86be0bdf80 | |||
| 4b643a7b34 | |||
| 12d6c14b1c | |||
| dbdf1d9fb0 | |||
| c74ab7450d | |||
| 5fb77df903 | |||
| 61220cf44e | |||
| 5dab4ae2e2 | |||
| bb949d991a | |||
| cf61b6056a | |||
| 3bcbc6656f | |||
| 21499a4d40 | |||
| 7a792a7d48 | |||
| 7fef594390 | |||
| c21e88860f | |||
| 85047bca7b | |||
| 467811a42e | |||
| 0ffa7ff4c8 | |||
| 494928ed88 | |||
| e4a5a5672f | |||
| 69ebfbe105 | |||
| 7c1a4db5a9 | |||
| 9d68c62177 | |||
| 4891f18538 | |||
| d794c2c198 | |||
| 912e18857a | |||
| c3d9439030 | |||
| 8ec0be01a8 | |||
| 6ac96facf6 | |||
| 0b3640a522 | |||
| d25062ec81 | |||
| da2810dece | |||
| 6a4616b6ea | |||
| 235882791f | |||
| 5b13c07e01 | |||
| be01cd4894 | |||
| 023322cb25 | |||
| 14d02bdfb3 | |||
| 96e2bf020f | |||
| cd86620b74 | |||
| 7345d80b53 | |||
| 19ceea2c6c | |||
| 810c7ed040 | |||
| c233ce1a20 | |||
| 6b05835cb3 | |||
| e163ae8b70 | |||
| 9980b12551 | |||
| 97502c8b51 | |||
| 70816371e5 | |||
| f7fe9ad7b0 | |||
| 6428f0fcaf | |||
| da162853ec | |||
| 15ced47b17 | |||
| c10ea9d9de | |||
| 24a56bb45f | |||
| f56d394830 | |||
| 668d493b7f | |||
| 3905060bbf | |||
| 1e3380d0a3 | |||
| 2113e825d7 | |||
| 3851149338 | |||
| 7549ab2611 | |||
| c88794f212 | |||
| 1df0fd1bf8 | |||
| 28f4456bbe | |||
| 3ced6a3240 | |||
| 3219611a32 | |||
| 4068548c45 | |||
| dbb75e1d9e | |||
| 8e64e93d9e | |||
| c139be1966 | |||
| 9bdd71dbf1 | |||
| a5f018104e | |||
| 7c47fd47c1 | |||
| f8e54dda30 | |||
| 81b8f4171f | |||
| 711a2763ed | |||
| 160606356e | |||
| 992a30486e | |||
| c3e36ba9da | |||
| 6786aa352b | |||
| 640a60231c | |||
| 91f63ff813 | |||
| 8ce8f4e3a8 | |||
| 4b2855232a | |||
| 9822a5ce47 | |||
| dd46e9b107 | |||
| a2ca746f0a | |||
| 8c65afc56a | |||
| 38462fbcf8 | |||
| 552e9969cc | |||
| d3cd87767b | |||
| 535413804b | |||
| 502fa11f1d | |||
| 32da5aae84 | |||
| 63542b4ccb | |||
| b30fc28021 | |||
| d5a48e63a3 | |||
| e5fcc7a387 | |||
| d23ed5a61d | |||
| a30ca26af8 | |||
| f62bf6c21c | |||
| e686de9d03 | |||
| fdea0ae0ea | |||
| 89e785dc49 | |||
| a3a3792693 | |||
| d2ba90db5d | |||
| 206b5a5e47 | |||
| 27c5b5f369 | |||
| c67a7f7b7d | |||
| b27964b483 | |||
| 8eac97ae12 | |||
| 67ac794c62 | |||
| ed996759bb | |||
| 7265300f31 | |||
| e3d74b1713 | |||
| 844d102a65 | |||
| 5aff120d77 | |||
| 01902c4345 | |||
| f839f89e93 | |||
| 70f632852b | |||
| ce65b82fc9 | |||
| 760a1d31d5 | |||
| da0f9ca528 | |||
| ce80c6f9d8 | |||
| d500332a18 | |||
| cb6b7a754e | |||
| 9d272e7941 | |||
| a65b8f63b7 | |||
| 9a5d7c8646 | |||
| 70de47c156 | |||
| 0e3904b613 | |||
| de782479be | |||
| 5c0161d762 | |||
| aa16b8279f | |||
| 75c74590e5 | |||
| 5656a0b0b7 | |||
| e2d6898723 | |||
| caeb23a3dc | |||
| 1737fd3af9 | |||
| fe6593466f | |||
| f46c0e24fe | |||
| 00a2818c01 | |||
| 99f92310e2 | |||
| 79eb90d653 | |||
| e8d2dc513b | |||
| e96f052a06 | |||
| d6227f7767 | |||
| 975b978e37 | |||
| 4f00d923af | |||
| 6879fcd94f | |||
| adb8b58967 | |||
| 04c3cdf372 | |||
| bc6eaea2b4 | |||
| 70514a0ac2 | |||
| 2b1e5f1a3a | |||
| 92cf4b9e63 | |||
| 70a10b26d2 | |||
| b024c716ed | |||
| 09afdaafcf | |||
| b9ba17a477 | |||
| 28da6b0c24 | |||
| bb0110656b | |||
| 3e0d7d87fb | |||
| c12c780d29 | |||
| 8734686601 | |||
| f6d3f30961 | |||
| fbbd3bc66c | |||
| 64cd19f7db | |||
| f276f9d5c2 | |||
| f4fdc4592e | |||
| 1802510777 | |||
| 55358aa170 | |||
| ea4ca187c7 | |||
| b8628f75c5 | |||
| 774d8291b7 | |||
| 8d2c33e9b0 | |||
| af4f52a25f | |||
| 37fcc5cbe7 | |||
| 38d7d75f7f | |||
| 13f9d0f49f | |||
| 0ff007c783 | |||
| 5c404c62ee | |||
| c29b061f4c | |||
| 6fe5f4bc0d | |||
| 14e7c52e0e | |||
| eb2e33f318 | |||
| 348a0ff02a | |||
| cbf5ef5953 | |||
| d15995e7f9 | |||
| da53a041da | |||
| f69d8503a2 | |||
| c1935fba2d | |||
| f07191437e | |||
| b54c5eaa45 | |||
| 467170d3de | |||
| c2748585b1 | |||
| cdaff5c63f | |||
| 12527840e8 | |||
| 350cdbad11 | |||
| aae6f12832 | |||
| 0218f24b94 | |||
| b7db210d94 | |||
| 83b0546b7e | |||
| 9c4e54a5ce | |||
| b0c73b786a | |||
| 5674bfafc8 | |||
| b89d7ff384 | |||
| 4a01348e0b | |||
| 1811b96eb5 | |||
| 900d12bab8 | |||
| 35851b7c1d | |||
| 69fa19a856 | |||
| 80b7352d9a | |||
| 112663a3b5 | |||
| f9569f910f | |||
| 95159b0257 | |||
| 7e0fb6cb56 | |||
| ef510f9478 | |||
| 670f67e551 | |||
| d87dd934b2 | |||
| d430f6cb26 | |||
| 693ecb2813 | |||
| db86e90177 | |||
| 8245f8a369 | |||
| eed3d8b18d | |||
| 147091fa08 | |||
| 1c1894af7d | |||
| ede7aabb55 | |||
| 0cd24436d8 | |||
| 0751e57dd8 | |||
| b761a7b462 | |||
| 47d3f0bc9a | |||
| 102d56ff7d | |||
| 55a889251f | |||
| d6580a3107 | |||
| a6896203ca | |||
| 6115a1ee34 | |||
| cec47d0283 | |||
| 4592b79deb | |||
| 0ad7492717 | |||
| 6216b1190a | |||
| 7c04190f6f | |||
| a31887568a | |||
| 94c831d519 | |||
| 911040492e | |||
| d9121ca8b3 | |||
| 2083fb7846 | |||
| e5957f9133 | |||
| 5d6e2725a8 | |||
| c35d4f596a | |||
| 834675f5b6 | |||
| c419c1e107 | |||
| eefd9a71fc | |||
| 14893c4cff | |||
| 5f47c00c51 | |||
| 4390e28eea | |||
| 2093c3bdb5 | |||
| 39dab4d4dc | |||
| 3dba944d5f | |||
| f7a8ccb90f | |||
| d54850ae5e | |||
| 91dbd764a5 | |||
| 02da9e5199 | |||
| 8e1be01451 | |||
| 379aeeae16 | |||
| e6f414b918 | |||
| aff9886a4b | |||
| ce8571e313 | |||
| 41ef4aea30 | |||
| b34801f303 | |||
| df702e8d24 | |||
| edc52d5f4f | |||
| 96ecd5028d | |||
| 44b0346e5e | |||
| eb660ca619 | |||
| d47ce54e18 | |||
| 333adc989f | |||
| 4d2ebcd898 | |||
| 3d8d34671f | |||
| de8f8b450a | |||
| 84e9c0bba0 | |||
| f8d8fdfb35 | |||
| ecbeba5da0 | |||
| 5c6451f6aa | |||
| 7fbdfec396 | |||
| 063d5e3a8a | |||
| 1391e20e1f | |||
| 96282abca0 | |||
| 2d38a421c2 | |||
| 79c8fd7855 | |||
| 9eff2038d0 | |||
| 35ba9b36af | |||
| 877e2376be | |||
| 7d01d00f73 | |||
| 8da98f5b3d | |||
| 563eb8ba90 | |||
| a379e3a206 | |||
| 6e12fa4d78 | |||
| 7fc50f186c | |||
| 5df6addb78 | |||
| 4923c3b163 | |||
| 0709b807d9 | |||
| 447313cb05 | |||
| fe5f1c74a4 | |||
| cb8e92a658 | |||
| b7198bd373 | |||
| 13c60e8352 | |||
| d16d20fc22 | |||
| a397a57bfa | |||
| fb45a70bce | |||
| daef663f58 | |||
| 0d5daa69fb | |||
| 1b6124a0db | |||
| 2871c255e5 | |||
| 745d386e7f | |||
| 9ab8288851 | |||
| 559436dae7 | |||
| 1bb66e6783 | |||
| c0639d713f | |||
| 0486ec9d30 | |||
| aba35678bc | |||
| c3f95aa9ee | |||
| c3836ca98b | |||
| 5addbb23d2 | |||
| de7d26129c | |||
| ce9e7617a3 | |||
| 53767614fe | |||
| bc75ad7a40 | |||
| 111e944d3c | |||
| 73d5511899 | |||
| 255c57fd08 | |||
| 6bf5eb0133 | |||
| 71cb5fdcb8 | |||
| c3eb9022b8 | |||
| ee150702b7 | |||
| be69fe9a26 | |||
| f770133854 | |||
| 0a358d0863 | |||
| ba4e90b529 | |||
| 0ff786d0ea | |||
| ec913adb20 | |||
| ebf441ef13 | |||
| 3070392ecd | |||
| cc1fa54ea5 | |||
| b5b23b3d7c | |||
| 045c60fcd7 | |||
| 10f7352ef8 | |||
| 67e1879a8f | |||
| 837345ed95 | |||
| 245e557309 | |||
| 2ba4dec0da | |||
| 62dc3296d6 | |||
| 3d3c88dd4f | |||
| 1d3ca8a990 | |||
| 83003021e1 | |||
| d897f8fb10 | |||
| a332d5f893 | |||
| e7d0b8da35 | |||
| 97fd7a7187 | |||
| d7f86afd6c | |||
| 2d5470bcf3 | |||
| 9ebff2787e | |||
| ff147137c8 | |||
| 96e8fa4216 | |||
| 3aeebef036 | |||
| 7731b4f503 | |||
| 3470b38de2 | |||
| 96e8df0398 | |||
| 6f1ff72927 | |||
| d2805b1dca | |||
| 654fce751a | |||
| 469c01d4dd | |||
| ba40db4ba6 | |||
| bdf8bafec5 | |||
| 19fe7ea8f9 | |||
| 5fe0106155 | |||
| 467a984955 | |||
| e718263f5f | |||
| 9e35ca512c | |||
| 4247061b96 | |||
| aa37c2cd7c | |||
| 987fcd366c | |||
| 9ca793919d | |||
| fed9feb05f | |||
| 0537421655 | |||
| bef06ef940 | |||
| 1011de3278 | |||
| ba78d9964a | |||
| b0b725238d | |||
| 63055cc559 | |||
| 3a954b47bb | |||
| 0bd0bbd536 | |||
| 2ea9027031 | |||
| b700b316cd | |||
| 8c4bdccd48 | |||
| c6f880bfc1 | |||
| 227361661f | |||
| 1e8a379ed0 | |||
| 8ce0c8081c | |||
| 5bedff605a | |||
| 00a93ab9bf | |||
| fa2977ae9e | |||
| d6a4dc7d11 | |||
| 08a4de37c2 | |||
| c04ef59e81 | |||
| 624b571672 | |||
| 5d863f8742 | |||
| ca8bb72417 | |||
| 8684468f50 | |||
| f7762e646e | |||
| 68bdaa7854 | |||
| edbbb1a50a | |||
| ffb0358ce2 | |||
| 252ef55a6c | |||
| 3b9fe77036 | |||
| 2be0ea5ffb | |||
| 756dca6332 | |||
| 548f8bc32c | |||
| 91dd4a32b1 | |||
| 8cdae12b34 | |||
| cb0da2db6a | |||
| 1943e71e3f | |||
| ae3ee95cdd | |||
| 0d0554e76c | |||
| ba11e6612e | |||
| b704aae49b | |||
| 3ce663c7a5 | |||
| a03f702fa1 | |||
| 89c366be68 | |||
| 40f6fed29f | |||
| e439a72210 | |||
| e7a8d45a67 | |||
| 143035d798 | |||
| 50598ea29c | |||
| 3783367605 | |||
| 7e65ede92d | |||
| 1a4bea8ca2 | |||
| 28ba9a7456 | |||
| 86a884e3d2 | |||
| 4996d05d1e | |||
| 4cbf7398e8 | |||
| 2c55d29411 | |||
| 5d1abd5f44 | |||
| f0d2c7a58a | |||
| c0b029b244 | |||
| 0895ee7d98 | |||
| 525078abd3 | |||
| f9ab45df18 | |||
| afced9d420 | |||
| ea39dcc5c8 | |||
| 0262fa5c15 | |||
| c9c5a818ec | |||
| 875d792bdd | |||
| e9814b129b | |||
| 9b47dd4a67 | |||
| 7d0e20be52 | |||
| 179fdc8464 | |||
| 3622b7f3e1 | |||
| c744e115e3 | |||
| 2253ba069f | |||
| b6d90b2244 | |||
| 06d8ceb11c | |||
| bd6a1dcc64 | |||
| 3702fb0c16 | |||
| 0aa72b3200 | |||
| 2774671a88 | |||
| f6e0360452 | |||
| 6c6050a320 | |||
| 2d6fe27b43 | |||
| e6fadf073a | |||
| 2f46e230af | |||
| 98bf423569 | |||
| 3e4d388e70 | |||
| fb06bc8357 | |||
| b4e86430a3 | |||
| 1b60975ebb | |||
| 8992f64eb4 | |||
| 0763c720d2 | |||
| 051f4b85b7 | |||
| c3317e144f | |||
| 3466b318b1 | |||
| ec6a46a541 | |||
| 8e29e42797 | |||
| 9d9590212f | |||
| fe6adf693b | |||
| a3f57a4424 | |||
| e7f8e0c507 | |||
| 729ec31dab | |||
| c9d1100eac | |||
| fabdccd981 | |||
| 62a86fdff1 | |||
| 2d85f11f82 | |||
| af0178e8ff | |||
| b90b297e6f | |||
| bae44b4541 | |||
| 8791ea214c | |||
| 6b1f3140b8 | |||
| d193d2dd4a | |||
| 711a39b8e9 | |||
| d207b95b29 | |||
| fbb154f93d | |||
| 372de7a4d5 | |||
| 2aa208f441 | |||
| 6593ec4214 | |||
| 2a332a95f9 | |||
| 2c8a2600a1 | |||
| ba65a864fa | |||
| fa32611fe7 | |||
| be9d670bee | |||
| f2adb441cd | |||
| f6f99de795 | |||
| d3ab3e0760 | |||
| 9ee56bce25 | |||
| 91e8da47e5 | |||
| db914c9758 | |||
| 0827235c92 | |||
| 8c74e527a9 | |||
| fcd19e1371 | |||
| 8e03c57bf4 | |||
| 85c4d1fb03 | |||
| e2c7ea8a74 | |||
| 6845f0e0b1 | |||
| 5e9706007e | |||
| 8208370598 | |||
| 3166cd7063 | |||
| 68ef11ee87 | |||
| 13afc3d57a | |||
| 0ef05fba7c | |||
| e314a63ee9 | |||
| 0ebba2eb81 | |||
| 3d390d0d8f | |||
| 8c4bc638a4 | |||
| 34f3e68558 | |||
| dbfc485bb1 | |||
| d0ad54b4d7 | |||
| e1341c187a | |||
| 19f34acc55 | |||
| f4a8dd4d7d | |||
| fcbcb28304 | |||
| 42bc0d1519 | |||
| 28ea779f83 | |||
| 7b3fca2844 | |||
| 32d7d6ab29 | |||
| 6fc0b3fc54 | |||
| 1e402d8063 | |||
| 4d35bcef65 | |||
| ab41c96641 | |||
| e5ab9b71b6 | |||
| c60f8d6da2 | |||
| 18c6445802 | |||
| 1fd9056454 | |||
| 6e49b19952 | |||
| cccf8d8197 | |||
| 5450534a80 | |||
| 5311f57977 | |||
| 4f5dbb2288 | |||
| 50e9d8274f | |||
| cba69e94df | |||
| 1c0d8fc1eb | |||
| b4b23596a5 | |||
| 55db35e31b | |||
| b8c728aef8 | |||
| d77e5b07c7 | |||
| 216fbeeffd | |||
| 860b0301b7 | |||
| fffe3008b5 | |||
| 26ca97d2f6 | |||
| 0e75a67f28 | |||
| b5815a62fc | |||
| 64fa3a7e47 | |||
| 8600214532 | |||
| 3654afedcc | |||
| 0499226c3d | |||
| 141e4e4c8b | |||
| 2173cf0364 | |||
| c0b950257f | |||
| 02ec5d455c | |||
| f271ef8c47 | |||
| bf5dcdd582 | |||
| 5a1d02dffd | |||
| d1cbe0c3fd | |||
| 90ffe5adb7 | |||
| 28884ee638 | |||
| 73fac5235f | |||
| f48276d2bc | |||
| c0bd3471d5 | |||
| 4080d2de9b | |||
| 161205d32a | |||
| 073b3048d1 | |||
| a9c7d87872 | |||
| 4941a43e08 | |||
| 258577e86a | |||
| 9236726006 | |||
| fb65423b62 | |||
| 3a8cd9afe9 | |||
| 81595f81db | |||
| bc870434c2 | |||
| 1e63198f4a | |||
| 0f98826804 | |||
| 9f7b646f6c | |||
| 02ccf52d6c | |||
| 5901ab6664 | |||
| 2aec7d6cf8 | |||
| aaf62982e2 | |||
| e677440797 | |||
| d499b30959 | |||
| 990fb58be9 | |||
| 865f101070 | |||
| 267b1790ec | |||
| 57aec5f11c | |||
| 70970eeb18 | |||
| 858b4e81a5 | |||
| 61a34ddac5 | |||
| 7ba6a2e385 | |||
| 331af28fe7 | |||
| 70f15ab60d | |||
| cd9bcda935 | |||
| 5c8e41b847 | |||
| 3df825034b | |||
| eef64f0293 | |||
| 188d880239 | |||
| 431569fd09 | |||
| 32f152cc27 | |||
| 90e0ebc20f | |||
| 29cf770457 | |||
| f246428bef | |||
| ec872c702c | |||
| 215a3767ae | |||
| c9d242c7e1 | |||
| 0bbf45ce51 | |||
| 9b63c433b6 | |||
| c1939cf2ad | |||
| 3df24e11d2 | |||
| 073f192582 | |||
| 541ee81300 | |||
| 6325dd288c | |||
| 7645e8a940 | |||
| 9cf88d1929 | |||
| 099754c26e | |||
| 431c029b60 | |||
| 4584774d74 | |||
| e637bff8cd | |||
| 5bc61e4858 | |||
| 09d6dcfa1f | |||
| f8eed5dd3f | |||
| b0386429fe | |||
| df479f627e | |||
| d7bec143fd | |||
| 9e4a978f85 | |||
| 7664b8a3d6 | |||
| cc23ca2dcc | |||
| 2b477a4dfb | |||
| df5e6161aa | |||
| 94178998e5 | |||
| 8a5db8c1eb | |||
| 18bf098a1a | |||
| 9ec2f8b60f | |||
| 2ac2af64d4 | |||
| f05e086aab | |||
| a341c44c4d | |||
| d1cc9dde0c | |||
| acee075260 | |||
| d6de233a47 | |||
| d0934510af | |||
| 09e200c364 | |||
| b9246d1543 | |||
| 39b2afd506 | |||
| bbb27df5e9 | |||
| 73b1649b75 | |||
| 71beeabe9c | |||
| eadb564a75 | |||
| d580d8f9ab | |||
| 94bf24ad45 | |||
| 93686c7b60 | |||
| 9e40134355 | |||
| c499165fe5 | |||
| a53b0edff2 | |||
| 0f95e1e173 | |||
| c958d9b659 | |||
| ee454ace9d | |||
| a8001a117b | |||
| 717dd1ab7c | |||
| 80ab569fa7 | |||
| 6954150fcb | |||
| ed30f06ae1 | |||
| 04287fa9d8 | |||
| d579be7db7 | |||
| 665f4b2b09 | |||
| 47f071560f | |||
| 38f9284593 | |||
| 69e653cd94 | |||
| 71d4c5ad78 | |||
| 15ef2dbf78 | |||
| efcbd1ab68 | |||
| 2dd1e01183 | |||
| 6a9244a707 | |||
| 97330fd7b1 | |||
| 459640a222 | |||
| c5f29f18d3 | |||
| 4e7b5afb9e | |||
| 24f0e4dd1f | |||
| 4c0275fbf4 | |||
| 3dbe8cd279 | |||
| ce0f327c42 | |||
| 661a20dc93 | |||
| 00d03ebb7a | |||
| 0f722d0b42 | |||
| a0f2e0e138 | |||
| 5b64fc3d5d | |||
| 474a606711 | |||
| 44f0bcd182 | |||
| 18622c5d06 | |||
| ccc4cad1c8 | |||
| 050498a55a | |||
| ed7e3338f8 | |||
| 29d2aad176 | |||
| e63e5ffe4c | |||
| d6fdd924e9 | |||
| 854ba3315c | |||
| 7b98a3f3f3 | |||
| c98965cd55 | |||
| 427d031ba5 | |||
| 2b87f6a59d | |||
| 135ee3f39d | |||
| 48bea21a46 | |||
| 3cf8575317 | |||
| c141ebef3f | |||
| 377bc5048e | |||
| c6445516d8 | |||
| 8488933ec4 | |||
| 29ac759c51 | |||
| f2d2dc4d9e | |||
| df8a0768ea | |||
| f352c4d941 | |||
| a984eac965 | |||
| a74c6b0805 | |||
| f831b43dec | |||
| c04ad317cf | |||
| 7879632cf5 | |||
| a9aaac39e8 | |||
| b77a52a4a8 | |||
| 2d1ff0aff7 | |||
| 2fea3a8e83 | |||
| fefad029ad | |||
| 39d377b0bd | |||
| cdb7348b08 | |||
| a7e4ff0d76 | |||
| 906a3a2c50 | |||
| f0cdc8d296 | |||
| c671b01b0a | |||
| 275a1b10f6 | |||
| 627cb39517 | |||
| 48520a456b | |||
| 52e055aba2 | |||
| 6f8384af70 | |||
| 7912a54ebd | |||
| b7380019ba | |||
| 639c7820f9 | |||
| 9a46860086 | |||
| df2c137fe2 | |||
| a83b8e8fbc | |||
| f469c5caaf | |||
| 75b3a297ce | |||
| 8690f2dddd | |||
| e646386603 | |||
| 1aee4ad00f | |||
| ac3c751132 | |||
| cb881018ce | |||
| 5a4cc55917 | |||
| 2c3aaa8d7e | |||
| 3afa09bd98 | |||
| 3443aa6f5f | |||
| 2c02159384 | |||
| 604266d33c | |||
| 258c1ddb70 | |||
| 2706463e49 | |||
| 30a4d7d954 | |||
| aa74df4e5a | |||
| d86c36a151 | |||
| 4aeaa21854 | |||
| d4ceceee8c | |||
| ab67540d5f | |||
| 84b0f33944 | |||
| 373eff605b | |||
| 9d5a821610 | |||
| c0b8000dee | |||
| 9a5c8a11f5 | |||
| 79f77e61ba | |||
| 92632c046c | |||
| 7a4a6a3046 | |||
| 491921d5ae | |||
| 6481663c42 | |||
| faa6f05d9b | |||
| fc2b62714c | |||
| 31760d9572 | |||
| c8f4ba66d1 | |||
| 0e6b4e463f | |||
| 2d7d3f1511 | |||
| e9645d7054 | |||
| 46f3790492 | |||
| 893b6cf4f2 | |||
| 1bb1da5838 | |||
| bdd8229c97 | |||
| 664c6258de | |||
| c7b6030418 | |||
| 2d5571bcce | |||
| dcb4a1e5e6 | |||
| 683b49a8a4 | |||
| cacefb4eea | |||
| 69420c0a9c | |||
| 4f2c08f8db | |||
| 34c7ecc1a6 | |||
| 7eb0fb1655 | |||
| 91abae8898 | |||
| 0f562e59c2 | |||
| 4bbfffb9fb | |||
| b5e0b168c7 | |||
| ea67a47939 | |||
| 50c4fb7bfd | |||
| 1ef6016d9d | |||
| ec0bb01e07 | |||
| b88f042d20 | |||
| e78e1a9cf1 | |||
| 5cf65cf401 | |||
| 9de323e09c | |||
| 2d79130106 | |||
| 736a3505a6 | |||
| 85e9a17569 | |||
| 17d9a4e4f2 | |||
| 6c521fd5e0 | |||
| 867cd8c6ec | |||
| 5434be460c | |||
| 46c93b637f | |||
| 47beb13a58 | |||
| de70cc0cba | |||
| 6db1f77d13 | |||
| 75768d8822 | |||
| 5cac636f32 | |||
| ed2d195411 | |||
| 826a564abd | |||
| 92dde0b48b | |||
| d453301455 | |||
| 8ddb79b800 | |||
| 969da3abaf | |||
| a8ae99e6b4 | |||
| 634fbbe29f | |||
| a6c92816f0 | |||
| 0f31ce7ecf | |||
| a931c8a3a2 | |||
| 392b46c370 | |||
| a833ab68d6 | |||
| 652428a723 | |||
| b7c447897b | |||
| 2f9eef589b | |||
| cd4b9e9771 | |||
| 8cfc0736fa | |||
| 753d8dda73 | |||
| 45a9a5a356 | |||
| 6beac96b44 | |||
| cf7cba7282 | |||
| 8a06d7e359 | |||
| afa3e6dc96 | |||
| bed94aa341 | |||
| 766b74f040 | |||
| 1a164943d7 | |||
| d5c1c29795 | |||
| 5474ae876d | |||
| 40ce481e2e | |||
| ec1a933d30 | |||
| 24ed7be5c5 | |||
| 453603b6ad | |||
| f9b4874ee9 | |||
| 4a2cb33cd7 | |||
| 98ca807d4b | |||
| 05a6c60690 | |||
| 988314fb74 | |||
| 5f8ce75df4 | |||
| fb663a984c | |||
| c93eb07cc8 | |||
| c2f0f9edaa | |||
| 86ef58d70b | |||
| 0b5aa560b3 | |||
| 99338182b2 | |||
| 7f131a3853 | |||
| b7d78a24a4 | |||
| c5408965eb | |||
| fc48ab4928 | |||
| a5ec334e53 | |||
| 9e3ed75772 | |||
| fc49f000ce | |||
| 67435648b2 | |||
| 1b3051da58 | |||
| bddbedd781 | |||
| 3937004d5b | |||
| 88ce5e540e | |||
| 9fc6e0f00b | |||
| fe1ae23b71 | |||
| 02174383a7 | |||
| 0c909aa1bb | |||
| f936122f85 | |||
| 862d300ec8 | |||
| 1fca6b460a | |||
| 705cdb47cf | |||
| c48a9217be | |||
| fac3e7c726 | |||
| eee5e62843 | |||
| 19c193cc1a | |||
| 0a805483a9 | |||
| 623f7124c6 | |||
| aa3b4bf1fa | |||
| 262ff34160 | |||
| 232c325608 | |||
| 9ca7a080c3 | |||
| 21d8ded00b | |||
| e25d9a8981 | |||
| 9315ac0bec | |||
| 078249677b | |||
| c2a3d1240f | |||
| 373188b58d | |||
| 7fc9689f07 | |||
| b46ac885d4 | |||
| 7f0c011123 | |||
| ca2cdc031d | |||
| 6b35f5c664 | |||
| 6eb908dc4c | |||
| 7617fb07b3 | |||
| 47c8aad929 | |||
| 43348fb1e1 | |||
| b447e4d02e | |||
| a97db2754a | |||
| 9801195a77 | |||
| 211a112e81 | |||
| cbeee0f744 | |||
| c3560a52e2 | |||
| 782eb8464f | |||
| ba2f2429f7 | |||
| 786effd9da | |||
| 5a3c9f5419 | |||
| f3142485d0 | |||
| d5637494e9 | |||
| 2b6fcc138c | |||
| 88603ab8fe | |||
| 860049d238 | |||
| 731e49d7b6 | |||
| ba6a2957fc | |||
| 57bfef8d24 | |||
| 7640fe829e | |||
| bfea385cc1 | |||
| af0974cfb3 | |||
| 36adf2d240 | |||
| 8730de2100 | |||
| e442b72706 | |||
| c720b1dff9 | |||
| 2513bbf02d | |||
| 82fb1eb08e | |||
| ffab0b1d6a | |||
| 4397d47da1 | |||
| a59a8e7bd6 | |||
| b7587db059 | |||
| b908076a8b | |||
| 3e60ff2970 | |||
| c8c6e349ae | |||
| 843e521141 | |||
| a196e7828e | |||
| 3fd6193ac1 | |||
| 61f647b385 | |||
| f841ca11a5 | |||
| 1bdde35dc9 | |||
| 039f4a0d11 | |||
| 6878ac04c9 | |||
| e255d512cd | |||
| 1e6a8b0c2f | |||
| 876a05e882 | |||
| 4b5d15c05b | |||
| 9384ba0d52 | |||
| 6808d3c163 | |||
| abbb076859 | |||
| fea1ad8f8d | |||
| 7f984c548e | |||
| 5b89a30b95 | |||
| 0b820657a6 | |||
| edcde037a9 | |||
| 3ff8d51335 | |||
| 99c21e52c8 | |||
| f59a6883f8 | |||
| 9d3bbdd8c4 | |||
| 9cea44e446 | |||
| f6edbf5c91 | |||
| 0b9ddddd18 | |||
| aee5f39a77 | |||
| d6b426970b | |||
| 61c4053cbb | |||
| fc3245a06b | |||
| 54baad165d | |||
| 7bc1ae5f35 | |||
| cd62c4d220 | |||
| ea2a57f0a0 | |||
| 83ee1c6129 | |||
| 7056d89b0c | |||
| 66abe4a84b | |||
| 07f1681b50 | |||
| e96422a47e | |||
| 1cd9085c59 | |||
| f478448ec9 | |||
| 0247fd5c69 | |||
| 8798944069 | |||
| f77522980f | |||
| b4cde69ddb | |||
| 49fe926cb8 | |||
| a72c68ce87 | |||
| 73d847ae2e | |||
| e8dd66c6f8 | |||
| 131adad9c0 | |||
| 64df5ce5f4 | |||
| ed9c8d4a78 | |||
| d884303df6 | |||
| 8f6c37755c | |||
| 00e66216c5 | |||
| dc3e353a80 | |||
| dbf2597d3b | |||
| 35528e8267 | |||
| 987c0218fa | |||
| fb097f7a5b | |||
| 73b92190c6 | |||
| af71a19241 | |||
| 964f8cb35b | |||
| e95402ab92 | |||
| b3cea2d4bf | |||
| 78ae018320 | |||
| cd2bc112cc | |||
| ee1d362a7c | |||
| 67050eeaa8 | |||
| 40f0117130 | |||
| 92dbf093ea | |||
| 10f2dbc8cd | |||
| b8d1d31df0 | |||
| 87c40a4ab1 | |||
| 3e936f3959 | |||
| 44e2a710fc | |||
| 17206e1df5 | |||
| 872107b319 | |||
| 7d6737479c | |||
| af4290784e | |||
| d16f873521 | |||
| bb78a58029 | |||
| 784a4f0591 | |||
| 3645d9d6e9 | |||
| 0ddb50be57 | |||
| 3f68c25540 | |||
| 7d60d63d82 | |||
| 59624531b6 | |||
| 372b4a70aa | |||
| 977cc19fe3 | |||
| 93dfee8e30 | |||
| febac8cb91 | |||
| 8bcff4ed6f | |||
| 2e18506e1a | |||
| 667c8459c0 | |||
| 598ed59210 | |||
| f788258309 | |||
| 89a5ea1939 | |||
| 70adfe8fe5 | |||
| 2aba8a72c9 | |||
| 2aec04a888 | |||
| fabf9693bf | |||
| 36e0ed18f1 | |||
| 1d935f58f8 | |||
| 534b5ef75c | |||
| 1464f7d399 | |||
| 63983bbab3 | |||
| c3335ba2ca | |||
| 8d6a4d40a0 | |||
| 8bc5254e30 | |||
| ea92b84121 | |||
| 0b0e37a3d5 | |||
| 0189993a2a | |||
| d7305739d3 | |||
| d1812761db | |||
| e1d79b5ea9 | |||
| 7d9a6cb2ef | |||
| 1bf1d3ee6a | |||
| f349fbf84a | |||
| 1a120cd07c | |||
| 082c209c87 | |||
| 017d6e5e4e | |||
| e4326036f8 | |||
| bd86b89ea5 | |||
| 132c8b0e84 | |||
| de10aa6ab2 | |||
| 54ad304514 | |||
| 50f7af00e9 | |||
| 3b42b70610 |
1
.gitattributes
vendored
@ -1 +0,0 @@
|
||||
*.sql linguist-language=java
|
||||
2
.github/workflows/yudao-ui-admin.yml
vendored
@ -21,7 +21,7 @@ jobs:
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [14.x, 16.x]
|
||||
node_version: [14.x, 16.x]
|
||||
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
|
||||
|
||||
steps:
|
||||
|
||||
104
.gitignore
vendored
@ -1,51 +1,53 @@
|
||||
######################################################################
|
||||
# Build Tools
|
||||
|
||||
.gradle
|
||||
/build/
|
||||
!gradle/wrapper/gradle-wrapper.jar
|
||||
|
||||
target/
|
||||
!.mvn/wrapper/maven-wrapper.jar
|
||||
|
||||
######################################################################
|
||||
# IDE
|
||||
|
||||
### STS ###
|
||||
.apt_generated
|
||||
.classpath
|
||||
.factorypath
|
||||
.project
|
||||
.settings
|
||||
.springBeans
|
||||
|
||||
### IntelliJ IDEA ###
|
||||
.idea
|
||||
*.iws
|
||||
*.iml
|
||||
*.ipr
|
||||
|
||||
### NetBeans ###
|
||||
nbproject/private/
|
||||
build/*
|
||||
nbbuild/
|
||||
dist/
|
||||
nbdist/
|
||||
.nb-gradle/
|
||||
|
||||
######################################################################
|
||||
# Others
|
||||
*.log
|
||||
*.xml.versionsBackup
|
||||
*.swp
|
||||
|
||||
!*/build/*.java
|
||||
!*/build/*.html
|
||||
!*/build/*.xml
|
||||
|
||||
### JRebel ###
|
||||
rebel.xml
|
||||
|
||||
application-my.yaml
|
||||
|
||||
/yudao-ui-app/unpackage/
|
||||
######################################################################
|
||||
# Build Tools
|
||||
|
||||
.gradle
|
||||
/build/
|
||||
!gradle/wrapper/gradle-wrapper.jar
|
||||
|
||||
target/
|
||||
!.mvn/wrapper/maven-wrapper.jar
|
||||
|
||||
.flattened-pom.xml
|
||||
|
||||
######################################################################
|
||||
# IDE
|
||||
|
||||
### STS ###
|
||||
.apt_generated
|
||||
.classpath
|
||||
.factorypath
|
||||
.project
|
||||
.settings
|
||||
.springBeans
|
||||
|
||||
### IntelliJ IDEA ###
|
||||
.idea
|
||||
*.iws
|
||||
*.iml
|
||||
*.ipr
|
||||
|
||||
### NetBeans ###
|
||||
nbproject/private/
|
||||
build/*
|
||||
nbbuild/
|
||||
dist/
|
||||
nbdist/
|
||||
.nb-gradle/
|
||||
|
||||
######################################################################
|
||||
# Others
|
||||
*.log
|
||||
*.xml.versionsBackup
|
||||
*.swp
|
||||
|
||||
!*/build/*.java
|
||||
!*/build/*.html
|
||||
!*/build/*.xml
|
||||
|
||||
### JRebel ###
|
||||
rebel.xml
|
||||
|
||||
application-my.yaml
|
||||
|
||||
/yudao-ui-app/unpackage/
|
||||
|
||||
BIN
.image/Java监控.jpg
Normal file
|
After Width: | Height: | Size: 112 KiB |
BIN
.image/MySQL.jpg
Normal file
|
After Width: | Height: | Size: 142 KiB |
BIN
.image/OA请假-列表.jpg
Normal file
|
After Width: | Height: | Size: 152 KiB |
BIN
.image/OA请假-发起.jpg
Normal file
|
After Width: | Height: | Size: 68 KiB |
BIN
.image/OA请假-详情.jpg
Normal file
|
After Width: | Height: | Size: 65 KiB |
BIN
.image/Redis.jpg
Normal file
|
After Width: | Height: | Size: 95 KiB |
BIN
.image/admin-uniapp/01.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
.image/admin-uniapp/02.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
.image/admin-uniapp/03.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
.image/admin-uniapp/04.png
Normal file
|
After Width: | Height: | Size: 9.7 KiB |
BIN
.image/admin-uniapp/05.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
.image/admin-uniapp/06.png
Normal file
|
After Width: | Height: | Size: 8.6 KiB |
BIN
.image/admin-uniapp/07.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
.image/admin-uniapp/08.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
.image/admin-uniapp/09.png
Normal file
|
After Width: | Height: | Size: 7.0 KiB |
BIN
.image/common/mall-feature.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
.image/common/mall-preview.png
Normal file
|
After Width: | Height: | Size: 204 KiB |
BIN
.image/common/project-vs.png
Normal file
|
After Width: | Height: | Size: 139 KiB |
BIN
.image/common/ruoyi-vue-pro-architecture.png
Normal file
|
After Width: | Height: | Size: 69 KiB |
BIN
.image/common/ruoyi-vue-pro-biz.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
.image/common/yudao-cloud-architecture.png
Normal file
|
After Width: | Height: | Size: 201 KiB |
BIN
.image/common/yudao-roadmap.png
Normal file
|
After Width: | Height: | Size: 60 KiB |
BIN
.image/个人中心.jpg
Normal file
|
After Width: | Height: | Size: 37 KiB |
BIN
.image/代码生成.jpg
Normal file
|
After Width: | Height: | Size: 130 KiB |
BIN
.image/令牌管理.jpg
Normal file
|
After Width: | Height: | Size: 89 KiB |
BIN
.image/任务列表-审批.jpg
Normal file
|
After Width: | Height: | Size: 89 KiB |
BIN
.image/任务列表-已办.jpg
Normal file
|
After Width: | Height: | Size: 160 KiB |
BIN
.image/任务列表-待办.jpg
Normal file
|
After Width: | Height: | Size: 150 KiB |
BIN
.image/任务日志.jpg
Normal file
|
After Width: | Height: | Size: 124 KiB |
BIN
.image/商户信息.jpg
Normal file
|
After Width: | Height: | Size: 83 KiB |
BIN
.image/在线用户.jpg
Normal file
|
After Width: | Height: | Size: 73 KiB |
BIN
.image/大屏设计器-列表.jpg
Normal file
|
After Width: | Height: | Size: 53 KiB |
BIN
.image/大屏设计器-编辑.jpg
Normal file
|
After Width: | Height: | Size: 109 KiB |
BIN
.image/大屏设计器-预览.jpg
Normal file
|
After Width: | Height: | Size: 69 KiB |
BIN
.image/字典数据.jpg
Normal file
|
After Width: | Height: | Size: 78 KiB |
BIN
.image/字典类型.jpg
Normal file
|
After Width: | Height: | Size: 126 KiB |
BIN
.image/定时任务.jpg
Normal file
|
After Width: | Height: | Size: 74 KiB |
BIN
.image/岗位管理.jpg
Normal file
|
After Width: | Height: | Size: 80 KiB |
BIN
.image/应用信息-列表.jpg
Normal file
|
After Width: | Height: | Size: 93 KiB |
BIN
.image/应用信息-编辑.jpg
Normal file
|
After Width: | Height: | Size: 93 KiB |
BIN
.image/应用管理.jpg
Normal file
|
After Width: | Height: | Size: 55 KiB |
BIN
.image/我的流程-列表.jpg
Normal file
|
After Width: | Height: | Size: 176 KiB |
BIN
.image/我的流程-发起.jpg
Normal file
|
After Width: | Height: | Size: 91 KiB |
BIN
.image/我的流程-详情.jpg
Normal file
|
After Width: | Height: | Size: 87 KiB |
BIN
.image/报表设计器-图形报表.jpg
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
.image/报表设计器-打印设计.jpg
Normal file
|
After Width: | Height: | Size: 37 KiB |
BIN
.image/报表设计器-数据报表.jpg
Normal file
|
After Width: | Height: | Size: 41 KiB |
BIN
.image/操作日志.jpg
Normal file
|
After Width: | Height: | Size: 98 KiB |
BIN
.image/支付订单.jpg
Normal file
|
After Width: | Height: | Size: 208 KiB |
BIN
.image/敏感词.jpg
Normal file
|
After Width: | Height: | Size: 47 KiB |
BIN
.image/数据库文档.jpg
Normal file
|
After Width: | Height: | Size: 97 KiB |
BIN
.image/文件管理.jpg
Normal file
|
After Width: | Height: | Size: 74 KiB |
BIN
.image/文件管理2.jpg
Normal file
|
After Width: | Height: | Size: 114 KiB |
BIN
.image/文件配置.jpg
Normal file
|
After Width: | Height: | Size: 116 KiB |
BIN
.image/日志中心.jpg
Normal file
|
After Width: | Height: | Size: 84 KiB |
BIN
.image/流程模型-列表.jpg
Normal file
|
After Width: | Height: | Size: 173 KiB |
BIN
.image/流程模型-定义.jpg
Normal file
|
After Width: | Height: | Size: 125 KiB |
BIN
.image/流程模型-设计.jpg
Normal file
|
After Width: | Height: | Size: 125 KiB |
BIN
.image/流程表单.jpg
Normal file
|
After Width: | Height: | Size: 148 KiB |
BIN
.image/生成效果.jpg
Normal file
|
After Width: | Height: | Size: 128 KiB |
BIN
.image/用户分组.jpg
Normal file
|
After Width: | Height: | Size: 82 KiB |
BIN
.image/用户管理.jpg
Normal file
|
After Width: | Height: | Size: 112 KiB |
BIN
.image/登录.jpg
Normal file
|
After Width: | Height: | Size: 93 KiB |
BIN
.image/登录日志.jpg
Normal file
|
After Width: | Height: | Size: 77 KiB |
BIN
.image/短信日志.jpg
Normal file
|
After Width: | Height: | Size: 41 KiB |
BIN
.image/短信模板.jpg
Normal file
|
After Width: | Height: | Size: 248 KiB |
BIN
.image/短信渠道.jpg
Normal file
|
After Width: | Height: | Size: 80 KiB |
BIN
.image/租户套餐.png
Normal file
|
After Width: | Height: | Size: 96 KiB |
BIN
.image/租户管理.jpg
Normal file
|
After Width: | Height: | Size: 115 KiB |
BIN
.image/系统接口.jpg
Normal file
|
After Width: | Height: | Size: 91 KiB |
BIN
.image/菜单管理.jpg
Normal file
|
After Width: | Height: | Size: 129 KiB |
BIN
.image/表单构建.jpg
Normal file
|
After Width: | Height: | Size: 102 KiB |
BIN
.image/角色管理.jpg
Normal file
|
After Width: | Height: | Size: 85 KiB |
BIN
.image/访问日志.jpg
Normal file
|
After Width: | Height: | Size: 73 KiB |
BIN
.image/退款订单.jpg
Normal file
|
After Width: | Height: | Size: 92 KiB |
BIN
.image/通知公告.jpg
Normal file
|
After Width: | Height: | Size: 77 KiB |
BIN
.image/部门管理.jpg
Normal file
|
After Width: | Height: | Size: 109 KiB |
BIN
.image/配置管理.jpg
Normal file
|
After Width: | Height: | Size: 89 KiB |
BIN
.image/链路追踪.jpg
Normal file
|
After Width: | Height: | Size: 80 KiB |
BIN
.image/错误日志.jpg
Normal file
|
After Width: | Height: | Size: 110 KiB |
BIN
.image/错误码管理.jpg
Normal file
|
After Width: | Height: | Size: 131 KiB |
BIN
.image/首页.jpg
Normal file
|
After Width: | Height: | Size: 62 KiB |
371
README.md
@ -1,6 +1,10 @@
|
||||
**严肃声明:现在、未来都不会有商业版本,所有功能全部开源!**
|
||||
<p align="center">
|
||||
<img src="https://img.shields.io/badge/Spring%20Boot-2.7.18-blue.svg" alt="Downloads">
|
||||
<img src="https://img.shields.io/badge/Vue-3.2-blue.svg" alt="Downloads">
|
||||
<img src="https://img.shields.io/github/license/YunaiV/ruoyi-vue-pro"/>
|
||||
</p>
|
||||
|
||||
**拒绝虚假开源,售卖商业版,程序员不骗程序员!!**
|
||||
**严肃声明:现在、未来都不会有商业版本,所有代码全部开源!!**
|
||||
|
||||
**「我喜欢写代码,乐此不疲」**
|
||||
**「我喜欢做开源,以此为乐」**
|
||||
@ -11,7 +15,9 @@
|
||||
|
||||
## 🐶 新手必读
|
||||
|
||||
* 演示地址:<http://dashboard.yudao.iocoder.cn>
|
||||
* 演示地址【Vue3 + element-plus】:<http://dashboard-vue3.yudao.iocoder.cn>
|
||||
* 演示地址【Vue3 + vben(ant-design-vue)】:<http://dashboard-vben.yudao.iocoder.cn>
|
||||
* 演示地址【Vue2 + element-ui】:<http://dashboard.yudao.iocoder.cn>
|
||||
* 启动文档:<https://doc.iocoder.cn/quick-start/>
|
||||
* 视频教程:<https://doc.iocoder.cn/video/>
|
||||
|
||||
@ -23,26 +29,70 @@
|
||||
>
|
||||
> 😜 给项目点点 Star 吧,这对我们真的很重要!
|
||||
|
||||

|
||||

|
||||
|
||||
* 管理后台的 Vue3 版本采用 [vue-element-plus-admin](https://gitee.com/kailong110120130/vue-element-plus-admin) ,Vue2 版本采用 [vue-element-admin](https://github.com/PanJiaChen/vue-element-admin)
|
||||
* 管理后台的移动端采用 [uni-app](https://github.com/dcloudio/uni-app) 方案,一份代码多终端适配,同时支持 APP、小程序、H5!
|
||||
* 后端采用 Spring Boot、MySQL + MyBatis Plus、Redis + Redisson
|
||||
* Java 后端:`master` 分支为 JDK 8 + Spring Boot 2.7.18,`master-jdk21` 分支为 JDK21 + Spring Boot 3.2.0
|
||||
* 管理后台的电脑端:Vue3 提供 `element-plus`、`vben(ant-design-vue)` 两个版本,Vue2 提供 `element-ui` 版本
|
||||
* 管理后台的移动端:采用 `uni-app` 方案,一份代码多终端适配,同时支持 APP、小程序、H5!
|
||||
* 后端采用 Spring Boot 多模块架构、MySQL + MyBatis Plus、Redis + Redisson
|
||||
* 数据库可使用 MySQL、Oracle、PostgreSQL、SQL Server、MariaDB、国产达梦 DM、TiDB 等
|
||||
* 消息队列可使用 Event、Redis、RabbitMQ、Kafka、RocketMQ 等
|
||||
* 权限认证使用 Spring Security & Token & Redis,支持多终端、多种用户的认证系统,支持 SSO 单点登录
|
||||
* 支持加载动态权限菜单,按钮级别权限控制,本地缓存提升性能
|
||||
* 支持 SaaS 多租户系统,可自定义每个租户的权限,提供透明化的多租户底层封装
|
||||
* 支持加载动态权限菜单,按钮级别权限控制,Redis 缓存提升性能
|
||||
* 支持 SaaS 多租户,可自定义每个租户的权限,提供透明化的多租户底层封装
|
||||
* 工作流使用 Flowable,支持动态表单、在线设计流程、会签 / 或签、多种任务分配方式
|
||||
* 高效率开发,使用代码生成器可以一键生成前后端代码 + 单元测试 + Swagger 接口文档 + Validator 参数校验
|
||||
* 高效率开发,使用代码生成器可以一键生成 Java、Vue 前后端代码、SQL 脚本、接口文档,支持单表、树表、主子表
|
||||
* 实时通信,采用 Spring WebSocket 实现,内置 Token 身份校验,支持 WebSocket 集群
|
||||
* 集成微信小程序、微信公众号、企业微信、钉钉等三方登陆,集成支付宝、微信等支付与退款
|
||||
* 集成阿里云、腾讯云等短信渠道,集成 MinIO、阿里云、腾讯云、七牛云等云存储服务
|
||||
* 集成报表设计器,支持数据报表、图形报表、打印设计等
|
||||
* 集成报表设计器、大屏设计器,通过拖拽即可生成酷炫的报表与大屏
|
||||
|
||||
| 项目名 | 说明 | 传送门 |
|
||||
|--------------------|------------------------|-------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `ruoyi-vue-pro` | Spring Boot 多模块 | **[Gitee](https://gitee.com/zhijiantianya/ruoyi-vue-pro)** [Github](https://github.com/YunaiV/ruoyi-vue-pro) |
|
||||
| `yudao-cloud` | Spring Cloud 微服务 | **[Gitee](https://gitee.com/zhijiantianya/yudao-cloud)** [Github](https://github.com/YunaiV/yudao-cloud) |
|
||||
| `Spring-Boot-Labs` | Spring Boot & Cloud 入门 | **[Gitee](https://gitee.com/zhijiantianya/SpringBoot-Labs)** [Github](https://github.com/YunaiV/SpringBoot-Labs) |
|
||||
## 🐳 项目关系
|
||||
|
||||

|
||||
|
||||
三个项目的功能对比,可见社区共同整理的 [国产开源项目对比](https://www.yuque.com/xiatian-bsgny/lm0ec1/wqf8mn) 表格。
|
||||
|
||||
### 后端项目
|
||||
|
||||
| 项目 | Star | 简介 |
|
||||
|-----------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------|
|
||||
| [ruoyi-vue-pro](https://gitee.com/zhijiantianya/ruoyi-vue-pro) | [](https://gitee.com/zhijiantianya/ruoyi-vue-pro) [](https://github.com/YunaiV/ruoyi-vue-pro) | 基于 Spring Boot 多模块架构 |
|
||||
| [yudao-cloud](https://gitee.com/zhijiantianya/yudao-cloud) | [](https://gitee.com/zhijiantianya/yudao-cloud) [](https://github.com/YunaiV/yudao-cloud) | 基于 Spring Cloud 微服务架构 |
|
||||
| [Spring-Boot-Labs](https://gitee.com/yudaocode/SpringBoot-Labs) | [](https://gitee.com/zhijiantianya/yudao-cloud) [](https://github.com/yudaocode/SpringBoot-Labs) | 系统学习 Spring Boot & Cloud 专栏 |
|
||||
|
||||
### 前端项目
|
||||
|
||||
| 项目 | Star | 简介 |
|
||||
|----------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------|
|
||||
| [yudao-ui-admin-vue3](https://gitee.com/yudaocode/yudao-ui-admin-vue3) | [](https://gitee.com/yudaocode/yudao-ui-admin-vue3) [](https://github.com/yudaocode/yudao-ui-admin-vue3) | 基于 Vue3 + element-plus 实现的管理后台 |
|
||||
| [yudao-ui-admin-vben](https://gitee.com/yudaocode/yudao-ui-admin-vben) | [](https://gitee.com/yudaocode/yudao-ui-admin-vben) [](https://github.com/yudaocode/yudao-ui-admin-vben) | 基于 Vue3 + vben(ant-design-vue) 实现的管理后台 |
|
||||
| [yudao-mall-uniapp](https://gitee.com/yudaocode/yudao-mall-uniapp) | [](https://gitee.com/yudaocode/yudao-mall-uniapp) [](https://github.com/yudaocode/yudao-mall-uniapp) | 基于 uni-app 实现的商城小程序 |
|
||||
| [yudao-ui-admin-vue2](https://gitee.com/yudaocode/yudao-ui-admin-vue2) | [](https://gitee.com/yudaocode/yudao-ui-admin-vue2) [](https://github.com/yudaocode/yudao-ui-admin-vue2) | 基于 Vue2 + element-ui 实现的管理后台 |
|
||||
| [yudao-ui-admin-uniapp](https://gitee.com/yudaocode/yudao-ui-admin-uniapp) | [](https://gitee.com/yudaocode/yudao-ui-admin-uniapp) [](https://github.com/yudaocode/yudao-ui-admin-uniapp) | 基于 Vue2 + element-ui 实现的管理后台 |
|
||||
| [yudao-ui-go-view](https://gitee.com/yudaocode/yudao-ui-go-view) | [](https://gitee.com/yudaocode/yudao-ui-go-view) [](https://github.com/yudaocode/yudao-ui-go-view) | 基于 Vue3 + naive-ui 实现的大屏报表 |
|
||||
|
||||
## 🐰 分支说明
|
||||
|
||||
### ⬅️ 完整版
|
||||
|
||||
【完整版】包括系统功能、基础设施、会员中心、数据报表、工作流程、商城系统、微信公众号、CRM 等功能
|
||||
|
||||
* JDK 8 + Spring Boot 2.7.18 版本:<https://gitee.com/zhijiantianya/ruoyi-vue-pro> 的 `master` 分支
|
||||
* JDK 21 + Spring Boot 3.2.0 版本:<https://gitee.com/zhijiantianya/ruoyi-vue-pro> 的 `master-jdk21` 分支
|
||||
|
||||
两个分支的功能是一致的,可以放心使用!
|
||||
|
||||
### ➡️️ 精简版
|
||||
|
||||
【精简版】只包括系统功能、基础设施功能,不包括会员中心、数据报表、工作流程、商城系统、微信公众号、CRM 等功能
|
||||
|
||||
* JDK 8 + Spring Boot 2.7.18 版本:<https://gitee.com/yudaocode/yudao-boot-mini> 的 `master` 分支
|
||||
* JDK 21 + Spring Boot 3.2.0 版本:<https://gitee.com/yudaocode/yudao-boot-mini> 的 `master-jdk21` 分支
|
||||
|
||||
如果你想把【完整版】的功能,迁移到【精简版】,可以参考 [《迁移功能到精简版》](https://doc.iocoder.cn/migrate-module/) 文档。
|
||||
|
||||
如果你想把【完整版】的功能,迁移到【精简版】,可以参考 [《迁移功能到精简版》](https://doc.iocoder.cn/migrate-module/) 文档。
|
||||
|
||||
## 😎 开源协议
|
||||
|
||||
@ -52,15 +102,23 @@
|
||||
|
||||
② 代码全部开源,不会像其他项目一样,只开源部分代码,让你无法了解整个项目的架构设计。[国产开源项目对比](https://www.yuque.com/xiatian-bsgny/lm0ec1/wqf8mn)
|
||||
|
||||

|
||||

|
||||
|
||||
③ 代码整洁、架构整洁,遵循《阿里巴巴 Java 开发手册》规范,代码注释详细,57000 行 Java 代码,22000 行代码注释。
|
||||
③ 代码整洁、架构整洁,遵循《阿里巴巴 Java 开发手册》规范,代码注释详细,113770 行 Java 代码,42462 行代码注释。
|
||||
|
||||
## 🤝 项目外包
|
||||
|
||||
我们也是接外包滴,如果你有项目想要外包,可以微信联系【**Aix9975**】。
|
||||
|
||||
团队包含专业的项目经理、架构师、前端工程师、后端工程师、测试工程师、运维工程师,可以提供全流程的外包服务。
|
||||
|
||||
项目可以是商城、SCRM 系统、OA 系统、物流系统、ERP 系统、CMS 系统、HIS 系统、支付系统、IM 聊天、微信公众号、微信小程序等等。
|
||||
|
||||
## 🐼 内置功能
|
||||
|
||||
系统内置多种多种业务功能,可以用于快速你的业务系统:
|
||||
|
||||

|
||||

|
||||
|
||||
* 系统功能
|
||||
* 基础设施
|
||||
@ -69,6 +127,7 @@
|
||||
* 会员中心
|
||||
* 数据报表
|
||||
* 商城系统
|
||||
* 微信公众号
|
||||
|
||||
> 友情提示:本项目基于 RuoYi-Vue 修改,**重构优化**后端的代码,**美化**前端的界面。
|
||||
>
|
||||
@ -91,12 +150,15 @@
|
||||
| 🚀 | 租户套餐 | 配置租户套餐,自定每个租户的菜单、操作、按钮的权限 |
|
||||
| | 字典管理 | 对系统中经常使用的一些较为固定的数据进行维护 |
|
||||
| 🚀 | 短信管理 | 短信渠道、短息模板、短信日志,对接阿里云、腾讯云等主流短信平台 |
|
||||
| 🚀 | 邮件管理 | 邮箱账号、邮件模版、邮件发送日志,支持所有邮件平台 |
|
||||
| 🚀 | 站内信 | 系统内的消息通知,提供站内信模版、站内信消息 |
|
||||
| 🚀 | 操作日志 | 系统正常操作日志记录和查询,集成 Swagger 生成日志内容 |
|
||||
| ⭐️ | 登录日志 | 系统登录日志记录查询,包含登录异常 |
|
||||
| 🚀 | 错误码管理 | 系统所有错误码的管理,可在线修改错误提示,无需重启服务 |
|
||||
| | 通知公告 | 系统通知公告信息发布维护 |
|
||||
| 🚀 | 敏感词 | 配置系统敏感词,支持标签分组 |
|
||||
| 🚀 | 敏感词 | 配置系统敏感词,支持标签分组 |
|
||||
| 🚀 | 应用管理 | 管理 SSO 单点登录的应用,支持多种 OAuth2 授权方式 |
|
||||
| 🚀 | 地区管理 | 展示省份、城市、区镇等城市信息,支持 IP 对应城市 |
|
||||
|
||||
### 工作流程
|
||||
|
||||
@ -114,185 +176,178 @@
|
||||
|
||||
| | 功能 | 描述 |
|
||||
|-----|------|---------------------------|
|
||||
| 🚀 | 商户信息 | 管理商户信息,支持 Saas 场景下的多商户功能 |
|
||||
| 🚀 | 应用信息 | 配置商户的应用信息,对接支付宝、微信等多个支付渠道 |
|
||||
| 🚀 | 支付订单 | 查看用户发起的支付宝、微信等的【支付】订单 |
|
||||
| 🚀 | 退款订单 | 查看用户发起的支付宝、微信等的【退款】订单 |
|
||||
|
||||
ps:核心功能已经实现,正在对接微信小程序中...
|
||||
| 🚀 | 回调通知 | 查看支付回调业务的【支付】【退款】的通知结果 |
|
||||
| 🚀 | 接入示例 | 提供接入支付系统的【支付】【退款】的功能实战 |
|
||||
|
||||
### 基础设施
|
||||
|
||||
| | 功能 | 描述 |
|
||||
|-----|----------|----------------------------------------------|
|
||||
| 🚀 | 代码生成 | 前后端代码的生成(Java、Vue、SQL、单元测试),支持 CRUD 下载 |
|
||||
| 🚀 | 系统接口 | 基于 Swagger 自动生成相关的 RESTful API 接口文档 |
|
||||
| 🚀 | 数据库文档 | 基于 Screw 自动生成数据库文档,支持导出 Word、HTML、MD 格式 |
|
||||
| | 表单构建 | 拖动表单元素生成相应的 HTML 代码,支持导出 JSON、Vue 文件 |
|
||||
| 🚀 | 配置管理 | 对系统动态配置常用参数,支持 SpringBoot 加载 |
|
||||
| ⭐️ | 定时任务 | 在线(添加、修改、删除)任务调度包含执行结果日志 |
|
||||
| 🚀 | 文件服务 | 支持将文件存储到 S3(MinIO、阿里云、腾讯云、七牛云)、本地、FTP、数据库等 |
|
||||
| 🚀 | API 日志 | 包括 RESTful API 访问日志、异常日志两部分,方便排查 API 相关的问题 |
|
||||
| | MySQL 监控 | 监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈 |
|
||||
| | Redis 监控 | 监控 Redis 数据库的使用情况,使用的 Redis Key 管理 |
|
||||
| 🚀 | 消息队列 | 基于 Redis 实现消息队列,Stream 提供集群消费,Pub/Sub 提供广播消费 |
|
||||
| 🚀 | Java 监控 | 基于 Spring Boot Admin 实现 Java 应用的监控 |
|
||||
| 🚀 | 链路追踪 | 接入 SkyWalking 组件,实现链路追踪 |
|
||||
| 🚀 | 日志中心 | 接入 SkyWalking 组件,实现日志中心 |
|
||||
| 🚀 | 分布式锁 | 基于 Redis 实现分布式锁,满足并发场景 |
|
||||
| 🚀 | 幂等组件 | 基于 Redis 实现幂等组件,解决重复请求问题 |
|
||||
| 🚀 | 服务保障 | 基于 Resilience4j 实现服务的稳定性,包括限流、熔断等功能 |
|
||||
| 🚀 | 日志服务 | 轻量级日志中心,查看远程服务器的日志 |
|
||||
| 🚀 | 单元测试 | 基于 JUnit + Mockito 实现单元测试,保证功能的正确性、代码的质量等 |
|
||||
| | 功能 | 描述 |
|
||||
|-----|-----------|----------------------------------------------|
|
||||
| 🚀 | 代码生成 | 前后端代码的生成(Java、Vue、SQL、单元测试),支持 CRUD 下载 |
|
||||
| 🚀 | 系统接口 | 基于 Swagger 自动生成相关的 RESTful API 接口文档 |
|
||||
| 🚀 | 数据库文档 | 基于 Screw 自动生成数据库文档,支持导出 Word、HTML、MD 格式 |
|
||||
| | 表单构建 | 拖动表单元素生成相应的 HTML 代码,支持导出 JSON、Vue 文件 |
|
||||
| 🚀 | 配置管理 | 对系统动态配置常用参数,支持 SpringBoot 加载 |
|
||||
| ⭐️ | 定时任务 | 在线(添加、修改、删除)任务调度包含执行结果日志 |
|
||||
| 🚀 | 文件服务 | 支持将文件存储到 S3(MinIO、阿里云、腾讯云、七牛云)、本地、FTP、数据库等 |
|
||||
| 🚀 | WebSocket | 提供 WebSocket 接入示例,支持一对一、一对多发送方式 |
|
||||
| 🚀 | API 日志 | 包括 RESTful API 访问日志、异常日志两部分,方便排查 API 相关的问题 |
|
||||
| | MySQL 监控 | 监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈 |
|
||||
| | Redis 监控 | 监控 Redis 数据库的使用情况,使用的 Redis Key 管理 |
|
||||
| 🚀 | 消息队列 | 基于 Redis 实现消息队列,Stream 提供集群消费,Pub/Sub 提供广播消费 |
|
||||
| 🚀 | Java 监控 | 基于 Spring Boot Admin 实现 Java 应用的监控 |
|
||||
| 🚀 | 链路追踪 | 接入 SkyWalking 组件,实现链路追踪 |
|
||||
| 🚀 | 日志中心 | 接入 SkyWalking 组件,实现日志中心 |
|
||||
| 🚀 | 分布式锁 | 基于 Redis 实现分布式锁,满足并发场景 |
|
||||
| 🚀 | 幂等组件 | 基于 Redis 实现幂等组件,解决重复请求问题 |
|
||||
| 🚀 | 服务保障 | 基于 Resilience4j 实现服务的稳定性,包括限流、熔断等功能 |
|
||||
| 🚀 | 日志服务 | 轻量级日志中心,查看远程服务器的日志 |
|
||||
| 🚀 | 单元测试 | 基于 JUnit + Mockito 实现单元测试,保证功能的正确性、代码的质量等 |
|
||||
|
||||
### 数据报表
|
||||
|
||||
| | 功能 | 描述 |
|
||||
|-----|----------|----------------------------------------------|
|
||||
| 🚀 | 报表设计器 | 支持数据报表、图形报表、打印设计等 |
|
||||
| 🚀 | 大屏设计器 | 建设中... 拖拽式实现可视化数据大屏 |
|
||||
| | 功能 | 描述 |
|
||||
|-----|-------|--------------------|
|
||||
| 🚀 | 报表设计器 | 支持数据报表、图形报表、打印设计等 |
|
||||
| 🚀 | 大屏设计器 | 拖拽生成数据大屏,内置几十种图表组件 |
|
||||
|
||||
### 微信公众号
|
||||
|
||||
| | 功能 | 描述 |
|
||||
|-----|--------|-------------------------------|
|
||||
| 🚀 | 账号管理 | 配置接入的微信公众号,可支持多个公众号 |
|
||||
| 🚀 | 数据统计 | 统计公众号的用户增减、累计用户、消息概况、接口分析等数据 |
|
||||
| 🚀 | 粉丝管理 | 查看已关注、取关的粉丝列表,可对粉丝进行同步、打标签等操作 |
|
||||
| 🚀 | 消息管理 | 查看粉丝发送的消息列表,可主动回复粉丝消息 |
|
||||
| 🚀 | 自动回复 | 自动回复粉丝发送的消息,支持关注回复、消息回复、关键字回复 |
|
||||
| 🚀 | 标签管理 | 对公众号的标签进行创建、查询、修改、删除等操作 |
|
||||
| 🚀 | 菜单管理 | 自定义公众号的菜单,也可以从公众号同步菜单 |
|
||||
| 🚀 | 素材管理 | 管理公众号的图片、语音、视频等素材,支持在线播放语音、视频 |
|
||||
| 🚀 | 图文草稿箱 | 新增常用的图文素材到草稿箱,可发布到公众号 |
|
||||
| 🚀 | 图文发表记录 | 查看已发布成功的图文素材,支持删除操作 |
|
||||
|
||||
### 商城系统
|
||||
|
||||
建设中...
|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
演示地址:<https://doc.iocoder.cn/mall-preview/>
|
||||
|
||||
### 会员中心
|
||||
|
||||
和「商城系统」一起开发
|
||||
| | 功能 | 描述 |
|
||||
|-----|------|----------------------------------|
|
||||
| 🚀 | 会员管理 | 会员是 C 端的消费者,该功能用于会员的搜索与管理 |
|
||||
| 🚀 | 会员标签 | 对会员的标签进行创建、查询、修改、删除等操作 |
|
||||
| 🚀 | 会员等级 | 对会员的等级、成长值进行管理,可用于订单折扣等会员权益 |
|
||||
| 🚀 | 会员分组 | 对会员进行分组,用于用户画像、内容推送等运营手段 |
|
||||
| 🚀 | 积分签到 | 回馈给签到、消费等行为的积分,会员可订单抵现、积分兑换等途径消耗 |
|
||||
|
||||
## 🐨 技术栈
|
||||
|
||||
| 项目 | 说明 |
|
||||
|-----------------------|--------------------|
|
||||
| `yudao-dependencies` | Maven 依赖版本管理 |
|
||||
| `yudao-framework` | Java 框架拓展 |
|
||||
| `yudao-server` | 管理后台 + 用户 APP 的服务端 |
|
||||
| `yudao-ui-admin` | 管理后台的 Vue2 前端项目 |
|
||||
| `yudao-ui-admin-vue3` | 管理后台的 Vue3 前端项目 |
|
||||
| `yudao-ui-admin-uniapp` | 管理后台的 uni-app 多端项目 |
|
||||
| `yudao-ui-app` | 用户 APP 的 UI 界面 |
|
||||
| `yudao-module-system` | 系统功能的 Module 模块 |
|
||||
| `yudao-module-member` | 会员中心的 Module 模块 |
|
||||
| `yudao-module-infra` | 基础设施的 Module 模块 |
|
||||
| `yudao-module-tool` | 研发工具的 Module 模块 |
|
||||
| `yudao-module-bpm` | 工作流程的 Module 模块 |
|
||||
| `yudao-module-pay` | 支付系统的 Module 模块 |
|
||||
### 模块
|
||||
|
||||
### 后端
|
||||
| 项目 | 说明 |
|
||||
|--------------------------------------------------------------------------|--------------------|
|
||||
| `yudao-dependencies` | Maven 依赖版本管理 |
|
||||
| `yudao-framework` | Java 框架拓展 |
|
||||
| `yudao-server` | 管理后台 + 用户 APP 的服务端 |
|
||||
| `yudao-module-system` | 系统功能的 Module 模块 |
|
||||
| `yudao-module-member` | 会员中心的 Module 模块 |
|
||||
| `yudao-module-infra` | 基础设施的 Module 模块 |
|
||||
| `yudao-module-bpm` | 工作流程的 Module 模块 |
|
||||
| `yudao-module-pay` | 支付系统的 Module 模块 |
|
||||
| `yudao-module-mall` | 商城系统的 Module 模块 |
|
||||
| `yudao-module-mp` | 微信公众号的 Module 模块 |
|
||||
| `yudao-module-report` | 大屏报表 Module 模块 |
|
||||
|
||||
| 框架 | 说明 | 版本 | 学习指南 |
|
||||
|---------------------------------------------------------------------------------------------|-----------------------|-------------|----------------------------------------------------------------|
|
||||
| [Spring Boot](https://spring.io/projects/spring-boot) | 应用开发框架 | 2.7.6 | [文档](https://github.com/YunaiV/SpringBoot-Labs) |
|
||||
| [MySQL](https://www.mysql.com/cn/) | 数据库服务器 | 5.7 / 8.0+ | |
|
||||
| [Druid](https://github.com/alibaba/druid) | JDBC 连接池、监控组件 | 1.2.15 | [文档](http://www.iocoder.cn/Spring-Boot/datasource-pool/?yudao) |
|
||||
| [MyBatis Plus](https://mp.baomidou.com/) | MyBatis 增强工具包 | 3.5.2 | [文档](http://www.iocoder.cn/Spring-Boot/MyBatis/?yudao) |
|
||||
| [Dynamic Datasource](https://dynamic-datasource.com/) | 动态数据源 | 3.5.2 | [文档](http://www.iocoder.cn/Spring-Boot/datasource-pool/?yudao) |
|
||||
| [Redis](https://redis.io/) | key-value 数据库 | 5.0 / 6.0 | |
|
||||
| [Redisson](https://github.com/redisson/redisson) | Redis 客户端 | 3.18.0 | [文档](http://www.iocoder.cn/Spring-Boot/Redis/?yudao) |
|
||||
| [Spring MVC](https://github.com/spring-projects/spring-framework/tree/master/spring-webmvc) | MVC 框架 | 5.3.24 | [文档](http://www.iocoder.cn/SpringMVC/MVC/?yudao) |
|
||||
| [Spring Security](https://github.com/spring-projects/spring-security) | Spring 安全框架 | 5.7.5 | [文档](http://www.iocoder.cn/Spring-Boot/Spring-Security/?yudao) |
|
||||
| [Hibernate Validator](https://github.com/hibernate/hibernate-validator) | 参数校验组件 | 6.2.5 | [文档](http://www.iocoder.cn/Spring-Boot/Validation/?yudao) |
|
||||
| [Flowable](https://github.com/flowable/flowable-engine) | 工作流引擎 | 6.7.2 | [文档](https://doc.iocoder.cn/bpm/) |
|
||||
| [Quartz](https://github.com/quartz-scheduler) | 任务调度组件 | 2.3.2 | [文档](http://www.iocoder.cn/Spring-Boot/Job/?yudao) |
|
||||
| [Knife4j](https://gitee.com/xiaoym/knife4j) | Swagger 增强 UI 实现 | 3.0.3 | [文档](http://www.iocoder.cn/Spring-Boot/Swagger/?yudao) |
|
||||
| [Resilience4j](https://github.com/resilience4j/resilience4j) | 服务保障组件 | 1.7.1 | [文档](http://www.iocoder.cn/Spring-Boot/Resilience4j/?yudao) |
|
||||
| [SkyWalking](https://skywalking.apache.org/) | 分布式应用追踪系统 | 8.12.0 | [文档](http://www.iocoder.cn/Spring-Boot/SkyWalking/?yudao) |
|
||||
| [Spring Boot Admin](https://github.com/codecentric/spring-boot-admin) | Spring Boot 监控平台 | 2.7.7 | [文档](http://www.iocoder.cn/Spring-Boot/Admin/?yudao) |
|
||||
| [Jackson](https://github.com/FasterXML/jackson) | JSON 工具库 | 2.13.3 | |
|
||||
| [MapStruct](https://mapstruct.org/) | Java Bean 转换 | 1.5.3.Final | [文档](http://www.iocoder.cn/Spring-Boot/MapStruct/?yudao) |
|
||||
| [Lombok](https://projectlombok.org/) | 消除冗长的 Java 代码 | 1.18.24 | [文档](http://www.iocoder.cn/Spring-Boot/Lombok/?yudao) |
|
||||
| [JUnit](https://junit.org/junit5/) | Java 单元测试框架 | 5.8.2 | - |
|
||||
| [Mockito](https://github.com/mockito/mockito) | Java Mock 框架 | 4.8.2 | - |
|
||||
### 框架
|
||||
|
||||
### [管理后台 Vue2 前端](./yudao-ui-admin)
|
||||
|
||||
| 框架 | 说明 | 版本 |
|
||||
|------------------------------------------------------------------------------|---------------|--------|
|
||||
| [Vue](https://cn.vuejs.org/index.html) | JavaScript 框架 | 2.7.14 |
|
||||
| [Vue Element Admin](https://panjiachen.github.io/vue-element-admin-site/zh/) | 后台前端解决方案 | - |
|
||||
|
||||
### [管理后台 Vue3 前端](./yudao-ui-admin-vue3)
|
||||
|
||||
| 框架 | 说明 | 版本 |
|
||||
|----------------------------------------------------------------------|:------------:|:------:|
|
||||
| [Vue](https://staging-cn.vuejs.org/) | Vue 框架 | 3.2.45 |
|
||||
| [Vite](https://cn.vitejs.dev//) | 开发与构建工具 | 3.2.3 |
|
||||
| [Element Plus](https://element-plus.org/zh-CN/) | Element Plus | 2.2.25 |
|
||||
| [TypeScript](https://www.typescriptlang.org/docs/) | TypeScript | 4.9.3 |
|
||||
| [pinia](https://pinia.vuejs.org/) | vuex5 | 2.0.27 |
|
||||
| [vue-i18n](https://kazupon.github.io/vue-i18n/zh/introduction.html/) | 国际化 | 9.2.2 |
|
||||
| [vxe-table](https://vxetable.cn/) | vue最强表单 | 4.5.6 |
|
||||
|
||||
### [管理后台 uni-app 跨端](./yudao-ui-admin-uniapp)
|
||||
|
||||
| 框架 | 说明 | 版本 |
|
||||
|----------------------------------------------------------------------|------------------|--------|
|
||||
| [uni-app](hhttps://github.com/dcloudio/uni-app) | 跨平台框架 | 2.0.0 |
|
||||
| [uni-ui](https://github.com/dcloudio/uni-ui) | 基于 uni-app 的 UI 框架 | 1.4.20 |
|
||||
| 框架 | 说明 | 版本 | 学习指南 |
|
||||
|---------------------------------------------------------------------------------------------|------------------|----------------|----------------------------------------------------------------|
|
||||
| [Spring Boot](https://spring.io/projects/spring-boot) | 应用开发框架 | 2.7.17 | [文档](https://github.com/YunaiV/SpringBoot-Labs) |
|
||||
| [MySQL](https://www.mysql.com/cn/) | 数据库服务器 | 5.7 / 8.0+ | |
|
||||
| [Druid](https://github.com/alibaba/druid) | JDBC 连接池、监控组件 | 1.2.19 | [文档](http://www.iocoder.cn/Spring-Boot/datasource-pool/?yudao) |
|
||||
| [MyBatis Plus](https://mp.baomidou.com/) | MyBatis 增强工具包 | 3.5.3.2 | [文档](http://www.iocoder.cn/Spring-Boot/MyBatis/?yudao) |
|
||||
| [Dynamic Datasource](https://dynamic-datasource.com/) | 动态数据源 | 3.6.1 | [文档](http://www.iocoder.cn/Spring-Boot/datasource-pool/?yudao) |
|
||||
| [Redis](https://redis.io/) | key-value 数据库 | 5.0 / 6.0 /7.0 | |
|
||||
| [Redisson](https://github.com/redisson/redisson) | Redis 客户端 | 3.18.0 | [文档](http://www.iocoder.cn/Spring-Boot/Redis/?yudao) |
|
||||
| [Spring MVC](https://github.com/spring-projects/spring-framework/tree/master/spring-webmvc) | MVC 框架 | 5.3.24 | [文档](http://www.iocoder.cn/SpringMVC/MVC/?yudao) |
|
||||
| [Spring Security](https://github.com/spring-projects/spring-security) | Spring 安全框架 | 5.7.11 | [文档](http://www.iocoder.cn/Spring-Boot/Spring-Security/?yudao) |
|
||||
| [Hibernate Validator](https://github.com/hibernate/hibernate-validator) | 参数校验组件 | 6.2.5 | [文档](http://www.iocoder.cn/Spring-Boot/Validation/?yudao) |
|
||||
| [Flowable](https://github.com/flowable/flowable-engine) | 工作流引擎 | 6.8.0 | [文档](https://doc.iocoder.cn/bpm/) |
|
||||
| [Quartz](https://github.com/quartz-scheduler) | 任务调度组件 | 2.3.2 | [文档](http://www.iocoder.cn/Spring-Boot/Job/?yudao) |
|
||||
| [Springdoc](https://springdoc.org/) | Swagger 文档 | 1.6.15 | [文档](http://www.iocoder.cn/Spring-Boot/Swagger/?yudao) |
|
||||
| [Resilience4j](https://github.com/resilience4j/resilience4j) | 服务保障组件 | 1.7.1 | [文档](http://www.iocoder.cn/Spring-Boot/Resilience4j/?yudao) |
|
||||
| [SkyWalking](https://skywalking.apache.org/) | 分布式应用追踪系统 | 8.12.0 | [文档](http://www.iocoder.cn/Spring-Boot/SkyWalking/?yudao) |
|
||||
| [Spring Boot Admin](https://github.com/codecentric/spring-boot-admin) | Spring Boot 监控平台 | 2.7.10 | [文档](http://www.iocoder.cn/Spring-Boot/Admin/?yudao) |
|
||||
| [Jackson](https://github.com/FasterXML/jackson) | JSON 工具库 | 2.13.3 | |
|
||||
| [MapStruct](https://mapstruct.org/) | Java Bean 转换 | 1.5.5.Final | [文档](http://www.iocoder.cn/Spring-Boot/MapStruct/?yudao) |
|
||||
| [Lombok](https://projectlombok.org/) | 消除冗长的 Java 代码 | 1.18.30 | [文档](http://www.iocoder.cn/Spring-Boot/Lombok/?yudao) |
|
||||
| [JUnit](https://junit.org/junit5/) | Java 单元测试框架 | 5.8.2 | - |
|
||||
| [Mockito](https://github.com/mockito/mockito) | Java Mock 框架 | 4.8.0 | - |
|
||||
|
||||
## 🐷 演示图
|
||||
|
||||
### 系统功能
|
||||
|
||||
| 模块 | biu | biu | biu |
|
||||
|----------|--------------------------------------------------------------------|------------------------------------------------------------------|------------------------------------------------------------------|
|
||||
| 登录 & 首页 |  |  |  |
|
||||
| 用户 & 应用 |  |  |  |
|
||||
| 租户 & 套餐 |  |  | - |
|
||||
| 部门 & 岗位 |  |  | - |
|
||||
| 菜单 & 角色 |  |  | - |
|
||||
| 审计日志 |  |  | - |
|
||||
| 短信 |  |  |  |
|
||||
| 字典 & 敏感词 |  |  |  |
|
||||
| 错误码 & 通知 |  |  | - |
|
||||
| 模块 | biu | biu | biu |
|
||||
|----------|-----------------------------|---------------------------|--------------------------|
|
||||
| 登录 & 首页 |  |  |  |
|
||||
| 用户 & 应用 |  |  |  |
|
||||
| 租户 & 套餐 |  |  | - |
|
||||
| 部门 & 岗位 |  |  | - |
|
||||
| 菜单 & 角色 |  |  | - |
|
||||
| 审计日志 |  |  | - |
|
||||
| 短信 |  |  |  |
|
||||
| 字典 & 敏感词 |  |  |  |
|
||||
| 错误码 & 通知 |  |  | - |
|
||||
|
||||
### 工作流程
|
||||
|
||||
| 模块 | biu | biu | biu |
|
||||
|---------|------------------------------------------------------------------------|------------------------------------------------------------------------|------------------------------------------------------------------------|
|
||||
| 流程模型 |  |  |  |
|
||||
| 表单 & 分组 |  |  | - |
|
||||
| 我的流程 |  |  |  |
|
||||
| 待办 & 已办 |  |  |  |
|
||||
| OA 请假 |  |  |  |
|
||||
| 模块 | biu | biu | biu |
|
||||
|---------|---------------------------------|---------------------------------|---------------------------------|
|
||||
| 流程模型 |  |  |  |
|
||||
| 表单 & 分组 |  |  | - |
|
||||
| 我的流程 |  |  |  |
|
||||
| 待办 & 已办 |  |  |  |
|
||||
| OA 请假 |  |  |  |
|
||||
|
||||
### 基础设施
|
||||
|
||||
| 模块 | biu | biu | biu |
|
||||
|---------------|----------------------------------------------------------------------|--------------------------------------------------------------------|------------------------------------------------------------------|
|
||||
| 代码生成 |  |  | - |
|
||||
| 文档 |  |  | - |
|
||||
| 文件 & 配置 |  |  |  |
|
||||
| 定时任务 |  |  | - |
|
||||
| API 日志 |  |  | - |
|
||||
| MySQL & Redis |  |  | - |
|
||||
| 监控平台 |  |  |  |
|
||||
| 模块 | biu | biu | biu |
|
||||
|---------------|-------------------------------|-----------------------------|---------------------------|
|
||||
| 代码生成 |  |  | - |
|
||||
| 文档 |  |  | - |
|
||||
| 文件 & 配置 |  |  |  |
|
||||
| 定时任务 |  |  | - |
|
||||
| API 日志 |  |  | - |
|
||||
| MySQL & Redis |  |  | - |
|
||||
| 监控平台 |  |  |  |
|
||||
|
||||
### 支付系统
|
||||
|
||||
| 模块 | biu | biu | biu |
|
||||
|---------|------------------------------------------------------------------|------------------------------------------------------------------------|------------------------------------------------------------------------|
|
||||
| 商家 & 应用 |  |  |  |
|
||||
| 支付 & 退款 |  |  | --- |
|
||||
|
||||
| 模块 | biu | biu | biu |
|
||||
|---------|---------------------------|---------------------------------|---------------------------------|
|
||||
| 商家 & 应用 |  |  |  |
|
||||
| 支付 & 退款 |  |  | --- |
|
||||
### 数据报表
|
||||
|
||||
| 模块 | biu | biu | biu |
|
||||
|---------|------------------------------------------------------------------|------------------------------------------------------------------------|------------------------------------------------------------------------|
|
||||
| 报表设计器 |  |  |  |
|
||||
| 模块 | biu | biu | biu |
|
||||
|-------|---------------------------------|---------------------------------|---------------------------------------|
|
||||
| 报表设计器 |  |  |  |
|
||||
| 大屏设计器 |  |  |  |
|
||||
|
||||
### 移动端(管理后台)
|
||||
|
||||
| biu | biu | biu |
|
||||
|------------------------------------------------------------------|------------------------------------------------------------------------|------------------------------------------------------------------------|
|
||||
|  |  |  |
|
||||
|  |  |  |
|
||||
|  |  |  |
|
||||
| biu | biu | biu |
|
||||
|----------------------------------|----------------------------------|----------------------------------|
|
||||
|  |  |  |
|
||||
|  |  |  |
|
||||
|  |  |  |
|
||||
|
||||
目前已经实现登录、我的、工作台、编辑资料、头像修改、密码修改、常见问题、关于我们等基础功能。
|
||||
|
||||
72
pom.xml
@ -13,15 +13,17 @@
|
||||
<!-- Server 主项目 -->
|
||||
<module>yudao-server</module>
|
||||
<!-- 各种 module 拓展 -->
|
||||
<module>yudao-module-member</module>
|
||||
<module>yudao-module-bpm</module>
|
||||
<module>yudao-module-system</module>
|
||||
<module>yudao-module-infra</module>
|
||||
<module>yudao-module-pay</module>
|
||||
<module>yudao-module-mall</module>
|
||||
<module>yudao-module-visualization</module>
|
||||
<!-- <module>yudao-module-member</module>-->
|
||||
<!-- <module>yudao-module-bpm</module>-->
|
||||
<!-- <module>yudao-module-report</module>-->
|
||||
<!-- <module>yudao-module-mp</module>-->
|
||||
<!-- <module>yudao-module-pay</module>-->
|
||||
<!-- <module>yudao-module-mall</module>-->
|
||||
<!-- <module>yudao-module-crm</module>-->
|
||||
<!-- 示例项目 -->
|
||||
<module>yudao-example</module>
|
||||
<!-- <module>yudao-example</module>-->
|
||||
</modules>
|
||||
|
||||
<name>${project.artifactId}</name>
|
||||
@ -29,16 +31,18 @@
|
||||
<url>https://github.com/YunaiV/ruoyi-vue-pro</url>
|
||||
|
||||
<properties>
|
||||
<revision>1.6.5-snapshot</revision>
|
||||
<revision>2.0.0-jdk8-snapshot</revision>
|
||||
<!-- Maven 相关 -->
|
||||
<java.version>1.8</java.version>
|
||||
<maven.compiler.source>${java.version}</maven.compiler.source>
|
||||
<maven.compiler.target>${java.version}</maven.compiler.target>
|
||||
<maven-surefire-plugin.version>3.0.0-M5</maven-surefire-plugin.version>
|
||||
<maven-compiler-plugin.version>3.8.0</maven-compiler-plugin.version>
|
||||
<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
|
||||
<flatten-maven-plugin.version>1.5.0</flatten-maven-plugin.version>
|
||||
<!-- 看看咋放到 bom 里 -->
|
||||
<lombok.version>1.18.24</lombok.version>
|
||||
<mapstruct.version>1.5.3.Final</mapstruct.version>
|
||||
<lombok.version>1.18.30</lombok.version>
|
||||
<spring.boot.version>2.7.17</spring.boot.version>
|
||||
<mapstruct.version>1.5.5.Final</mapstruct.version>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
|
||||
@ -64,13 +68,19 @@
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<version>${maven-surefire-plugin.version}</version>
|
||||
</plugin>
|
||||
<!-- maven-compiler-plugin 插件,解决 Lombok + MapStruct 组合 -->
|
||||
<!-- maven-compiler-plugin 插件,解决 spring-boot-configuration-processor + Lombok + MapStruct 组合 -->
|
||||
<!-- https://stackoverflow.com/questions/33483697/re-run-spring-boot-configuration-annotation-processor-to-update-generated-metada -->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>${maven-compiler-plugin.version}</version>
|
||||
<configuration>
|
||||
<annotationProcessorPaths>
|
||||
<path>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-configuration-processor</artifactId>
|
||||
<version>${spring.boot.version}</version>
|
||||
</path>
|
||||
<path>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
@ -84,12 +94,50 @@
|
||||
</annotationProcessorPaths>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>flatten-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</pluginManagement>
|
||||
|
||||
<plugins>
|
||||
<!-- 统一 revision 版本 -->
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>flatten-maven-plugin</artifactId>
|
||||
<version>${flatten-maven-plugin.version}</version>
|
||||
<configuration>
|
||||
<flattenMode>resolveCiFriendliesOnly</flattenMode>
|
||||
<updatePomFile>true</updatePomFile>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>flatten</goal>
|
||||
</goals>
|
||||
<id>flatten</id>
|
||||
<phase>process-resources</phase>
|
||||
</execution>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>clean</goal>
|
||||
</goals>
|
||||
<id>flatten.clean</id>
|
||||
<phase>clean</phase>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<!-- 使用 aliyun 的 Maven 源,提升下载速度 -->
|
||||
<!-- 使用 huawei / aliyun 的 Maven 源,提升下载速度 -->
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>huaweicloud</id>
|
||||
<name>huawei</name>
|
||||
<url>https://mirrors.huaweicloud.com/repository/maven/</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>aliyunmaven</id>
|
||||
<name>aliyun</name>
|
||||
|
||||
49
script/docker/Docker-HOWTO.md
Normal file
@ -0,0 +1,49 @@
|
||||
# Docker Build & Up
|
||||
|
||||
目标: 快速部署体验系统,帮助了解系统之间的依赖关系。
|
||||
依赖:docker compose v2,删除`name: yudao-system`,降低`version`版本为`3.3`以下,支持`docker-compose`。
|
||||
|
||||
## 功能文件列表
|
||||
|
||||
```text
|
||||
.
|
||||
├── Docker-HOWTO.md
|
||||
├── docker-compose.yml
|
||||
├── docker.env <-- 提供docker-compose环境变量配置
|
||||
├── yudao-server
|
||||
│ └── Dockerfile
|
||||
└── yudao-ui-admin
|
||||
├── .dockerignore
|
||||
├── Dockerfile
|
||||
└── nginx.conf <-- 提供基础配置,gzip压缩、api转发
|
||||
```
|
||||
|
||||
## 构建 jar 包
|
||||
|
||||
```shell
|
||||
# 创建maven缓存volume
|
||||
docker volume create --name yudao-maven-repo
|
||||
|
||||
docker run -it --rm --name yudao-maven \
|
||||
-v yudao-maven-repo:/root/.m2 \
|
||||
-v $PWD:/usr/src/mymaven \
|
||||
-w /usr/src/mymaven \
|
||||
maven mvn clean install package '-Dmaven.test.skip=true'
|
||||
```
|
||||
|
||||
## 构建启动服务
|
||||
|
||||
```shell
|
||||
docker compose --env-file docker.env up -d
|
||||
```
|
||||
|
||||
首次运行会自动构建容器。可以通过`docker compose build [service]`来手动构建所有或某个docker镜像
|
||||
|
||||
`--env-file docker.env`为可选参数,只是展示了通过`.env`文件配置容器启动的环境变量,`docker-compose.yml`本身已经提供足够的默认参数来正常运行系统。
|
||||
|
||||
## 服务器的宿主机端口映射
|
||||
|
||||
- admin ui: http://localhost:8080
|
||||
- api server: http://localhost:48080
|
||||
- mysql: root/123456, port: 3306
|
||||
- redis: port: 6379
|
||||
84
script/docker/docker-compose.yml
Normal file
@ -0,0 +1,84 @@
|
||||
version: "3.4"
|
||||
|
||||
name: yudao-system
|
||||
|
||||
services:
|
||||
mysql:
|
||||
container_name: yudao-mysql
|
||||
image: mysql:8
|
||||
restart: unless-stopped
|
||||
tty: true
|
||||
ports:
|
||||
- "3306:3306"
|
||||
environment:
|
||||
MYSQL_DATABASE: ${MYSQL_DATABASE:-ruoyi-vue-pro}
|
||||
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-123456}
|
||||
volumes:
|
||||
- mysql:/var/lib/mysql/
|
||||
- ./sql/mysql/ruoyi-vue-pro.sql:/docker-entrypoint-initdb.d/ruoyi-vue-pro.sql:ro
|
||||
|
||||
redis:
|
||||
container_name: yudao-redis
|
||||
image: redis:6-alpine
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "6379:6379"
|
||||
volumes:
|
||||
- redis:/data
|
||||
|
||||
server:
|
||||
container_name: yudao-server
|
||||
build:
|
||||
context: ./yudao-server/
|
||||
image: yudao-server
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "48080:48080"
|
||||
environment:
|
||||
# https://github.com/polovyivan/docker-pass-configs-to-container
|
||||
SPRING_PROFILES_ACTIVE: local
|
||||
JAVA_OPTS:
|
||||
${JAVA_OPTS:-
|
||||
-Xms512m
|
||||
-Xmx512m
|
||||
-Djava.security.egd=file:/dev/./urandom
|
||||
}
|
||||
ARGS:
|
||||
--spring.datasource.dynamic.datasource.master.url=${MASTER_DATASOURCE_URL:-jdbc:mysql://yudao-mysql:3306/ruoyi-vue-pro?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true}
|
||||
--spring.datasource.dynamic.datasource.master.username=${MASTER_DATASOURCE_USERNAME:-root}
|
||||
--spring.datasource.dynamic.datasource.master.password=${MASTER_DATASOURCE_PASSWORD:-123456}
|
||||
--spring.datasource.dynamic.datasource.slave.url=${SLAVE_DATASOURCE_URL:-jdbc:mysql://yudao-mysql:3306/ruoyi-vue-pro?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true}
|
||||
--spring.datasource.dynamic.datasource.slave.username=${SLAVE_DATASOURCE_USERNAME:-root}
|
||||
--spring.datasource.dynamic.datasource.slave.password=${SLAVE_DATASOURCE_PASSWORD:-123456}
|
||||
--spring.redis.host=${REDIS_HOST:-yudao-redis}
|
||||
depends_on:
|
||||
- mysql
|
||||
- redis
|
||||
|
||||
admin:
|
||||
container_name: yudao-admin
|
||||
build:
|
||||
context: ./yudao-ui-admin
|
||||
args:
|
||||
NODE_ENV:
|
||||
ENV=${NODE_ENV:-production}
|
||||
PUBLIC_PATH=${PUBLIC_PATH:-/}
|
||||
VUE_APP_TITLE=${VUE_APP_TITLE:-芋道管理系统}
|
||||
VUE_APP_BASE_API=${VUE_APP_BASE_API:-/prod-api}
|
||||
VUE_APP_APP_NAME=${VUE_APP_APP_NAME:-/}
|
||||
VUE_APP_TENANT_ENABLE=${VUE_APP_TENANT_ENABLE:-true}
|
||||
VUE_APP_CAPTCHA_ENABLE=${VUE_APP_CAPTCHA_ENABLE:-true}
|
||||
VUE_APP_DOC_ENABLE=${VUE_APP_DOC_ENABLE:-true}
|
||||
VUE_APP_BAIDU_CODE=${VUE_APP_BAIDU_CODE:-fadc1bd5db1a1d6f581df60a1807f8ab}
|
||||
image: yudao-admin
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "8080:80"
|
||||
depends_on:
|
||||
- server
|
||||
|
||||
volumes:
|
||||
mysql:
|
||||
driver: local
|
||||
redis:
|
||||
driver: local
|
||||
25
script/docker/docker.env
Normal file
@ -0,0 +1,25 @@
|
||||
## mysql
|
||||
MYSQL_DATABASE=ruoyi-vue-pro
|
||||
MYSQL_ROOT_PASSWORD=123456
|
||||
|
||||
## server
|
||||
JAVA_OPTS=-Xms512m -Xmx512m -Djava.security.egd=file:/dev/./urandom
|
||||
|
||||
MASTER_DATASOURCE_URL=jdbc:mysql://yudao-mysql:3306/${MYSQL_DATABASE}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
|
||||
MASTER_DATASOURCE_USERNAME=root
|
||||
MASTER_DATASOURCE_PASSWORD=${MYSQL_ROOT_PASSWORD}
|
||||
SLAVE_DATASOURCE_URL=${MASTER_DATASOURCE_URL}
|
||||
SLAVE_DATASOURCE_USERNAME=${MASTER_DATASOURCE_USERNAME}
|
||||
SLAVE_DATASOURCE_PASSWORD=${MASTER_DATASOURCE_PASSWORD}
|
||||
REDIS_HOST=yudao-redis
|
||||
|
||||
## admin
|
||||
NODE_ENV=production
|
||||
PUBLIC_PATH=/
|
||||
VUE_APP_TITLE=芋道管理系统
|
||||
VUE_APP_BASE_API=/prod-api
|
||||
VUE_APP_APP_NAME=/
|
||||
VUE_APP_TENANT_ENABLE=true
|
||||
VUE_APP_CAPTCHA_ENABLE=true
|
||||
VUE_APP_DOC_ENABLE=true
|
||||
VUE_APP_BAIDU_CODE=fadc1bd5db1a1d6f581df60a1807f8ab
|
||||
@ -5,7 +5,7 @@
|
||||
"adminTenentId": "1",
|
||||
|
||||
"appApi": "http://127.0.0.1:48080/app-api",
|
||||
"appToken": "test1",
|
||||
"appToken": "test247",
|
||||
"appTenentId": "1"
|
||||
},
|
||||
"gateway": {
|
||||
@ -15,6 +15,6 @@
|
||||
|
||||
"appApi": "http://127.0.0.1:8888/app-api",
|
||||
"appToken": "test1",
|
||||
"appTenentId": "1"
|
||||
"appTenantId": "1"
|
||||
}
|
||||
}
|
||||
@ -1,3 +0,0 @@
|
||||
暂未适配国产 DM 数据库,如果你有需要,可以微信联系 wangwenbin-server 一起建设。
|
||||
|
||||
你需要把表结构与数据导入到 DM 数据库,我来测试与适配代码。
|
||||
@ -0,0 +1,598 @@
|
||||
package liquibase.database.core;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.sql.Connection;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Statement;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
import java.util.Set;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import liquibase.CatalogAndSchema;
|
||||
import liquibase.Scope;
|
||||
import liquibase.database.AbstractJdbcDatabase;
|
||||
import liquibase.database.DatabaseConnection;
|
||||
import liquibase.database.OfflineConnection;
|
||||
import liquibase.database.jvm.JdbcConnection;
|
||||
import liquibase.exception.DatabaseException;
|
||||
import liquibase.exception.UnexpectedLiquibaseException;
|
||||
import liquibase.exception.ValidationErrors;
|
||||
import liquibase.executor.ExecutorService;
|
||||
import liquibase.statement.DatabaseFunction;
|
||||
import liquibase.statement.SequenceCurrentValueFunction;
|
||||
import liquibase.statement.SequenceNextValueFunction;
|
||||
import liquibase.statement.core.RawCallStatement;
|
||||
import liquibase.statement.core.RawSqlStatement;
|
||||
import liquibase.structure.DatabaseObject;
|
||||
import liquibase.structure.core.Catalog;
|
||||
import liquibase.structure.core.Index;
|
||||
import liquibase.structure.core.PrimaryKey;
|
||||
import liquibase.structure.core.Schema;
|
||||
import liquibase.util.JdbcUtils;
|
||||
import liquibase.util.StringUtil;
|
||||
|
||||
public class DmDatabase extends AbstractJdbcDatabase {
|
||||
private static final String PRODUCT_NAME = "DM DBMS";
|
||||
|
||||
@Override
|
||||
protected String getDefaultDatabaseProductName() {
|
||||
return PRODUCT_NAME;
|
||||
}
|
||||
|
||||
/**
|
||||
* Is this AbstractDatabase subclass the correct one to use for the given connection.
|
||||
*
|
||||
* @param conn
|
||||
*/
|
||||
@Override
|
||||
public boolean isCorrectDatabaseImplementation(DatabaseConnection conn) throws DatabaseException {
|
||||
return PRODUCT_NAME.equalsIgnoreCase(conn.getDatabaseProductName());
|
||||
}
|
||||
|
||||
/**
|
||||
* If this database understands the given url, return the default driver class name. Otherwise return null.
|
||||
*
|
||||
* @param url
|
||||
*/
|
||||
@Override
|
||||
public String getDefaultDriver(String url) {
|
||||
if(url.startsWith("jdbc:dm")) {
|
||||
return "dm.jdbc.driver.DmDriver";
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an all-lower-case short name of the product. Used for end-user selecting of database type
|
||||
* such as the DBMS precondition.
|
||||
*/
|
||||
@Override
|
||||
public String getShortName() {
|
||||
return "dm";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer getDefaultPort() {
|
||||
return 5236;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether this database support initially deferrable columns.
|
||||
*/
|
||||
@Override
|
||||
public boolean supportsInitiallyDeferrableColumns() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsTablespaces() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getPriority() {
|
||||
return PRIORITY_DEFAULT;
|
||||
}
|
||||
|
||||
private static final Pattern PROXY_USER = Pattern.compile(".*(?:thin|oci)\\:(.+)/@.*");
|
||||
|
||||
protected final int SHORT_IDENTIFIERS_LENGTH = 30;
|
||||
protected final int LONG_IDENTIFIERS_LEGNTH = 128;
|
||||
public static final int ORACLE_12C_MAJOR_VERSION = 12;
|
||||
|
||||
private Set<String> reservedWords = new HashSet<>();
|
||||
private Set<String> userDefinedTypes;
|
||||
private Map<String, String> savedSessionNlsSettings;
|
||||
|
||||
private Boolean canAccessDbaRecycleBin;
|
||||
private Integer databaseMajorVersion;
|
||||
private Integer databaseMinorVersion;
|
||||
|
||||
/**
|
||||
* Default constructor for an object that represents the Oracle Database DBMS.
|
||||
*/
|
||||
public DmDatabase() {
|
||||
super.unquotedObjectsAreUppercased = true;
|
||||
//noinspection HardCodedStringLiteral
|
||||
super.setCurrentDateTimeFunction("SYSTIMESTAMP");
|
||||
// Setting list of Oracle's native functions
|
||||
//noinspection HardCodedStringLiteral
|
||||
dateFunctions.add(new DatabaseFunction("SYSDATE"));
|
||||
//noinspection HardCodedStringLiteral
|
||||
dateFunctions.add(new DatabaseFunction("SYSTIMESTAMP"));
|
||||
//noinspection HardCodedStringLiteral
|
||||
dateFunctions.add(new DatabaseFunction("CURRENT_TIMESTAMP"));
|
||||
//noinspection HardCodedStringLiteral
|
||||
super.sequenceNextValueFunction = "%s.nextval";
|
||||
//noinspection HardCodedStringLiteral
|
||||
super.sequenceCurrentValueFunction = "%s.currval";
|
||||
}
|
||||
|
||||
private void tryProxySession(final String url, final Connection con) {
|
||||
Matcher m = PROXY_USER.matcher(url);
|
||||
if (m.matches()) {
|
||||
Properties props = new Properties();
|
||||
props.put("PROXY_USER_NAME", m.group(1));
|
||||
try {
|
||||
Method method = con.getClass().getMethod("openProxySession", int.class, Properties.class);
|
||||
method.setAccessible(true);
|
||||
method.invoke(con, 1, props);
|
||||
} catch (Exception e) {
|
||||
Scope.getCurrentScope().getLog(getClass()).info("Could not open proxy session on OracleDatabase: " + e.getCause().getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getDatabaseMajorVersion() throws DatabaseException {
|
||||
if (databaseMajorVersion == null) {
|
||||
return super.getDatabaseMajorVersion();
|
||||
} else {
|
||||
return databaseMajorVersion;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getDatabaseMinorVersion() throws DatabaseException {
|
||||
if (databaseMinorVersion == null) {
|
||||
return super.getDatabaseMinorVersion();
|
||||
} else {
|
||||
return databaseMinorVersion;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getJdbcCatalogName(CatalogAndSchema schema) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getJdbcSchemaName(CatalogAndSchema schema) {
|
||||
return correctObjectName((schema.getCatalogName() == null) ? schema.getSchemaName() : schema.getCatalogName(), Schema.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getAutoIncrementClause(final String generationType, final Boolean defaultOnNull) {
|
||||
if (StringUtil.isEmpty(generationType)) {
|
||||
return super.getAutoIncrementClause();
|
||||
}
|
||||
|
||||
String autoIncrementClause = "GENERATED %s AS IDENTITY"; // %s -- [ ALWAYS | BY DEFAULT [ ON NULL ] ]
|
||||
String generationStrategy = generationType;
|
||||
if (Boolean.TRUE.equals(defaultOnNull) && generationType.toUpperCase().equals("BY DEFAULT")) {
|
||||
generationStrategy += " ON NULL";
|
||||
}
|
||||
return String.format(autoIncrementClause, generationStrategy);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String generatePrimaryKeyName(String tableName) {
|
||||
if (tableName.length() > 27) {
|
||||
//noinspection HardCodedStringLiteral
|
||||
return "PK_" + tableName.toUpperCase(Locale.US).substring(0, 27);
|
||||
} else {
|
||||
//noinspection HardCodedStringLiteral
|
||||
return "PK_" + tableName.toUpperCase(Locale.US);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isReservedWord(String objectName) {
|
||||
return reservedWords.contains(objectName.toUpperCase());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsSequences() {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Oracle supports catalogs in liquibase terms
|
||||
*
|
||||
* @return false
|
||||
*/
|
||||
@Override
|
||||
public boolean supportsSchemas() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getConnectionCatalogName() throws DatabaseException {
|
||||
if (getConnection() instanceof OfflineConnection) {
|
||||
return getConnection().getCatalog();
|
||||
}
|
||||
try {
|
||||
//noinspection HardCodedStringLiteral
|
||||
return Scope.getCurrentScope().getSingleton(ExecutorService.class).getExecutor("jdbc", this).queryForObject(new RawCallStatement("select sys_context( 'userenv', 'current_schema' ) from dual"), String.class);
|
||||
} catch (Exception e) {
|
||||
//noinspection HardCodedStringLiteral
|
||||
Scope.getCurrentScope().getLog(getClass()).info("Error getting default schema", e);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDefaultCatalogName() {//NOPMD
|
||||
return (super.getDefaultCatalogName() == null) ? null : super.getDefaultCatalogName().toUpperCase(Locale.US);
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>Returns an Oracle date literal with the same value as a string formatted using ISO 8601.</p>
|
||||
*
|
||||
* <p>Convert an ISO8601 date string to one of the following results:
|
||||
* to_date('1995-05-23', 'YYYY-MM-DD')
|
||||
* to_date('1995-05-23 09:23:59', 'YYYY-MM-DD HH24:MI:SS')</p>
|
||||
* <p>
|
||||
* Implementation restriction:<br>
|
||||
* Currently, only the following subsets of ISO8601 are supported:<br>
|
||||
* <ul>
|
||||
* <li>YYYY-MM-DD</li>
|
||||
* <li>YYYY-MM-DDThh:mm:ss</li>
|
||||
* </ul>
|
||||
*/
|
||||
@Override
|
||||
public String getDateLiteral(String isoDate) {
|
||||
String normalLiteral = super.getDateLiteral(isoDate);
|
||||
|
||||
if (isDateOnly(isoDate)) {
|
||||
return "TO_DATE(" + normalLiteral + ", 'YYYY-MM-DD')";
|
||||
} else if (isTimeOnly(isoDate)) {
|
||||
return "TO_DATE(" + normalLiteral + ", 'HH24:MI:SS')";
|
||||
} else if (isTimestamp(isoDate)) {
|
||||
return "TO_TIMESTAMP(" + normalLiteral + ", 'YYYY-MM-DD HH24:MI:SS.FF')";
|
||||
} else if (isDateTime(isoDate)) {
|
||||
int seppos = normalLiteral.lastIndexOf('.');
|
||||
if (seppos != -1) {
|
||||
normalLiteral = normalLiteral.substring(0, seppos) + "'";
|
||||
}
|
||||
return "TO_DATE(" + normalLiteral + ", 'YYYY-MM-DD HH24:MI:SS')";
|
||||
}
|
||||
return "UNSUPPORTED:" + isoDate;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSystemObject(DatabaseObject example) {
|
||||
if (example == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (this.isLiquibaseObject(example)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (example instanceof Schema) {
|
||||
//noinspection HardCodedStringLiteral,HardCodedStringLiteral,HardCodedStringLiteral,HardCodedStringLiteral
|
||||
if ("SYSTEM".equals(example.getName()) || "SYS".equals(example.getName()) || "CTXSYS".equals(example.getName()) || "XDB".equals(example.getName())) {
|
||||
return true;
|
||||
}
|
||||
//noinspection HardCodedStringLiteral,HardCodedStringLiteral,HardCodedStringLiteral,HardCodedStringLiteral
|
||||
if ("SYSTEM".equals(example.getSchema().getCatalogName()) || "SYS".equals(example.getSchema().getCatalogName()) || "CTXSYS".equals(example.getSchema().getCatalogName()) || "XDB".equals(example.getSchema().getCatalogName())) {
|
||||
return true;
|
||||
}
|
||||
} else if (isSystemObject(example.getSchema())) {
|
||||
return true;
|
||||
}
|
||||
if (example instanceof Catalog) {
|
||||
//noinspection HardCodedStringLiteral,HardCodedStringLiteral,HardCodedStringLiteral,HardCodedStringLiteral
|
||||
if (("SYSTEM".equals(example.getName()) || "SYS".equals(example.getName()) || "CTXSYS".equals(example.getName()) || "XDB".equals(example.getName()))) {
|
||||
return true;
|
||||
}
|
||||
} else if (example.getName() != null) {
|
||||
//noinspection HardCodedStringLiteral
|
||||
if (example.getName().startsWith("BIN$")) { //oracle deleted table
|
||||
boolean filteredInOriginalQuery = this.canAccessDbaRecycleBin();
|
||||
if (!filteredInOriginalQuery) {
|
||||
filteredInOriginalQuery = StringUtil.trimToEmpty(example.getSchema().getName()).equalsIgnoreCase(this.getConnection().getConnectionUserName());
|
||||
}
|
||||
|
||||
if (filteredInOriginalQuery) {
|
||||
return !((example instanceof PrimaryKey) || (example instanceof Index) || (example instanceof
|
||||
liquibase.statement.UniqueConstraint));
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
} else //noinspection HardCodedStringLiteral
|
||||
if (example.getName().startsWith("AQ$")) { //oracle AQ tables
|
||||
return true;
|
||||
} else //noinspection HardCodedStringLiteral
|
||||
if (example.getName().startsWith("DR$")) { //oracle index tables
|
||||
return true;
|
||||
} else //noinspection HardCodedStringLiteral
|
||||
if (example.getName().startsWith("SYS_IOT_OVER")) { //oracle system table
|
||||
return true;
|
||||
} else //noinspection HardCodedStringLiteral,HardCodedStringLiteral
|
||||
if ((example.getName().startsWith("MDRT_") || example.getName().startsWith("MDRS_")) && example.getName().endsWith("$")) {
|
||||
// CORE-1768 - Oracle creates these for spatial indices and will remove them when the index is removed.
|
||||
return true;
|
||||
} else //noinspection HardCodedStringLiteral
|
||||
if (example.getName().startsWith("MLOG$_")) { //Created by materliaized view logs for every table that is part of a materialized view. Not available for DDL operations.
|
||||
return true;
|
||||
} else //noinspection HardCodedStringLiteral
|
||||
if (example.getName().startsWith("RUPD$_")) { //Created by materialized view log tables using primary keys. Not available for DDL operations.
|
||||
return true;
|
||||
} else //noinspection HardCodedStringLiteral
|
||||
if (example.getName().startsWith("WM$_")) { //Workspace Manager backup tables.
|
||||
return true;
|
||||
} else //noinspection HardCodedStringLiteral
|
||||
if ("CREATE$JAVA$LOB$TABLE".equals(example.getName())) { //This table contains the name of the Java object, the date it was loaded, and has a BLOB column to store the Java object.
|
||||
return true;
|
||||
} else //noinspection HardCodedStringLiteral
|
||||
if ("JAVA$CLASS$MD5$TABLE".equals(example.getName())) { //This is a hash table that tracks the loading of Java objects into a schema.
|
||||
return true;
|
||||
} else //noinspection HardCodedStringLiteral
|
||||
if (example.getName().startsWith("ISEQ$$_")) { //System-generated sequence
|
||||
return true;
|
||||
} else //noinspection HardCodedStringLiteral
|
||||
if (example.getName().startsWith("USLOG$")) { //for update materialized view
|
||||
return true;
|
||||
} else if (example.getName().startsWith("SYS_FBA")) { //for Flashback tables
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return super.isSystemObject(example);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsAutoIncrement() {
|
||||
// Oracle supports Identity beginning with version 12c
|
||||
boolean isAutoIncrementSupported = false;
|
||||
|
||||
try {
|
||||
if (getDatabaseMajorVersion() >= 12) {
|
||||
isAutoIncrementSupported = true;
|
||||
}
|
||||
|
||||
// Returning true will generate create table command with 'IDENTITY' clause, example:
|
||||
// CREATE TABLE AutoIncTest (IDPrimaryKey NUMBER(19) GENERATED BY DEFAULT AS IDENTITY NOT NULL, TypeID NUMBER(3) NOT NULL, Description NVARCHAR2(50), CONSTRAINT PK_AutoIncTest PRIMARY KEY (IDPrimaryKey));
|
||||
|
||||
// While returning false will continue to generate create table command without 'IDENTITY' clause, example:
|
||||
// CREATE TABLE AutoIncTest (IDPrimaryKey NUMBER(19) NOT NULL, TypeID NUMBER(3) NOT NULL, Description NVARCHAR2(50), CONSTRAINT PK_AutoIncTest PRIMARY KEY (IDPrimaryKey));
|
||||
|
||||
} catch (DatabaseException ex) {
|
||||
isAutoIncrementSupported = false;
|
||||
}
|
||||
|
||||
return isAutoIncrementSupported;
|
||||
}
|
||||
|
||||
|
||||
// public Set<UniqueConstraint> findUniqueConstraints(String schema) throws DatabaseException {
|
||||
// Set<UniqueConstraint> returnSet = new HashSet<UniqueConstraint>();
|
||||
//
|
||||
// List<Map> maps = new Executor(this).queryForList(new RawSqlStatement("SELECT UC.CONSTRAINT_NAME, UCC.TABLE_NAME, UCC.COLUMN_NAME FROM USER_CONSTRAINTS UC, USER_CONS_COLUMNS UCC WHERE UC.CONSTRAINT_NAME=UCC.CONSTRAINT_NAME AND CONSTRAINT_TYPE='U' ORDER BY UC.CONSTRAINT_NAME"));
|
||||
//
|
||||
// UniqueConstraint constraint = null;
|
||||
// for (Map map : maps) {
|
||||
// if (constraint == null || !constraint.getName().equals(constraint.getName())) {
|
||||
// returnSet.add(constraint);
|
||||
// Table table = new Table((String) map.get("TABLE_NAME"));
|
||||
// constraint = new UniqueConstraint(map.get("CONSTRAINT_NAME").toString(), table);
|
||||
// }
|
||||
// }
|
||||
// if (constraint != null) {
|
||||
// returnSet.add(constraint);
|
||||
// }
|
||||
//
|
||||
// return returnSet;
|
||||
// }
|
||||
|
||||
@Override
|
||||
public boolean supportsRestrictForeignKeys() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getDataTypeMaxParameters(String dataTypeName) {
|
||||
//noinspection HardCodedStringLiteral
|
||||
if ("BINARY_FLOAT".equals(dataTypeName.toUpperCase())) {
|
||||
return 0;
|
||||
}
|
||||
//noinspection HardCodedStringLiteral
|
||||
if ("BINARY_DOUBLE".equals(dataTypeName.toUpperCase())) {
|
||||
return 0;
|
||||
}
|
||||
return super.getDataTypeMaxParameters(dataTypeName);
|
||||
}
|
||||
|
||||
public String getSystemTableWhereClause(String tableNameColumn) {
|
||||
List<String> clauses = new ArrayList<String>(Arrays.asList("BIN$",
|
||||
"AQ$",
|
||||
"DR$",
|
||||
"SYS_IOT_OVER",
|
||||
"MLOG$_",
|
||||
"RUPD$_",
|
||||
"WM$_",
|
||||
"ISEQ$$_",
|
||||
"USLOG$",
|
||||
"SYS_FBA"));
|
||||
|
||||
for (int i = 0;i<clauses.size(); i++) {
|
||||
clauses.set(i, tableNameColumn+" NOT LIKE '"+clauses.get(i)+"%'");
|
||||
}
|
||||
return "("+ StringUtil.join(clauses, " AND ") + ")";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean jdbcCallsCatalogsSchemas() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public Set<String> getUserDefinedTypes() {
|
||||
if (userDefinedTypes == null) {
|
||||
userDefinedTypes = new HashSet<>();
|
||||
if ((getConnection() != null) && !(getConnection() instanceof OfflineConnection)) {
|
||||
try {
|
||||
try {
|
||||
//noinspection HardCodedStringLiteral
|
||||
userDefinedTypes.addAll(Scope.getCurrentScope().getSingleton(ExecutorService.class).getExecutor("jdbc", this).queryForList(new RawSqlStatement("SELECT DISTINCT TYPE_NAME FROM ALL_TYPES"), String.class));
|
||||
} catch (DatabaseException e) { //fall back to USER_TYPES if the user cannot see ALL_TYPES
|
||||
//noinspection HardCodedStringLiteral
|
||||
userDefinedTypes.addAll(Scope.getCurrentScope().getSingleton(ExecutorService.class).getExecutor("jdbc", this).queryForList(new RawSqlStatement("SELECT TYPE_NAME FROM USER_TYPES"), String.class));
|
||||
}
|
||||
} catch (DatabaseException e) {
|
||||
//ignore error
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return userDefinedTypes;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String generateDatabaseFunctionValue(DatabaseFunction databaseFunction) {
|
||||
//noinspection HardCodedStringLiteral
|
||||
if ((databaseFunction != null) && "current_timestamp".equalsIgnoreCase(databaseFunction.toString())) {
|
||||
return databaseFunction.toString();
|
||||
}
|
||||
if ((databaseFunction instanceof SequenceNextValueFunction) || (databaseFunction instanceof
|
||||
SequenceCurrentValueFunction)) {
|
||||
String quotedSeq = super.generateDatabaseFunctionValue(databaseFunction);
|
||||
// replace "myschema.my_seq".nextval with "myschema"."my_seq".nextval
|
||||
return quotedSeq.replaceFirst("\"([^\\.\"]+)\\.([^\\.\"]+)\"", "\"$1\".\"$2\"");
|
||||
|
||||
}
|
||||
|
||||
return super.generateDatabaseFunctionValue(databaseFunction);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ValidationErrors validate() {
|
||||
ValidationErrors errors = super.validate();
|
||||
DatabaseConnection connection = getConnection();
|
||||
if ((connection == null) || (connection instanceof OfflineConnection)) {
|
||||
//noinspection HardCodedStringLiteral
|
||||
Scope.getCurrentScope().getLog(getClass()).info("Cannot validate offline database");
|
||||
return errors;
|
||||
}
|
||||
|
||||
if (!canAccessDbaRecycleBin()) {
|
||||
errors.addWarning(getDbaRecycleBinWarning());
|
||||
}
|
||||
|
||||
return errors;
|
||||
|
||||
}
|
||||
|
||||
public String getDbaRecycleBinWarning() {
|
||||
//noinspection HardCodedStringLiteral,HardCodedStringLiteral,HardCodedStringLiteral,HardCodedStringLiteral,
|
||||
// HardCodedStringLiteral
|
||||
//noinspection HardCodedStringLiteral,HardCodedStringLiteral,HardCodedStringLiteral
|
||||
return "Liquibase needs to access the DBA_RECYCLEBIN table so we can automatically handle the case where " +
|
||||
"constraints are deleted and restored. Since Oracle doesn't properly restore the original table names " +
|
||||
"referenced in the constraint, we use the information from the DBA_RECYCLEBIN to automatically correct this" +
|
||||
" issue.\n" +
|
||||
"\n" +
|
||||
"The user you used to connect to the database (" + getConnection().getConnectionUserName() +
|
||||
") needs to have \"SELECT ON SYS.DBA_RECYCLEBIN\" permissions set before we can perform this operation. " +
|
||||
"Please run the following SQL to set the appropriate permissions, and try running the command again.\n" +
|
||||
"\n" +
|
||||
" GRANT SELECT ON SYS.DBA_RECYCLEBIN TO " + getConnection().getConnectionUserName() + ";";
|
||||
}
|
||||
|
||||
public boolean canAccessDbaRecycleBin() {
|
||||
if (canAccessDbaRecycleBin == null) {
|
||||
DatabaseConnection connection = getConnection();
|
||||
if ((connection == null) || (connection instanceof OfflineConnection)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Statement statement = null;
|
||||
try {
|
||||
statement = ((JdbcConnection) connection).createStatement();
|
||||
@SuppressWarnings("HardCodedStringLiteral") ResultSet resultSet = statement.executeQuery("select 1 from dba_recyclebin where 0=1");
|
||||
resultSet.close(); //don't need to do anything with the result set, just make sure statement ran.
|
||||
this.canAccessDbaRecycleBin = true;
|
||||
} catch (Exception e) {
|
||||
//noinspection HardCodedStringLiteral
|
||||
if ((e instanceof SQLException) && e.getMessage().startsWith("ORA-00942")) { //ORA-00942: table or view does not exist
|
||||
this.canAccessDbaRecycleBin = false;
|
||||
} else {
|
||||
//noinspection HardCodedStringLiteral
|
||||
Scope.getCurrentScope().getLog(getClass()).warning("Cannot check dba_recyclebin access", e);
|
||||
this.canAccessDbaRecycleBin = false;
|
||||
}
|
||||
} finally {
|
||||
JdbcUtils.close(null, statement);
|
||||
}
|
||||
}
|
||||
|
||||
return canAccessDbaRecycleBin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsNotNullConstraintNames() {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests if the given String would be a valid identifier in Oracle DBMS. In Oracle, a valid identifier has
|
||||
* the following form (case-insensitive comparison):
|
||||
* 1st character: A-Z
|
||||
* 2..n characters: A-Z0-9$_#
|
||||
* The maximum length of an identifier differs by Oracle version and object type.
|
||||
*/
|
||||
public boolean isValidOracleIdentifier(String identifier, Class<? extends DatabaseObject> type) {
|
||||
if ((identifier == null) || (identifier.length() < 1))
|
||||
return false;
|
||||
|
||||
if (!identifier.matches("^(i?)[A-Z][A-Z0-9\\$\\_\\#]*$"))
|
||||
return false;
|
||||
|
||||
/*
|
||||
* @todo It seems we currently do not have a class for tablespace identifiers, and all other classes
|
||||
* we do know seem to be supported as 12cR2 long identifiers, so:
|
||||
*/
|
||||
return (identifier.length() <= LONG_IDENTIFIERS_LEGNTH);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the maximum number of bytes (NOT: characters) for an identifier. For Oracle <=12c Release 20, this
|
||||
* is 30 bytes, and starting from 12cR2, up to 128 (except for tablespaces, PDB names and some other rather rare
|
||||
* object types).
|
||||
*
|
||||
* @return the maximum length of an object identifier, in bytes
|
||||
*/
|
||||
public int getIdentifierMaximumLength() {
|
||||
try {
|
||||
if (getDatabaseMajorVersion() < ORACLE_12C_MAJOR_VERSION) {
|
||||
return SHORT_IDENTIFIERS_LENGTH;
|
||||
} else if ((getDatabaseMajorVersion() == ORACLE_12C_MAJOR_VERSION) && (getDatabaseMinorVersion() <= 1)) {
|
||||
return SHORT_IDENTIFIERS_LENGTH;
|
||||
} else {
|
||||
return LONG_IDENTIFIERS_LEGNTH;
|
||||
}
|
||||
} catch (DatabaseException ex) {
|
||||
throw new UnexpectedLiquibaseException("Cannot determine the Oracle database version number", ex);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,165 @@
|
||||
package liquibase.datatype.core;
|
||||
|
||||
import liquibase.change.core.LoadDataChange;
|
||||
import liquibase.database.Database;
|
||||
import liquibase.database.core.*;
|
||||
import liquibase.datatype.DataTypeInfo;
|
||||
import liquibase.datatype.DatabaseDataType;
|
||||
import liquibase.datatype.LiquibaseDataType;
|
||||
import liquibase.exception.UnexpectedLiquibaseException;
|
||||
import liquibase.statement.DatabaseFunction;
|
||||
import liquibase.util.StringUtil;
|
||||
|
||||
import java.util.Locale;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
@DataTypeInfo(name = "boolean", aliases = {"java.sql.Types.BOOLEAN", "java.lang.Boolean", "bit", "bool"}, minParameters = 0, maxParameters = 0, priority = LiquibaseDataType.PRIORITY_DEFAULT)
|
||||
public class BooleanType extends LiquibaseDataType {
|
||||
|
||||
@Override
|
||||
public DatabaseDataType toDatabaseDataType(Database database) {
|
||||
String originalDefinition = StringUtil.trimToEmpty(getRawDefinition());
|
||||
if ((database instanceof Firebird3Database)) {
|
||||
return new DatabaseDataType("BOOLEAN");
|
||||
}
|
||||
|
||||
if ((database instanceof Db2zDatabase) || (database instanceof FirebirdDatabase)) {
|
||||
return new DatabaseDataType("SMALLINT");
|
||||
} else if (database instanceof MSSQLDatabase) {
|
||||
return new DatabaseDataType(database.escapeDataTypeName("bit"));
|
||||
} else if (database instanceof MySQLDatabase) {
|
||||
if (originalDefinition.toLowerCase(Locale.US).startsWith("bit")) {
|
||||
return new DatabaseDataType("BIT", getParameters());
|
||||
}
|
||||
return new DatabaseDataType("BIT", 1);
|
||||
} else if (database instanceof OracleDatabase) {
|
||||
return new DatabaseDataType("NUMBER", 1);
|
||||
} else if ((database instanceof SybaseASADatabase) || (database instanceof SybaseDatabase)) {
|
||||
return new DatabaseDataType("BIT");
|
||||
} else if (database instanceof DerbyDatabase) {
|
||||
if (((DerbyDatabase) database).supportsBooleanDataType()) {
|
||||
return new DatabaseDataType("BOOLEAN");
|
||||
} else {
|
||||
return new DatabaseDataType("SMALLINT");
|
||||
}
|
||||
} else if (database instanceof DB2Database) {
|
||||
if (((DB2Database) database).supportsBooleanDataType())
|
||||
return new DatabaseDataType("BOOLEAN");
|
||||
else
|
||||
return new DatabaseDataType("SMALLINT");
|
||||
} else if (database instanceof HsqlDatabase) {
|
||||
return new DatabaseDataType("BOOLEAN");
|
||||
} else if (database instanceof PostgresDatabase) {
|
||||
if (originalDefinition.toLowerCase(Locale.US).startsWith("bit")) {
|
||||
return new DatabaseDataType("BIT", getParameters());
|
||||
}
|
||||
} else if (database instanceof DmDatabase) { // dhb52: DM Support
|
||||
return new DatabaseDataType("bit");
|
||||
}
|
||||
|
||||
return super.toDatabaseDataType(database);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String objectToSql(Object value, Database database) {
|
||||
if ((value == null) || "null".equals(value.toString().toLowerCase(Locale.US))) {
|
||||
return null;
|
||||
}
|
||||
|
||||
String returnValue;
|
||||
if (value instanceof String) {
|
||||
value = ((String) value).replaceAll("'", "");
|
||||
if ("true".equals(((String) value).toLowerCase(Locale.US)) || "1".equals(value) || "b'1'".equals(((String) value).toLowerCase(Locale.US)) || "t".equals(((String) value).toLowerCase(Locale.US)) || ((String) value).toLowerCase(Locale.US).equals(this.getTrueBooleanValue(database).toLowerCase(Locale.US))) {
|
||||
returnValue = this.getTrueBooleanValue(database);
|
||||
} else if ("false".equals(((String) value).toLowerCase(Locale.US)) || "0".equals(value) || "b'0'".equals(
|
||||
((String) value).toLowerCase(Locale.US)) || "f".equals(((String) value).toLowerCase(Locale.US)) || ((String) value).toLowerCase(Locale.US).equals(this.getFalseBooleanValue(database).toLowerCase(Locale.US))) {
|
||||
returnValue = this.getFalseBooleanValue(database);
|
||||
} else if (database instanceof PostgresDatabase && Pattern.matches("b?([01])\\1*(::bit|::\"bit\")?", (String) value)) {
|
||||
returnValue = "b'"
|
||||
+ value.toString()
|
||||
.replace("b", "")
|
||||
.replace("\"", "")
|
||||
.replace("::it", "")
|
||||
+ "'::\"bit\"";
|
||||
} else {
|
||||
throw new UnexpectedLiquibaseException("Unknown boolean value: " + value);
|
||||
}
|
||||
} else if (value instanceof Long) {
|
||||
if (Long.valueOf(1).equals(value)) {
|
||||
returnValue = this.getTrueBooleanValue(database);
|
||||
} else {
|
||||
returnValue = this.getFalseBooleanValue(database);
|
||||
}
|
||||
} else if (value instanceof Number) {
|
||||
if (value.equals(1) || "1".equals(value.toString()) || "1.0".equals(value.toString())) {
|
||||
returnValue = this.getTrueBooleanValue(database);
|
||||
} else {
|
||||
returnValue = this.getFalseBooleanValue(database);
|
||||
}
|
||||
} else if (value instanceof DatabaseFunction) {
|
||||
return value.toString();
|
||||
} else if (value instanceof Boolean) {
|
||||
if (((Boolean) value)) {
|
||||
returnValue = this.getTrueBooleanValue(database);
|
||||
} else {
|
||||
returnValue = this.getFalseBooleanValue(database);
|
||||
}
|
||||
} else {
|
||||
throw new UnexpectedLiquibaseException("Cannot convert type " + value.getClass() + " to a boolean value");
|
||||
}
|
||||
|
||||
return returnValue;
|
||||
}
|
||||
|
||||
protected boolean isNumericBoolean(Database database) {
|
||||
if (database instanceof Firebird3Database) {
|
||||
return false;
|
||||
}
|
||||
if (database instanceof DerbyDatabase) {
|
||||
return !((DerbyDatabase) database).supportsBooleanDataType();
|
||||
} else if (database instanceof DB2Database) {
|
||||
return !((DB2Database) database).supportsBooleanDataType();
|
||||
}
|
||||
return (database instanceof Db2zDatabase)
|
||||
|| (database instanceof FirebirdDatabase)
|
||||
|| (database instanceof MSSQLDatabase)
|
||||
|| (database instanceof MySQLDatabase)
|
||||
|| (database instanceof OracleDatabase)
|
||||
|| (database instanceof SQLiteDatabase)
|
||||
|| (database instanceof SybaseASADatabase)
|
||||
|| (database instanceof SybaseDatabase)
|
||||
|| (database instanceof DmDatabase); // dhb52: DM Support
|
||||
}
|
||||
|
||||
/**
|
||||
* The database-specific value to use for "false" "boolean" columns.
|
||||
*/
|
||||
public String getFalseBooleanValue(Database database) {
|
||||
if (isNumericBoolean(database)) {
|
||||
return "0";
|
||||
}
|
||||
if (database instanceof InformixDatabase) {
|
||||
return "'f'";
|
||||
}
|
||||
return "FALSE";
|
||||
}
|
||||
|
||||
/**
|
||||
* The database-specific value to use for "true" "boolean" columns.
|
||||
*/
|
||||
public String getTrueBooleanValue(Database database) {
|
||||
if (isNumericBoolean(database)) {
|
||||
return "1";
|
||||
}
|
||||
if (database instanceof InformixDatabase) {
|
||||
return "'t'";
|
||||
}
|
||||
return "TRUE";
|
||||
}
|
||||
|
||||
@Override
|
||||
public LoadDataChange.LOAD_DATA_TYPE getLoadTypeName() {
|
||||
return LoadDataChange.LOAD_DATA_TYPE.BOOLEAN;
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
防止IDEA将`.`和`/`混为一谈
|
||||
@ -0,0 +1,21 @@
|
||||
liquibase.database.core.CockroachDatabase
|
||||
liquibase.database.core.DB2Database
|
||||
liquibase.database.core.Db2zDatabase
|
||||
liquibase.database.core.DerbyDatabase
|
||||
liquibase.database.core.Firebird3Database
|
||||
liquibase.database.core.FirebirdDatabase
|
||||
liquibase.database.core.H2Database
|
||||
liquibase.database.core.HsqlDatabase
|
||||
liquibase.database.core.InformixDatabase
|
||||
liquibase.database.core.Ingres9Database
|
||||
liquibase.database.core.MSSQLDatabase
|
||||
liquibase.database.core.MariaDBDatabase
|
||||
liquibase.database.core.MockDatabase
|
||||
liquibase.database.core.MySQLDatabase
|
||||
liquibase.database.core.OracleDatabase
|
||||
liquibase.database.core.PostgresDatabase
|
||||
liquibase.database.core.SQLiteDatabase
|
||||
liquibase.database.core.SybaseASADatabase
|
||||
liquibase.database.core.SybaseDatabase
|
||||
liquibase.database.core.DmDatabase
|
||||
liquibase.database.core.UnsupportedDatabase
|
||||