mirror of
https://gitee.com/ThingsGateway/ThingsGateway.git
synced 2025-10-23 20:13:22 +08:00
Compare commits
817 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
7f4e4017ce | ||
![]() |
635970f37b | ||
![]() |
106e740220 | ||
![]() |
3e6420ba6f | ||
![]() |
79be8010d5 | ||
![]() |
0b6e679f3b | ||
![]() |
97c43ad2b9 | ||
![]() |
cbf978745c | ||
![]() |
63dceada90 | ||
![]() |
366aade8b4 | ||
![]() |
aeb505e3d9 | ||
![]() |
f9482e4773 | ||
![]() |
57dfc22ff7 | ||
![]() |
adc489b6ed | ||
![]() |
0623684315 | ||
![]() |
68afccd859 | ||
![]() |
99eef8fb28 | ||
![]() |
47e7685d39 | ||
![]() |
b6ea596ade | ||
![]() |
44d60b469b | ||
![]() |
51087408df | ||
![]() |
96226d9e6e | ||
![]() |
28f0f62424 | ||
![]() |
2e772a8cd4 | ||
![]() |
3fd192f0cf | ||
![]() |
d16ae81961 | ||
![]() |
211a8e093e | ||
![]() |
84010a51d6 | ||
![]() |
e9700ea19b | ||
![]() |
e81ec68072 | ||
![]() |
6096e97708 | ||
![]() |
6f302b66b4 | ||
![]() |
b6e41890f7 | ||
![]() |
be5332a048 | ||
![]() |
4d72aeb0cd | ||
![]() |
c7c3c35100 | ||
![]() |
2f0df3c552 | ||
![]() |
e6effcd921 | ||
![]() |
cd462b9523 | ||
![]() |
7e2e17d38b | ||
![]() |
665d616a06 | ||
![]() |
ced90f5bb9 | ||
![]() |
ca0ddb6cb4 | ||
![]() |
3d733813e1 | ||
![]() |
45ddc0b154 | ||
![]() |
87294497f3 | ||
![]() |
5f45f9c0d0 | ||
![]() |
7f78c06793 | ||
![]() |
8ea5b7eebc | ||
![]() |
e49cd511af | ||
![]() |
15c88646df | ||
![]() |
f47919543d | ||
![]() |
a95291d9cd | ||
![]() |
033deb3d29 | ||
![]() |
923994c1f4 | ||
![]() |
3d45b839b4 | ||
![]() |
55d1efa212 | ||
![]() |
21d794a0e5 | ||
![]() |
614022a78c | ||
![]() |
c00688e23a | ||
![]() |
5c69917d19 | ||
![]() |
6a5eb75b6c | ||
![]() |
727c55eaa2 | ||
![]() |
9b03173ec5 | ||
![]() |
ab95855d6d | ||
![]() |
bb84594c6b | ||
![]() |
97392c76b1 | ||
![]() |
53aec2b306 | ||
![]() |
a0a381dc63 | ||
![]() |
4fa95edeec | ||
![]() |
b944f1d70e | ||
![]() |
0f1a5d0085 | ||
![]() |
e7e10222e7 | ||
![]() |
87c4fda588 | ||
![]() |
0ff820de6f | ||
![]() |
0dcf55e6d9 | ||
![]() |
a69842c910 | ||
![]() |
318f635e4d | ||
![]() |
abf0d72316 | ||
![]() |
5cd89c8844 | ||
![]() |
501c1af38c | ||
![]() |
8526e130d9 | ||
![]() |
76fd08eade | ||
![]() |
bfe48ae9d2 | ||
![]() |
8547cdba7c | ||
![]() |
00d0cd631d | ||
![]() |
04460d13cd | ||
![]() |
a17a15e5d7 | ||
![]() |
bfe2465658 | ||
![]() |
4568987785 | ||
![]() |
c0e5a1419d | ||
![]() |
23ac7ab748 | ||
![]() |
5622dc74a8 | ||
![]() |
528986f4f0 | ||
![]() |
e6b8ff3f91 | ||
![]() |
3fc3c5296f | ||
![]() |
f4f2a14a31 | ||
![]() |
fa3f464cb6 | ||
![]() |
bed20538ae | ||
![]() |
3da461c6e6 | ||
![]() |
9c73e8452a | ||
![]() |
750dab69d3 | ||
![]() |
702d0da47c | ||
![]() |
3a955b1e53 | ||
![]() |
d408bd93e8 | ||
![]() |
63fd9eb1de | ||
![]() |
4718ab6ddf | ||
![]() |
affd4b3a26 | ||
![]() |
6a660dbcda | ||
![]() |
5ff3af8b48 | ||
![]() |
9d49070f93 | ||
![]() |
5b3994a1dd | ||
![]() |
bb1e62c580 | ||
![]() |
29cc776908 | ||
![]() |
d2ef60b2ec | ||
![]() |
41ea496d41 | ||
![]() |
c69bb38929 | ||
![]() |
23b3f8494e | ||
![]() |
0ff94eec1b | ||
![]() |
f67a638565 | ||
![]() |
778cf71c61 | ||
![]() |
e2da083b48 | ||
![]() |
dcc48c0d4b | ||
![]() |
2446b4a591 | ||
![]() |
a973d633c8 | ||
![]() |
c3b11e6e0f | ||
![]() |
44bec2d99e | ||
![]() |
0d59d0a3f6 | ||
![]() |
ddc8372b09 | ||
![]() |
ea7325f4e0 | ||
![]() |
6048f95415 | ||
![]() |
5682705b8d | ||
![]() |
6c3b82607d | ||
![]() |
486c9f4ebf | ||
![]() |
7c8adebf2d | ||
![]() |
ce98bb0dc1 | ||
![]() |
60b49a4296 | ||
![]() |
5d0a2ffae0 | ||
![]() |
bbcf7c722a | ||
![]() |
66574eec6d | ||
![]() |
305df3a42c | ||
![]() |
323c6f4270 | ||
![]() |
c056b2b14c | ||
![]() |
02ebb07fd8 | ||
![]() |
59db0890c3 | ||
![]() |
3ea0d9ed3a | ||
![]() |
0371d11dd5 | ||
![]() |
12f1ebaee9 | ||
![]() |
5202cc22d1 | ||
![]() |
07a34bdcbf | ||
![]() |
27806da4be | ||
![]() |
a15dd1a3ce | ||
![]() |
6cc7451c7c | ||
![]() |
652aeee782 | ||
![]() |
8e1e887b8f | ||
![]() |
6601a2de64 | ||
![]() |
75a42ffc32 | ||
![]() |
8a80a52f5f | ||
![]() |
b373a434ba | ||
![]() |
cd78fdafe6 | ||
![]() |
7a1b4c6db7 | ||
![]() |
f2c7664033 | ||
![]() |
12b295f067 | ||
![]() |
3ee46da40f | ||
![]() |
beadaa7212 | ||
![]() |
16ef09426f | ||
![]() |
b8c1f1f5a9 | ||
![]() |
e027b5cbd6 | ||
![]() |
bf1bd73ad1 | ||
![]() |
86fc95119a | ||
![]() |
b3a76ea17b | ||
![]() |
bababd9d53 | ||
![]() |
8cd5180531 | ||
![]() |
f1ccbade8c | ||
![]() |
a66f4b0417 | ||
![]() |
ff495b2261 | ||
![]() |
90e5824212 | ||
![]() |
3d64021062 | ||
![]() |
fb8ed7428d | ||
![]() |
bdc273c10a | ||
![]() |
2d96cffdc7 | ||
![]() |
4356fccbcd | ||
![]() |
a169fd4ce7 | ||
![]() |
dcd418139e | ||
![]() |
0cac2062d3 | ||
![]() |
854c5d4ade | ||
![]() |
0f96c6ec84 | ||
![]() |
b219bd66c1 | ||
![]() |
cb52f2c0b3 | ||
![]() |
d3273e03ef | ||
![]() |
afbfd963f3 | ||
![]() |
2cd101c5f3 | ||
![]() |
b10bc24dee | ||
![]() |
51a23df861 | ||
![]() |
03a0a9dad9 | ||
![]() |
362c0affbe | ||
![]() |
d5b523479f | ||
![]() |
7719b8f6d7 | ||
![]() |
3656c0d524 | ||
![]() |
8b9e0dd6ea | ||
![]() |
b3921b1037 | ||
![]() |
d7d96e5dbf | ||
![]() |
3934395b7b | ||
![]() |
04fbe9a529 | ||
![]() |
badd6dd9a2 | ||
![]() |
059082456d | ||
![]() |
405b68e22f | ||
![]() |
c90bf6692c | ||
![]() |
b5ea5d0cc5 | ||
![]() |
243617a1e1 | ||
![]() |
9e703edd59 | ||
![]() |
d6c2cf2810 | ||
![]() |
ae7811acfa | ||
![]() |
e55731c099 | ||
![]() |
9df5c74da4 | ||
![]() |
8b75f9f785 | ||
![]() |
bf12428cf4 | ||
![]() |
b551df978b | ||
![]() |
c91d85d2f0 | ||
![]() |
965237fa1f | ||
![]() |
24cd9afc06 | ||
![]() |
602fdefebd | ||
![]() |
7e7818aa17 | ||
![]() |
27a6023a6a | ||
![]() |
3861879900 | ||
![]() |
807eeb8351 | ||
![]() |
045fa53d58 | ||
![]() |
69d405ece7 | ||
![]() |
d3dc4d0c5b | ||
![]() |
7beba1188e | ||
![]() |
9779ebe12c | ||
![]() |
f72cfaa093 | ||
![]() |
cf8ccafb4a | ||
![]() |
7fe281b0b8 | ||
![]() |
5f70e9574f | ||
![]() |
4be51923ba | ||
![]() |
a72c78f4a4 | ||
![]() |
b4d32a6de1 | ||
![]() |
8a6b2d5daa | ||
![]() |
bebadeef14 | ||
![]() |
3551be67f0 | ||
![]() |
1103950b25 | ||
![]() |
9d06e01cec | ||
![]() |
24be946b7e | ||
![]() |
f56d2fc60f | ||
![]() |
9f8356f409 | ||
![]() |
8e6345d938 | ||
![]() |
0eac78bd1c | ||
![]() |
21db2502d0 | ||
![]() |
38c3492123 | ||
![]() |
6376bff476 | ||
![]() |
38495a3ebc | ||
![]() |
cf00897be2 | ||
![]() |
da640f24ec | ||
![]() |
ed6a777c42 | ||
![]() |
81af4485d3 | ||
![]() |
94d8f0237d | ||
![]() |
c5e579dd38 | ||
![]() |
7865e76ee2 | ||
![]() |
4d37212cc0 | ||
![]() |
9ca43f0bb4 | ||
![]() |
fe8d262175 | ||
![]() |
493d6e7165 | ||
![]() |
17b630bcd8 | ||
![]() |
018c5ad3b4 | ||
![]() |
a14b4da977 | ||
![]() |
01b4597cc7 | ||
![]() |
0b083ccc1c | ||
![]() |
ca22cb0eae | ||
![]() |
bcbb8e5f8c | ||
![]() |
bea286cdd4 | ||
![]() |
892d2ee8d2 | ||
![]() |
7440608c14 | ||
![]() |
6246f0295b | ||
![]() |
53c39d9b43 | ||
![]() |
9a50b60031 | ||
![]() |
fd74527320 | ||
![]() |
f91fb522ac | ||
![]() |
7019c02b18 | ||
![]() |
94f8422b9b | ||
![]() |
b25c01567a | ||
![]() |
b9329885de | ||
![]() |
ac88c4cff9 | ||
![]() |
9674f2d238 | ||
![]() |
38c9ecb6f1 | ||
![]() |
be9e9cdd5a | ||
![]() |
afdaf07446 | ||
![]() |
5caaf10225 | ||
![]() |
daffc3a776 | ||
![]() |
34c9748ce5 | ||
![]() |
f17acbf4d1 | ||
![]() |
229f56ce2f | ||
![]() |
0847bedc51 | ||
![]() |
9e4546c305 | ||
![]() |
97b01bf26a | ||
![]() |
e7011628d0 | ||
![]() |
044ffdecbd | ||
![]() |
1a06a3543b | ||
![]() |
5fedc0bf1e | ||
![]() |
7a881f867e | ||
![]() |
dfe73a6cfb | ||
![]() |
45d0fb27ad | ||
![]() |
31890af61d | ||
![]() |
a54b3ecc15 | ||
![]() |
c37cd1bd51 | ||
![]() |
0e3ee89cbf | ||
![]() |
a049176c14 | ||
![]() |
5ef2b0089e | ||
![]() |
1cc4899593 | ||
![]() |
26d1390be9 | ||
![]() |
dc65584fb3 | ||
![]() |
b3d5a708d5 | ||
![]() |
904a5d296b | ||
![]() |
cc82e6a47a | ||
![]() |
a9d02ec854 | ||
![]() |
6b5a2d3767 | ||
![]() |
10d9060b94 | ||
![]() |
8441839c01 | ||
![]() |
b669f5838f | ||
![]() |
1a942f9ce1 | ||
![]() |
ae840758f7 | ||
![]() |
082c08e5f9 | ||
![]() |
74a43557ab | ||
![]() |
184271789d | ||
![]() |
fa61b0cad8 | ||
![]() |
7b197a90d1 | ||
![]() |
62384af2f6 | ||
![]() |
b466202a1a | ||
![]() |
7ab38c18d8 | ||
![]() |
39841ee43e | ||
![]() |
e419800d98 | ||
![]() |
63c99ab69a | ||
![]() |
e2a8fd2279 | ||
![]() |
bbde520471 | ||
![]() |
45fb12f98e | ||
![]() |
4be3dcce50 | ||
![]() |
d12a41c769 | ||
![]() |
ed9a58c9ed | ||
![]() |
4389cea5a1 | ||
![]() |
d24854920b | ||
![]() |
9902443bee | ||
![]() |
8040b2ef16 | ||
![]() |
4533680b10 | ||
![]() |
3b28175135 | ||
![]() |
8e22812265 | ||
![]() |
409bc91b9e | ||
![]() |
61fe543a2a | ||
![]() |
8a949a7e64 | ||
![]() |
b0dc9fb97a | ||
![]() |
83114d1002 | ||
![]() |
94a25a903f | ||
![]() |
4f402f9e55 | ||
![]() |
27bb2e3dcc | ||
![]() |
66cc52f6ec | ||
![]() |
ed1367b116 | ||
![]() |
5c055352e4 | ||
![]() |
8dcff5ada1 | ||
![]() |
4b8b23d7d5 | ||
![]() |
e576f6aed3 | ||
![]() |
97ab04da91 | ||
![]() |
c6361bb36e | ||
![]() |
b0b3dc225d | ||
![]() |
9cbaba192a | ||
![]() |
f511598e13 | ||
![]() |
5ffff3b7aa | ||
![]() |
24c4fa1c4f | ||
![]() |
7f312c1273 | ||
![]() |
ef5c226c81 | ||
![]() |
3f029cf799 | ||
![]() |
5bf64a8bec | ||
![]() |
89f9c537f8 | ||
![]() |
e8d7f57818 | ||
![]() |
9b42fa78e7 | ||
![]() |
96d98e8f39 | ||
![]() |
1f3a281e78 | ||
![]() |
dab4b66ee0 | ||
![]() |
64dd192ddb | ||
![]() |
b0a5c383d0 | ||
![]() |
4836cc99eb | ||
![]() |
ba33873354 | ||
![]() |
12c838cab0 | ||
![]() |
a83a1c83a7 | ||
![]() |
2234f47170 | ||
![]() |
4bae1b17fc | ||
![]() |
6a7a0e0fa6 | ||
![]() |
bff987c55f | ||
![]() |
e467006913 | ||
![]() |
1d646d4a6d | ||
![]() |
70bd4936a1 | ||
![]() |
5ae7add6d2 | ||
![]() |
02b206ce7c | ||
![]() |
2ea626a567 | ||
![]() |
653909ec11 | ||
![]() |
1d7c148eaf | ||
![]() |
94a7e130ca | ||
![]() |
609abacdf0 | ||
![]() |
033ff2e49a | ||
![]() |
00a9bf0641 | ||
![]() |
100f322456 | ||
![]() |
2251e08d30 | ||
![]() |
14e9beef53 | ||
![]() |
c7cce23d54 | ||
![]() |
7becf32352 | ||
![]() |
741eda9f4e | ||
![]() |
473f51481c | ||
![]() |
684f9bd11b | ||
![]() |
b4b7f0c360 | ||
![]() |
cf42d02628 | ||
![]() |
cc9a9eab7b | ||
![]() |
784d6abc9b | ||
![]() |
0eafc07184 | ||
![]() |
7e9499bd2e | ||
![]() |
d01a52aa95 | ||
![]() |
6bcd492980 | ||
![]() |
96b15da04b | ||
![]() |
e0f1801693 | ||
![]() |
d195ad85c5 | ||
![]() |
773f7b6c1b | ||
![]() |
40f29fe399 | ||
![]() |
b19eb117c1 | ||
![]() |
f930ba5eff | ||
![]() |
fbbda6c230 | ||
![]() |
47db4968e5 | ||
![]() |
1aff2e518c | ||
![]() |
24134ca49e | ||
![]() |
aadbe05a5e | ||
![]() |
18eddf4700 | ||
![]() |
0869ba7e70 | ||
![]() |
cba5db1c53 | ||
![]() |
0aa5430e23 | ||
![]() |
88a91828cb | ||
![]() |
27af89f5fe | ||
![]() |
6f6d483bfe | ||
![]() |
915072c191 | ||
![]() |
76077b92ae | ||
![]() |
f0d1a527a5 | ||
![]() |
fdb2a96d1c | ||
![]() |
849e3ac187 | ||
![]() |
5c4cf21c59 | ||
![]() |
40ee3e5d9b | ||
![]() |
77a7cc034e | ||
![]() |
82b7881765 | ||
![]() |
3515775267 | ||
![]() |
10e12aa1c1 | ||
![]() |
7fb4e62aa3 | ||
![]() |
2605eaa614 | ||
![]() |
8e97b4820d | ||
![]() |
89af4cdb68 | ||
![]() |
6099c1a25a | ||
![]() |
fd23758aea | ||
![]() |
8ad0b89db1 | ||
![]() |
e7dffa3ff4 | ||
![]() |
2772b5d2e2 | ||
![]() |
df6d9b5f70 | ||
![]() |
c9622d6d57 | ||
![]() |
1f0b7c3c7e | ||
![]() |
c12245037e | ||
![]() |
fe6d2a50a5 | ||
![]() |
7be84950f8 | ||
![]() |
ba212da222 | ||
![]() |
122b833256 | ||
![]() |
7c73479041 | ||
![]() |
151f2e99ae | ||
![]() |
da367e813f | ||
![]() |
9143dfe336 | ||
![]() |
29914d6a72 | ||
![]() |
0dbef72a97 | ||
![]() |
3bb118bfe1 | ||
![]() |
85ce3be077 | ||
![]() |
064c2bf0a8 | ||
![]() |
c96d06ccc5 | ||
![]() |
a658dbb753 | ||
![]() |
bf5d5b629e | ||
![]() |
241d576519 | ||
![]() |
7807e9bdd0 | ||
![]() |
fcbf15fed6 | ||
![]() |
cd90a11209 | ||
![]() |
ff65707ea2 | ||
![]() |
b16026070c | ||
![]() |
1b5fbf86d8 | ||
![]() |
5eb1be8101 | ||
![]() |
6a863cd26a | ||
![]() |
87ebb7b6c7 | ||
![]() |
1233a74307 | ||
![]() |
221890acfb | ||
![]() |
687c7e766e | ||
![]() |
ba22c407d3 | ||
![]() |
a8b9ed56b5 | ||
![]() |
3004869e19 | ||
![]() |
1145853fe1 | ||
![]() |
f1617a25b1 | ||
![]() |
932be558d9 | ||
![]() |
ee3a37d3b9 | ||
![]() |
5ac412a582 | ||
![]() |
1625290bc3 | ||
![]() |
1ec169ad49 | ||
![]() |
53be552e44 | ||
![]() |
d3a75d46b9 | ||
![]() |
256512c961 | ||
![]() |
5c12ac5bcc | ||
![]() |
02a2bcb113 | ||
![]() |
1f0a01c725 | ||
![]() |
6ea164ede1 | ||
![]() |
65bae85ecc | ||
![]() |
2fd7dcf4d0 | ||
![]() |
aa3bbbe038 | ||
![]() |
6cb09a6f95 | ||
![]() |
45868f05d3 | ||
![]() |
aac7401e20 | ||
![]() |
c2fc290edd | ||
![]() |
330357fc36 | ||
![]() |
f4a3d6a64e | ||
![]() |
2e0963ec81 | ||
![]() |
897cb6e62a | ||
![]() |
80868bd48e | ||
![]() |
b3df78c56f | ||
![]() |
783a4259e3 | ||
![]() |
fcf19b8dc8 | ||
![]() |
1f9f89817d | ||
![]() |
7b94da7d85 | ||
![]() |
164406f6c2 | ||
![]() |
90ef2adc6b | ||
![]() |
d65f10f88b | ||
![]() |
dca0ece9e0 | ||
![]() |
baabc155c8 | ||
![]() |
7eb94412d6 | ||
![]() |
0fc8b24f85 | ||
![]() |
88f6ef5b96 | ||
![]() |
7442483419 | ||
![]() |
9c61933c04 | ||
![]() |
2b36a99720 | ||
![]() |
c2cfc42ba4 | ||
![]() |
4f32704e08 | ||
![]() |
fccf43685f | ||
![]() |
39135d81ad | ||
![]() |
ff4b10681e | ||
![]() |
10b7908fc2 | ||
![]() |
31790da8c6 | ||
![]() |
4621201c47 | ||
![]() |
692ac31dbf | ||
![]() |
ed1d163d55 | ||
![]() |
e931c9040c | ||
![]() |
f23cb48ea4 | ||
![]() |
c3b2b6b07b | ||
![]() |
f89bf590ba | ||
![]() |
fea17dc00b | ||
![]() |
dbb1069920 | ||
![]() |
afc4ccfaa9 | ||
![]() |
38d55a1c07 | ||
![]() |
5fca29f103 | ||
![]() |
78f34b2ca4 | ||
![]() |
8e8028e809 | ||
![]() |
8dc70687f8 | ||
![]() |
fa22f9ee64 | ||
![]() |
b33c0d3f81 | ||
![]() |
339009add4 | ||
![]() |
798c823c4b | ||
![]() |
14ad86f2a3 | ||
![]() |
a3a714dc17 | ||
![]() |
e8d8b0d41d | ||
![]() |
17daad8f89 | ||
![]() |
e178263b3b | ||
![]() |
4febbc261e | ||
![]() |
ef3a6942fd | ||
![]() |
f8ac2be62b | ||
![]() |
25447c34e5 | ||
![]() |
37cdf8fd48 | ||
![]() |
ac8e7dc959 | ||
![]() |
8293382840 | ||
![]() |
d85a3e7743 | ||
![]() |
f3f5ffb5c8 | ||
![]() |
99e6702c62 | ||
![]() |
e143c25078 | ||
![]() |
3fb67972be | ||
![]() |
61c04d4e09 | ||
![]() |
b22f728958 | ||
![]() |
112be7e383 | ||
![]() |
6a7f83fed5 | ||
![]() |
4b9698a735 | ||
![]() |
ec3d203a6d | ||
![]() |
e77b8f5475 | ||
![]() |
da8bbd321f | ||
![]() |
98fd011def | ||
![]() |
9dccbc5316 | ||
![]() |
03fa26daf9 | ||
![]() |
fbc41e3895 | ||
![]() |
f1a6d0c02c | ||
![]() |
67f6bb7155 | ||
![]() |
86282f596c | ||
![]() |
e0f24c795c | ||
![]() |
7d44ed860c | ||
![]() |
091094a24c | ||
![]() |
ba18ee518c | ||
![]() |
513a031691 | ||
![]() |
cc79de1106 | ||
![]() |
bd90e8efb2 | ||
![]() |
4bd88ff11d | ||
![]() |
d27ee61292 | ||
![]() |
0c20b3345f | ||
![]() |
0f3c8c7193 | ||
![]() |
16761ec605 | ||
![]() |
1069440cda | ||
![]() |
60f5702f17 | ||
![]() |
ee70133e47 | ||
![]() |
06a9fdeb2e | ||
![]() |
f14bd62004 | ||
![]() |
67cbaf22b7 | ||
![]() |
60b166dba2 | ||
![]() |
66e1647ede | ||
![]() |
a1a35c00a5 | ||
![]() |
b02e3361c4 | ||
![]() |
2b9ceaa25a | ||
![]() |
109b5a9755 | ||
![]() |
cc4df86c10 | ||
![]() |
e93532c395 | ||
![]() |
6ff688326a | ||
![]() |
eda5d2872f | ||
![]() |
dc88394f5f | ||
![]() |
ec85c9a2c6 | ||
![]() |
1341638556 | ||
![]() |
4875dfee11 | ||
![]() |
d834ba8bd4 | ||
![]() |
6191067771 | ||
![]() |
6c3a571163 | ||
![]() |
5efb07e10e | ||
![]() |
b25ec18ce6 | ||
![]() |
f3cd281241 | ||
![]() |
58b93cbf4c | ||
![]() |
57fc0349ff | ||
![]() |
d0a2cea772 | ||
![]() |
58d5801fb5 | ||
![]() |
e5f2e59798 | ||
![]() |
1166921057 | ||
![]() |
aeb49576f2 | ||
![]() |
7ef1fecef8 | ||
![]() |
fd630373b5 | ||
![]() |
d365d8f170 | ||
![]() |
dfa5e1172f | ||
![]() |
daf195898a | ||
![]() |
c61c0a39cf | ||
![]() |
6137e6baa5 | ||
![]() |
fd16fd9ffe | ||
![]() |
2b8bd5f2cc | ||
![]() |
d312c2e9e7 | ||
![]() |
578b0d2268 | ||
![]() |
ffb41b0109 | ||
![]() |
c63fb5d796 | ||
![]() |
8caee732e8 | ||
![]() |
df5381adce | ||
![]() |
f34836b7fa | ||
![]() |
44b459883a | ||
![]() |
14a8592ae3 | ||
![]() |
787d0dce4a | ||
![]() |
8be05ff93d | ||
![]() |
3014af565c | ||
![]() |
315252bdc4 | ||
![]() |
c36c3b4607 | ||
![]() |
7d5e939bab | ||
![]() |
f75c9d1eed | ||
![]() |
38cb9855ea | ||
![]() |
ed8b56d624 | ||
![]() |
bca48b13ae | ||
![]() |
29426edb05 | ||
![]() |
33a2dc687f | ||
![]() |
e2398a21b2 | ||
![]() |
f19530276e | ||
![]() |
2b9b92a78c | ||
![]() |
99c55dac10 | ||
![]() |
25667e46f9 | ||
![]() |
2f4e8f2399 | ||
![]() |
9169183769 | ||
![]() |
c420f50831 | ||
![]() |
c6c9279ef4 | ||
![]() |
c125e2991d | ||
![]() |
5348b19d6a | ||
![]() |
afd426daac | ||
![]() |
202c511cfa | ||
![]() |
651eb295a4 | ||
![]() |
d798aaed33 | ||
![]() |
63ef347cc9 | ||
![]() |
3139b2d5a0 | ||
![]() |
2c80bbb244 | ||
![]() |
af06755ada | ||
![]() |
97d6dbaa6c | ||
![]() |
74cf82a1c7 | ||
![]() |
74634889ab | ||
![]() |
dbe30fcd77 | ||
![]() |
24a7f3a320 | ||
![]() |
d3650f1145 | ||
![]() |
4801db9050 | ||
![]() |
6445281658 | ||
![]() |
87719f5938 | ||
![]() |
5ba1ec433b | ||
![]() |
7c5b382458 | ||
![]() |
8960426128 | ||
![]() |
e1d47d5a92 | ||
![]() |
9407c272aa | ||
![]() |
bccbd7b400 | ||
![]() |
a24dc010ec | ||
![]() |
c5e5d50fb8 | ||
![]() |
be1c520320 | ||
![]() |
3d18d0f893 | ||
![]() |
c3351a38a6 | ||
![]() |
0b86340a8d | ||
![]() |
829371b032 | ||
![]() |
b342207bc7 | ||
![]() |
58f4fdced3 | ||
![]() |
253844cbcf | ||
![]() |
e2e2b9ffb4 | ||
![]() |
2568042f5f | ||
![]() |
722edf4b9a | ||
![]() |
e406d364e4 | ||
![]() |
31c37f41b2 | ||
![]() |
6cd879bbc5 | ||
![]() |
b7974050fe | ||
![]() |
e9c9d0816e | ||
![]() |
a437692e1a | ||
![]() |
2a14d2f3c8 | ||
![]() |
559e2d1889 | ||
![]() |
a1aa919f80 | ||
![]() |
cbccb27a5a | ||
![]() |
bbad36d576 | ||
![]() |
df6c9d55b5 | ||
![]() |
36a1d9c364 | ||
![]() |
1f3681d5ac | ||
![]() |
0159f8e53f | ||
![]() |
0432be64fc | ||
![]() |
481e062961 | ||
![]() |
72b8abdeb6 | ||
![]() |
7ec3ee41d1 | ||
![]() |
b765fa4769 | ||
![]() |
06685b162e | ||
![]() |
7bcad7c424 | ||
![]() |
6e054b3cc6 | ||
![]() |
e643f6b0f8 | ||
![]() |
e44c0f85c2 | ||
![]() |
ea66e968eb | ||
![]() |
f7e73d804e | ||
![]() |
2ff4df56a1 | ||
![]() |
346c45fe0c | ||
![]() |
f98b42a36e | ||
![]() |
f77a0a266c | ||
![]() |
0be672788f | ||
![]() |
e2e3d11d42 | ||
![]() |
bb127bb567 | ||
![]() |
8eb4f89db8 | ||
![]() |
4a87ea3e70 | ||
![]() |
61115fce99 | ||
![]() |
4f31120394 | ||
![]() |
b085cd65ce | ||
![]() |
f76ec0721a | ||
![]() |
ef3944fbbf | ||
![]() |
b158fbc0d8 | ||
![]() |
68f2d66e97 | ||
![]() |
0cdd1735bd | ||
![]() |
70f5ead20b | ||
![]() |
574e5616f8 | ||
![]() |
94fa810590 | ||
![]() |
37f69da701 | ||
![]() |
f2f8448ade | ||
![]() |
b357d3fff2 | ||
![]() |
b417194905 | ||
![]() |
d8741da20a | ||
![]() |
c469be9a62 | ||
![]() |
ff4eb339ef | ||
![]() |
78489383c0 | ||
![]() |
f67c1b415f | ||
![]() |
570c16d921 | ||
![]() |
c8bc60568a | ||
![]() |
73de3ba856 | ||
![]() |
6a69be8537 | ||
![]() |
3ee381d505 | ||
![]() |
7ce744e2e4 | ||
![]() |
b81d21c991 | ||
![]() |
e9fe0992c6 | ||
![]() |
d5ef9018fa | ||
![]() |
c2737a7c51 | ||
![]() |
4b6d8733c6 | ||
![]() |
f22a3e0955 | ||
![]() |
4b8144a2f7 | ||
![]() |
abac52e23c | ||
![]() |
9aa089313e | ||
![]() |
b18f2c481a | ||
![]() |
ec83b9f77b | ||
![]() |
fad5495e02 | ||
![]() |
70dec1171e | ||
![]() |
0673a6fce3 | ||
![]() |
8f525b1407 | ||
![]() |
e83a991a4b | ||
![]() |
c000432a52 | ||
![]() |
c06d2d6927 | ||
![]() |
aa29653a8f | ||
![]() |
3f7e4ad486 | ||
![]() |
0eab546b2f | ||
![]() |
8830d216d1 | ||
![]() |
9fa1e3d449 | ||
![]() |
fe5dce7159 | ||
![]() |
952fa31548 | ||
![]() |
cc058ccc61 | ||
![]() |
bc26ed9701 | ||
![]() |
26135fc1a0 | ||
![]() |
0bd14672ff | ||
![]() |
7c7150cde8 | ||
![]() |
b08282b0c1 | ||
![]() |
3bf6e1befc | ||
![]() |
52692371ac | ||
![]() |
159ac1d8bb | ||
![]() |
7f1ffdbc79 | ||
![]() |
5fe64931dc | ||
![]() |
ee67855b48 | ||
![]() |
594a97f43f | ||
![]() |
7fb435a8b4 | ||
![]() |
01e74d6116 | ||
![]() |
b321d75b39 | ||
![]() |
1e47a45723 | ||
![]() |
88c609e5ef | ||
![]() |
775d1a424e |
19
framework/Directory.Build.props
Normal file
19
framework/Directory.Build.props
Normal file
@@ -0,0 +1,19 @@
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<TargetFrameworks>net6.0;net8.0;</TargetFrameworks>
|
||||
<Version>4.0.0.10</Version>
|
||||
<LangVersion>latest</LangVersion>
|
||||
<Authors>Diego</Authors>
|
||||
<Product>ThingsGateway</Product>
|
||||
<Copyright>© 2023-present Diego</Copyright>
|
||||
<RepositoryUrl>https://gitee.com/diego2098/ThingsGateway</RepositoryUrl>
|
||||
<SignAssembly>False</SignAssembly>
|
||||
<DelaySign>False</DelaySign>
|
||||
<SatelliteResourceLanguages>zh-Hans</SatelliteResourceLanguages>
|
||||
<GenerateDocumentationFile>False</GenerateDocumentationFile>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
</Project>
|
@@ -82,6 +82,7 @@ EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "解决方案项", "解决方案项", "{97B23D8B-C6C0-4746-A21F-C7B49354B284}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
..\.gitignore = ..\.gitignore
|
||||
Directory.Build.props = Directory.Build.props
|
||||
..\README.md = ..\README.md
|
||||
EndProjectSection
|
||||
EndProject
|
||||
|
@@ -1,17 +1,7 @@
|
||||
<Project>
|
||||
<Import Project="$(SolutionDir)\Directory.Build.props" />
|
||||
<PropertyGroup>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<TargetFrameworks>net6.0;net8.0;</TargetFrameworks>
|
||||
<Version>4.0.0.4</Version>
|
||||
<LangVersion>latest</LangVersion>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Authors>Diego</Authors>
|
||||
<Product>ThingsGateway</Product>
|
||||
<Copyright>© 2023-present Diego</Copyright>
|
||||
<RepositoryUrl>https://gitee.com/diego2098/ThingsGateway</RepositoryUrl>
|
||||
<SignAssembly>True</SignAssembly>
|
||||
<DelaySign>False</DelaySign>
|
||||
<SatelliteResourceLanguages>zh-Hans</SatelliteResourceLanguages>
|
||||
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
@@ -26,6 +28,7 @@ namespace ThingsGateway.Admin.ApiController;
|
||||
public class AuthController : IDynamicApiController
|
||||
{
|
||||
private readonly IAuthService _authService;
|
||||
|
||||
/// <summary>
|
||||
/// <inheritdoc cref="AuthController"/>
|
||||
/// </summary>
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
@@ -24,6 +26,7 @@ public class FileController : IDynamicApiController
|
||||
{
|
||||
private readonly IOperateLogService _operateLogService;
|
||||
private readonly IVisitLogService _visitLogService;
|
||||
|
||||
/// <summary>
|
||||
/// <inheritdoc cref="FileController"/>
|
||||
/// </summary>
|
||||
@@ -50,6 +53,7 @@ public class FileController : IDynamicApiController
|
||||
};
|
||||
return data;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 下载访问日志
|
||||
/// </summary>
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
@@ -28,6 +30,7 @@ namespace ThingsGateway.Admin.ApiController;
|
||||
public class OpenApiAuthController : IDynamicApiController
|
||||
{
|
||||
private readonly IOpenApiAuthService _authService;
|
||||
|
||||
/// <summary>
|
||||
/// <inheritdoc cref="OpenApiAuthController"/>
|
||||
/// </summary>
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.DependencyInjection;
|
||||
@@ -27,12 +29,13 @@ namespace ThingsGateway.Admin.ApiController;
|
||||
[Route("Swagger")]
|
||||
public class SwaggerController : IDynamicApiController, IScoped
|
||||
{
|
||||
private readonly ConfigService _configService;
|
||||
private readonly IConfigService _configService;
|
||||
|
||||
/// <summary>
|
||||
/// <inheritdoc cref="SwaggerController"/>
|
||||
/// </summary>
|
||||
/// <param name="sysConfigService"></param>
|
||||
public SwaggerController(ConfigService sysConfigService)
|
||||
public SwaggerController(IConfigService sysConfigService)
|
||||
{
|
||||
_configService = sysConfigService;
|
||||
}
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
global using Furion.DynamicApiController;
|
||||
@@ -16,4 +18,4 @@ global using System;
|
||||
global using System.Threading.Tasks;
|
||||
|
||||
global using ThingsGateway.Admin.Application;
|
||||
global using ThingsGateway.Foundation.Core;
|
||||
global using ThingsGateway.Foundation.Core;
|
@@ -79,7 +79,7 @@
|
||||
Swagger登录授权服务
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:ThingsGateway.Admin.ApiController.SwaggerController.#ctor(ThingsGateway.Admin.Application.ConfigService)">
|
||||
<member name="M:ThingsGateway.Admin.ApiController.SwaggerController.#ctor(ThingsGateway.Admin.Application.IConfigService)">
|
||||
<summary>
|
||||
<inheritdoc cref="T:ThingsGateway.Admin.ApiController.SwaggerController"/>
|
||||
</summary>
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
namespace ThingsGateway.Admin.Application;
|
||||
@@ -28,14 +30,17 @@ public class OperDescAttribute : Attribute
|
||||
Description = description;
|
||||
Catcategory = catcategory;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 分类
|
||||
/// </summary>
|
||||
public string Catcategory { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 说明
|
||||
/// </summary>
|
||||
public string Description { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 记录参数,默认true
|
||||
/// </summary>
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.Reflection;
|
||||
@@ -96,7 +98,7 @@ public class OperDispatchProxy : AspectDispatchProxy, IDispatchProxy
|
||||
/// <exception cref="NotImplementedException"></exception>
|
||||
public override async Task InvokeAsync(MethodInfo method, object[] args)
|
||||
{
|
||||
var desc = method.GetActualCustomAttribute<OperDescAttribute>(Target);
|
||||
var desc = method.GetActualCustomAttribute<OperDescAttribute>(Target, true);
|
||||
if (desc == null)
|
||||
{
|
||||
var task = method.Invoke(Target, args) as Task;
|
||||
@@ -134,7 +136,7 @@ public class OperDispatchProxy : AspectDispatchProxy, IDispatchProxy
|
||||
/// <exception cref="NotImplementedException"></exception>
|
||||
public override async Task<T> InvokeAsyncT<T>(MethodInfo method, object[] args)
|
||||
{
|
||||
var desc = method.GetActualCustomAttribute<OperDescAttribute>(Target);
|
||||
var desc = method.GetActualCustomAttribute<OperDescAttribute>(Target, true);
|
||||
if (desc == null)
|
||||
{
|
||||
var taskT = method.Invoke(Target, args) as Task<T>;
|
||||
@@ -167,7 +169,6 @@ public class OperDispatchProxy : AspectDispatchProxy, IDispatchProxy
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void WriteOperLog(MethodInfo method, object[] args, OperDescAttribute desc, object result, Exception exception)
|
||||
{
|
||||
//写入操作日志
|
||||
@@ -216,9 +217,5 @@ public class OperDispatchProxy : AspectDispatchProxy, IDispatchProxy
|
||||
log.ExeMessage = exception.Source + ":" + exception.Message + Environment.NewLine + exception.StackTrace;
|
||||
}
|
||||
DbContext.Db.CopyNew().InsertableWithAttr(log).ExecuteCommand();//入库
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
namespace ThingsGateway.Admin.Application;
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
namespace ThingsGateway.Admin.Application;
|
||||
@@ -17,7 +19,6 @@ namespace ThingsGateway.Admin.Application;
|
||||
/// </summary>
|
||||
public class CacheConst
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 登录验证码缓存Key
|
||||
/// </summary>
|
||||
@@ -28,7 +29,6 @@ public class CacheConst
|
||||
/// </summary>
|
||||
public const string SYS_CONFIGCATEGORY = "SYS_CONFIGCATEGORY";
|
||||
|
||||
|
||||
#region OpenApi
|
||||
|
||||
/// <summary>
|
||||
@@ -51,7 +51,6 @@ public class CacheConst
|
||||
/// </summary>
|
||||
public const string CACHE_USERVERIFICAT = "CACHE_USERVERIFICAT";
|
||||
|
||||
|
||||
#endregion OpenApi
|
||||
|
||||
/// <summary>
|
||||
@@ -78,6 +77,4 @@ public class CacheConst
|
||||
/// 角色表缓存Key
|
||||
/// </summary>
|
||||
public const string CACHE_SYSROLE = "CACHE_SYSROLE";
|
||||
|
||||
|
||||
}
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
namespace ThingsGateway.Admin.Application;
|
||||
@@ -17,19 +19,16 @@ namespace ThingsGateway.Admin.Application;
|
||||
/// </summary>
|
||||
public static class CateGoryConst
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// ThingsGateway.Admin
|
||||
/// </summary>
|
||||
public const string ThingsGatewayAdmin = "ThingsGateway.Admin";
|
||||
|
||||
/// <summary>
|
||||
/// ThingsGateway.OpenApi
|
||||
/// </summary>
|
||||
public const string ThingsGatewayOpenApi = "ThingsGateway.OpenApi";
|
||||
|
||||
|
||||
|
||||
|
||||
#region 关系表
|
||||
|
||||
/// <summary>
|
||||
@@ -56,6 +55,6 @@ public static class CateGoryConst
|
||||
/// 用户有哪些角色
|
||||
/// </summary>
|
||||
public const string Relation_SYS_USER_HAS_ROLE = "SYS_USER_HAS_ROLE";
|
||||
#endregion 关系表
|
||||
|
||||
#endregion 关系表
|
||||
}
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
namespace ThingsGateway.Admin.Application;
|
||||
@@ -27,10 +29,8 @@ public static class ConfigConst
|
||||
/// </summary>
|
||||
public const string SYS_CONFIGOTHER = "SYS_CONFIGOTHER";
|
||||
|
||||
|
||||
#region config
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 版权标识
|
||||
/// </summary>
|
||||
@@ -40,6 +40,7 @@ public static class ConfigConst
|
||||
/// 版权跳转url
|
||||
/// </summary>
|
||||
public const string CONFIG_COPYRIGHT_URL = "CONFIG_COPYRIGHT_URL";
|
||||
|
||||
/// <summary>
|
||||
/// 是否启用PageTab
|
||||
/// </summary>
|
||||
@@ -91,6 +92,4 @@ public static class ConfigConst
|
||||
public const string CONFIG_SWAGGERLOGIN_OPEN = "CONFIG_SWAGGERLOGIN_OPEN";
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
}
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
namespace ThingsGateway.Admin.Application;
|
||||
@@ -41,7 +43,4 @@ public class EventSubscriberConst
|
||||
/// OpenApi登出
|
||||
/// </summary>
|
||||
public const string LogoutOpenApi = "OpenApi退出";
|
||||
|
||||
|
||||
|
||||
}
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
namespace ThingsGateway.Admin.Application;
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
namespace ThingsGateway.Admin.Application;
|
||||
@@ -29,7 +31,6 @@ public class LogConst
|
||||
/// </summary>
|
||||
public const string LOG_LOGOUT = "LOGOUT";
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 第三方登录
|
||||
/// </summary>
|
||||
@@ -60,10 +61,10 @@ public class LogConst
|
||||
/// </summary>
|
||||
public const string LOG_SUCCESS = "SUCCESS";
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 操作失败
|
||||
/// </summary>
|
||||
public const string LOG_FAIL = "FAIL";
|
||||
|
||||
#endregion 日志表
|
||||
}
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
namespace ThingsGateway.Admin.Core;
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
namespace ThingsGateway.Admin.Application;
|
||||
@@ -40,5 +42,4 @@ public class RoleConst
|
||||
public const string Relation_SYS_USER_HAS_ROLE = "SYS_USER_HAS_ROLE";
|
||||
|
||||
#endregion 关系表
|
||||
|
||||
}
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
global using Furion;
|
||||
@@ -21,4 +23,4 @@ global using System.Threading.Tasks;
|
||||
|
||||
global using ThingsGateway.Admin.Core;
|
||||
global using ThingsGateway.Core;
|
||||
global using ThingsGateway.Foundation.Core;
|
||||
global using ThingsGateway.Foundation.Core;
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.Schedule;
|
||||
@@ -36,7 +38,6 @@ public class JobPersistence : IJobPersistence
|
||||
/// <inheritdoc/>
|
||||
public void OnChanged(PersistenceContext context)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -52,7 +53,6 @@ public class JobPersistence : IJobPersistence
|
||||
/// <inheritdoc/>
|
||||
public void OnTriggerChanged(PersistenceTriggerContext context)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.Schedule;
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
namespace ThingsGateway.Admin.Application;
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.DependencyInjection;
|
||||
@@ -31,6 +33,7 @@ public class OpenApiAuthEventSubscriber : IEventSubscriber, ISingleton
|
||||
LoginOpenApiEvent loginEvent = (LoginOpenApiEvent)context.Source.Payload;//获取参数
|
||||
OpenApiUser openApiUser = loginEvent.OpenApiUser;
|
||||
var db = DbContext.Db.CopyNew();
|
||||
|
||||
#region 重新赋值属性,设置本次登录信息为最新的信息
|
||||
|
||||
db.Tracking(openApiUser);//创建跟踪,只更新修改字段
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
namespace ThingsGateway.Admin.Application;
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.DependencyInjection;
|
||||
@@ -25,6 +27,7 @@ public interface IOpenApiAuthService : ITransient
|
||||
/// <param name="input">登录参数</param>
|
||||
/// <returns>Token信息</returns>
|
||||
Task<LoginOpenApiOutput> LoginOpenApiAsync(LoginOpenApiInput input);
|
||||
|
||||
/// <summary>
|
||||
/// 登出
|
||||
/// </summary>
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.DataEncryption;
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using System.ComponentModel;
|
||||
@@ -25,6 +27,7 @@ public class OpenApiSessionPageInput : BasePageInput
|
||||
/// </summary>
|
||||
[Description("账号")]
|
||||
public string Account { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 最新登录IP
|
||||
/// </summary>
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using System.ComponentModel;
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.DependencyInjection;
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.DependencyInjection;
|
||||
@@ -22,19 +24,14 @@ namespace ThingsGateway.Admin.Application;
|
||||
[Injection(Proxy = typeof(OperDispatchProxy))]
|
||||
public class OpenApiSessionService : DbRepository<OpenApiUser>, IOpenApiSessionService
|
||||
{
|
||||
|
||||
private readonly IVerificatService _verificatService;
|
||||
|
||||
|
||||
|
||||
/// <inheritdoc cref="IOpenApiSessionService"/>
|
||||
public OpenApiSessionService(IVerificatService verificatService)
|
||||
{
|
||||
_verificatService = verificatService;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <inheritdoc/>
|
||||
[OperDesc("强退OPENAPI会话")]
|
||||
public async Task ExitSessionAsync(long input)
|
||||
@@ -83,7 +80,7 @@ public class OpenApiSessionService : DbRepository<OpenApiUser>, IOpenApiSessionS
|
||||
var verificatInfos = await _verificatService.GetVerificatIdAsync(it.Id);
|
||||
if (verificatInfos != null)
|
||||
{
|
||||
OpenApiSessionService.GetVerificatInfos(ref verificatInfos);//获取剩余时间
|
||||
GetVerificatInfos(ref verificatInfos);//获取剩余时间
|
||||
it.VerificatCount = verificatInfos.Count;//令牌数量
|
||||
it.VerificatSignList = verificatInfos;//令牌列表
|
||||
}
|
||||
@@ -91,7 +88,6 @@ public class OpenApiSessionService : DbRepository<OpenApiUser>, IOpenApiSessionS
|
||||
{
|
||||
it.VerificatSignList = new();
|
||||
}
|
||||
|
||||
});
|
||||
for (int i = input.SortField.Count - 1; i >= 0; i--)
|
||||
{
|
||||
@@ -102,5 +98,4 @@ public class OpenApiSessionService : DbRepository<OpenApiUser>, IOpenApiSessionS
|
||||
pageInfo.Records = pageInfo.Records.OrderByDescending(it => it.VerificatCount);
|
||||
return pageInfo;
|
||||
}
|
||||
|
||||
}
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using SqlSugar;
|
||||
@@ -33,14 +35,17 @@ public class OpenApiPermissionTreeSelector
|
||||
/// </summary>
|
||||
[Description("Api路径")]
|
||||
public string ApiRoute { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 子节点
|
||||
/// </summary>
|
||||
public List<OpenApiPermissionTreeSelector> Children { get; set; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// ID
|
||||
/// </summary>
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 父ID
|
||||
/// </summary>
|
||||
@@ -68,7 +73,6 @@ public class OpenApiPermissionTreeSelector
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -81,6 +85,7 @@ public class OpenApiUserAddInput : OpenApiUser
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "账号不能为空"), MinLength(3, ErrorMessage = "账号不能少于4个字符")]
|
||||
public override string Account { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 密码
|
||||
/// </summary>
|
||||
@@ -91,8 +96,6 @@ public class OpenApiUserAddInput : OpenApiUser
|
||||
/// <inheritdoc/>
|
||||
/// </summary>
|
||||
public override bool UserEnable { get; set; } = true;
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -111,6 +114,7 @@ public class OpenApiUserEditInput : OpenApiUser
|
||||
/// </summary>
|
||||
[MinValue(1, ErrorMessage = "Id不能为空")]
|
||||
public override long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 密码
|
||||
/// </summary>
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.DependencyInjection;
|
||||
@@ -53,7 +55,6 @@ public interface IOpenApiUserService : ITransient
|
||||
/// <returns></returns>
|
||||
Task EditAsync(OpenApiUserEditInput input);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 启用用户
|
||||
/// </summary>
|
||||
@@ -74,6 +75,7 @@ public interface IOpenApiUserService : ITransient
|
||||
/// <param name="account">用户名</param>
|
||||
/// <returns>用户信息</returns>
|
||||
Task<OpenApiUser> GetUserByAccountAsync(string account);
|
||||
|
||||
/// <summary>
|
||||
/// 根据ID获取用户信息
|
||||
/// </summary>
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.DataEncryption;
|
||||
@@ -58,7 +60,6 @@ public class OpenApiUserService : DbRepository<OpenApiUser>, IOpenApiUserService
|
||||
[OperDesc("删除用户")]
|
||||
public async Task DeleteAsync(params long[] ids)
|
||||
{
|
||||
|
||||
//获取所有ID
|
||||
if (ids.Length > 0)
|
||||
{
|
||||
@@ -75,7 +76,6 @@ public class OpenApiUserService : DbRepository<OpenApiUser>, IOpenApiUserService
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <inheritdoc />
|
||||
public void DeleteUserFromCache(params long[] ids)
|
||||
{
|
||||
@@ -140,7 +140,6 @@ public class OpenApiUserService : DbRepository<OpenApiUser>, IOpenApiUserService
|
||||
//编辑操作可能会修改用户密码等信息,认证时需要实时获取用户并验证
|
||||
}
|
||||
|
||||
|
||||
/// <inheritdoc/>
|
||||
[OperDesc("启用用户")]
|
||||
public async Task EnableUserAsync(long input)
|
||||
@@ -249,7 +248,6 @@ public class OpenApiUserService : DbRepository<OpenApiUser>, IOpenApiUserService
|
||||
query = query.OrderBy(it => it.SortCode);//排序
|
||||
query = query.OrderBy(u => u.Id);//排序
|
||||
|
||||
|
||||
var pageInfo = await query.ToPagedListAsync(input.Current, input.Size);//分页
|
||||
return pageInfo;
|
||||
}
|
||||
|
@@ -559,6 +559,6 @@
|
||||
"UpdateUser": "superAdmin",
|
||||
"UpdateUserId": "212725263002001"
|
||||
}
|
||||
|
||||
|
||||
]
|
||||
}
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
namespace ThingsGateway.Admin.Application;
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
namespace ThingsGateway.Admin.Application;
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
namespace ThingsGateway.Admin.Application;
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
namespace ThingsGateway.Admin.Application;
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
namespace ThingsGateway.Admin.Application;
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
namespace ThingsGateway.Admin.Application;
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.InstantMessaging;
|
||||
@@ -34,12 +36,14 @@ public class SysHub : Hub<ISysHub>
|
||||
|
||||
private readonly ILogger<ISysHub> _logger;
|
||||
private readonly IServiceScope _serviceScope;
|
||||
|
||||
/// <inheritdoc cref="ISysHub"/>
|
||||
public SysHub(IServiceScopeFactory scopeFactory, ILogger<ISysHub> logger)
|
||||
{
|
||||
_serviceScope = scopeFactory.CreateScope();
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 连接
|
||||
/// </summary>
|
||||
@@ -53,6 +57,7 @@ public class SysHub : Hub<ISysHub>
|
||||
await UpdateVerificatAsync(userIdentifier, verificat: VerificatId);//更新cache
|
||||
await base.OnConnectedAsync();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 断开连接
|
||||
/// </summary>
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Microsoft.AspNetCore.Http.Connections.Features;
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
@@ -25,7 +27,6 @@ public class Startup : AppStartup
|
||||
/// </summary>
|
||||
public void ConfigureServices(IServiceCollection services)
|
||||
{
|
||||
|
||||
// 任务调度
|
||||
services.AddSchedule(options =>
|
||||
{
|
||||
@@ -34,6 +35,5 @@ public class Startup : AppStartup
|
||||
|
||||
//事件总线
|
||||
services.AddEventBus();
|
||||
|
||||
}
|
||||
}
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.DependencyInjection;
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.DependencyInjection;
|
||||
@@ -23,6 +25,7 @@ namespace ThingsGateway.Admin.Application;
|
||||
public class UserEventSubscriber : IEventSubscriber, ISingleton
|
||||
{
|
||||
private readonly IServiceProvider _services;
|
||||
|
||||
/// <summary>
|
||||
/// <inheritdoc cref="UserEventSubscriber"/>
|
||||
/// </summary>
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.DataEncryption;
|
||||
@@ -36,6 +38,7 @@ public class AuthService : IAuthService
|
||||
private readonly IServiceScope _serviceScope;
|
||||
private readonly ISysUserService _userService;
|
||||
private readonly IVerificatService _verificatService;
|
||||
|
||||
/// <inheritdoc cref="IAuthService"/>
|
||||
public AuthService(
|
||||
IEventPublisher eventPublisher,
|
||||
@@ -175,7 +178,6 @@ public class AuthService : IAuthService
|
||||
return new LoginOutput { VerificatId = sessionid, Account = sysUser.Account };
|
||||
}
|
||||
|
||||
|
||||
private async Task RemoveVerificatAsync(LoginEvent loginEvent)
|
||||
{
|
||||
//获取verificat列表
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using System.ComponentModel;
|
||||
@@ -38,6 +40,7 @@ public class LoginInput : ValidCodeInput
|
||||
[Required(ErrorMessage = "密码不能为空"), MinLength(3, ErrorMessage = "密码不能少于3个字符")]
|
||||
public string Password { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 验证码输入
|
||||
/// </summary>
|
||||
@@ -53,6 +56,7 @@ public class ValidCodeInput
|
||||
/// </summary>
|
||||
public long ValidCodeReqNo { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 登录设备类型枚举
|
||||
/// </summary>
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
namespace ThingsGateway.Admin.Application;
|
||||
@@ -21,6 +23,7 @@ public class BaseLoginOutput
|
||||
/// 账号
|
||||
/// </summary>
|
||||
public string Account { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 验证ID
|
||||
/// </summary>
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
namespace ThingsGateway.Admin.Application;
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.DependencyInjection;
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.DependencyInjection;
|
||||
@@ -157,7 +159,5 @@ public class ButtonService : DbRepository<SysResource>, IButtonService
|
||||
sysResource.Category = ResourceCategoryEnum.BUTTON;//设置分类为按钮
|
||||
}
|
||||
|
||||
|
||||
|
||||
#endregion 方法
|
||||
}
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
@@ -37,6 +39,7 @@ public class ButtonAddInput : SysResource
|
||||
[Required(ErrorMessage = "Title不能为空")]
|
||||
public override string Title { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 按钮分页
|
||||
/// </summary>
|
||||
@@ -48,6 +51,7 @@ public class ButtonPageInput : BasePageInput
|
||||
[Required(ErrorMessage = "ParentId不能为空")]
|
||||
public long? ParentId { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 按钮编辑
|
||||
/// </summary>
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.DependencyInjection;
|
||||
@@ -19,8 +21,6 @@ namespace ThingsGateway.Admin.Application;
|
||||
/// </summary>
|
||||
public interface IButtonService : ITransient
|
||||
{
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 添加按钮
|
||||
/// </summary>
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.DependencyInjection;
|
||||
@@ -24,10 +26,12 @@ namespace ThingsGateway.Admin.Application;
|
||||
public class ConfigService : DbRepository<SysConfig>, IConfigService
|
||||
{
|
||||
private readonly IServiceScope _serviceScope;
|
||||
|
||||
public ConfigService(IServiceScopeFactory serviceScopeFactory)
|
||||
{
|
||||
_serviceScope = serviceScopeFactory.CreateScope();
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
[OperDesc("编辑网关系统配置")]
|
||||
public async Task EditBatchAsync(List<SysConfig> sysConfigs)
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using System.ComponentModel;
|
||||
@@ -61,5 +63,4 @@ public class ConfigPageInput : BasePageInput
|
||||
/// </summary>
|
||||
[Description("分类")]
|
||||
public string Category { get; set; }
|
||||
}
|
||||
|
||||
}
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.DependencyInjection;
|
||||
@@ -25,6 +27,7 @@ public interface IConfigService : ITransient
|
||||
/// <param name="configs">配置列表</param>
|
||||
/// <returns></returns>
|
||||
Task EditBatchAsync(List<SysConfig> configs);
|
||||
|
||||
/// <summary>
|
||||
/// 新增自定义配置
|
||||
/// </summary>
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.FriendlyException;
|
||||
@@ -21,18 +23,13 @@ namespace ThingsGateway.Admin.Application;
|
||||
/// </summary>
|
||||
public class FileService : IFileService
|
||||
{
|
||||
|
||||
/// <inheritdoc/>
|
||||
public void ImportVerification(IBrowserFile file, int maxSzie = 300, string[] allowTypes = null)
|
||||
{
|
||||
|
||||
if (file == null) throw Oops.Bah("文件不能为空");
|
||||
if (file.Size > maxSzie * 1024 * 1024) throw Oops.Bah($"文件大小不允许超过{maxSzie}M");
|
||||
var fileSuffix = Path.GetExtension(file.Name).ToLower().Split(".")[1]; // 文件后缀
|
||||
string[] allowTypeS = allowTypes ?? new string[] { "xlsx" };//允许上传的文件类型
|
||||
if (!allowTypeS.Contains(fileSuffix)) throw Oops.Bah(errorMessage: "文件格式错误");
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.DependencyInjection;
|
||||
@@ -21,7 +23,6 @@ namespace ThingsGateway.Admin.Application;
|
||||
/// </summary>
|
||||
public interface IFileService : ITransient
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 验证上传文件
|
||||
/// </summary>
|
||||
@@ -29,7 +30,4 @@ public interface IFileService : ITransient
|
||||
/// <param name="maxSzie">最大体积(M)</param>
|
||||
/// <param name="allowTypes">允许上传类型</param>
|
||||
void ImportVerification(IBrowserFile file, int maxSzie = 30, string[] allowTypes = null);
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.DependencyInjection;
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.DependencyInjection;
|
||||
@@ -28,6 +30,7 @@ public class MenuService : DbRepository<SysResource>, IMenuService
|
||||
private readonly IRelationService _relationService;
|
||||
private readonly IResourceService _resourceService;
|
||||
private readonly IRoleService _roleService;
|
||||
|
||||
/// <inheritdoc cref="IMenuService"/>
|
||||
public MenuService(IResourceService resourceService, IRelationService relationService, IRoleService roleService)
|
||||
{
|
||||
@@ -47,7 +50,6 @@ public class MenuService : DbRepository<SysResource>, IMenuService
|
||||
_resourceService.RefreshCache(ResourceCategoryEnum.MENU);//刷新菜单缓存
|
||||
}
|
||||
|
||||
|
||||
/// <inheritdoc />
|
||||
[OperDesc("删除菜单")]
|
||||
public async Task DeleteAsync(params long[] input)
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.DependencyInjection;
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Microsoft.AspNetCore.SignalR;
|
||||
@@ -21,10 +23,12 @@ namespace ThingsGateway.Admin.Application;
|
||||
public class NoticeService : INoticeService
|
||||
{
|
||||
private readonly IServiceScope _serviceScope;
|
||||
|
||||
public NoticeService(IServiceScopeFactory serviceScopeFactory)
|
||||
{
|
||||
_serviceScope = serviceScopeFactory.CreateScope();
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public async Task LogoutAsync(long userId, List<VerificatInfo> verificatInfos, string message)
|
||||
{
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
namespace ThingsGateway.Admin.Application;
|
||||
@@ -18,10 +20,10 @@ namespace ThingsGateway.Admin.Application;
|
||||
public class OperateLogPageInput : VisitLogPageInput
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 操作日志分页输入
|
||||
/// </summary>
|
||||
public class OperateLogInput : VisitLogInput
|
||||
{
|
||||
|
||||
}
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.DependencyInjection;
|
||||
@@ -25,12 +27,14 @@ public interface IOperateLogService : ITransient
|
||||
/// <param name="category">分类名称</param>
|
||||
/// <returns></returns>
|
||||
Task DeleteAsync(params string[] category);
|
||||
|
||||
/// <summary>
|
||||
/// 导出后台日志
|
||||
/// </summary>
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
Task<MemoryStream> ExportFileAsync(List<SysOperateLog> input = null);
|
||||
|
||||
/// <summary>
|
||||
/// 导出后台日志
|
||||
/// </summary>
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.DependencyInjection;
|
||||
@@ -32,6 +34,7 @@ public class OperateLogService : DbRepository<SysOperateLog>, IOperateLogService
|
||||
{
|
||||
await AsDeleteable().Where(it => category.Contains(it.Category)).ExecuteCommandAsync();
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
[OperDesc("导出操作日志", IsRecordPar = false)]
|
||||
public async Task<MemoryStream> ExportFileAsync(List<SysOperateLog> input = null)
|
||||
@@ -44,6 +47,7 @@ public class OperateLogService : DbRepository<SysOperateLog>, IOperateLogService
|
||||
foreach (var devData in input)
|
||||
{
|
||||
#region sheet
|
||||
|
||||
//变量页
|
||||
var data = devData.GetType().GetProperties();
|
||||
Dictionary<string, object> devExport = new();
|
||||
@@ -76,6 +80,7 @@ public class OperateLogService : DbRepository<SysOperateLog>, IOperateLogService
|
||||
var data = await query.ToListAsync();
|
||||
return await ExportFileAsync(data);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public async Task<ISqlSugarPagedList<SysOperateLog>> PageAsync(OperateLogPageInput input)
|
||||
{
|
||||
@@ -94,7 +99,6 @@ public class OperateLogService : DbRepository<SysOperateLog>, IOperateLogService
|
||||
.WhereIF(!string.IsNullOrEmpty(input.ExeStatus), it => it.ExeStatus == input.ExeStatus)//根据结果查询
|
||||
.WhereIF(!string.IsNullOrEmpty(input.SearchKey), it => it.Name.Contains(input.SearchKey) || it.OpIp.Contains(input.SearchKey));//根据关键字查询
|
||||
|
||||
|
||||
for (int i = input.SortField.Count - 1; i >= 0; i--)
|
||||
{
|
||||
query = query.OrderByIF(!string.IsNullOrEmpty(input.SortField[i]), $"{input.SortField[i]} {(input.SortDesc[i] ? "desc" : "asc")}");
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.DependencyInjection;
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.FriendlyException;
|
||||
@@ -20,10 +22,12 @@ namespace ThingsGateway.Admin.Application;
|
||||
public class RelationService : DbRepository<SysRelation>, IRelationService
|
||||
{
|
||||
private readonly IServiceScope _serviceScope;
|
||||
|
||||
public RelationService(IServiceScopeFactory serviceScopeFactory)
|
||||
{
|
||||
_serviceScope = serviceScopeFactory.CreateScope();
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public async Task<List<SysRelation>> GetRelationByCategoryAsync(string category)
|
||||
{
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,11 +9,11 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
namespace ThingsGateway.Admin.Application;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 角色按钮资源
|
||||
/// </summary>
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.DependencyInjection;
|
||||
@@ -24,6 +26,7 @@ public interface IResourceService : ITransient
|
||||
/// </summary>
|
||||
/// <returns>所有的菜单和模块以及单页面列表</returns>
|
||||
Task<List<SysResource>> GetaMenuAndSpaListAsync();
|
||||
|
||||
/// <summary>
|
||||
/// 获取子资源
|
||||
/// </summary>
|
||||
@@ -54,6 +57,7 @@ public interface IResourceService : ITransient
|
||||
/// <param name="categorys">资源分类列表</param>
|
||||
/// <returns></returns>
|
||||
Task<List<SysResource>> GetListByCategorysAsync(List<ResourceCategoryEnum> categorys = null);
|
||||
|
||||
/// <summary>
|
||||
/// 获取资源所有下级
|
||||
/// </summary>
|
||||
@@ -89,10 +93,10 @@ public interface IResourceService : ITransient
|
||||
/// <returns>菜单形结构</returns>
|
||||
/// <inheritdoc/>
|
||||
List<SysResource> ResourceListToTree(List<SysResource> resourceList, long parentId = 0);
|
||||
|
||||
/// <summary>
|
||||
/// 多个树转列表
|
||||
/// </summary>
|
||||
/// <param name="data"></param>
|
||||
List<SysResource> ResourceTreeToList(List<SysResource> data);
|
||||
|
||||
}
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Mapster;
|
||||
@@ -16,15 +18,16 @@ using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
namespace ThingsGateway.Admin.Application;
|
||||
|
||||
|
||||
/// <inheritdoc cref="IResourceService"/>
|
||||
public class ResourceService : DbRepository<SysResource>, IResourceService
|
||||
{
|
||||
private readonly IServiceScope _serviceScope;
|
||||
|
||||
public ResourceService(IServiceScopeFactory serviceScopeFactory)
|
||||
{
|
||||
_serviceScope = serviceScopeFactory.CreateScope();
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public async Task<List<SysResource>> GetaMenuAndSpaListAsync()
|
||||
{
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.DependencyInjection;
|
||||
@@ -67,6 +69,7 @@ public interface IRoleService : ITransient
|
||||
/// <param name="input">授权信息</param>
|
||||
/// <returns></returns>
|
||||
Task GrantUserAsync(GrantUserInput input);
|
||||
|
||||
/// <summary>
|
||||
/// 角色拥有资源
|
||||
/// </summary>
|
||||
@@ -98,6 +101,7 @@ public interface IRoleService : ITransient
|
||||
/// 角色刷新资源
|
||||
/// </summary>
|
||||
Task RefreshResourceAsync(long? menuId = null);
|
||||
|
||||
/// <summary>
|
||||
/// 角色选择器
|
||||
/// </summary>
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.DependencyInjection;
|
||||
@@ -82,7 +84,6 @@ namespace ThingsGateway.Admin.Application
|
||||
await Context.Deleteable<SysRelation>().Where(it => ids.Contains(it.ObjectId) && delRelations.Contains(it.Category)).ExecuteCommandAsync();
|
||||
//删除关系表角色与用户关系
|
||||
await Context.Deleteable<SysRelation>().Where(it => targetIds.Contains(it.TargetId) && it.Category == CateGoryConst.Relation_SYS_USER_HAS_ROLE).ExecuteCommandAsync();
|
||||
|
||||
});
|
||||
if (result.IsSuccess)//如果成功了
|
||||
{
|
||||
@@ -288,7 +289,6 @@ namespace ThingsGateway.Admin.Application
|
||||
//删除老的
|
||||
await Context.Deleteable<SysRelation>().Where(it => it.TargetId == input.Id.ToString() && it.Category == CateGoryConst.Relation_SYS_USER_HAS_ROLE).ExecuteCommandAsync();
|
||||
await Context.Insertable(sysRelations).ExecuteCommandAsync();//添加新的
|
||||
|
||||
});
|
||||
if (result.IsSuccess)//如果成功了
|
||||
{
|
||||
@@ -361,8 +361,6 @@ namespace ThingsGateway.Admin.Application
|
||||
await GrantResourceAsync(new GrantResourceInput() { Id = item.Id, GrantInfoList = r1.GrantInfoList });
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using System.ComponentModel;
|
||||
@@ -25,6 +27,7 @@ public class SessionPageInput : BasePageInput
|
||||
/// </summary>
|
||||
[Description("账号")]
|
||||
public string Account { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 最新登录IP
|
||||
/// </summary>
|
||||
@@ -48,6 +51,7 @@ public class ExitVerificatInput : BaseIdInput
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "VerificatIds不能为空")]
|
||||
public List<long> VerificatIds { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户Id
|
||||
/// </summary>
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using System.ComponentModel;
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.DependencyInjection;
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.DependencyInjection;
|
||||
@@ -73,7 +75,7 @@ public class SessionService : DbRepository<SysUser>, ISessionService
|
||||
var verificatInfos = await _verificatService.GetVerificatIdAsync(it.Id);
|
||||
if (verificatInfos != null)
|
||||
{
|
||||
SessionService.GetVerificatInfos(ref verificatInfos);//获取剩余时间
|
||||
GetVerificatInfos(ref verificatInfos);//获取剩余时间
|
||||
it.VerificatCount = verificatInfos.Count;//令牌数量
|
||||
it.VerificatSignList = verificatInfos;//令牌列表
|
||||
|
||||
@@ -84,14 +86,12 @@ public class SessionService : DbRepository<SysUser>, ISessionService
|
||||
{
|
||||
it.VerificatSignList = new();
|
||||
}
|
||||
|
||||
});
|
||||
for (int i = input.SortField.Count - 1; i >= 0; i--)
|
||||
{
|
||||
query = query.OrderByIF(!string.IsNullOrEmpty(input.SortField[i]), $"{input.SortField[i]} {(input.SortDesc[i] ? "desc" : "asc")}");
|
||||
}
|
||||
|
||||
|
||||
var pageInfo = await query.ToPagedListAsync(input.Current, input.Size);//分页
|
||||
return pageInfo;
|
||||
}
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.DependencyInjection;
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.DependencyInjection;
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using SqlSugar;
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
namespace ThingsGateway.Admin.Application;
|
||||
@@ -31,5 +33,4 @@ public class UserSelectorOutput
|
||||
/// 姓名
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
}
|
||||
|
||||
}
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.DependencyInjection;
|
||||
@@ -39,7 +41,6 @@ public interface ISysUserService : ITransient
|
||||
/// <param name="ids">用户ID列表</param>
|
||||
void DeleteUserFromCache(params long[] ids);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 禁用用户
|
||||
/// </summary>
|
||||
@@ -81,6 +82,7 @@ public interface ISysUserService : ITransient
|
||||
/// <param name="account">用户名</param>
|
||||
/// <returns>用户信息</returns>
|
||||
Task<SysUser> GetUserByAccountAsync(string account);
|
||||
|
||||
/// <summary>
|
||||
/// 根据ID获取用户信息
|
||||
/// </summary>
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.DataEncryption;
|
||||
@@ -34,6 +36,7 @@ public class SysUserService : DbRepository<SysUser>, ISysUserService
|
||||
private readonly IRoleService _roleService;
|
||||
private readonly IVerificatService _verificatService;
|
||||
private readonly IServiceScope _serviceScope;
|
||||
|
||||
/// <inheritdoc cref="ISysUserService"/>
|
||||
public SysUserService(
|
||||
IRelationService relationService,
|
||||
@@ -383,7 +386,6 @@ public class SysUserService : DbRepository<SysUser>, ISysUserService
|
||||
if (!sysUser.Phone.MatchPhoneNumber())//验证手机格式
|
||||
throw Oops.Bah($"手机号码:{sysUser.Phone} 格式错误");
|
||||
sysUser.Phone = DESCEncryption.Encrypt(sysUser.Phone, DESCKeyConst.DESCKey);
|
||||
|
||||
}
|
||||
//如果邮箱不是空
|
||||
if (!string.IsNullOrEmpty(sysUser.Email))
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using System.ComponentModel;
|
||||
@@ -26,6 +28,7 @@ public class UpdateInfoInput : SysUser
|
||||
[MinValue(1, ErrorMessage = "Id不能为空")]
|
||||
public override long Id { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 修改密码
|
||||
/// </summary>
|
||||
@@ -37,12 +40,14 @@ public class PasswordInfoInput : BaseIdInput, IValidatableObject
|
||||
[Description("旧密码")]
|
||||
[Required(ErrorMessage = "不能为空")]
|
||||
public string OldPassword { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 新密码
|
||||
/// </summary>
|
||||
[Description("新密码")]
|
||||
[Required(ErrorMessage = "不能为空")]
|
||||
public string NewPassword { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 确认密码
|
||||
/// </summary>
|
||||
@@ -56,4 +61,4 @@ public class PasswordInfoInput : BaseIdInput, IValidatableObject
|
||||
if (NewPassword != ConfirmPassword)
|
||||
yield return new ValidationResult("两次密码不一致", new[] { nameof(ConfirmPassword) });
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.DependencyInjection;
|
||||
@@ -25,6 +27,7 @@ public interface IUserCenterService : ITransient
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
Task EditPasswordAsync(PasswordInfoInput input);
|
||||
|
||||
/// <summary>
|
||||
/// 获取个人主页
|
||||
/// </summary>
|
||||
@@ -58,6 +61,7 @@ public interface IUserCenterService : ITransient
|
||||
/// <param name="input">信息参数</param>
|
||||
/// <returns></returns>
|
||||
Task UpdateUserInfoAsync(UpdateInfoInput input);
|
||||
|
||||
/// <summary>
|
||||
/// 编辑个人工作台
|
||||
/// </summary>
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.DataEncryption;
|
||||
@@ -20,7 +22,6 @@ using ThingsGateway.Foundation.Extension.String;
|
||||
|
||||
namespace ThingsGateway.Admin.Application;
|
||||
|
||||
|
||||
/// <inheritdoc cref="IUserCenterService"/>
|
||||
[Injection(Proxy = typeof(OperDispatchProxy))]
|
||||
public class UserCenterService : DbRepository<SysUser>, IUserCenterService
|
||||
@@ -86,6 +87,7 @@ public class UserCenterService : DbRepository<SysUser>, IUserCenterService
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public async Task UpdateUserDefaultRazorAsync(long userId, long defaultRazor)
|
||||
{
|
||||
@@ -148,6 +150,7 @@ public class UserCenterService : DbRepository<SysUser>, IUserCenterService
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
[OperDesc("用户更新个人信息")]
|
||||
public async Task UpdateUserInfoAsync(UpdateInfoInput input)
|
||||
@@ -186,8 +189,8 @@ public class UserCenterService : DbRepository<SysUser>, IUserCenterService
|
||||
//关系表保存个人工作台
|
||||
await _relationService.SaveRelationAsync(CateGoryConst.Relation_SYS_USER_WORKBENCH_DATA, UserManager.UserId, null, input.ToJsonString(), true);
|
||||
}
|
||||
#region 方法
|
||||
|
||||
#region 方法
|
||||
|
||||
/// <summary>
|
||||
/// 获取父菜单集合,已过滤掉同时存在的父节点
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.DependencyInjection;
|
||||
@@ -32,6 +34,7 @@ public interface IVerificatService : ITransient
|
||||
/// <param name="userId"></param>
|
||||
/// <returns></returns>
|
||||
Task<List<VerificatInfo>> GetVerificatIdAsync(long userId);
|
||||
|
||||
/// <summary>
|
||||
/// 设置验证ID
|
||||
/// </summary>
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
@@ -18,10 +20,12 @@ namespace ThingsGateway.Admin.Application;
|
||||
public class VerificatService : DbRepository<SysVerificat>, IVerificatService
|
||||
{
|
||||
private readonly IServiceScope _serviceScope;
|
||||
|
||||
public VerificatService(IServiceScopeFactory serviceScopeFactory)
|
||||
{
|
||||
_serviceScope = serviceScopeFactory.CreateScope();
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public async Task<List<VerificatInfo>> GetOpenApiVerificatIdAsync(long userId)
|
||||
{
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using System.ComponentModel;
|
||||
@@ -23,10 +25,12 @@ public class VisitLogPageInput : BasePageInput
|
||||
/// 开始时间
|
||||
/// </summary>
|
||||
public DateTime? StartTime { get; set; } = DateTime.UtcNow.AddDays(-1);
|
||||
|
||||
/// <summary>
|
||||
/// 结束时间
|
||||
/// </summary>
|
||||
public DateTime? EndTime { get; set; } = DateTime.UtcNow.AddDays(1);
|
||||
|
||||
/// <summary>
|
||||
/// 账号
|
||||
/// </summary>
|
||||
@@ -55,6 +59,7 @@ public class VisitLogInput
|
||||
/// 开始时间
|
||||
/// </summary>
|
||||
public DateTime? StartTime { get; set; } = DateTime.UtcNow.AddDays(-1);
|
||||
|
||||
/// <summary>
|
||||
/// 结束时间
|
||||
/// </summary>
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.DependencyInjection;
|
||||
@@ -26,12 +28,14 @@ public interface IVisitLogService : ITransient
|
||||
/// <param name="category">分类名称</param>
|
||||
/// <returns></returns>
|
||||
Task DeleteAsync(params string[] category);
|
||||
|
||||
/// <summary>
|
||||
/// 导出访问日志
|
||||
/// </summary>
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
Task<MemoryStream> ExportFileAsync(VisitLogInput input);
|
||||
|
||||
/// <summary>
|
||||
/// 导出访问日志
|
||||
/// </summary>
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Furion.DependencyInjection;
|
||||
@@ -72,6 +74,7 @@ public class VisitLogService : DbRepository<SysVisitLog>, IVisitLogService
|
||||
foreach (var devData in input)
|
||||
{
|
||||
#region sheet
|
||||
|
||||
//变量页
|
||||
var data = devData.GetType().GetProperties();
|
||||
Dictionary<string, object> devExport = new();
|
||||
@@ -104,5 +107,4 @@ public class VisitLogService : DbRepository<SysVisitLog>, IVisitLogService
|
||||
var data = await query.ToListAsync();
|
||||
return await ExportFileAsync(data);
|
||||
}
|
||||
|
||||
}
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,8 +9,11 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
using ThingsGateway.Foundation.Extension.String;
|
||||
|
||||
namespace ThingsGateway.Admin.Application;
|
||||
@@ -34,11 +38,11 @@ public class SeedDataUtil
|
||||
if (!string.IsNullOrEmpty(dataString))//如果有内容
|
||||
{
|
||||
//字段没有数据的替换成null
|
||||
dataString = dataString.Replace("\"\"", "null");
|
||||
dataString = Regex.Replace(dataString, "\\\"[^\"]+?\\\": \\\"\\\"", match => match.Value.Replace("\"\"", "null"));
|
||||
//dataString = dataString.Replace("\"\"", "null");
|
||||
//将json字符串转为实体,这里extjson可以正常转换为字符串
|
||||
var seedDataRecord = Newtonsoft.Json.JsonConvert.DeserializeObject<SeedDataRecords<T>>(dataString);
|
||||
|
||||
|
||||
//遍历seedDataRecord
|
||||
for (int i = 0; i < seedDataRecord.Records.Count; i++)
|
||||
{
|
||||
@@ -88,7 +92,6 @@ public class SeedDataUtil
|
||||
|
||||
return seedData;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,9 +9,11 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
namespace ThingsGateway.Admin.Blazor;
|
||||
|
||||
/// <summary>
|
||||
/// NavItemExtensions
|
||||
/// </summary>
|
||||
@@ -69,6 +72,4 @@ public static class NavItemExtensions
|
||||
Href = menu.Component,
|
||||
Target = menu.TargetType == TargetTypeEnum.SELF ? "_self" : "_blank",
|
||||
};
|
||||
|
||||
|
||||
}
|
@@ -1,4 +1,5 @@
|
||||
#region copyright
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
@@ -8,6 +9,7 @@
|
||||
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endregion
|
||||
|
||||
global using BlazorComponent;
|
||||
@@ -25,4 +27,4 @@ global using ThingsGateway.Admin.Application;
|
||||
global using ThingsGateway.Admin.Core;
|
||||
global using ThingsGateway.Components;
|
||||
global using ThingsGateway.Core;
|
||||
global using ThingsGateway.Foundation.Core;
|
||||
global using ThingsGateway.Foundation.Core;
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user