Compare commits
823 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e8e2e8e315 | ||
|
|
5a1c6b9e7f | ||
|
|
1d98d8eecb | ||
|
|
fa2806e3aa | ||
|
|
761d9f45da | ||
|
|
07d9cfe5bc | ||
|
|
b9d7e0787c | ||
|
|
4ea6660402 | ||
|
|
8391596e2a | ||
|
|
0f1cfc129c | ||
|
|
3e33f9b363 | ||
|
|
a76cc4693f | ||
|
|
d75bb7b7cf | ||
|
|
6c87de7a97 | ||
|
|
0ba493d71d | ||
|
|
bd0f1f0b23 | ||
|
|
d45a96a919 | ||
|
|
55e02dde5e | ||
|
|
cb7814cbd6 | ||
|
|
2b1abc8aeb | ||
|
|
3376ce54cc | ||
|
|
d35b4d1ad6 | ||
|
|
7a2c45ddb5 | ||
|
|
d3648a7e89 | ||
|
|
c794bb6a26 | ||
|
|
3f8b2f7a30 | ||
|
|
2bc6d1bc9a | ||
|
|
ee53ddd097 | ||
|
|
1705817128 | ||
|
|
0f8936e9a9 | ||
|
|
e3792cde12 | ||
|
|
4792d83119 | ||
|
|
27888f503a | ||
|
|
8b0823f504 | ||
|
|
12476fc173 | ||
|
|
56cc0a92f6 | ||
|
|
88db57c64b | ||
|
|
cd1f465a81 | ||
|
|
a80b5ed961 | ||
|
|
7f54cb0de8 | ||
|
|
3549b216b0 | ||
|
|
3786c53cad | ||
|
|
178e0d18cd | ||
|
|
cbdcb6f1ce | ||
|
|
74cc5af5c9 | ||
|
|
392d90db57 | ||
|
|
c87081f673 | ||
|
|
f375432e7d | ||
|
|
3011645c44 | ||
|
|
322256cc5a | ||
|
|
02d017eb9e | ||
|
|
2f13bce20d | ||
|
|
e2bf90e340 | ||
|
|
9bc1247544 | ||
|
|
90a2ec9719 | ||
|
|
b61cfe8b6b | ||
|
|
28d57dff72 | ||
|
|
55270548c7 | ||
|
|
a45f9e7843 | ||
|
|
37cfcde476 | ||
|
|
9517f0eedf | ||
|
|
a9da0cdcc8 | ||
|
|
b3c537d034 | ||
|
|
2d4cf29da8 | ||
|
|
eea47aea55 | ||
|
|
2648a0b57e | ||
|
|
46dfe4650e | ||
|
|
7eca11d51b | ||
|
|
43022a9838 | ||
|
|
b873ec2095 | ||
|
|
18f8718de2 | ||
|
|
c6c0801d14 | ||
|
|
196d27b7c5 | ||
|
|
daed961a99 | ||
|
|
8387e03254 | ||
|
|
b6d43a069f | ||
|
|
558eea94e2 | ||
|
|
f5f99efff6 | ||
|
|
cc95fa92e7 | ||
|
|
9eba3287b2 | ||
|
|
46845dd4b9 | ||
|
|
c3be2cdfe5 | ||
|
|
443cf1829e | ||
|
|
ae833b245e | ||
|
|
88338877b0 | ||
|
|
0d74a4aecc | ||
|
|
1cf0496cd1 | ||
|
|
050b026166 | ||
|
|
8d95319e39 | ||
|
|
fe12b0a665 | ||
|
|
93dd2e06d8 | ||
|
|
05f29a264e | ||
|
|
26dd8ed13a | ||
|
|
72c58059bd | ||
|
|
7e596d47a6 | ||
|
|
c38a8c0475 | ||
|
|
15adbf489e | ||
|
|
98b863be6f | ||
|
|
ecd40523d4 | ||
|
|
7f6de6e64e | ||
|
|
002163fbdc | ||
|
|
da9ea504fb | ||
|
|
bb171f6e23 | ||
|
|
b860c2eed0 | ||
|
|
fdf81d1b39 | ||
|
|
40bf6d3010 | ||
|
|
2d63d36f51 | ||
|
|
ed976e90dc | ||
|
|
6f4994b5da | ||
|
|
a2a923809e | ||
|
|
8d06ccace9 | ||
|
|
99479e722a | ||
|
|
70890cdc19 | ||
|
|
0eebc544a6 | ||
|
|
12280e5769 | ||
|
|
4ec2c1b943 | ||
|
|
d6edb93403 | ||
|
|
3236a05ae9 | ||
|
|
5576ae7305 | ||
|
|
d5aadf6926 | ||
|
|
2eb469b228 | ||
|
|
088c6faae1 | ||
|
|
04f7d22e3f | ||
|
|
950274f6be | ||
|
|
c6596fff1a | ||
|
|
7cbbc57514 | ||
|
|
8041a4a4fc | ||
|
|
1fa247aa35 | ||
|
|
7de49dcfb8 | ||
|
|
b21e307640 | ||
|
|
aae7eedd49 | ||
|
|
bce60310c5 | ||
|
|
d17cb4ce96 | ||
|
|
4b25a03b1d | ||
|
|
682433efe4 | ||
|
|
a6f28d67eb | ||
|
|
c663aa2799 | ||
|
|
2c02b816b5 | ||
|
|
d14b87729a | ||
|
|
70b41ab8a8 | ||
|
|
d185b548f7 | ||
|
|
4b5dcec08b | ||
|
|
13a7a875a4 | ||
|
|
8743bf4b93 | ||
|
|
d8792e9e27 | ||
|
|
82a0cd0336 | ||
|
|
60ae5b8965 | ||
|
|
4d4b54ec36 | ||
|
|
53f6910a34 | ||
|
|
826c3a8f8f | ||
|
|
727ddd3198 | ||
|
|
7b535434ae | ||
|
|
da8ed53c60 | ||
|
|
40e9d6f392 | ||
|
|
d189f55de1 | ||
|
|
893f4a0388 | ||
|
|
a28547c581 | ||
|
|
a8079e0d35 | ||
|
|
60a210a45f | ||
|
|
170aa01946 | ||
|
|
f4c8e5d493 | ||
|
|
b3a0a402d7 | ||
|
|
b6c70d1530 | ||
|
|
8fbc7b9f5c | ||
|
|
3c2e73b5f5 | ||
|
|
1a221eefe3 | ||
|
|
5912428c00 | ||
|
|
f01236cc96 | ||
|
|
ad1f5a297e | ||
|
|
96697e11fd | ||
|
|
25e8b9b578 | ||
|
|
49603e29bd | ||
|
|
6a18489c15 | ||
|
|
cb52fca2a4 | ||
|
|
00964e6bbf | ||
|
|
ea1b91af2a | ||
|
|
8894e5482f | ||
|
|
e17e3474ca | ||
|
|
6d09bd4987 | ||
|
|
84f3907140 | ||
|
|
d704e2eb55 | ||
|
|
2e4c6f4284 | ||
|
|
61c77e0047 | ||
|
|
cf1e6fc283 | ||
|
|
b361e46fb7 | ||
|
|
7bb06e7fdc | ||
|
|
9f83b40be4 | ||
|
|
1edd3441bc | ||
|
|
079a4a2cf6 | ||
|
|
049a759cda | ||
|
|
a6ff38159f | ||
|
|
056f040317 | ||
|
|
c161206832 | ||
|
|
e9a0c293f8 | ||
|
|
24de62f5f4 | ||
|
|
b7b278f296 | ||
|
|
712941038b | ||
|
|
4316fa8953 | ||
|
|
d14763d52c | ||
|
|
79e1f34890 | ||
|
|
3cb8e066b3 | ||
|
|
5e6a56e193 | ||
|
|
478ba2048a | ||
|
|
8426294a0f | ||
|
|
178954c8b2 | ||
|
|
6ce2b65d89 | ||
|
|
fb45fee426 | ||
|
|
ffca49f469 | ||
|
|
f32c7a7253 | ||
|
|
a64ccdba78 | ||
|
|
5f6bae6fa9 | ||
|
|
fd503b4071 | ||
|
|
9ece357e39 | ||
|
|
d53c8362a2 | ||
|
|
8f3ca8c28d | ||
|
|
7f5675ae3c | ||
|
|
7b9f4be98c | ||
|
|
ca352ca341 | ||
|
|
a22ccbdda5 | ||
|
|
e6b50248de | ||
|
|
ee3f8a9261 | ||
|
|
922d7222cd | ||
|
|
4a8900105b | ||
|
|
65a4bb7778 | ||
|
|
3944551c06 | ||
|
|
66d7ffbb17 | ||
|
|
c4d879a0ad | ||
|
|
b97f77c740 | ||
|
|
27ad9b0599 | ||
|
|
234b8ab31c | ||
|
|
519a608316 | ||
|
|
d4a13c8a82 | ||
|
|
ccb57411a2 | ||
|
|
486bebe6d2 | ||
|
|
5b3129bf01 | ||
|
|
23c742c4c6 | ||
|
|
90d3bbd79e | ||
|
|
400a06d2ac | ||
|
|
594d2f620c | ||
|
|
1a6ec578de | ||
|
|
e009604595 | ||
|
|
8b23c623d1 | ||
|
|
a3c4e72902 | ||
|
|
7e54412fc3 | ||
|
|
564970a324 | ||
|
|
1ecd32027e | ||
|
|
ceb5727337 | ||
|
|
17c7552f7f | ||
|
|
8fbcad8856 | ||
|
|
a61fd454b4 | ||
|
|
c0337afbaa | ||
|
|
acb9e78a36 | ||
|
|
431ff04644 | ||
|
|
201fb0a136 | ||
|
|
90671729ea | ||
|
|
8596175f8e | ||
|
|
e9fdec6bb0 | ||
|
|
026b6aca07 | ||
|
|
fafe3c0c55 | ||
|
|
f2b327c811 | ||
|
|
7fccbc2aa2 | ||
|
|
7c40f5988b | ||
|
|
b19e4043cd | ||
|
|
db75aa1cab | ||
|
|
f5718b4062 | ||
|
|
d25f17782b | ||
|
|
e3626a094d | ||
|
|
fc7b17fe40 | ||
|
|
87e13b3677 | ||
|
|
a540e42460 | ||
|
|
c4e24fb0a3 | ||
|
|
31fb55635e | ||
|
|
3dcff0b682 | ||
|
|
81f48d9c92 | ||
|
|
6331b0d587 | ||
|
|
57cf3b94e0 | ||
|
|
b683eac996 | ||
|
|
ccdcb1d0f6 | ||
|
|
4f5f02f030 | ||
|
|
0629ce51af | ||
|
|
46f1fcc269 | ||
|
|
b49b0290f8 | ||
|
|
7ca351f7cd | ||
|
|
850b124da3 | ||
|
|
49a2d3cab3 | ||
|
|
038eda1562 | ||
|
|
b91c8e34c2 | ||
|
|
0a631a7c93 | ||
|
|
4705c2595a | ||
|
|
0ff6809d63 | ||
|
|
a375feabfc | ||
|
|
5b9fd139a3 | ||
|
|
fd92d93289 | ||
|
|
840637c0d0 | ||
|
|
f41f5386cc | ||
|
|
f4a7d8ea92 | ||
|
|
26c9160c75 | ||
|
|
4c1955da75 | ||
|
|
66e6272571 | ||
|
|
e9d5e705ed | ||
|
|
16fdb28141 | ||
|
|
e289cf29fe | ||
|
|
1cd74cc26a | ||
|
|
27112e35b3 | ||
|
|
b2a8578f43 | ||
|
|
0e0a8b039d | ||
|
|
cbd201c43b | ||
|
|
a6d734bacf | ||
|
|
8dc86e0482 | ||
|
|
d0226611d7 | ||
|
|
2b21c3cd09 | ||
|
|
b1bdd9b8a5 | ||
|
|
bb50510ecb | ||
|
|
aa185c8bd2 | ||
|
|
99e3b234c9 | ||
|
|
5168d8d08d | ||
|
|
230a8810ef | ||
|
|
e8e8c1abcc | ||
|
|
0354d6dc3e | ||
|
|
47ad388f7d | ||
|
|
2d57483805 | ||
|
|
363dbd3a7f | ||
|
|
5b5863c899 | ||
|
|
4c1ae8c3cc | ||
|
|
29ed211519 | ||
|
|
9f965c4e56 | ||
|
|
0148868129 | ||
|
|
d46863b5b5 | ||
|
|
1917aa13d5 | ||
|
|
2994131048 | ||
|
|
f0d6938127 | ||
|
|
0203630d6a | ||
|
|
89c5c2dd83 | ||
|
|
ce1954e7d3 | ||
|
|
947a82eac5 | ||
|
|
9dc01f6057 | ||
|
|
37c5ce541b | ||
|
|
726eb06714 | ||
|
|
df505e0e17 | ||
|
|
06fffac835 | ||
|
|
264a423444 | ||
|
|
6ae9692358 | ||
|
|
7270564b10 | ||
|
|
a485a29868 | ||
|
|
ec04c3221f | ||
|
|
761982474c | ||
|
|
d13b0404fb | ||
|
|
6966376f91 | ||
|
|
2720f5c0bb | ||
|
|
881f039e44 | ||
|
|
81c7a72b9c | ||
|
|
c0391e3fc1 | ||
|
|
7e542750f6 | ||
|
|
7cbf638822 | ||
|
|
4cdb461c22 | ||
|
|
ba57f19ee7 | ||
|
|
9ba2693698 | ||
|
|
3439b7aee5 | ||
|
|
63b23fbe76 | ||
|
|
63fff2398e | ||
|
|
db8796df99 | ||
|
|
4095481411 | ||
|
|
8e30defa0e | ||
|
|
06ee6d6359 | ||
|
|
a988dedfbf | ||
|
|
f90c6fb27d | ||
|
|
5292d6ef90 | ||
|
|
e760af7216 | ||
|
|
e4889d82f2 | ||
|
|
9d170ecc30 | ||
|
|
cf01011504 | ||
|
|
b1291d3c43 | ||
|
|
82546eed06 | ||
|
|
bf667e2aa6 | ||
|
|
5b6f208f53 | ||
|
|
210d56447c | ||
|
|
c093261369 | ||
|
|
ee4f87d12d | ||
|
|
74b0a5b081 | ||
|
|
f51774c077 | ||
|
|
bd9f7b8b9f | ||
|
|
dc55bd63f5 | ||
|
|
07ce947f78 | ||
|
|
0f6cc70f66 | ||
|
|
6d014a01bc | ||
|
|
de5e97ac3a | ||
|
|
40e866aadd | ||
|
|
36ce7593a9 | ||
|
|
a2a28af41d | ||
|
|
203a30a236 | ||
|
|
b7d418b5b7 | ||
|
|
1625f7ca76 | ||
|
|
8a67b905fc | ||
|
|
9ee76b5328 | ||
|
|
df9dd7f435 | ||
|
|
9d0d318d66 | ||
|
|
ee1723a76b | ||
|
|
c715422814 | ||
|
|
72e7941230 | ||
|
|
ac475ca456 | ||
|
|
ee5355668d | ||
|
|
1b30f0ad31 | ||
|
|
348f362b30 | ||
|
|
6bef12b91b | ||
|
|
5b4113be4d | ||
|
|
a82d3fe57c | ||
|
|
4d551366ed | ||
|
|
441cb6ddcb | ||
|
|
f14efa2612 | ||
|
|
f4d7c07f57 | ||
|
|
66b2f1f55d | ||
|
|
b9b2c10ca0 | ||
|
|
0d5f871da7 | ||
|
|
1688a7ba15 | ||
|
|
3506e1c738 | ||
|
|
ae0c4aea12 | ||
|
|
a52b672e9b | ||
|
|
c4307aa821 | ||
|
|
a2c32009f5 | ||
|
|
e27185d424 | ||
|
|
0714480e01 | ||
|
|
504ee766f8 | ||
|
|
7358fd0c23 | ||
|
|
25be7094a2 | ||
|
|
627a1d7d5a | ||
|
|
63b84ee69d | ||
|
|
5eb76176ab | ||
|
|
6115ecf673 | ||
|
|
d1a112d3a3 | ||
|
|
7d67e6a007 | ||
|
|
b824ee625e | ||
|
|
961ac20213 | ||
|
|
f213b6f53f | ||
|
|
631600ab3f | ||
|
|
d95fce2efb | ||
|
|
1c6c009f14 | ||
|
|
f555f6423a | ||
|
|
cd374f2d98 | ||
|
|
c62f31c387 | ||
|
|
87ccad6ec7 | ||
|
|
1600f7cdab | ||
|
|
dc3256566b | ||
|
|
b0858429fb | ||
|
|
2f3e2a5ae8 | ||
|
|
f280ab88ec | ||
|
|
9616c27efa | ||
|
|
0b5f830d7c | ||
|
|
d0f952bd68 | ||
|
|
2876a39ff5 | ||
|
|
6bcf6da165 | ||
|
|
9fe633d228 | ||
|
|
b32bf41443 | ||
|
|
e4e073b6f0 | ||
|
|
e960ee2f40 | ||
|
|
5b1b75cbbe | ||
|
|
a689bb83ee | ||
|
|
0940d9aec8 | ||
|
|
b5e709f5e5 | ||
|
|
c5da640432 | ||
|
|
a5f924841a | ||
|
|
fda3b5b1cc | ||
|
|
10b8f83737 | ||
|
|
ea5da365c7 | ||
|
|
f6eb72332b | ||
|
|
fcb401c89b | ||
|
|
2b0dc1d0a3 | ||
|
|
a0139b84e1 | ||
|
|
65bd2ff35f | ||
|
|
4468657030 | ||
|
|
4ad95a65cf | ||
|
|
31f6c19e87 | ||
|
|
612d1d1646 | ||
|
|
eddf3ecdeb | ||
|
|
6cb511ba10 | ||
|
|
7483f19fc6 | ||
|
|
f8d2ab5e17 | ||
|
|
9cd591efe3 | ||
|
|
e655fdf67f | ||
|
|
9aa253b56f | ||
|
|
1d5a2008e1 | ||
|
|
1f1b534b13 | ||
|
|
bf8f8d9382 | ||
|
|
5c78711d8e | ||
|
|
191709e983 | ||
|
|
da6a17cd61 | ||
|
|
acb88a6b2a | ||
|
|
d5091bf659 | ||
|
|
fd003eff8b | ||
|
|
4d1dfebacd | ||
|
|
96b5b50ee0 | ||
|
|
6639ec8971 | ||
|
|
9aa7a6dcf3 | ||
|
|
4dc183cdf5 | ||
|
|
bbe3399c90 | ||
|
|
29e43d299a | ||
|
|
a4ee4df71b | ||
|
|
64dbe6708a | ||
|
|
f375a9f9db | ||
|
|
15a8800b15 | ||
|
|
77e526c22f | ||
|
|
f235f66c19 | ||
|
|
1b44bedf42 | ||
|
|
40e16c4d1b | ||
|
|
0c383ac7e9 | ||
|
|
0ec2688f17 | ||
|
|
346550182f | ||
|
|
24568e0f00 | ||
|
|
64f2f4668b | ||
|
|
f4e1d891a7 | ||
|
|
3972e0231c | ||
|
|
039e85d5e5 | ||
|
|
936397c59f | ||
|
|
23ddca6f82 | ||
|
|
286214d9c3 | ||
|
|
6d0dd09b5b | ||
|
|
38469d42ef | ||
|
|
696bfe0a2c | ||
|
|
3de2b9834d | ||
|
|
d5fdc47936 | ||
|
|
27e82423f0 | ||
|
|
576b5b213e | ||
|
|
145406be32 | ||
|
|
a65f0ad384 | ||
|
|
5051fc7b0b | ||
|
|
7164036d4c | ||
|
|
cb0a9121e5 | ||
|
|
96e779eb28 | ||
|
|
27397f1602 | ||
|
|
2d1cfde76b | ||
|
|
007d69a887 | ||
|
|
f3965cecd5 | ||
|
|
4fb170e5c7 | ||
|
|
8e1ade5423 | ||
|
|
0b081c2d85 | ||
|
|
ab1e9f806f | ||
|
|
e961711dcb | ||
|
|
90185d8c32 | ||
|
|
68ef46195c | ||
|
|
0c234e78af | ||
|
|
ca1851570b | ||
|
|
cf0d1378c8 | ||
|
|
b13a5d5f2a | ||
|
|
575458afb3 | ||
|
|
b2d4b7bb23 | ||
|
|
def6247e9f | ||
|
|
6409d0dc2d | ||
|
|
f253ae9c31 | ||
|
|
b93d10eeea | ||
|
|
801f1cbd4c | ||
|
|
f8260c3b29 | ||
|
|
9e74c15413 | ||
|
|
65e7f9750a | ||
|
|
62804941c2 | ||
|
|
05818baf7a | ||
|
|
1c28e0bd5f | ||
|
|
0460e219f9 | ||
|
|
eec3611218 | ||
|
|
87f637099c | ||
|
|
5f0241768d | ||
|
|
60b4ab5c5b | ||
|
|
bbed7afdcb | ||
|
|
459a736ebc | ||
|
|
bdbc620515 | ||
|
|
3c905ffd8b | ||
|
|
20d32b1f8f | ||
|
|
f57a373d47 | ||
|
|
77a714e64c | ||
|
|
4a3c978e07 | ||
|
|
a4d458bace | ||
|
|
b0843aa744 | ||
|
|
eddcbc2ecb | ||
|
|
62fd1f3012 | ||
|
|
23264d5d9b | ||
|
|
cc7d2c0c82 | ||
|
|
9bed8e57df | ||
|
|
ad35168876 | ||
|
|
ec8d511e9e | ||
|
|
d2cab9f4a1 | ||
|
|
c1ca4764f0 | ||
|
|
366d1b8846 | ||
|
|
7a8dd54e5c | ||
|
|
37393bb7f8 | ||
|
|
3904bfd91d | ||
|
|
f720e00132 | ||
|
|
f723c11a84 | ||
|
|
643e8c8157 | ||
|
|
11f9ddaeb6 | ||
|
|
5d96d434d6 | ||
|
|
ad1f086e4d | ||
|
|
3fa3991cfa | ||
|
|
9a6102e887 | ||
|
|
e23d3a48cc | ||
|
|
ddd7c336cf | ||
|
|
ee79b19d20 | ||
|
|
383cbc0b53 | ||
|
|
e8d9556a4b | ||
|
|
5958f06986 | ||
|
|
0c4aef307a | ||
|
|
20436653af | ||
|
|
814533a2c2 | ||
|
|
d4ca3d5817 | ||
|
|
194d0b6ac2 | ||
|
|
832b065a46 | ||
|
|
fa443a091f | ||
|
|
31c2f555fc | ||
|
|
74e5e86eff | ||
|
|
a318eb82c7 | ||
|
|
6465dc2b73 | ||
|
|
082d241c8f | ||
|
|
5a6012530e | ||
|
|
35e4538160 | ||
|
|
125bb372ed | ||
|
|
92e56d7153 | ||
|
|
c8272ec90d | ||
|
|
b6d01cb850 | ||
|
|
5e1eb3e03b | ||
|
|
f4c94bd8d6 | ||
|
|
8484d3f810 | ||
|
|
07f5fbca47 | ||
|
|
68d03196af | ||
|
|
a9ef62dfb0 | ||
|
|
9f6d33f6e8 | ||
|
|
ff158fd0e4 | ||
|
|
4de5e616e5 | ||
|
|
b6db829b04 | ||
|
|
821aa74669 | ||
|
|
c3221a6fff | ||
|
|
cbbfbae772 | ||
|
|
c65fd99b15 | ||
|
|
4d49d3c77a | ||
|
|
aad32a4a1f | ||
|
|
ec912efa01 | ||
|
|
bf2fdc2761 | ||
|
|
168c630a13 | ||
|
|
e7563203fe | ||
|
|
9bf1dbe030 | ||
|
|
dbcee40b93 | ||
|
|
2af334d793 | ||
|
|
f9a8675942 | ||
|
|
521a6174fe | ||
|
|
c85bc7b8ea | ||
|
|
825e44b353 | ||
|
|
ed840a95a1 | ||
|
|
ef31d6af83 | ||
|
|
b1e70ebf12 | ||
|
|
3af0031214 | ||
|
|
b648aa94b3 | ||
|
|
0e864043a6 | ||
|
|
eb25827937 | ||
|
|
f4a07b2911 | ||
|
|
cdfeb5dbdc | ||
|
|
40bc890870 | ||
|
|
18874e3755 | ||
|
|
a3d2b84ecb | ||
|
|
5f16a5c791 | ||
|
|
f086a58096 | ||
|
|
dfcf71aec7 | ||
|
|
f2e8d03f80 | ||
|
|
0736f1c550 | ||
|
|
bdd1195d20 | ||
|
|
e5511d5c09 | ||
|
|
7634801f7c | ||
|
|
1db86f2865 | ||
|
|
626e58b515 | ||
|
|
787617f504 | ||
|
|
3fb4e488bb | ||
|
|
c5187a63b9 | ||
|
|
e5f725cf16 | ||
|
|
3d56c9cc81 | ||
|
|
0ae1ae5df4 | ||
|
|
c0c530adad | ||
|
|
e962a594ba | ||
|
|
0ac7900948 | ||
|
|
6748b2911a | ||
|
|
3e4152fd9b | ||
|
|
7dfffd60b8 | ||
|
|
3ba4d24041 | ||
|
|
e99d0f45fd | ||
|
|
351745d31f | ||
|
|
bfa960d803 | ||
|
|
7572e8d56f | ||
|
|
82e773243f | ||
|
|
795440850b | ||
|
|
6adcb46f29 | ||
|
|
6cd31e630c | ||
|
|
23b3e72579 | ||
|
|
bda7a12c2a | ||
|
|
e8f44ef6f2 | ||
|
|
e4047fbd30 | ||
|
|
7dcdb43acf | ||
|
|
9f75e1fae8 | ||
|
|
78c0de664c | ||
|
|
efc4b37782 | ||
|
|
6253590326 | ||
|
|
f0b43ddd32 | ||
|
|
51e7b4f15d | ||
|
|
0ef244b373 | ||
|
|
97a1502eb2 | ||
|
|
2536e3b9f6 | ||
|
|
7aed7254a0 | ||
|
|
44e061f321 | ||
|
|
a9ddcfeb95 | ||
|
|
822e332aaa | ||
|
|
c3fbad7dbf | ||
|
|
07348357d0 | ||
|
|
947fc457f2 | ||
|
|
b719e96838 | ||
|
|
cafeb1f20f | ||
|
|
9ae798a11a | ||
|
|
d188068b10 | ||
|
|
abb4b8cb66 | ||
|
|
ef8615cfe5 | ||
|
|
ee0cb6d225 | ||
|
|
0da8f7f8f6 | ||
|
|
f8b44d9f9b | ||
|
|
b55f5ab6ae | ||
|
|
90e550934d | ||
|
|
ff757d2151 | ||
|
|
a3f838d8e6 | ||
|
|
d9d19f8cbd | ||
|
|
036ad6defb | ||
|
|
520c09b801 | ||
|
|
f850e4adaa | ||
|
|
450041bb02 | ||
|
|
2e99c26654 | ||
|
|
2e5f383db4 | ||
|
|
357b214192 | ||
|
|
c301c55905 | ||
|
|
1764e6956b | ||
|
|
a7509e1125 | ||
|
|
9ec3322574 | ||
|
|
3658f027bb | ||
|
|
9a04bb2d71 | ||
|
|
343e5e332c | ||
|
|
28a6cf1cb1 | ||
|
|
e2777b2f0a | ||
|
|
d8da258898 | ||
|
|
8616854e00 | ||
|
|
7b98d1d9d0 | ||
|
|
b8b14df39b | ||
|
|
8ddf622d0f | ||
|
|
00ffd246a9 | ||
|
|
ac86715062 | ||
|
|
2c8df21671 | ||
|
|
d16cf44f4a | ||
|
|
6d3fbd7cf0 | ||
|
|
f9f723c47a | ||
|
|
3ac28ac218 | ||
|
|
ece66ba16a | ||
|
|
f24019d306 | ||
|
|
ea80777ef6 | ||
|
|
f7ab6dc6ae | ||
|
|
a8698fbd1a | ||
|
|
62b5162c7e | ||
|
|
aa9466b8d1 | ||
|
|
70b12dfd3e | ||
|
|
0912872de2 | ||
|
|
9016090c67 | ||
|
|
79e4386d1e | ||
|
|
5e4973fae5 | ||
|
|
4228ac4570 | ||
|
|
152dbac29d | ||
|
|
2241e90798 | ||
|
|
613a808cec | ||
|
|
af52a68abc | ||
|
|
9c2738399e | ||
|
|
385a4ae618 | ||
|
|
b0d39324ef | ||
|
|
c224ad568e | ||
|
|
6184ba9b82 | ||
|
|
bea807c7b4 | ||
|
|
323bc6b775 | ||
|
|
7c87d13ba2 | ||
|
|
3e10c891ab | ||
|
|
643d966740 | ||
|
|
94968799c3 | ||
|
|
30d53fa41e | ||
|
|
00805d6a49 | ||
|
|
0e7665f59d | ||
|
|
96cc2bd37f | ||
|
|
71e51b3b6f | ||
|
|
5f90e422e6 | ||
|
|
b65cdfc1fb | ||
|
|
a3c597b3c5 | ||
|
|
db587fda30 | ||
|
|
7170e3a16a | ||
|
|
61aa3ca3d2 | ||
|
|
96f57b7df8 | ||
|
|
d16df738d3 | ||
|
|
9ae0921f69 | ||
|
|
5dd1c95294 | ||
|
|
404fecd83c | ||
|
|
a4fb3db3cd | ||
|
|
92d64db0b7 | ||
|
|
033ec0fd61 | ||
|
|
dc36274212 | ||
|
|
817587522b | ||
|
|
58648c3ece | ||
|
|
16f314bd80 | ||
|
|
f8408030a9 | ||
|
|
c276b1595c | ||
|
|
71cc57959b | ||
|
|
dbd35c18b5 | ||
|
|
1e868c2335 | ||
|
|
59461175d9 | ||
|
|
aee5d4be2e | ||
|
|
e9c18935c5 | ||
|
|
b80aa48735 | ||
|
|
c32999aa03 | ||
|
|
56d486e010 | ||
|
|
d83f82a340 | ||
|
|
2f49292672 | ||
|
|
c09b6061fc | ||
|
|
1d14a0adb5 | ||
|
|
840a2eabdb | ||
|
|
f2be8e6abd | ||
|
|
71fb4b2b2b | ||
|
|
3cabf0a32c | ||
|
|
8416fd49ae | ||
|
|
3a15c2eaa7 | ||
|
|
e0eb76e120 | ||
|
|
8a29ce048d | ||
|
|
d43b679f8d |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -10,6 +10,7 @@ target
|
|||||||
.factorypath
|
.factorypath
|
||||||
|
|
||||||
log/
|
log/
|
||||||
|
logs/
|
||||||
*.factorypath
|
*.factorypath
|
||||||
lili-shop/src/main/java/cn/lili/generator/CodeGenerator.java
|
lili-shop/src/main/java/cn/lili/generator/CodeGenerator.java
|
||||||
lili-logs
|
lili-logs
|
||||||
|
|||||||
@@ -1,3 +1,6 @@
|
|||||||
## PS:数据库位置
|
## PS:数据库位置
|
||||||
|
|
||||||
点击跳转 https://gitee.com/beijing_hongye_huicheng/docker/tree/master/init/mysql 这里有与tag版本一致的sql,根据tag获取sql,如果使用master代码,则需要在lilishop项目根目录的update-sql目录中,获取对应的升级sql。
|
点击跳转 https://gitee.com/beijing_hongye_huicheng/docker/tree/master/init/mysql 这里有与tag版本一致的sql,根据tag获取sql,如果使用master代码,则需要在lilishop项目根目录的update-sql目录中,获取对应的升级sql。
|
||||||
|
|
||||||
|
|
||||||
|
使用master分支代码时,可能会无法运行,执行完初始化sql之后需要执行当前目录下'versiontXXXXtoMASTER.sql'。
|
||||||
@@ -7,6 +7,7 @@
|
|||||||
Source Host : 192.168.0.116:3306
|
Source Host : 192.168.0.116:3306
|
||||||
Source Schema : lilishop
|
Source Schema : lilishop
|
||||||
|
|
||||||
|
|
||||||
Target Server Type : MySQL
|
Target Server Type : MySQL
|
||||||
Target Server Version : 80023
|
Target Server Version : 80023
|
||||||
File Encoding : 65001
|
File Encoding : 65001
|
||||||
|
|||||||
189783
DB/lilishop.sql
Normal file
189783
DB/lilishop.sql
Normal file
File diff suppressed because one or more lines are too long
2
DB/update.sql
Normal file
2
DB/update.sql
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
/** 店铺--默认页面是否开启**/
|
||||||
|
ALTER TABLE li_store ADD page_show bit(1) DEFAULT NULL COMMENT '默认页面是否开启';
|
||||||
@@ -6,7 +6,7 @@ ALTER TABLE li_distribution ADD settlement_bank_branch_name varchar ( 200 );
|
|||||||
/** 文章分类添加默认值**/
|
/** 文章分类添加默认值**/
|
||||||
ALTER TABLE li_article_category alter column sort set default 0;
|
ALTER TABLE li_article_category alter column sort set default 0;
|
||||||
/** 添加分销提现菜单**/
|
/** 添加分销提现菜单**/
|
||||||
INSERT INTO `lilishop`.`li_menu`(`id`, `create_by`, `create_time`, `delete_flag`, `update_by`, `update_time`, `description`, `front_route`, `icon`, `level`, `name`, `parent_id`, `path`, `sort_order`, `title`, `front_component`) VALUES (1410862675914764290, 'admin', '2021-07-02 15:27:29', b'0', 'admin', '2021-07-02 15:27:45', 'null', 'distribution/distributionCash', '', 2, 'distributionCash', '1374173575405109248', 'distributionCash', 5.00, '分销提现', 'null');
|
INSERT INTO `rxshop`.`li_menu`(`id`, `create_by`, `create_time`, `delete_flag`, `update_by`, `update_time`, `description`, `front_route`, `icon`, `level`, `name`, `parent_id`, `path`, `sort_order`, `title`, `front_component`) VALUES (1410862675914764290, 'admin', '2021-07-02 15:27:29', b'0', 'admin', '2021-07-02 15:27:45', 'null', 'distribution/distributionCash', '', 2, 'distributionCash', '1374173575405109248', 'distributionCash', 5.00, '分销提现', 'null');
|
||||||
|
|
||||||
/** 促销商品添加商品类型**/
|
/** 促销商品添加商品类型**/
|
||||||
ALTER TABLE li_promotion_goods ADD goods_type varchar (200);
|
ALTER TABLE li_promotion_goods ADD goods_type varchar (200);
|
||||||
@@ -16,7 +16,7 @@ update li_member_points_history set point_type = 'INCREASE' where point_type=1;
|
|||||||
update li_member_points_history set point_type = 'REDUCE' where point_type=0;
|
update li_member_points_history set point_type = 'REDUCE' where point_type=0;
|
||||||
|
|
||||||
/** 添加分词管理菜单*/
|
/** 添加分词管理菜单*/
|
||||||
INSERT INTO `lilishop`.`li_menu` (`id`, `create_by`, `create_time`, `delete_flag`, `update_by`, `update_time`, `description`, `front_route`, `icon`, `level`, `name`, `parent_id`, `path`, `sort_order`, `title`, `front_component`) VALUES (1349247640584085511, 'admin', '2021-01-13 14:51:20', b'0', 'admin', '2021-02-25 09:02:59', 'null', 'customWords/index', 'ios-american-football', 2, 'customWords', '1349237129847005184', 'customWords', 8.00, '分词管理', 'null');
|
INSERT INTO `rxshop`.`li_menu` (`id`, `create_by`, `create_time`, `delete_flag`, `update_by`, `update_time`, `description`, `front_route`, `icon`, `level`, `name`, `parent_id`, `path`, `sort_order`, `title`, `front_component`) VALUES (1349247640584085511, 'admin', '2021-01-13 14:51:20', b'0', 'admin', '2021-02-25 09:02:59', 'null', 'customWords/index', 'ios-american-football', 2, 'customWords', '1349237129847005184', 'customWords', 8.00, '分词管理', 'null');
|
||||||
|
|
||||||
/** 修改会员评价店铺图片字段类型 **/
|
/** 修改会员评价店铺图片字段类型 **/
|
||||||
alter table li_member_evaluation modify column reply_image text;
|
alter table li_member_evaluation modify column reply_image text;
|
||||||
@@ -25,4 +25,4 @@ alter table li_member_evaluation modify column reply_image text;
|
|||||||
alter table li_after_sale modify column after_sale_image text;
|
alter table li_after_sale modify column after_sale_image text;
|
||||||
|
|
||||||
/** 提现申请审核sql **/
|
/** 提现申请审核sql **/
|
||||||
INSERT INTO `lilishop`.`li_menu`(`id`, `create_by`, `create_time`, `delete_flag`, `update_by`, `update_time`, `description`, `front_route`, `icon`, `level`, `name`, `parent_id`, `path`, `sort_order`, `title`, `front_component`) VALUES (1367042804944994305, 'admin', '2021-03-03 09:22:58', b'0', NULL, NULL, NULL, 'member/advance/withdrawApply', 'ios-alert', 2, 'withdrawApply', '1367042490443497472', 'withdrawApply', 1.00, '提现申请', NULL);
|
INSERT INTO `rxshop`.`li_menu`(`id`, `create_by`, `create_time`, `delete_flag`, `update_by`, `update_time`, `description`, `front_route`, `icon`, `level`, `name`, `parent_id`, `path`, `sort_order`, `title`, `front_component`) VALUES (1367042804944994305, 'admin', '2021-03-03 09:22:58', b'0', NULL, NULL, NULL, 'member/advance/withdrawApply', 'ios-alert', 2, 'withdrawApply', '1367042490443497472', 'withdrawApply', 1.00, '提现申请', NULL);
|
||||||
|
|||||||
64
DB/version4.2.3to4.2.4.sql
Normal file
64
DB/version4.2.3to4.2.4.sql
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
/** 新增已退货数量 **/
|
||||||
|
ALTER TABLE li_order_item ADD return_goods_number int DEFAULT 0 COMMENT '退货数量 ';
|
||||||
|
|
||||||
|
|
||||||
|
-- 促销重构sql
|
||||||
|
ALTER TABLE li_coupon DROP COLUMN promotion_status;
|
||||||
|
|
||||||
|
ALTER TABLE li_coupon_activity DROP COLUMN promotion_status;
|
||||||
|
ALTER TABLE li_coupon_activity ADD `scope_id` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '范围关联的ID';
|
||||||
|
ALTER TABLE li_coupon_activity ADD `scope_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT 'PORTION_GOODS' COMMENT '关联范围类型';
|
||||||
|
|
||||||
|
ALTER TABLE li_full_discount DROP COLUMN promotion_status;
|
||||||
|
ALTER TABLE li_full_discount ADD `scope_id` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT '范围关联的ID';
|
||||||
|
ALTER TABLE li_full_discount ADD `scope_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT 'PORTION_GOODS' COMMENT '关联范围类型';
|
||||||
|
|
||||||
|
ALTER TABLE li_kanjia_activity_goods DROP COLUMN promotion_status;
|
||||||
|
ALTER TABLE li_kanjia_activity_goods ADD `scope_id` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT '范围关联的ID';
|
||||||
|
ALTER TABLE li_kanjia_activity_goods ADD `scope_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT 'PORTION_GOODS' COMMENT '关联范围类型';
|
||||||
|
ALTER TABLE li_kanjia_activity_goods ADD `goods_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL;
|
||||||
|
|
||||||
|
ALTER TABLE li_pintuan DROP COLUMN promotion_status;
|
||||||
|
ALTER TABLE li_pintuan ADD `scope_id` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT '范围关联的ID';
|
||||||
|
ALTER TABLE li_pintuan ADD `scope_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT 'PORTION_GOODS' COMMENT '关联范围类型';
|
||||||
|
|
||||||
|
ALTER TABLE li_points_goods DROP COLUMN promotion_status;
|
||||||
|
ALTER TABLE li_points_goods ADD `scope_id` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT '范围关联的ID';
|
||||||
|
ALTER TABLE li_points_goods ADD `scope_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT 'PORTION_GOODS' COMMENT '关联范围类型';
|
||||||
|
ALTER TABLE li_points_goods ADD `original_price` double(10,2) DEFAULT NULL COMMENT '原价';
|
||||||
|
ALTER TABLE li_points_goods ADD `thumbnail` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '缩略图';
|
||||||
|
ALTER TABLE li_points_goods ADD `goods_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '商品编号';
|
||||||
|
ALTER TABLE li_points_goods ADD `goods_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '货品名称';
|
||||||
|
|
||||||
|
ALTER TABLE li_promotion_goods DROP COLUMN promotion_status;
|
||||||
|
ALTER TABLE li_promotion_goods ADD `scope_id` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT '范围关联的ID';
|
||||||
|
ALTER TABLE li_promotion_goods ADD `scope_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT 'PORTION_GOODS' COMMENT '关联范围类型';
|
||||||
|
ALTER TABLE li_promotion_goods ADD `original_price` double(10,2) DEFAULT NULL COMMENT '原价';
|
||||||
|
ALTER TABLE li_promotion_goods ADD `points` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '兑换积分';
|
||||||
|
ALTER TABLE li_promotion_goods ADD `goods_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '商品编号';
|
||||||
|
|
||||||
|
ALTER TABLE li_seckill DROP COLUMN promotion_status;
|
||||||
|
ALTER TABLE li_seckill ADD `scope_id` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT '范围关联的ID';
|
||||||
|
ALTER TABLE li_seckill ADD `scope_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT 'PORTION_GOODS' COMMENT '关联范围类型';
|
||||||
|
|
||||||
|
ALTER TABLE li_full_discount RENAME COLUMN is_coupon TO coupon_flag;
|
||||||
|
ALTER TABLE li_full_discount RENAME COLUMN is_free_freight TO free_freight_flag;
|
||||||
|
ALTER TABLE li_full_discount RENAME COLUMN is_full_minus TO full_minus_flag;
|
||||||
|
ALTER TABLE li_full_discount RENAME COLUMN is_full_rate TO full_rate_flag;
|
||||||
|
ALTER TABLE li_full_discount RENAME COLUMN is_gift TO gift_flag;
|
||||||
|
ALTER TABLE li_full_discount RENAME COLUMN is_point TO point_flag;
|
||||||
|
|
||||||
|
ALTER TABLE li_member_coupon RENAME COLUMN is_platform TO platform_flag;
|
||||||
|
|
||||||
|
ALTER TABLE li_goods RENAME COLUMN is_auth TO auth_flag;
|
||||||
|
|
||||||
|
ALTER TABLE li_goods_sku RENAME COLUMN is_promotion TO promotion_flag;
|
||||||
|
ALTER TABLE li_goods_sku RENAME COLUMN is_auth TO auth_flag;
|
||||||
|
|
||||||
|
|
||||||
|
-- 增加会员表索引
|
||||||
|
ALTER TABLE li_member ADD INDEX query_mobile (`mobile`) COMMENT 'query_member';
|
||||||
|
-- 会员签到唯一索引 惠券查询索引
|
||||||
|
ALTER TABLE li_member_sign ADD INDEX query_create_time (`create_time`) COMMENT 'query_create_time';
|
||||||
|
ALTER TABLE li_member_sign ADD INDEX query_member_id (`member_id`) COMMENT 'query_member_id';
|
||||||
|
ALTER TABLE li_member_sign add unique uk_member_day (member_id, create_time) COMMENT 'uk_member_day';
|
||||||
521
DB/version4.2.4to4.2.5.sql
Normal file
521
DB/version4.2.4to4.2.5.sql
Normal file
@@ -0,0 +1,521 @@
|
|||||||
|
/**增加店铺发货信息**/
|
||||||
|
ALTER TABLE li_store_detail ADD `sales_consignor_address_id` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '发货地址id';
|
||||||
|
ALTER TABLE li_store_detail ADD `sales_consignor_address_path` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '发货地址名称';
|
||||||
|
ALTER TABLE li_store_detail ADD `sales_consignor_detail` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '发货详细地址';
|
||||||
|
ALTER TABLE li_store_detail ADD `sales_consignor_mobile` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '发货人手机';
|
||||||
|
ALTER TABLE li_store_detail ADD `sales_consignor_name` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '发货人姓名';
|
||||||
|
|
||||||
|
/**增加电子面单店铺信息**/
|
||||||
|
ALTER TABLE `li_store_logistics` ADD `customer_name` varchar(255) DEFAULT NULL COMMENT '客户代码';
|
||||||
|
ALTER TABLE `li_store_logistics` ADD `customer_pwd` varchar(255) DEFAULT NULL COMMENT '客户密码';
|
||||||
|
ALTER TABLE `li_store_logistics` ADD `month_code` varchar(255) DEFAULT NULL COMMENT '月结号/密钥';
|
||||||
|
ALTER TABLE `li_store_logistics` ADD `send_site` varchar(255) DEFAULT NULL COMMENT '归属网点';
|
||||||
|
ALTER TABLE `li_store_logistics` ADD `send_staff` varchar(255) DEFAULT NULL COMMENT '收件快递员';
|
||||||
|
ALTER TABLE `li_store_logistics` ADD `face_sheet_flag` bit(1) DEFAULT NULL COMMENT '是否使用电子面单';
|
||||||
|
ALTER TABLE `li_store_logistics` ADD `pay_type` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '支付方式';
|
||||||
|
ALTER TABLE `li_store_logistics` ADD `exp_type` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '快递类型';
|
||||||
|
|
||||||
|
/** 店铺--默认页面是否开启**/
|
||||||
|
ALTER TABLE li_store ADD page_show bit(1) DEFAULT NULL COMMENT '默认页面是否开启';
|
||||||
|
|
||||||
|
/** 创建店员表 **/
|
||||||
|
/*
|
||||||
|
Navicat Premium Data Transfer
|
||||||
|
|
||||||
|
Source Server : lilishop
|
||||||
|
Source Server Type : MySQL
|
||||||
|
Source Server Version : 80025
|
||||||
|
Source Host : 192.168.0.116:3306
|
||||||
|
Source Schema : zhimai1
|
||||||
|
|
||||||
|
Target Server Type : MySQL
|
||||||
|
Target Server Version : 80025
|
||||||
|
File Encoding : 65001
|
||||||
|
|
||||||
|
Date: 03/03/2022 19:30:20
|
||||||
|
*/
|
||||||
|
|
||||||
|
SET NAMES utf8mb4;
|
||||||
|
SET FOREIGN_KEY_CHECKS = 0;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for li_clerk
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `li_clerk`;
|
||||||
|
CREATE TABLE `li_clerk` (
|
||||||
|
`id` bigint NOT NULL COMMENT 'ID',
|
||||||
|
`create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '创建者',
|
||||||
|
`create_time` datetime(6) NULL DEFAULT NULL COMMENT '创建时间',
|
||||||
|
`delete_flag` bit(1) NULL DEFAULT NULL COMMENT '删除标志 true/false 删除/未删除',
|
||||||
|
`update_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '更新者',
|
||||||
|
`update_time` datetime(6) NULL DEFAULT NULL COMMENT '更新时间',
|
||||||
|
`clerk_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '店员名称',
|
||||||
|
`member_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '会员id',
|
||||||
|
`store_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '店铺id',
|
||||||
|
`department_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '部门id',
|
||||||
|
`role_ids` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '角色',
|
||||||
|
`shopkeeper` bit(1) NULL DEFAULT NULL COMMENT '是否是店主',
|
||||||
|
`is_super` bit(1) NULL DEFAULT NULL COMMENT '是否是超级管理员 超级管理员/普通管理员',
|
||||||
|
`status` bit(1) NULL DEFAULT NULL COMMENT '状态',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
|
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic;
|
||||||
|
|
||||||
|
SET FOREIGN_KEY_CHECKS = 1;
|
||||||
|
|
||||||
|
|
||||||
|
/** 店员角色**/
|
||||||
|
/*
|
||||||
|
Navicat Premium Data Transfer
|
||||||
|
|
||||||
|
Source Server : lilishop
|
||||||
|
Source Server Type : MySQL
|
||||||
|
Source Server Version : 80025
|
||||||
|
Source Host : 192.168.0.116:3306
|
||||||
|
Source Schema : zhimai1
|
||||||
|
|
||||||
|
Target Server Type : MySQL
|
||||||
|
Target Server Version : 80025
|
||||||
|
File Encoding : 65001
|
||||||
|
|
||||||
|
Date: 03/03/2022 19:30:39
|
||||||
|
*/
|
||||||
|
|
||||||
|
SET NAMES utf8mb4;
|
||||||
|
SET FOREIGN_KEY_CHECKS = 0;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for li_clerk_role
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `li_clerk_role`;
|
||||||
|
CREATE TABLE `li_clerk_role` (
|
||||||
|
`id` bigint NOT NULL COMMENT 'ID',
|
||||||
|
`clerk_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '店员唯一id',
|
||||||
|
`role_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '角色唯一id',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
|
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic;
|
||||||
|
|
||||||
|
SET FOREIGN_KEY_CHECKS = 1;
|
||||||
|
|
||||||
|
|
||||||
|
/** 店铺部门 **/
|
||||||
|
/*
|
||||||
|
Navicat Premium Data Transfer
|
||||||
|
|
||||||
|
Source Server : lilishop
|
||||||
|
Source Server Type : MySQL
|
||||||
|
Source Server Version : 80025
|
||||||
|
Source Host : 192.168.0.116:3306
|
||||||
|
Source Schema : zhimai1
|
||||||
|
|
||||||
|
Target Server Type : MySQL
|
||||||
|
Target Server Version : 80025
|
||||||
|
File Encoding : 65001
|
||||||
|
|
||||||
|
Date: 03/03/2022 19:31:39
|
||||||
|
*/
|
||||||
|
|
||||||
|
SET NAMES utf8mb4;
|
||||||
|
SET FOREIGN_KEY_CHECKS = 0;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for li_store_department
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `li_store_department`;
|
||||||
|
CREATE TABLE `li_store_department` (
|
||||||
|
`id` bigint NOT NULL COMMENT 'ID',
|
||||||
|
`create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '创建者',
|
||||||
|
`create_time` datetime(6) NULL DEFAULT NULL COMMENT '创建时间',
|
||||||
|
`delete_flag` bit(1) NULL DEFAULT NULL COMMENT '删除标志 true/false 删除/未删除',
|
||||||
|
`update_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '更新者',
|
||||||
|
`update_time` datetime(6) NULL DEFAULT NULL COMMENT '更新时间',
|
||||||
|
`title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '部门名称',
|
||||||
|
`store_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '店铺id',
|
||||||
|
`parent_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '父id',
|
||||||
|
`sort_order` decimal(20, 2) NULL DEFAULT NULL COMMENT '排序值',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
|
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic;
|
||||||
|
|
||||||
|
SET FOREIGN_KEY_CHECKS = 1;
|
||||||
|
|
||||||
|
/** 部门角色关联 **/
|
||||||
|
/*
|
||||||
|
Navicat Premium Data Transfer
|
||||||
|
|
||||||
|
Source Server : lilishop
|
||||||
|
Source Server Type : MySQL
|
||||||
|
Source Server Version : 80025
|
||||||
|
Source Host : 192.168.0.116:3306
|
||||||
|
Source Schema : zhimai1
|
||||||
|
|
||||||
|
Target Server Type : MySQL
|
||||||
|
Target Server Version : 80025
|
||||||
|
File Encoding : 65001
|
||||||
|
|
||||||
|
Date: 03/03/2022 19:32:01
|
||||||
|
*/
|
||||||
|
|
||||||
|
SET NAMES utf8mb4;
|
||||||
|
SET FOREIGN_KEY_CHECKS = 0;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for li_store_department_role
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `li_store_department_role`;
|
||||||
|
CREATE TABLE `li_store_department_role` (
|
||||||
|
`id` bigint NOT NULL COMMENT 'ID',
|
||||||
|
`create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '创建者',
|
||||||
|
`create_time` datetime(6) NULL DEFAULT NULL COMMENT '创建时间',
|
||||||
|
`delete_flag` bit(1) NULL DEFAULT NULL COMMENT '删除标志 true/false 删除/未删除',
|
||||||
|
`update_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '更新者',
|
||||||
|
`update_time` datetime(6) NULL DEFAULT NULL COMMENT '更新时间',
|
||||||
|
`role_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '角色id',
|
||||||
|
`department_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '部门id',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
|
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic;
|
||||||
|
|
||||||
|
SET FOREIGN_KEY_CHECKS = 1;
|
||||||
|
|
||||||
|
/**店铺角色菜单**/
|
||||||
|
/*
|
||||||
|
Navicat Premium Data Transfer
|
||||||
|
|
||||||
|
Source Server : lilishop
|
||||||
|
Source Server Type : MySQL
|
||||||
|
Source Server Version : 80025
|
||||||
|
Source Host : 192.168.0.116:3306
|
||||||
|
Source Schema : zhimai1
|
||||||
|
|
||||||
|
Target Server Type : MySQL
|
||||||
|
Target Server Version : 80025
|
||||||
|
File Encoding : 65001
|
||||||
|
|
||||||
|
Date: 03/03/2022 19:34:42
|
||||||
|
*/
|
||||||
|
|
||||||
|
SET NAMES utf8mb4;
|
||||||
|
SET FOREIGN_KEY_CHECKS = 0;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for li_store_menu_role
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `li_store_menu_role`;
|
||||||
|
CREATE TABLE `li_store_menu_role` (
|
||||||
|
`id` bigint NOT NULL COMMENT 'ID',
|
||||||
|
`create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '创建者',
|
||||||
|
`create_time` datetime(6) NULL DEFAULT NULL COMMENT '创建时间',
|
||||||
|
`delete_flag` bit(1) NULL DEFAULT NULL COMMENT '删除标志 true/false 删除/未删除',
|
||||||
|
`update_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '更新者',
|
||||||
|
`update_time` datetime(6) NULL DEFAULT NULL COMMENT '更新时间',
|
||||||
|
`role_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '角色id',
|
||||||
|
`menu_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '菜单',
|
||||||
|
`store_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '店铺id',
|
||||||
|
`is_super` bit(1) NULL DEFAULT NULL COMMENT '是否拥有操作数据权限,为否则只有查看权限',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
|
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic;
|
||||||
|
|
||||||
|
SET FOREIGN_KEY_CHECKS = 1;
|
||||||
|
|
||||||
|
|
||||||
|
/**店铺角色**/
|
||||||
|
/*
|
||||||
|
Navicat Premium Data Transfer
|
||||||
|
|
||||||
|
Source Server : lilishop
|
||||||
|
Source Server Type : MySQL
|
||||||
|
Source Server Version : 80025
|
||||||
|
Source Host : 192.168.0.116:3306
|
||||||
|
Source Schema : zhimai1
|
||||||
|
|
||||||
|
Target Server Type : MySQL
|
||||||
|
Target Server Version : 80025
|
||||||
|
File Encoding : 65001
|
||||||
|
|
||||||
|
Date: 03/03/2022 19:32:59
|
||||||
|
*/
|
||||||
|
|
||||||
|
SET NAMES utf8mb4;
|
||||||
|
SET FOREIGN_KEY_CHECKS = 0;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for li_store_role
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `li_store_role`;
|
||||||
|
CREATE TABLE `li_store_role` (
|
||||||
|
`id` bigint NOT NULL COMMENT 'ID',
|
||||||
|
`create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '创建者',
|
||||||
|
`create_time` datetime(6) NULL DEFAULT NULL COMMENT '创建时间',
|
||||||
|
`delete_flag` bit(1) NULL DEFAULT NULL COMMENT '删除标志 true/false 删除/未删除',
|
||||||
|
`update_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '更新者',
|
||||||
|
`update_time` datetime(6) NULL DEFAULT NULL COMMENT '更新时间',
|
||||||
|
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '角色名称',
|
||||||
|
`store_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '店铺id',
|
||||||
|
`default_role` bit(1) NULL DEFAULT NULL COMMENT '是否为注册默认角色',
|
||||||
|
`description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '备注',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
|
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = DYNAMIC;
|
||||||
|
|
||||||
|
SET FOREIGN_KEY_CHECKS = 1;
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
Navicat Premium Data Transfer
|
||||||
|
|
||||||
|
Source Server : lilishop
|
||||||
|
Source Server Type : MySQL
|
||||||
|
Source Server Version : 80025
|
||||||
|
Source Host : 192.168.0.116:3306
|
||||||
|
Source Schema : zhimai1
|
||||||
|
|
||||||
|
Target Server Type : MySQL
|
||||||
|
Target Server Version : 80025
|
||||||
|
File Encoding : 65001
|
||||||
|
|
||||||
|
Date: 02/03/2022 09:57:49
|
||||||
|
*/
|
||||||
|
|
||||||
|
SET NAMES utf8mb4;
|
||||||
|
SET FOREIGN_KEY_CHECKS = 0;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for li_menu
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `li_menu`;
|
||||||
|
CREATE TABLE `li_menu` (
|
||||||
|
`id` bigint NOT NULL COMMENT 'ID',
|
||||||
|
`create_by` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建者',
|
||||||
|
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
|
||||||
|
`delete_flag` bit(1) NULL DEFAULT NULL COMMENT '删除标志 true/false 删除/未删除',
|
||||||
|
`update_by` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新者',
|
||||||
|
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
|
||||||
|
`description` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '说明备注',
|
||||||
|
`front_route` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '前端路由',
|
||||||
|
`icon` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '图标',
|
||||||
|
`level` int NULL DEFAULT NULL COMMENT '层级',
|
||||||
|
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '菜单/权限名称',
|
||||||
|
`parent_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '父id',
|
||||||
|
`path` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '赋权API地址,正则表达式',
|
||||||
|
`sort_order` decimal(10, 2) NULL DEFAULT NULL COMMENT '排序值',
|
||||||
|
`title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '菜单标题',
|
||||||
|
`front_component` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '文件地址',
|
||||||
|
`permission` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '权限url',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
|
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Records of li_menu
|
||||||
|
-- ----------------------------
|
||||||
|
INSERT INTO `li_menu` VALUES (1348810750596767744, 'admin', '2021-01-12 09:55:17', b'0', 'admin', '2021-01-15 09:42:50', 'null', '1', 'ios-american-football', 0, 'settings', '0', '1', 2.00, '设置', 'null', NULL);
|
||||||
|
INSERT INTO `li_menu` VALUES (1348810864748945408, 'admin', '2021-01-12 09:55:45', b'0', 'admin', '2021-03-15 20:57:12', 'null', 'null', 'ios-american-football', 0, 'log', '0', 'null', 3.00, '日志', 'null', '/manager/setting/log*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1349237129847005184, 'admin', '2021-01-13 14:09:34', b'0', 'admin', '2021-01-15 09:43:16', 'null', 'Main', 'ios-american-football', 1, 'sys', '1348810750596767744', '/sys', 1.00, '系统设置', 'null', NULL);
|
||||||
|
INSERT INTO `li_menu` VALUES (1349237207378714624, 'admin', '2021-01-13 14:09:53', b'0', 'admin', '2021-07-27 16:07:49', 'null', 'Main', 'ios-american-football', 1, 'member', '1348810750596767744', '/member', 0.00, '用户管理', 'null', '/manager/permission/department*,/manager/passport/user*,/manager/permission/role*,/manager/permission/menu*,/manager/passport/user/admin/edit*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1349237928434098176, 'admin', '2021-01-13 14:13:03', b'0', 'admin', '2021-07-27 16:09:11', 'null', 'Main', 'ios-american-football', 1, 'log', '1348810864748945408', '/log', 1.00, '系统监控', 'null', '/manager/log*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1349246048900243456, 'admin', '2021-01-13 14:45:00', b'0', 'admin', '2021-07-27 16:07:57', 'null', 'sys/setting-manage/settingManage', 'ios-american-football', 2, 'setting', '1349237129847005184', 'setting', 1.00, '系统设置', 'null', '/manager/system/setting/get*,/manager/system/setting/put*,/manager/setting/setting*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1349246347597602816, 'admin', '2021-01-13 14:46:12', b'0', 'admin', '2021-07-27 16:08:03', 'null', 'sys/oss-manage/ossManage', 'ios-american-football', 2, 'oss-manage', '1349237129847005184', 'oss-manage', 3.00, 'OSS资源', '', '/manager/common/file*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1349246468775239680, 'admin', '2021-01-13 14:46:41', b'0', 'admin', '2021-07-27 16:08:14', 'null', 'region/index', 'ios-american-football', 2, 'region', '1349237129847005184', 'region', 4.00, '行政地区', 'null', '/manager/region*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1349246671158796288, 'admin', '2021-01-13 14:47:29', b'0', 'admin', '2021-07-27 16:08:09', 'null', 'logistics/index', 'ios-american-football', 2, 'logistics', '1349237129847005184', 'logistics', 5.00, '物流公司', 'null', '/manager/other/logistics*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1349246896661356544, 'admin', '2021-01-13 14:48:23', b'0', 'admin', '2021-07-27 16:08:23', 'null', 'sys/setting-manage/settingManage', 'ios-american-football', 2, 'authLogin', '1349237129847005184', 'authLogin', 6.00, '信任登录', 'null', '/manager/system/setting/get*,/manager/system/setting/put*,/manager/setting/setting*\r\n');
|
||||||
|
INSERT INTO `li_menu` VALUES (1349247081504333824, 'admin', '2021-01-13 14:49:07', b'0', 'admin', '2021-07-27 16:08:45', 'null', 'sys/setting-manage/settingManage', 'ios-american-football', 2, 'pay', '1349237129847005184', 'pay', 7.00, '支付设置', 'null', '/manager/system/setting/get*,/manager/system/setting/put*,/manager/system/setting*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1349247640584085504, 'admin', '2021-01-13 14:51:20', b'0', 'admin', '2021-07-27 16:08:56', 'null', 'sensitiveWords/index', 'ios-american-football', 2, 'sensitiveWords', '1349237129847005184', 'sensitiveWords', 8.00, '敏感词', 'null', '/manager/other/sensitiveWords*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1349254815809298432, 'admin', '2021-01-13 15:19:51', b'0', 'admin', '2021-01-15 11:15:40', 'null', 'sys/user-manage/userManage', 'ios-american-football', 2, 'user-manage', '1349237207378714624', 'user-manage', 1.00, '用户管理', 'null', NULL);
|
||||||
|
INSERT INTO `li_menu` VALUES (1349255214977015808, 'admin', '2021-01-13 15:21:26', b'0', 'admin', '2021-01-15 11:16:21', 'null', 'sys/department-manage/departmentManage', 'ios-american-football', 2, 'department-manage', '1349237207378714624', 'department-manage', 3.00, '部门管理', 'null', '/manager/permission/department*,/manager/permission/departmentRole*,');
|
||||||
|
INSERT INTO `li_menu` VALUES (1349255404425338880, 'admin', '2021-01-13 15:22:11', b'0', 'admin', '2021-02-24 09:22:21', 'null', 'sys/role-manage/roleManage', 'ios-american-football', 2, 'role-manage', '1349237207378714624', 'role-manage', 4.00, '角色权限', 'null', '/manager/permission/role*,/manager/permission/roleMenu*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1349256082979840000, 'admin', '2021-01-13 15:24:53', b'0', 'admin', '2021-01-15 11:18:14', 'null', 'sys/log-manage/logManage', 'ios-american-football', 2, 'log-manage', '1349237928434098176', 'log-manage', 2.00, '日志管理', 'null', NULL);
|
||||||
|
INSERT INTO `li_menu` VALUES (1357584224760102912, 'admin', '2021-02-05 06:57:57', b'0', 'admin', '2021-07-27 16:09:02', 'null', 'sys/app-version/appVersion', 'ios-american-football', 2, 'appVersion', '1349237129847005184', 'appVersion', 9.00, 'APP版本', 'null', '/manager/other/appVersion*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1357873097859923969, 'admin', '2021-02-24 09:53:02', b'0', 'admin', '2021-02-24 09:53:12', NULL, 'sys/menu-manage/menuManage', 'ios-american-football', 2, 'menuManage', '1349237207378714624', 'menu-manage', 2.00, '菜单管理', NULL, NULL);
|
||||||
|
INSERT INTO `li_menu` VALUES (1367038467288072192, 'admin', '2021-03-03 09:05:44', b'0', 'admin', '2021-03-03 09:09:27', 'null', 'null', 'ios-person-add', 0, 'member', '0', 'null', 0.00, '会员', 'null', NULL);
|
||||||
|
INSERT INTO `li_menu` VALUES (1367039534616805376, 'admin', '2021-03-03 09:09:58', b'0', 'admin', '2021-05-18 10:51:12', 'null', 'null', 'md-reorder', 0, 'order', '0', 'null', 0.00, '订单', 'null', NULL);
|
||||||
|
INSERT INTO `li_menu` VALUES (1367039950368800768, 'admin', '2021-03-03 09:11:37', b'0', NULL, NULL, NULL, NULL, 'ios-share', 0, 'goods', '0', NULL, 0.20, '商品', NULL, NULL);
|
||||||
|
INSERT INTO `li_menu` VALUES (1367040067201138688, 'admin', '2021-03-03 09:12:05', b'0', 'admin', '2021-12-02 19:45:22', NULL, 'null', 'ios-hammer', 0, 'promotions', '0', 'null', 0.30, '促销', NULL, 'null');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367040599596728320, 'admin', '2021-03-03 09:14:12', b'0', 'admin', '2021-03-03 09:52:13', 'null', 'null', 'ios-color-palette', 0, 'operate', '0', 'null', 0.50, '运营', 'null', NULL);
|
||||||
|
INSERT INTO `li_menu` VALUES (1367040819248234496, 'admin', '2021-03-03 09:15:04', b'0', 'lili_ftyy', '2022-03-01 15:13:04', NULL, 'null', 'ios-stats', 0, 'statistics', '0', 'null', 0.70, '统计', NULL, 'null');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367041332861730816, 'admin', '2021-03-03 09:17:07', b'0', NULL, NULL, NULL, 'Main', 'ios-aperture', 1, '/', '1367038467288072192', '/', 0.00, '会员管理', NULL, NULL);
|
||||||
|
INSERT INTO `li_menu` VALUES (1367041461194850304, 'admin', '2021-03-03 09:17:37', b'0', 'admin', '2021-07-27 16:02:17', NULL, 'member/list/index', 'ios-aperture', 2, 'memberList', '1367041332861730816', 'memberList', 0.00, '会员列表', NULL, '/manager/common/file*,/manager/passport/member*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367041575619657728, 'admin', '2021-03-03 09:18:05', b'0', 'admin', '2021-07-27 15:59:50', NULL, 'member/list/memberRecycle', 'ios-aperture', 2, 'memberRecycle', '1367041332861730816', 'memberRecycle', 1.00, '回收站', NULL, '/manager/member*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367042490443497472, 'admin', '2021-03-03 09:21:43', b'0', NULL, NULL, NULL, 'Main', 'ios-aperture', 1, '/', '1367038467288072192', '/', 1.00, '预存款', NULL, NULL);
|
||||||
|
INSERT INTO `li_menu` VALUES (1367042664410644480, 'admin', '2021-03-03 09:22:24', b'0', 'admin', '2021-07-27 16:02:44', 'null', 'member/advance/walletLog', 'ios-aperture', 2, 'walletLog', '1367042490443497472', 'walletLog', 0.00, '会员资金', 'null', '/manager/wallet/log*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367042804944994304, 'admin', '2021-03-03 09:22:58', b'0', 'admin', '2021-07-27 16:02:48', NULL, 'member/advance/recharge', 'ios-alert', 2, 'recharge', '1367042490443497472', 'recharge', 1.00, '充值记录', NULL, '/manager/wallet/recharge*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367042804944994305, 'admin', '2021-03-03 09:22:58', b'0', 'admin', '2021-07-27 16:02:52', NULL, 'member/advance/withdrawApply', 'ios-alert', 2, 'withdrawApply', '1367042490443497472', 'withdrawApply', 1.00, '提现申请', NULL, '/manager/wallet/withdrawApply*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367042917113266176, 'admin', '2021-03-03 09:23:25', b'0', NULL, NULL, NULL, 'Main', 'ios-aperture', 1, 'commont', '1367038467288072192', '/', 0.00, '评价', NULL, NULL);
|
||||||
|
INSERT INTO `li_menu` VALUES (1367043020976816128, 'admin', '2021-03-03 09:23:49', b'0', 'admin', '2021-07-27 16:02:35', NULL, 'goods/goods-review/index', 'md-aperture', 2, 'goodsReview', '1367042917113266176', 'goodsReview', 0.00, '会员评价', NULL, '/manager/memberEvaluation*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367043443917848576, 'admin', '2021-03-03 09:25:30', b'0', 'admin', '2021-07-27 16:03:00', NULL, 'Main', 'md-aperture', 1, 'order', '1367039534616805376', '/', 0.00, '订单', NULL, '/manager/orders*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367043505771249664, 'admin', '2021-03-03 09:25:45', b'0', NULL, NULL, NULL, 'Main', 'md-aperture', 1, 'aftersale', '1367039534616805376', '/', 0.00, '售后', NULL, NULL);
|
||||||
|
INSERT INTO `li_menu` VALUES (1367043642379730944, 'admin', '2021-03-03 09:26:17', b'0', NULL, NULL, NULL, 'order/order/orderList', 'ios-aperture', 2, 'orderList', '1367043443917848576', 'orderList', 0.00, '商品订单', NULL, '/manager/order/order*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367043791105556480, 'admin', '2021-03-03 09:26:53', b'0', NULL, NULL, NULL, 'order/order/fictitiousOrderList', 'ios-aperture', 2, 'fictitiousOrderList', '1367043443917848576', 'fictitiousOrderList', 1.00, '虚拟订单', NULL, '/manager/order/order*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367043980407078912, 'admin', '2021-03-03 09:27:38', b'0', 'admin', '2021-07-27 16:03:43', NULL, 'order/after-order/afterSaleOrder', 'md-alert', 2, 'afterSaleOrder', '1367043505771249664', 'afterSaleOrder', 0.00, '售后管理', NULL, '/manager/order/afterSale*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367044121163726848, 'admin', '2021-03-03 09:28:12', b'0', 'admin', '2021-07-27 16:03:48', NULL, 'order/after-order/orderComplaint', 'md-alert', 2, 'orderComplaint', '1367043505771249664', 'orderComplaint', 2.00, '交易投诉', NULL, '/manager/order/complain*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367044247978508288, 'admin', '2021-03-03 09:28:42', b'0', 'admin', '2021-07-27 16:03:52', NULL, 'order/after-order/afterSale', 'md-aperture', 2, 'afterSaleReason', '1367043505771249664', 'afterSaleReason', 3.00, '售后原因', NULL, '/manager/order/afterSaleReason*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367044376391319552, 'admin', '2021-03-03 09:29:12', b'0', 'admin', '2021-07-27 16:04:08', NULL, 'Main', 'md-aperture', 1, 'goodsManager', '1367039950368800768', '/', 0.00, '商品管理', NULL, '/manager/goods*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367044657296441344, 'admin', '2021-03-03 09:30:19', b'0', NULL, NULL, NULL, 'Main', 'ios-aperture', 1, 'association', '1367039950368800768', '/', 1.00, '关联管理', NULL, NULL);
|
||||||
|
INSERT INTO `li_menu` VALUES (1367045529720061952, 'admin', '2021-03-03 09:33:47', b'0', 'admin', '2021-07-27 15:38:46', NULL, 'goods/goods-info/goods', 'md-aperture', 2, 'managerGoods', '1367044376391319552', 'managerGoods', 0.00, '平台商品', NULL, 'null');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367045630710513664, 'admin', '2021-03-03 09:34:11', b'0', 'admin', '2021-07-27 15:38:56', NULL, 'goods/goods-info/goodsApply', 'ios-alert', 2, 'applyGoods', '1367044376391319552', 'applyGoods', 1.00, '商品审核', NULL, 'null');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367045794284175360, 'admin', '2021-03-03 09:34:50', b'0', 'admin', '2021-07-27 16:04:18', NULL, 'goods/goods-manage/category', 'md-alert', 2, 'goodsCategory', '1367044657296441344', 'goodsCategory', 0.00, '商品分类', NULL, '/manager/goods/category*,/manager/goods/brand*,/manager/goods/spec*,/manager/goods/parameters*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367045921434501120, 'admin', '2021-03-03 09:35:21', b'0', 'admin', '2021-07-27 16:04:23', NULL, 'goods/goods-manage/brand', 'md-alert', 2, 'goodsBrand', '1367044657296441344', 'goodsBrand', 1.00, '品牌列表', NULL, '/manager/goods/brand*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367046068369358848, 'admin', '2021-03-03 09:35:56', b'0', 'admin', '2021-07-27 16:04:27', NULL, 'goods/goods-manage/spec', 'md-aperture', 2, 'goodsSpec', '1367044657296441344', 'goodsSpec', 2.00, '规格列表', NULL, '/manager/goods/spec*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367046266214678528, 'admin', '2021-03-03 09:36:43', b'0', 'admin', '2021-07-27 16:04:32', NULL, 'goods-unit/index', 'md-alert', 2, 'goodsUnit', '1367044657296441344', 'goodsUnit', 4.00, '计量单位', NULL, '/manager/goods/goodsUnit*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367048084701315072, 'admin', '2021-03-03 09:43:57', b'0', 'admin', '2021-03-03 09:52:17', 'null', 'null', 'ios-pricetags', 0, 'shop', '0', 'null', 0.40, '店铺', 'null', NULL);
|
||||||
|
INSERT INTO `li_menu` VALUES (1367048684339986432, 'admin', '2021-03-03 09:46:20', b'0', NULL, NULL, NULL, 'Main', 'md-aperture', 1, 'shopManager', '1367048084701315072', '/', 0.00, '店铺管理', NULL, NULL);
|
||||||
|
INSERT INTO `li_menu` VALUES (1367048754229673984, 'admin', '2021-03-03 09:46:36', b'0', NULL, NULL, NULL, 'Main', 'md-aperture', 1, 'bill', '1367048084701315072', '/', 0.00, ' 店铺结算', NULL, NULL);
|
||||||
|
INSERT INTO `li_menu` VALUES (1367048832210173952, 'admin', '2021-03-03 09:46:55', b'0', 'admin', '2021-07-27 16:05:30', NULL, 'seller/shop/shopList', 'md-aperture', 2, 'shopList', '1367048684339986432', 'shopList', 0.00, '店铺列表', NULL, '/manager/order/order*,/manager/store*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367048967635861504, 'admin', '2021-03-03 09:47:27', b'0', 'admin', '2021-07-27 16:05:32', NULL, 'seller/shop/shopAuditList', 'md-alert', 2, 'shopAuth', '1367048684339986432', 'shopAuth', 1.00, '店铺审核', NULL, '/manager/store*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367049068122996736, 'admin', '2021-03-03 09:47:51', b'0', 'admin', '2021-07-27 16:05:36', NULL, 'seller/bill/bill', 'md-alert', 2, 'billList', '1367048754229673984', 'billList', 0.00, '店铺结算', NULL, '/manager/order/bill*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367049214198022144, 'admin', '2021-03-03 09:48:26', b'0', 'admin', '2021-12-02 19:45:28', NULL, 'Main', 'md-aperture', 1, 'promotionsManager', '1367040067201138688', '/', 0.00, '促销管理', NULL, 'null');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367049384792948736, 'admin', '2021-03-03 09:49:07', b'0', 'admin', '2021-12-02 19:54:12', NULL, 'promotions/coupon/coupon', 'md-alert', 2, 'promotions/coupon', '1367049214198022144', 'promotions/coupon', 0.00, '优惠券', NULL, '/manager/promotion/coupon*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367049500782231552, 'admin', '2021-03-03 09:49:34', b'0', 'admin', '2021-12-02 19:41:37', 'null', 'promotions/full-discount/full-discount', 'md-alert', 2, 'promotions/full-discount', '1367049214198022144', 'promotions/full-discount', 1.00, '满额活动', 'null', '/manager/promotion/fullDiscount*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367049611578966016, 'admin', '2021-03-03 09:50:01', b'0', 'admin', '2021-12-02 20:16:10', 'null', 'promotions/seckill/seckill', 'md-alert', 2, 'promotions/seckill', '1367049214198022144', 'promotions/seckill', 2.00, '秒杀活动', 'null', '/manager/promotion/seckill*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367049712657498112, 'admin', '2021-03-03 09:50:25', b'0', 'admin', '2021-12-02 20:22:04', 'null', 'promotions/pintuan/pintuan', 'md-alert', 2, 'promotions/pintuan', '1367049214198022144', 'promotions/pintuan', 3.00, '拼团活动', 'null', '/manager/promotion/pintuan*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367050250249830400, 'admin', '2021-03-03 09:52:33', b'0', 'admin', '2021-03-22 20:38:14', 'null', 'Main', 'md-aperture', 1, 'document', '1367040599596728320', '/', 2.00, '文章管理', 'null', NULL);
|
||||||
|
INSERT INTO `li_menu` VALUES (1367050320584114176, 'admin', '2021-03-03 09:52:50', b'0', 'admin', '2021-07-27 16:05:49', NULL, 'Main', 'md-aperture', 1, 'floor', '1367040599596728320', '/', 0.00, '楼层装修', NULL, '/manager/pageData*,/manager/file*,/manager/article-category*,/manager/article*,/manager/promotion*,/manager/goods*,/manager/store*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367050530030878720, 'admin', '2021-03-03 09:53:40', b'0', 'admin', '2021-03-04 01:05:57', 'null', 'lili-floor-renovation/floorList', 'md-alert', 2, 'pcFloor', '1367050320584114176', 'pcFloor', 0.00, 'PC端', 'null', '/manager/other/pageData*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367050673312497664, 'admin', '2021-03-03 09:54:14', b'0', 'admin', '2021-03-04 01:06:04', 'null', 'lili-floor-renovation/wap/wapList', 'md-aperture', 2, 'wapList', '1367050320584114176', 'wapList', 1.00, '移动端', 'null', '/manager/other/pageData*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367050829697122304, 'admin', '2021-03-03 09:54:51', b'0', 'admin', '2021-07-27 16:06:32', 'null', 'page/article-manage/hotWords', 'md-aperture', 2, 'hotKeyWord', '1367050250249830400', 'hotKeyWord', 0.00, '搜索热词', 'null', '/manager/hotwords*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367050939084570624, 'admin', '2021-03-03 09:55:17', b'0', 'admin', '2021-07-27 16:06:38', NULL, 'page/article-manage/ArticleCategory', 'md-aperture', 2, 'article-category', '1367050250249830400', 'article-category', 1.00, '文章分类', NULL, '/manager/other/articleCategory*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367051048232943616, 'admin', '2021-03-03 09:55:43', b'0', 'admin', '2021-07-27 16:06:42', NULL, 'page/article-manage/articleList', 'md-alert', 2, 'articleList', '1367050250249830400', 'articleList', 3.00, '文章管理', NULL, '/manager/other/article*,/manager/other/articleCategory*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367052616634204160, 'admin', '2021-03-03 10:01:57', b'0', 'admin', '2021-07-27 16:07:38', NULL, 'Main', 'md-aperture', 1, 'statistics', '1367040819248234496', '/', 0.00, '统计', NULL, '/manager/store*,/manager/member*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367052705725415424, 'admin', '2021-03-03 10:02:18', b'0', 'admin', '2021-03-11 22:11:05', 'null', 'statistics/member', 'md-alert', 2, 'memberStatistics', '1367052616634204160', 'memberStatistics', 0.00, '会员统计', 'null', NULL);
|
||||||
|
INSERT INTO `li_menu` VALUES (1367052805503713280, 'admin', '2021-03-03 10:02:42', b'0', 'admin', '2021-03-11 22:11:14', 'null', 'statistics/order', 'md-alert', 2, 'orderStatistics', '1367052616634204160', 'orderStatistics', 1.00, '订单统计', 'null', NULL);
|
||||||
|
INSERT INTO `li_menu` VALUES (1367052915314786304, 'admin', '2021-03-03 10:03:08', b'0', 'admin', '2021-03-11 22:11:23', 'null', 'statistics/goods', 'md-alert', 2, 'goodsStatistics', '1367052616634204160', 'goodsStatistics', 2.00, '商品统计', 'null', NULL);
|
||||||
|
INSERT INTO `li_menu` VALUES (1367053087121866752, 'admin', '2021-03-03 10:03:49', b'0', 'admin', '2021-03-11 22:11:34', 'null', 'statistics/traffic', 'md-alert', 2, 'trafficStatistics', '1367052616634204160', 'trafficStatistics', 4.00, '流量统计', 'null', NULL);
|
||||||
|
INSERT INTO `li_menu` VALUES (1372807928452481024, 'admin', '2021-03-19 02:11:30', b'0', NULL, NULL, NULL, 'Main', 'ios-aperture', 1, 'flow', '1367039534616805376', '/', 3.00, '流水', NULL, NULL);
|
||||||
|
INSERT INTO `li_menu` VALUES (1372808148565360640, 'admin', '2021-03-19 02:12:23', b'0', 'admin', '2021-07-27 16:03:57', NULL, 'order/flow/paymentLog', 'md-alert', 2, 'paymentLog', '1372807928452481024', 'paymentLog', 1.00, '收款记录', NULL, '/manager/order/paymentLog*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1372808352295288832, 'admin', '2021-03-19 02:13:11', b'0', 'admin', '2021-07-27 16:04:01', NULL, 'order/flow/refundLog', 'ios-aperture', 2, 'refundLog', '1372807928452481024', 'refundLog', 2.00, '退款流水', NULL, '/manager/order/refundLog*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1373166892465782784, 'admin', '2021-03-20 01:57:54', b'0', 'admin', '2021-03-22 20:13:48', 'null', 'Main', 'ios-aperture', 1, '/', '1367038467288072192', '/', 0.00, '积分', 'null', NULL);
|
||||||
|
INSERT INTO `li_menu` VALUES (1373167227385151488, 'admin', '2021-03-20 01:59:14', b'0', 'admin', '2021-07-27 16:02:40', 'null', 'member/point/point', 'ios-aperture', 2, 'point', '1373166892465782784', 'point', 0.00, '积分历史', 'null', '/manager/member/memberPointsHistory*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1373791578371391488, 'admin', '2021-03-21 19:20:11', b'0', 'admin', '2021-07-27 16:05:38', NULL, 'seller/bill/accountStatementBill', 'md-alert', 2, 'accountStatementBill', '1367048754229673984', 'accountStatementBill', 0.00, '商家对账', NULL, '/manager/order/bill*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1374154349697040384, 'admin', '2021-03-22 19:21:42', b'0', 'admin', '2021-07-27 16:06:55', 'null', 'Main', 'md-aperture', 1, 'feedback', '1367040599596728320', '/', 3.00, '意见反馈', 'null', '/manager/other/feedback*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1374155741123837952, 'admin', '2021-03-22 19:27:14', b'0', 'admin', '2021-07-27 15:41:40', 'null', 'page/feedback/feedback', 'md-aperture', 2, 'feedback', '1374154349697040384', 'feedback', 0.00, '意见反馈', 'null', 'null');
|
||||||
|
INSERT INTO `li_menu` VALUES (1374173575405109248, 'admin', '2021-03-22 20:38:06', b'0', 'admin', '2021-03-22 20:52:58', 'null', 'Main', 'ios-analytics', 1, 'distributionManager', '1367040599596728320', '/', 1.00, '分销管理', 'null', NULL);
|
||||||
|
INSERT INTO `li_menu` VALUES (1374177618072436736, 'admin', '2021-03-22 20:54:10', b'0', 'admin', '2021-07-27 16:05:58', 'null', 'distribution/distributionSetting', 'ios-basketball', 2, 'distributionSetting', '1374173575405109248', 'distributionSetting', 0.00, '分销设置', 'null', '/manager/system/setting/put/DISTRIBUTION_SETTING*,/manager/system/setting/get/DISTRIBUTION_SETTING*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1374177789581721600, 'admin', '2021-03-22 20:54:51', b'0', 'admin', '2021-07-27 16:06:15', 'null', 'distribution/distributionGoods', 'ios-chatbubbles', 2, 'distributionGoods', '1374173575405109248', 'distributionGoods', 3.00, '分销商品', 'null', '/manager/distribution/goods*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1374177910411231232, 'admin', '2021-03-22 20:55:19', b'0', 'admin', '2021-07-27 16:06:20', 'null', 'distribution/distributionOrder', 'ios-cloudy', 2, 'distributionOrder', '1374173575405109248', 'distributionOrder', 4.00, '分销订单', 'null', '/manager/distribution/order*,/manager/store*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1374178079181635584, 'admin', '2021-03-22 20:56:00', b'0', 'admin', '2021-07-27 16:06:05', 'null', 'distribution/distributionApply', 'md-egg', 2, 'distributionApply', '1374173575405109248', 'distributionApply', 1.00, '分销申请', 'null', '/manager/distribution*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1374178303975358464, 'admin', '2021-03-22 20:56:53', b'0', 'admin', '2021-07-27 16:06:08', 'null', 'distribution/distribution', 'md-person', 2, 'distribution', '1374173575405109248', 'distribution', 2.00, '分销员', 'null', '/manager/distribution*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1374916594269945856, 'admin', '2021-03-24 21:50:35', b'0', 'admin', '2021-07-27 16:08:51', NULL, 'sys/slider/slider', 'ios-aperture', 2, 'slider', '1349237129847005184', 'slider', 7.00, '验证码', NULL, '/manager/other/verificationSource*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1376450531517530112, 'admin', '2021-03-29 03:25:55', b'0', NULL, NULL, NULL, 'Main', 'md-basketball', 1, 'notice', '1367040599596728320', '/', 5.00, '站内信', NULL, NULL);
|
||||||
|
INSERT INTO `li_menu` VALUES (1376450662098796544, 'admin', '2021-03-29 03:26:26', b'0', 'admin', '2021-07-27 16:07:23', NULL, 'sys/message/noticeMessageTemplate', 'ios-american-football', 2, 'noticeMessageTemplate', '1376450531517530112', 'noticeMessageTemplate', 1.00, '站内信', NULL, '/manager/other/message*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1376450766817984512, 'admin', '2021-03-29 03:26:51', b'0', 'admin', '2021-03-29 03:27:25', 'null', 'Main', 'md-checkmark', 1, 'sms', '1367040599596728320', '/', 6.00, '短信管理', 'null', NULL);
|
||||||
|
INSERT INTO `li_menu` VALUES (1376450876423536640, 'admin', '2021-03-29 03:27:17', b'0', 'admin', '2021-07-27 16:07:29', NULL, 'sys/message/sms', 'ios-timer', 2, 'sms', '1376450766817984512', 'sms', 1.00, '短信', NULL, '/manager/sms/sms*,/manager/passport/member*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1384035281702748160, 'admin', '2021-04-19 14:45:00', b'0', 'admin', '2021-07-27 16:08:18', 'null', 'member/message-manage/weChatMessageManager', 'md-aperture', 2, 'message-manage', '1349237129847005184', 'message-manage', 5.00, '微信消息', 'null', '/manager/wechat/wechatMessage*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1403988156444962818, 'admin', '2021-06-13 16:10:36', b'0', 'admin', '2021-12-02 19:54:37', 'null', 'promotions/coupon-activity/coupon', '', 2, 'promotions/coupon-activity', '1367049214198022144', 'promotions/coupon-activity', 0.00, '券活动', 'null', '/manager/promotion/couponActivity*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1407601962899230721, 'admin', '2021-06-23 15:30:35', b'0', 'admin', '2021-07-27 16:05:08', NULL, 'Main', '', 1, 'liveManage', '1367040067201138688', '/', 2.00, '直播管理', NULL, '/manager/broadcast*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1407602049759072258, 'admin', '2021-06-23 15:30:55', b'0', 'admin', '2021-12-07 10:54:54', NULL, 'promotions/live/live', '', 2, 'promotions/live', '1407601962899230721', 'promotions/live', 1.00, '直播管理', NULL, 'null');
|
||||||
|
INSERT INTO `li_menu` VALUES (1407602441964244994, 'admin', '2021-06-23 15:32:29', b'0', NULL, NULL, NULL, 'Main', '', 1, 'pointManage', '1367040067201138688', '/', 3.00, '积分活动', NULL, NULL);
|
||||||
|
INSERT INTO `li_menu` VALUES (1407602516912263170, 'admin', '2021-06-23 15:32:47', b'0', 'admin', '2021-12-03 19:18:30', NULL, 'promotions/points-goods/points-goods', '', 2, 'promotions/points-goods', '1407602441964244994', 'promotions/points-goods', 1.00, '积分商品', NULL, '/manager/promotion/pointsGoods*,/manager/goods*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1407602673334636546, 'admin', '2021-06-23 15:33:24', b'0', 'admin', '2021-12-03 19:19:23', NULL, 'promotions/points-goods-category/points-goods-category', '', 2, 'promotions/points-goods-category', '1407602441964244994', 'promotions/points-goods-category', 2.00, '积分分类', NULL, '/manager/promotion/pointsGoodsCategory*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1410862675914764290, 'admin', '2021-07-02 15:27:29', b'0', 'admin', '2021-07-27 16:06:26', 'null', 'distribution/distributionCash', '', 2, 'distributionCash', '1374173575405109248', 'distributionCash', 5.00, '分销提现', 'null', '/manager/distribution/cash*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1419926569920536578, 'admin', '2021-07-27 15:44:10', b'0', 'admin', '2021-07-27 16:07:10', NULL, 'customWords/index', NULL, 2, 'customWords', '1367050250249830400', 'customWords', 4.00, 'ES分词', NULL, '/manager/other/customWords*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1430799171593535490, 'admin', '2021-08-26 15:48:00', b'0', 'admin', '2021-12-02 20:21:34', NULL, 'promotions/kanjia/kanjia-activity-goods', NULL, 2, 'promotions/kanjia', '1367049214198022144', 'promotions/kanjia', 6.00, '砍价活动', NULL, '/manager/promotion/kanJiaGoods*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1495665663207432193, 'admin', '2022-02-21 15:44:17', b'0', 'admin', '2022-02-21 15:45:44', NULL, 'distribution/distrbutionGrade', NULL, 2, 'distrbutionGrade', '1374173575405109248', 'distrbutionGrade', 0.00, '分销等级', NULL, '/manager/distrbutionGrade*');
|
||||||
|
|
||||||
|
SET FOREIGN_KEY_CHECKS = 1;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
Navicat Premium Data Transfer
|
||||||
|
|
||||||
|
Source Server : lilishop
|
||||||
|
Source Server Type : MySQL
|
||||||
|
Source Server Version : 80025
|
||||||
|
Source Host : 192.168.0.116:3306
|
||||||
|
Source Schema : zhimai1
|
||||||
|
|
||||||
|
Target Server Type : MySQL
|
||||||
|
Target Server Version : 80025
|
||||||
|
File Encoding : 65001
|
||||||
|
|
||||||
|
Date: 01/03/2022 15:36:03
|
||||||
|
*/
|
||||||
|
|
||||||
|
SET NAMES utf8mb4;
|
||||||
|
SET FOREIGN_KEY_CHECKS = 0;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for li_store_menu
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `li_store_menu`;
|
||||||
|
CREATE TABLE `li_store_menu` (
|
||||||
|
`id` bigint NOT NULL COMMENT 'ID',
|
||||||
|
`create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '创建者',
|
||||||
|
`create_time` datetime(6) NULL DEFAULT NULL COMMENT '创建时间',
|
||||||
|
`delete_flag` bit(1) NULL DEFAULT NULL COMMENT '删除标志 true/false 删除/未删除',
|
||||||
|
`update_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '更新者',
|
||||||
|
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
|
||||||
|
`description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '说明备注',
|
||||||
|
`front_route` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '前端路由',
|
||||||
|
`icon` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '图标',
|
||||||
|
`level` int NULL DEFAULT NULL COMMENT '层级',
|
||||||
|
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '菜单/权限名称',
|
||||||
|
`parent_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '父id',
|
||||||
|
`path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '赋权API地址,正则表达式',
|
||||||
|
`sort_order` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '排序值',
|
||||||
|
`title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '菜单标题',
|
||||||
|
`permission` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '权限url',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
|
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = DYNAMIC;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Records of li_store_menu
|
||||||
|
-- ----------------------------
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1348810750596767744, NULL, '2022-01-11 22:35:33.000000', b'0', NULL, '2022-01-11 22:36:52', NULL, 'Main', 'ios-american-football', 0, 'goods', '0', '/', '1', '商品', NULL);
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1348810864748945408, NULL, '2022-01-11 22:35:37.000000', b'0', NULL, '2022-01-11 22:36:55', NULL, 'Main', 'ios-american-football', 1, 'Main', '1348810750596767744', '/', '1.1', '商品管理', '');
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1349237129847005184, NULL, '2022-01-11 22:35:40.000000', b'0', NULL, '2022-01-11 22:36:59', NULL, 'goods-operation', 'ios-american-football', 2, 'goods-operation', '1348810864748945408', '/goods-operation', '1.11', '商品发布', '/store/goods/category*,/store/goods/categorySpec*,/store/goods/categoryParameters*,/store/goods/draftGoods*,/store/goods/label*,/store/goods/goods*,/store/goods/goodsUnit*,/store/goods/spec*');
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1349237207378714624, NULL, '2022-01-11 22:35:42.000000', b'0', NULL, '2022-01-11 22:37:02', NULL, 'goods/goods-seller/goods', 'ios-american-football', 2, 'goods', '1348810864748945408', 'goods', '1.12', '商品列表', NULL);
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1349237928434098176, NULL, '2022-01-11 22:35:45.000000', b'0', NULL, '2022-01-11 22:37:05', NULL, 'goods/goods-seller/draftGoods', 'ios-american-football', 2, 'template-goods', '1348810864748945408', 'template-goods', '1.13', '商品模板', NULL);
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1349246048900243456, NULL, '2022-01-11 22:35:48.000000', b'0', NULL, '2022-01-11 22:37:08', NULL, 'goods/goods-manage/category', 'ios-american-football', 2, 'category', '1348810864748945408', 'category', '1.14', '店铺分类', NULL);
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1349246347597602816, NULL, '2022-01-11 22:35:51.000000', b'0', NULL, '2022-01-11 22:37:11', NULL, 'Main', 'ios-american-football', 0, 'order', '0', '/', '2', '订单', NULL);
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1349246468775239680, NULL, '2022-01-11 22:38:28.000000', b'0', NULL, '2022-01-11 22:38:31', NULL, 'Main', 'ios-american-football', 1, 'Main', '1349246347597602816', '/', '2.1', '订单管理', NULL);
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1349246671158796288, NULL, '2022-01-11 22:38:42.000000', b'0', NULL, '2022-01-11 22:38:35', NULL, 'order/order/orderList', 'ios-american-football', 2, 'orderList', '1349246468775239680', 'orderList', '2.11', '商品订单', '/store/order/order*');
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1349246896661356544, NULL, '2022-01-11 22:40:27.000000', b'0', NULL, '2022-01-11 22:40:34', NULL, 'order/order/virtualOrderList', 'ios-american-football', 2, 'virtualOrderList', '1349246468775239680', 'virtualOrderList', '2.12', '虚拟订单', '/store/order/order*');
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1349247081504333824, NULL, '2022-01-11 22:41:47.000000', b'0', NULL, '2022-01-11 22:41:50', NULL, 'Main', 'ios-american-football', 1, 'Main', '1349246347597602816', '/', '2.2', '评价管理', NULL);
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1349247640584085504, NULL, '2022-01-11 22:43:29.000000', b'0', NULL, '2022-01-11 22:45:47', NULL, 'member/memberComment', 'ios-american-football', 2, 'memberComment', '1349247081504333824', 'memberComment', '2.21', '评价管理', '/store/member/evaluation*');
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1349254815809298432, NULL, '2022-01-11 22:45:35.000000', b'0', NULL, '2022-01-11 22:45:50', NULL, 'Main', 'ios-american-football', 1, 'Main', '1349246347597602816', '/', '2.3', '售后管理', NULL);
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1349255214977015808, NULL, '2022-01-11 22:49:22.000000', b'0', NULL, '2022-01-11 22:49:27', NULL, 'order/after-order/returnGoodsOrder', 'ios-american-football', 2, 'returnGoodsOrder', '1349254815809298432', 'returnGoodsOrder', '2.31', '退货管理', '/store/order/afterSale*');
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1349255404425338880, NULL, '2022-01-11 22:51:20.000000', b'0', NULL, '2022-01-11 22:51:22', NULL, 'order/after-order/returnMoneyOrder', 'ios-american-football', 2, 'returnMoneyOrder', '1349254815809298432', 'returnMoneyOrder', '2.32', '退款管理', '/store/order/afterSale*');
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1349256082979840000, NULL, '2022-01-11 22:52:50.000000', b'0', NULL, '2022-01-11 22:52:55', NULL, 'order/after-order/orderComplaint', 'ios-american-football', 2, 'orderComplaint', '1349254815809298432', 'orderComplaint', '2.33', '投诉管理', '/store/order/complain*');
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1357584224760102912, NULL, '2022-01-11 23:02:20.000000', b'0', NULL, '2022-01-11 23:02:25', NULL, 'Main', 'ios-american-football', 0, 'bill', '0', '/', '3', '财务', NULL);
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1357873097859923969, NULL, '2022-01-11 23:04:13.000000', b'0', NULL, '2022-01-11 23:04:17', NULL, 'Main', 'ios-american-football', 1, 'Main', '1357584224760102912', '/', '3.1', '财务管理', '');
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1367038467288072192, NULL, '2022-01-11 23:06:11.000000', b'0', NULL, '2022-01-11 23:06:16', NULL, 'shop/bill/accountStatementBill', 'ios-american-football', 2, 'accountStatementBill', '1357873097859923969', 'accountStatementBill', '3.11', '财务对账', '/store/order/bill*');
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1367039534616805376, NULL, '2022-01-11 23:07:54.000000', b'0', NULL, '2022-01-11 23:07:57', NULL, 'shop/bill/storeBill', 'ios-american-football', 2, 'storeBill', '1357873097859923969', 'storeBill', '3.12', '店铺结算', '/store/order/bill*');
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1367039950368800768, NULL, '2022-01-11 23:09:26.000000', b'0', NULL, '2022-01-11 23:09:29', NULL, 'Main', 'ios-american-football', 1, 'Main', '1357584224760102912', '/', '3.2', '发票管理', NULL);
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1367040067201138688, NULL, '2022-01-11 23:11:14.000000', b'0', NULL, '2022-01-11 23:11:18', NULL, 'order/receiptManager/receipt', 'ios-american-football', 2, 'receipt', '1367039950368800768', 'receipt', '3.21', '发票管理', '/store/trade/receipt*');
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1367040599596728320, NULL, '2022-01-11 23:12:49.000000', b'0', NULL, '2022-01-11 23:12:52', NULL, 'Main', 'ios-american-football', 0, 'promotion', '0', '/', '4', '营销', NULL);
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1367040819248234496, NULL, '2022-01-11 23:14:35.000000', b'0', NULL, '2022-01-11 23:14:38', NULL, 'Main', 'ios-american-football', 1, 'Main', '1367040599596728320', '/', '4.1', '平台活动', NULL);
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1367041332861730816, NULL, '2022-01-11 23:15:42.000000', b'0', NULL, '2022-01-11 23:15:48', NULL, 'promotion/pintuan/pintuan', 'ios-american-football', 2, 'pintuan', '1367040819248234496', 'pintuan', '4.11', '拼团活动', '/store/promotion/pintuan*');
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1367041461194850304, NULL, '2022-01-11 23:17:32.000000', b'0', NULL, '2022-01-11 23:17:44', NULL, 'promotion/seckill/seckill', 'ios-american-football', 2, 'seckill', '1367040819248234496', 'seckill', '4.12', '秒杀活动', '/store/promotion/seckill*');
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1367041575619657728, NULL, '2022-01-11 23:20:19.000000', b'0', NULL, '2022-01-11 23:20:24', NULL, 'Main', 'ios-american-football', 1, 'Main', '1367040599596728320', '/', '4.2', '直播活动', '');
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1367042490443497472, NULL, '2022-01-11 23:21:13.000000', b'0', NULL, '2022-01-11 23:21:22', NULL, 'promotion/live/live', 'ios-american-football', 2, 'live', '1367041575619657728', 'live', '4.21', '直播管理', '/store/broadcast/studio*');
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1367042664410644480, NULL, '2022-01-11 23:22:42.000000', b'0', NULL, '2022-01-11 23:22:59', NULL, 'promotion/live/liveGoods', 'ios-american-football', 2, 'liveGoods', '1367041575619657728', 'liveGoods', '4.22', '直播商品', '/store/broadcast/commodity*');
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1367042804944994304, NULL, '2022-01-11 23:24:24.000000', b'0', NULL, '2022-01-11 23:24:38', NULL, 'Main', 'ios-american-football', 1, 'Main', '1367040599596728320', '/', '4.3', '商家活动', NULL);
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1367042804944994305, NULL, '2022-01-11 23:24:29.000000', b'0', NULL, '2022-01-11 23:24:42', NULL, 'promotion/full-discount/full-discount', 'ios-american-football', 2, 'full-cut', '1367042804944994304', 'full-discount', '4.31', '满额活动', '/store/promotion/fullDiscount*');
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1367042917113266176, NULL, '2022-01-11 23:26:45.000000', b'0', NULL, '2022-01-11 23:26:50', NULL, 'promotion/coupon/coupon', 'ios-american-football', 2, 'coupon', '1367042804944994304', 'coupon', '4.32', '优惠券', '/store/promotion/coupon*');
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1367043020976816128, NULL, '2022-01-11 23:28:50.000000', b'0', NULL, '2022-01-11 23:29:02', NULL, 'Main', 'ios-american-football', 1, 'Main', '1367040599596728320', '/', '4.4', '分销管理', NULL);
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1367043443917848576, NULL, '2022-01-11 23:28:53.000000', b'0', NULL, '2022-01-11 23:29:04', NULL, 'distribution/distributionGoods', 'ios-american-football', 2, 'distributionGoods', '1367043020976816128', 'distributionGoods', '4.41', '分销商品', '/store/distribution/goods*');
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1367043505771249664, NULL, '2022-01-11 23:28:56.000000', b'0', NULL, '2022-01-11 23:29:07', NULL, 'distribution/distributionOrder', 'ios-american-football', 2, 'distributionOrder', '1367043020976816128', 'distributionOrderdistributionOrder', '4.42', '分销订单', '/store/distribution/order*');
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1367044121163726848, NULL, '2022-01-12 21:47:03.000000', b'0', NULL, '2022-01-12 21:47:25', NULL, 'Main', 'ios-american-football', 0, 'statistics', '0', '/', '5', '统计', NULL);
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1367044247978508288, NULL, '2022-01-12 21:47:19.000000', b'0', NULL, '2022-01-12 21:47:28', NULL, 'Main', 'ios-american-football', 1, 'Main', '1367044121163726848', '/', '5.1', '统计管理', NULL);
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1367044376391319552, NULL, '2022-01-12 21:49:45.000000', b'0', NULL, '2022-01-12 21:50:01', NULL, 'statistics/goods', 'ios-american-football', 2, 'goodsStatistics', '1367044247978508288', 'goodsStatistics', '5.11', '商品统计', '/store/statistics/goods*');
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1367044657296441344, NULL, '2022-01-12 21:49:48.000000', b'0', NULL, '2022-01-12 21:49:58', NULL, 'statistics/order', 'ios-american-football', 2, 'orderStatistics', '1367044247978508288', 'orderStatistics', '5.12', '订单统计', '/store/statistics/order*,/store/statistics/order*,/store/statistics/order*,/store/statistics/order*');
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1367045529720061952, NULL, '2022-01-12 21:49:51.000000', b'0', NULL, '2022-01-12 21:50:03', NULL, 'statistics/traffic', 'ios-american-football', 2, 'trafficStatistics', '1367044247978508288', 'trafficStatistics', '5.13', '流量统计', '/store/statistics/view*');
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1367045630710513664, NULL, '2022-01-12 21:52:59.000000', b'0', NULL, '2022-01-12 21:53:09', NULL, 'Main', 'ios-american-football', 0, 'settings', '0', '/', '6', '设置', NULL);
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1367045794284175360, NULL, '2022-01-12 21:53:03.000000', b'0', NULL, '2022-01-12 21:53:12', NULL, 'Main', 'ios-american-football', 1, 'Main', '1367045630710513664', '/', '6.1', '配送设置', NULL);
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1367045921434501120, NULL, '2022-01-12 21:55:49.000000', b'0', NULL, '2022-01-12 21:55:52', NULL, 'shop/ship/shipTemplate', 'ios-american-football', 2, 'shipTemplate', '1367045794284175360', 'shipTemplate', '6.11', '配送模板', '/store/setting/freightTemplate*');
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1367046068369358848, NULL, '2022-01-12 21:58:05.000000', b'0', NULL, '2022-01-12 21:58:13', NULL, 'shop/ship/logistics', 'ios-american-football', 2, 'logistics', '1367045794284175360', 'logistics', '6.12', '物流公司', '/store/other/logistics*');
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1367046266214678528, NULL, '2022-01-12 21:59:07.000000', b'0', NULL, '2022-01-12 21:59:43', NULL, 'Main', 'ios-american-football', 1, 'Main', '1367045630710513664', '/', '6.2', '店铺管理', NULL);
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1367048084701315072, NULL, '2022-01-12 21:59:32.000000', b'0', NULL, '2022-01-12 21:59:48', NULL, 'shop/shopSetting', 'ios-american-football', 2, 'shopSetting', '1367046266214678528', 'shopSetting', '6.21', '店铺设置', NULL);
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1367048684339986432, NULL, '2022-01-12 21:59:36.000000', b'0', NULL, '2022-01-12 21:59:51', NULL, 'shop/shopAddress', 'ios-american-football', 2, 'shopAddress', '1367046266214678528', 'shopAddress', '6.22', '自提管理', '/store/member/storeAddress*');
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1367048754229673984, NULL, '2022-01-12 22:02:11.000000', b'0', NULL, '2022-01-12 22:04:36', NULL, 'Main', 'ios-american-football', 0, 'Main', '0', '/', '7', '消息', NULL);
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1367048832210173952, NULL, '2022-01-12 22:02:49.000000', b'0', NULL, '2022-01-12 22:04:39', NULL, 'Main', 'ios-american-football', 1, 'Main', '1367048754229673984', '/', '7.1', '系统消息', NULL);
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1367048967635861503, NULL, '2022-02-18 16:08:30.000000', b'0', NULL, '2022-02-18 16:08:36', NULL, 'Main', 'ios-american-football', 1, 'Main', '1367045630710513664', '/', '6.3', '店员设置', '');
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1367048967635861504, NULL, '2022-01-12 22:02:51.000000', b'0', NULL, '2022-01-12 22:04:45', NULL, 'message', 'ios-american-football', 2, 'message_index', '1367048832210173952', 'message', '7.11', '系统消息', '/store/message/storeMessage*');
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1367048967635861505, NULL, '2022-02-18 16:12:18.000000', b'0', NULL, '2022-02-18 16:12:21', NULL, 'shop/system/clerk/clerkManage', 'ios-american-football', 2, '\nclerkManage', '1367048967635861503', '\nclerkManage', '6.31', '店员管理', '/store/department*,/store/clerk*,/store/role*,/store/department*');
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1367048967635861506, NULL, '2022-02-18 16:25:27.000000', NULL, NULL, '2022-02-18 16:25:31', NULL, 'shop/system/department/storeDepartmentManage', 'ios-american-football', 2, 'storeDepartmentManage', '1367048967635861503', 'storeDepartmentManage', '6.32', '部门管理', '/store/department*');
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1367048967635861507, NULL, '2022-02-18 16:27:28.000000', NULL, NULL, '2022-02-18 16:27:30', NULL, 'shop/system/role/storeRoleManage', 'ios-american-football', 2, 'storeRoleManage', '1367048967635861503', 'storeRoleManage', '6.33', '角色权限', '/store/role*');
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1367048967635861510, NULL, '2022-03-07 14:45:10.000000', b'0', NULL, '2022-03-07 14:45:13', NULL, 'shop/floorList', 'ios-american-football', 2, 'floorList', '1367046266214678528', 'floorList', '6.23', 'PC端', '/store/other/pageData*');
|
||||||
|
INSERT INTO `li_store_menu` VALUES (1367048967635861511, NULL, '2022-03-07 15:13:52.000000', b'0', NULL, '2022-03-07 15:13:55', NULL, 'shop/wap/wapList', 'ios-american-football', 2, 'wapList', '1367046266214678528', 'wapList', '6.24', '移动端', '/store/other/pageData*');
|
||||||
|
|
||||||
|
SET FOREIGN_KEY_CHECKS = 1;
|
||||||
|
|
||||||
|
|
||||||
|
insert li_clerk(id,create_by,create_time,store_id,clerk_name,member_id,shopkeeper,is_super,`status`) select id,member_name,current_date(),id,member_name,member_id ,TRUE,TRUE,TRUE from li_store
|
||||||
|
|
||||||
|
|
||||||
48
DB/version4.2.4toMASTER.sql
Normal file
48
DB/version4.2.4toMASTER.sql
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
/** 增加签到日期 **/
|
||||||
|
ALTER TABLE li_member_sign
|
||||||
|
ADD day int DEFAULT NULL COMMENT '签到日 ';
|
||||||
|
ALTER TABLE li_member_sign
|
||||||
|
DROP INDEX uk_member_day;
|
||||||
|
ALTER TABLE li_member_sign
|
||||||
|
add unique uk_member_day (member_id, day) COMMENT 'uk_member_day';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for li_hot_words_history
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `li_hot_words_history`;
|
||||||
|
CREATE TABLE `li_hot_words_history`
|
||||||
|
(
|
||||||
|
`id` bigint NOT NULL COMMENT 'ID',
|
||||||
|
`create_time` datetime(6) DEFAULT NULL COMMENT '创建时间',
|
||||||
|
`keywords` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '热词',
|
||||||
|
`score` int DEFAULT NULL COMMENT '热词分数',
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb3 COLLATE = utf8_bin COMMENT '热词历史表';
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Records of li_hot_words_history
|
||||||
|
-- ----------------------------
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for li_wholesale
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `li_wholesale`;
|
||||||
|
CREATE TABLE `li_wholesale`
|
||||||
|
(
|
||||||
|
`id` bigint NOT NULL,
|
||||||
|
`create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
|
||||||
|
`create_time` datetime(6) DEFAULT NULL,
|
||||||
|
`delete_flag` bit(1) DEFAULT NULL,
|
||||||
|
`update_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
|
||||||
|
`update_time` datetime(6) DEFAULT NULL,
|
||||||
|
`price` decimal(10, 2) DEFAULT NULL COMMENT '价格',
|
||||||
|
`goods_id` bigint DEFAULT NULL COMMENT '商品id',
|
||||||
|
`sku_id` bigint DEFAULT NULL COMMENT '商品skuId',
|
||||||
|
`num` int DEFAULT NULL COMMENT '起购量',
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_bin COMMENT '批发规则表';
|
||||||
|
|
||||||
|
ALTER TABLE li_wholesale
|
||||||
|
ADD template_id bigint DEFAULT NULL COMMENT '商品模版id';
|
||||||
149
README.md
149
README.md
@@ -1,15 +1,21 @@
|
|||||||
## 🔥 Lilishop B2B2C商城系统
|
## Lilishop B2B2C商城系统
|
||||||
|
|
||||||
##### 🌹 开源不易,如有帮助请点Star
|
#### 欢迎交流需求,交流业务,交流技术(基础问题自行解决,其他问题先看文档后提问)
|
||||||
|
|
||||||
|
#### 不用削尖脑袋往老群里加,老群活跃度较低,很多潜水党,新群相对而言活跃一些 :tw-1f606: :tw-1f606: :tw-1f606: :tw-1f606: :tw-1f606: :tw-1f606:
|
||||||
|
|
||||||
|
|
||||||
#### 欢迎交流需求,交流业务,交流技术(基础问题自行解决,进群先看文档后提问)
|
|
||||||
|
|
||||||
##### 交流 qq 1群 961316482(已满)
|
##### 交流 qq 1群 961316482(已满)
|
||||||
|
<a target="_blank" href="https://qm.qq.com/cgi-bin/qm/qr?k=BAhURE3DG2YWhQk6kRxVapbLykqMoPS8&jump_from=webapi"><img border="0" src="https://pub.idqqimg.com/wpa/images/group.png" alt="Lilishop交流群" title="Lilishop交流群">点击快捷加群</a>
|
||||||
|
|
||||||
##### 交流 qq 2群 875294241
|
##### 交流 qq 2群 875294241(已满)
|
||||||
|
|
||||||
|
<a target="_blank" href="https://qm.qq.com/cgi-bin/qm/qr?k=_lrekOvr5k2p5uTn5GRidI-chKEmpCX3&jump_from=webapi"><img border="0" src="https://pub.idqqimg.com/wpa/images/group.png" alt="Lilishop交流群2群" title="Lilishop交流群2群">点击快捷加群</a>
|
||||||
|
|
||||||
|
|
||||||
|
##### 交流 qq 3群 263785057
|
||||||
|
|
||||||
|
<a target="_blank" href="https://qm.qq.com/cgi-bin/qm/qr?k=VUogkDvaso4zLTFH8nxFPDRKq0EthUn1&jump_from=webapi"><img border="0" src="//pub.idqqimg.com/wpa/images/group.png" alt="Lilishop交流群3群" title="Lilishop交流群3群">点击快捷加群</a>
|
||||||
|
|
||||||
|
|
||||||
##### 体验 公众号/小程序/APP 体验,扫描二维码
|
##### 体验 公众号/小程序/APP 体验,扫描二维码
|
||||||
@@ -20,51 +26,33 @@
|
|||||||

|

|
||||||
|
|
||||||
|
|
||||||
### 🔥 商城介绍
|
### 商城介绍
|
||||||
**官网**:https://pickmall.cn
|
**官网**:https://pickmall.cn
|
||||||
|
|
||||||
Lilishop商城系统支持商家入驻,后端基于SpringBoot 研发,前端使用 Vue、uniapp开发, **系统全端全部代码开源**
|
Lilishop商城系统支持商家入驻,后端基于SpringBoot 研发,前端使用 Vue、uniapp开发, **系统全端全部代码开源**
|
||||||
|
|
||||||
商城前后端分离,支持分布式部署,各个API独立,并且有独立的消费者。
|
前后端分离,支持分布式部署,支持Docker,各个API独立,并且有独立的消费者。
|
||||||
|
|
||||||
商城包含 会员模块、**第三方登录模块**、**第三方支付模块**、**楼层装修模块**、订单模块、商品模块、促销模块、分销模块、文章模块、系统设置模块、流量分析模块和平台运营模块
|
|
||||||
|
|
||||||
商城包含各种中间件、搜索引擎、多级缓存、分布式事务、分布式任务调度等,支持Docker,支持k8s。是一款高性能、支持分布式、支持扩展的商城系统。
|
|
||||||
|
|
||||||
### 商城 API/消费者 聚合版
|
### 商城 API/消费者 聚合版
|
||||||
api不需要单独部署,只需启动一个jar包就可以正常运转 如有需要,可以点击跳转
|
api不需要单独部署,只需启动一个jar包就可以正常运转 如有需要,可以点击跳转
|
||||||
https://gitee.com/beijing_hongye_huicheng/lilishop-simplify
|
https://gitee.com/beijing_hongye_huicheng/lilishop-simplify
|
||||||
|
|
||||||
### ☃️ 商城 开发/使用/常见问题 帮助文档
|
### 开发/使用/常见问题 帮助文档
|
||||||
|
|
||||||
https://docs.pickmall.cn
|
https://docs.pickmall.cn
|
||||||
|
|
||||||
### 💧 开源商城项目地址(gitee)
|
### 项目地址
|
||||||
|
|
||||||
**API(商城所有API)**:https://gitee.com/beijing_hongye_huicheng/lilishop.git
|
gitee : https://gitee.com/beijing_hongye_huicheng
|
||||||
|
|
||||||
**UI(平台管理端/商家端/买家PC端)**: https://gitee.com/beijing_hongye_huicheng/lilishop-ui.git
|
github 镜像: https://github.com/lilishop?tab=repositories
|
||||||
|
|
||||||
**uniapp(商城移动端,支持小程序/APP/H5)**:https://gitee.com/beijing_hongye_huicheng/lilishop-uniapp.git
|
商城UI 项目下3个文件夹
|
||||||
|
buyer:买家PC端,seller:商家端,manager:后台管理端
|
||||||
**docker一键部署(商城部署脚本)**:https://gitee.com/beijing_hongye_huicheng/docker.git
|
|
||||||
|
|
||||||
### 💧 开源商城项目地址(github)
|
|
||||||
|
|
||||||
**API(商城所有API)**:https://github.com/hongyehuicheng/lilishop.git
|
|
||||||
|
|
||||||
**UI(平台管理端/商家端/买家PC端)**: https://github.com/hongyehuicheng/lilishop-ui.git
|
|
||||||
|
|
||||||
**uniapp(商城移动端,支持小程序/APP/H5)**:https://github.com/hongyehuicheng/lilishop-uniapp.git
|
|
||||||
|
|
||||||
**docker一键部署(商城部署脚本)**:https://github.com/hongyehuicheng/docker.git
|
|
||||||
|
|
||||||
|
|
||||||
|
### 演示地址
|
||||||
☃️ UI 项目下3个文件夹 buyer:买家PC端,seller:商家端,manager:后台管理端
|
PS:手机验证码为 ‘111111’
|
||||||
|
|
||||||
|
|
||||||
### 💧 演示地址(手机验证码为 ‘111111’)
|
|
||||||
|
|
||||||
**平台管理端**:https://admin-b2b2c.pickmall.cn 账号:admin/123456
|
**平台管理端**:https://admin-b2b2c.pickmall.cn 账号:admin/123456
|
||||||
|
|
||||||
@@ -72,88 +60,54 @@ https://docs.pickmall.cn
|
|||||||
|
|
||||||
**商城PC页面**:https://pc-b2b2c.pickmall.cn
|
**商城PC页面**:https://pc-b2b2c.pickmall.cn
|
||||||
|
|
||||||
**商城移动端(请使浏览器手机模式,或者用手机浏览器打开)**:https://m-b2b2c.pickmall.cn
|
**商城 小程序/公众号/APP**:扫描二维码
|
||||||
|
|
||||||
**商城 小程序/公众号/APP(支持ios、android)**:扫描二维码
|
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
### 🚙 3行命令搭建本地商城(注:只能本机访问,前端镜像固定访问 127.0.0.1,如果是非本机体验,请自行下载源码操作镜像)
|
### 快速本地部署
|
||||||
|
|
||||||
温馨提示:由于服务中间件较多,如果笔记本环境启动内存没有32g可能无法启动成功(macbookpro 2020 16g内存启动无法成功),台式机在16g内存、AMD 3700x 的ubuntu系统成功运行。
|
[点击跳转](https://docs.pickmall.cn/deploy/%E8%BF%90%E8%A1%8C%E7%8E%AF%E5%A2%83%E5%87%86%E5%A4%87.html)
|
||||||
|
|
||||||
##### docker环境安装 [点击跳转](https://docs.pickmall.cn/deploy/%E8%BF%90%E8%A1%8C%E7%8E%AF%E5%A2%83%E5%87%86%E5%A4%87.html)
|
**商城数据库**
|
||||||
|
使用docker-compose部署数据库,自动初始化数据库,不需要手动下载等操作
|
||||||
|
|
||||||
##### 下载docker-compose脚本
|
如果手动部署,才需要获取sql [点击跳转](https://gitee.com/beijing_hongye_huicheng/docker/tree/master/init/mysql) (PS:这里有与tag版本一致的sql,如果是历史版本,则docker项目也切换至历史版本获取sql即可,历史版本升级则根据java相聚的根目录DB目录下的升级sql,按需执行)。
|
||||||
`git clone https://gitee.com/beijing_hongye_huicheng/docker.git `
|
|
||||||
|
|
||||||
##### 部署商城所需中间件
|
|
||||||
`docker-compose up -d`
|
|
||||||
|
|
||||||
##### 部署商城应用
|
|
||||||
`docker-compose -f docker-compose-application.yml up -d`
|
|
||||||
|
|
||||||
PS:商城数据库非docker部署
|
|
||||||
https://gitee.com/beijing_hongye_huicheng/docker/tree/master/init/mysql
|
|
||||||
|
|
||||||
这里有与tag版本一致的sql,根据tag获取sql,如果使用master代码
|
|
||||||
|
|
||||||
##### 商城 API/UI 地址
|
|
||||||
|
|
||||||
| API | 地址 |
|
|
||||||
| -------------- | --------------- |
|
|
||||||
| 买家API | http://127.0.0.1:8888 |
|
|
||||||
| 商家API | http://127.0.0.1:8889 |
|
|
||||||
| 管理端API | http://127.0.0.1:8887 |
|
|
||||||
| 通用API | http://127.0.0.1:8890 |
|
|
||||||
|
|
||||||
| 前端演示 | 地址 |
|
|
||||||
| -------------- | --------------- |
|
|
||||||
| 商城PC端 | http://127.0.0.1:10000 |
|
|
||||||
| 商城H5端 | http://127.0.0.1:10001 |
|
|
||||||
| 卖家端 | http://127.0.0.1:10002 |
|
|
||||||
| 平台管理端 | http://127.0.0.1:10003 |
|
|
||||||
|
|
||||||
其他小程序/app等需自行打包。
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### ⚾️ 功能列表
|
### 功能列表
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#### 🥎 平台管理端功能
|
#### 平台管理端功能
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#### 🥎 卖家功能
|
#### 卖家功能
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
|
### 商城前端功能展示
|
||||||
|
|
||||||
|
#### 商城移动端
|
||||||
|
|
||||||
### 🧩 商城前端功能展示
|
|
||||||
|
|
||||||
#### ⚽️ 商城移动端
|
|
||||||
|
|
||||||
<img src="https://pickmall.cn/assets/imgs/other/app.gif" alt="移动端功能展示" style="zoom:50%;" />
|
<img src="https://pickmall.cn/assets/imgs/other/app.gif" alt="移动端功能展示" style="zoom:50%;" />
|
||||||
|
|
||||||
#### ⚽️ 平台管理端
|
#### 平台管理端
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
### 技术选型
|
### 技术选型
|
||||||
|
|
||||||
#### 🥅 架构图
|
#### 架构图
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
##### 🕹 后台技术选型
|
##### 后台技术选型
|
||||||
|
|
||||||
| 说明 | 框架 | 说明 | |
|
| 说明 | 框架 | 说明 | |
|
||||||
| -------------- | --------------- | -------------- | ------------- |
|
| -------------- | --------------- | -------------- | ------------- |
|
||||||
@@ -167,7 +121,7 @@ https://gitee.com/beijing_hongye_huicheng/docker/tree/master/init/mysql
|
|||||||
| 短信 | 阿里云短信 | 认证 | JWT |
|
| 短信 | 阿里云短信 | 认证 | JWT |
|
||||||
| 日志处理 | Log4j | 接口规范 | RESTful |
|
| 日志处理 | Log4j | 接口规范 | RESTful |
|
||||||
|
|
||||||
##### 🖥 前端-运营后台、店铺后台
|
##### 前端-运营后台、店铺后台
|
||||||
|
|
||||||
| 说明 | 框架 | 说明 | 框架 |
|
| 说明 | 框架 | 说明 | 框架 |
|
||||||
| ---------- | ---------- | ---------- | ------- |
|
| ---------- | ---------- | ---------- | ------- |
|
||||||
@@ -177,34 +131,43 @@ https://gitee.com/beijing_hongye_huicheng/docker/tree/master/init/mysql
|
|||||||
| 基础UI库 | iView | UI界面基于 | iView |
|
| 基础UI库 | iView | UI界面基于 | iView |
|
||||||
| 网络请求 | axios | | |
|
| 网络请求 | axios | | |
|
||||||
|
|
||||||
##### 📱前端-移动端
|
##### 前端-移动端
|
||||||
|
|
||||||
| 说明 | 架构 | 说明 | 架构 |
|
| 说明 | 架构 | 说明 | 架构 |
|
||||||
| --------- | ------- | -------- | ------- |
|
| --------- | ------- | -------- | ------- |
|
||||||
| 基础UI库 | uViewui | 基础框架 | uni-app |
|
| 基础UI库 | uViewui | 基础框架 | uni-app |
|
||||||
| CSS预处理 | scss | 地图引擎 | amap |
|
| CSS预处理 | scss | 地图引擎 | amap |
|
||||||
|
|
||||||
### 🌟 版本升级
|
### 版本升级
|
||||||
|
|
||||||
```
|
```
|
||||||
商城后续会持续版本升级,修复bug,完善功能,覆盖更多业务场景 o2o/b2b/s2b2b2c/跨境电商
|
系统后续会提供多场景解决方案。
|
||||||
|
更多架构:微服务、Saas、中台等,都会支持。 支持差价升级商业授权
|
||||||
后续会考虑推出微服务商城系统/商城中台等
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### 商业授权
|
||||||
|
商业版本与开源版本代码一致,没有区分
|
||||||
|
|
||||||
### ⚠️ 开源须知
|
商业使用需要授权,授权方式可选择联系官网客服,或者qq群联系群主。
|
||||||
|
|
||||||
|
商业授权模式为永久授权,支持永久升级。
|
||||||
|
|
||||||
|
商业案例由于涉及部分多层二开关系,如需了解可以咨询销售。
|
||||||
|
|
||||||
|
|
||||||
|
### 开源须知
|
||||||
1.仅允许用于个人学习研究使用.
|
1.仅允许用于个人学习研究使用.
|
||||||
|
|
||||||
2.禁止将本开源的代码和资源进行任何形式任何名义的出售.
|
2.禁止将本开源的代码和资源进行任何形式任何名义的出售.
|
||||||
|
|
||||||
3.软件受国家计算机软件著作权保护(登记号:2021SR0805085)。
|
3.软件受国家计算机软件著作权保护(登记号:2021SR0805085)。
|
||||||
|
|
||||||
4.限制商用,如果需要商业使用请联系我们。QQ3409056806.
|
4.限制商用,如果需要商业使用请联系我们。QQ3409056806.或者加入qq群联系群主。
|
||||||
|
|
||||||
|
|
||||||
### 🐧 交流群
|
|
||||||
|
### 交流群
|
||||||
|
|
||||||
##### 官方qq 1群 961316482(已满)
|
##### 官方qq 1群 961316482(已满)
|
||||||
##### 官方qq 2群 875294241
|
##### 官方qq 2群 875294241(已满)
|
||||||
|
##### 官网qq 3群 263785057
|
||||||
|
|||||||
@@ -32,10 +32,10 @@
|
|||||||
<artifactId>logstash-logback-encoder</artifactId>
|
<artifactId>logstash-logback-encoder</artifactId>
|
||||||
<version>${logstash-logback-encoder}</version>
|
<version>${logstash-logback-encoder}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<!-- <dependency>-->
|
<!-- <dependency>-->
|
||||||
<!-- <groupId>org.springframework.boot</groupId>-->
|
<!-- <groupId>org.springframework.boot</groupId>-->
|
||||||
<!-- <artifactId>spring-boot-starter-mail</artifactId>-->
|
<!-- <artifactId>spring-boot-starter-mail</artifactId>-->
|
||||||
<!-- </dependency> -->
|
<!-- </dependency> -->
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
|||||||
@@ -16,5 +16,6 @@ spring.mail.username=1814994716@qq.com
|
|||||||
spring.mail.password=abcdefg123456!@#$%^
|
spring.mail.password=abcdefg123456!@#$%^
|
||||||
# 日志文件路径
|
# 日志文件路径
|
||||||
logging.file.path=lili-logs/admin
|
logging.file.path=lili-logs/admin
|
||||||
|
lili.data.logstash.server=106.124.130.167:4560
|
||||||
# 文件格式
|
# 文件格式
|
||||||
logging.pattern.file=%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(${PID}){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wEx
|
logging.pattern.file=%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(${PID}){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wEx
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ public class BuyerApiApplication {
|
|||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
System.setProperty("es.set.netty.runtime.available.processors", "false");
|
System.setProperty("es.set.netty.runtime.available.processors", "false");
|
||||||
|
System.setProperty("rocketmq.client.logUseSlf4j","true");
|
||||||
SpringApplication.run(BuyerApiApplication.class, args);
|
SpringApplication.run(BuyerApiApplication.class, args);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package cn.lili.controller.other.distribution;
|
package cn.lili.controller.distribution;
|
||||||
|
|
||||||
import cn.lili.common.enums.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
@@ -24,7 +24,7 @@ import org.springframework.web.bind.annotation.*;
|
|||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,分销员接口")
|
@Api(tags = "买家端,分销员接口")
|
||||||
@RequestMapping("/buyer/distribution")
|
@RequestMapping("/buyer/distribution/distribution")
|
||||||
public class DistributionBuyerController {
|
public class DistributionBuyerController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
package cn.lili.controller.other.distribution;
|
package cn.lili.controller.distribution;
|
||||||
|
|
||||||
|
import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
|
||||||
import cn.lili.common.enums.ResultCode;
|
import cn.lili.common.enums.ResultCode;
|
||||||
import cn.lili.common.enums.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.exception.ServiceException;
|
import cn.lili.common.exception.ServiceException;
|
||||||
@@ -13,6 +14,7 @@ import io.swagger.annotations.ApiImplicitParam;
|
|||||||
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiImplicitParams;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
@@ -33,6 +35,7 @@ import javax.validation.constraints.NotNull;
|
|||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,分销商品佣金提现接口")
|
@Api(tags = "买家端,分销商品佣金提现接口")
|
||||||
@RequestMapping("/buyer/distribution/cash")
|
@RequestMapping("/buyer/distribution/cash")
|
||||||
|
@Validated
|
||||||
public class DistributionCashBuyerController {
|
public class DistributionCashBuyerController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -47,15 +50,16 @@ public class DistributionCashBuyerController {
|
|||||||
private DistributionCashService distributorCashService;
|
private DistributionCashService distributorCashService;
|
||||||
|
|
||||||
|
|
||||||
|
@PreventDuplicateSubmissions
|
||||||
@ApiOperation(value = "分销员提现")
|
@ApiOperation(value = "分销员提现")
|
||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ApiImplicitParam(name = "price", value = "申请金额", required = true, paramType = "query", dataType = "double")
|
@ApiImplicitParam(name = "price", value = "申请金额", required = true, paramType = "query", dataType = "double")
|
||||||
})
|
})
|
||||||
@PostMapping
|
@PostMapping
|
||||||
public ResultMessage<Object> cash(@Max(value = 1000, message = "提现金额单次最多允许提现1000元")
|
public ResultMessage<Object> cash(@Validated @Max(value = 9999, message = "提现金额单次最多允许提现9999元")
|
||||||
@Min(value = 1, message = "提现金额单次最少提现金额为1元")
|
@Min(value = 1, message = "提现金额单次最少提现金额为1元")
|
||||||
@NotNull @ApiIgnore Double price) {
|
@NotNull @ApiIgnore Double price) {
|
||||||
if (distributionCashService.cash(price)) {
|
if (Boolean.TRUE.equals(distributionCashService.cash(price))) {
|
||||||
return ResultUtil.success();
|
return ResultUtil.success();
|
||||||
}
|
}
|
||||||
throw new ServiceException(ResultCode.ERROR);
|
throw new ServiceException(ResultCode.ERROR);
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
package cn.lili.controller.other.distribution;
|
package cn.lili.controller.distribution;
|
||||||
|
|
||||||
|
import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
|
||||||
import cn.lili.common.enums.ResultCode;
|
import cn.lili.common.enums.ResultCode;
|
||||||
import cn.lili.common.enums.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.exception.ServiceException;
|
import cn.lili.common.exception.ServiceException;
|
||||||
@@ -29,7 +30,7 @@ import javax.validation.constraints.NotNull;
|
|||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,分销商品接口")
|
@Api(tags = "买家端,分销商品接口")
|
||||||
@RequestMapping("/buyer/distributionGoods")
|
@RequestMapping("/buyer/distribution/goods")
|
||||||
public class DistributionGoodsBuyerController {
|
public class DistributionGoodsBuyerController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -50,6 +51,7 @@ public class DistributionGoodsBuyerController {
|
|||||||
return ResultUtil.data(distributionGoodsService.goodsPage(distributionGoodsSearchParams));
|
return ResultUtil.data(distributionGoodsService.goodsPage(distributionGoodsSearchParams));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PreventDuplicateSubmissions
|
||||||
@ApiOperation(value = "选择分销商品")
|
@ApiOperation(value = "选择分销商品")
|
||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ApiImplicitParam(name = "distributionGoodsId", value = "分销ID", required = true, dataType = "String", paramType = "path"),
|
@ApiImplicitParam(name = "distributionGoodsId", value = "分销ID", required = true, dataType = "String", paramType = "path"),
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package cn.lili.controller.other.distribution;
|
package cn.lili.controller.distribution;
|
||||||
|
|
||||||
import cn.lili.common.enums.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
@@ -25,7 +25,7 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,商品分类接口")
|
@Api(tags = "买家端,商品分类接口")
|
||||||
@RequestMapping("/buyer/category")
|
@RequestMapping("/buyer/goods/category")
|
||||||
public class CategoryBuyerController {
|
public class CategoryBuyerController {
|
||||||
/**
|
/**
|
||||||
* 商品分类
|
* 商品分类
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import cn.lili.modules.search.entity.dos.EsGoodsIndex;
|
|||||||
import cn.lili.modules.search.entity.dos.EsGoodsRelatedInfo;
|
import cn.lili.modules.search.entity.dos.EsGoodsRelatedInfo;
|
||||||
import cn.lili.modules.search.entity.dto.EsGoodsSearchDTO;
|
import cn.lili.modules.search.entity.dto.EsGoodsSearchDTO;
|
||||||
import cn.lili.modules.search.service.EsGoodsSearchService;
|
import cn.lili.modules.search.service.EsGoodsSearchService;
|
||||||
|
import cn.lili.modules.search.service.HotWordsService;
|
||||||
import cn.lili.modules.statistics.aop.PageViewPoint;
|
import cn.lili.modules.statistics.aop.PageViewPoint;
|
||||||
import cn.lili.modules.statistics.aop.enums.PageViewEnum;
|
import cn.lili.modules.statistics.aop.enums.PageViewEnum;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
@@ -43,7 +44,7 @@ import java.util.Map;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
@Api(tags = "买家端,商品接口")
|
@Api(tags = "买家端,商品接口")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/buyer/goods")
|
@RequestMapping("/buyer/goods/goods")
|
||||||
public class GoodsBuyerController {
|
public class GoodsBuyerController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -62,6 +63,9 @@ public class GoodsBuyerController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private EsGoodsSearchService goodsSearchService;
|
private EsGoodsSearchService goodsSearchService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private HotWordsService hotWordsService;
|
||||||
|
|
||||||
@ApiOperation(value = "通过id获取商品信息")
|
@ApiOperation(value = "通过id获取商品信息")
|
||||||
@ApiImplicitParam(name = "goodsId", value = "商品ID", required = true, paramType = "path", dataType = "Long")
|
@ApiImplicitParam(name = "goodsId", value = "商品ID", required = true, paramType = "path", dataType = "Long")
|
||||||
@GetMapping(value = "/get/{goodsId}")
|
@GetMapping(value = "/get/{goodsId}")
|
||||||
@@ -117,7 +121,7 @@ public class GoodsBuyerController {
|
|||||||
@ApiOperation(value = "获取搜索热词")
|
@ApiOperation(value = "获取搜索热词")
|
||||||
@GetMapping("/hot-words")
|
@GetMapping("/hot-words")
|
||||||
public ResultMessage<List<String>> getGoodsHotWords(Integer count) {
|
public ResultMessage<List<String>> getGoodsHotWords(Integer count) {
|
||||||
List<String> hotWords = goodsSearchService.getHotWords(count);
|
List<String> hotWords = hotWordsService.getHotWords(count);
|
||||||
return ResultUtil.data(hotWords);
|
return ResultUtil.data(hotWords);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import cn.lili.common.vo.PageVO;
|
|||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
import cn.lili.modules.member.service.FootprintService;
|
import cn.lili.modules.member.service.FootprintService;
|
||||||
import cn.lili.modules.search.entity.dos.EsGoodsIndex;
|
import cn.lili.modules.search.entity.dos.EsGoodsIndex;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
@@ -23,7 +24,7 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,浏览历史接口")
|
@Api(tags = "买家端,浏览历史接口")
|
||||||
@RequestMapping("/buyer/footprint")
|
@RequestMapping("/buyer/member/footprint")
|
||||||
public class FootprintController {
|
public class FootprintController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -34,7 +35,7 @@ public class FootprintController {
|
|||||||
|
|
||||||
@ApiOperation(value = "分页获取")
|
@ApiOperation(value = "分页获取")
|
||||||
@GetMapping
|
@GetMapping
|
||||||
public ResultMessage<List<EsGoodsIndex>> getByPage(PageVO page) {
|
public ResultMessage<IPage<EsGoodsIndex>> getByPage(PageVO page) {
|
||||||
return ResultUtil.data(footprintService.footPrintPage(page));
|
return ResultUtil.data(footprintService.footPrintPage(page));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
package cn.lili.controller.member;
|
package cn.lili.controller.member;
|
||||||
|
|
||||||
import cn.lili.common.enums.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
|
import cn.lili.common.security.OperationalJudgment;
|
||||||
import cn.lili.common.security.context.UserContext;
|
import cn.lili.common.security.context.UserContext;
|
||||||
import cn.lili.common.vo.PageVO;
|
import cn.lili.common.vo.PageVO;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
import cn.lili.modules.member.entity.dos.MemberAddress;
|
import cn.lili.modules.member.entity.dos.MemberAddress;
|
||||||
import cn.lili.modules.member.service.MemberAddressService;
|
import cn.lili.modules.member.service.MemberAddressService;
|
||||||
import cn.lili.modules.system.utils.OperationalJudgment;
|
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
@@ -26,7 +26,7 @@ import java.util.Objects;
|
|||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,会员地址接口")
|
@Api(tags = "买家端,会员地址接口")
|
||||||
@RequestMapping("/buyer/memberAddress")
|
@RequestMapping("/buyer/member/address")
|
||||||
public class MemberAddressBuyerController {
|
public class MemberAddressBuyerController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package cn.lili.controller.member;
|
package cn.lili.controller.member;
|
||||||
|
|
||||||
|
import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
|
||||||
import cn.lili.common.enums.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.enums.SwitchEnum;
|
import cn.lili.common.enums.SwitchEnum;
|
||||||
import cn.lili.common.security.context.UserContext;
|
import cn.lili.common.security.context.UserContext;
|
||||||
@@ -28,7 +29,7 @@ import javax.validation.constraints.NotNull;
|
|||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,会员商品评价接口")
|
@Api(tags = "买家端,会员商品评价接口")
|
||||||
@RequestMapping("/buyer/memberEvaluation")
|
@RequestMapping("/buyer/member/evaluation")
|
||||||
public class MemberEvaluationBuyerController {
|
public class MemberEvaluationBuyerController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -37,16 +38,17 @@ public class MemberEvaluationBuyerController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private MemberEvaluationService memberEvaluationService;
|
private MemberEvaluationService memberEvaluationService;
|
||||||
|
|
||||||
|
@PreventDuplicateSubmissions
|
||||||
@ApiOperation(value = "添加会员评价")
|
@ApiOperation(value = "添加会员评价")
|
||||||
@PostMapping
|
@PostMapping
|
||||||
public ResultMessage<MemberEvaluationDTO> save(@Valid MemberEvaluationDTO memberEvaluationDTO) {
|
public ResultMessage<MemberEvaluationDTO> save(@Valid MemberEvaluationDTO memberEvaluationDTO) {
|
||||||
return ResultUtil.data(memberEvaluationService.addMemberEvaluation(memberEvaluationDTO));
|
return ResultUtil.data(memberEvaluationService.addMemberEvaluation(memberEvaluationDTO, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "查看会员评价详情")
|
@ApiOperation(value = "查看会员评价详情")
|
||||||
@ApiImplicitParam(name = "id", value = "评价ID", required = true, paramType = "path")
|
@ApiImplicitParam(name = "id", value = "评价ID", required = true, paramType = "path")
|
||||||
@GetMapping(value = "/get/{id}")
|
@GetMapping(value = "/get/{id}")
|
||||||
public ResultMessage<MemberEvaluationVO> save(@NotNull(message = "评价ID不能为空") @PathVariable("id") String id) {
|
public ResultMessage<MemberEvaluationVO> get(@NotNull(message = "评价ID不能为空") @PathVariable("id") String id) {
|
||||||
return ResultUtil.data(memberEvaluationService.queryById(id));
|
return ResultUtil.data(memberEvaluationService.queryById(id));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
package cn.lili.controller.member;
|
package cn.lili.controller.member;
|
||||||
|
|
||||||
|
import cn.lili.cache.limit.annotation.LimitPoint;
|
||||||
|
import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
|
||||||
import cn.lili.common.enums.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
import cn.lili.modules.member.entity.dos.MemberSign;
|
import cn.lili.modules.member.entity.dos.MemberSign;
|
||||||
@@ -27,6 +29,8 @@ public class MemberSignBuyerController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private MemberSignService memberSignService;
|
private MemberSignService memberSignService;
|
||||||
|
|
||||||
|
|
||||||
|
@PreventDuplicateSubmissions
|
||||||
@PostMapping
|
@PostMapping
|
||||||
@ApiOperation(value = "会员签到")
|
@ApiOperation(value = "会员签到")
|
||||||
public ResultMessage<Boolean> memberSign() {
|
public ResultMessage<Boolean> memberSign() {
|
||||||
|
|||||||
@@ -1,57 +0,0 @@
|
|||||||
package cn.lili.controller.member;
|
|
||||||
|
|
||||||
import cn.lili.common.enums.ResultUtil;
|
|
||||||
import cn.lili.common.vo.PageVO;
|
|
||||||
import cn.lili.common.vo.ResultMessage;
|
|
||||||
import cn.lili.modules.system.entity.dos.ServiceNotice;
|
|
||||||
import cn.lili.modules.system.service.ServiceNoticeService;
|
|
||||||
import cn.lili.mybatis.util.PageUtil;
|
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
||||||
import io.swagger.annotations.Api;
|
|
||||||
import io.swagger.annotations.ApiImplicitParam;
|
|
||||||
import io.swagger.annotations.ApiOperation;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 买家端,会员站服务消息接口
|
|
||||||
*
|
|
||||||
* @author Chopper
|
|
||||||
* @since 2020/11/17 2:31 下午
|
|
||||||
*/
|
|
||||||
@RestController
|
|
||||||
@RequestMapping("/service/notice")
|
|
||||||
@Api(tags = "买家端,会员站服务消息接口")
|
|
||||||
public class ServiceNoticeBuyerController {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 服务消息
|
|
||||||
*/
|
|
||||||
@Autowired
|
|
||||||
private ServiceNoticeService serviceNoticeService;
|
|
||||||
|
|
||||||
@ApiOperation(value = "获取消息详情")
|
|
||||||
@ApiImplicitParam(name = "id", value = "商品ID", required = true, dataType = "Long", paramType = "path")
|
|
||||||
@GetMapping(value = "/{id}")
|
|
||||||
public ResultMessage<ServiceNotice> get(@PathVariable String id) {
|
|
||||||
ServiceNotice serviceNotice = serviceNoticeService.getById(id);
|
|
||||||
return ResultUtil.data(serviceNotice);
|
|
||||||
}
|
|
||||||
|
|
||||||
@ApiOperation(value = "分页获取服务消息")
|
|
||||||
@GetMapping
|
|
||||||
@ApiImplicitParam(name = "storeId", value = "商家id,默认为-1,代表平台消息,如果查询某商家发布的消息,传递商家id即可", dataType = "int", paramType = "query")
|
|
||||||
public ResultMessage<IPage<ServiceNotice>> getByPage(PageVO page, String storeId) {
|
|
||||||
ServiceNotice serviceNotice = new ServiceNotice();
|
|
||||||
if (storeId == null) {
|
|
||||||
storeId = "-1";
|
|
||||||
}
|
|
||||||
serviceNotice.setStoreId(storeId);
|
|
||||||
IPage<ServiceNotice> data = serviceNoticeService.page(PageUtil.initPage(page));
|
|
||||||
return ResultUtil.data(data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package cn.lili.controller.member;
|
package cn.lili.controller.message;
|
||||||
|
|
||||||
import cn.lili.common.enums.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.security.context.UserContext;
|
import cn.lili.common.security.context.UserContext;
|
||||||
@@ -23,7 +23,7 @@ import org.springframework.web.bind.annotation.*;
|
|||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,会员站内消息接口")
|
@Api(tags = "买家端,会员站内消息接口")
|
||||||
@RequestMapping("/buyer/member/message")
|
@RequestMapping("/buyer/message/member")
|
||||||
public class MemberMessageBuyerController {
|
public class MemberMessageBuyerController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1,19 +1,20 @@
|
|||||||
package cn.lili.controller.trade;
|
package cn.lili.controller.order;
|
||||||
|
|
||||||
|
import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
|
||||||
import cn.lili.common.enums.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
|
import cn.lili.common.security.OperationalJudgment;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
import cn.lili.modules.order.order.entity.dos.AfterSale;
|
import cn.lili.modules.order.aftersale.entity.dos.AfterSale;
|
||||||
import cn.lili.modules.order.order.entity.dos.AfterSaleReason;
|
import cn.lili.modules.order.aftersale.entity.dos.AfterSaleLog;
|
||||||
import cn.lili.modules.order.order.entity.dto.AfterSaleDTO;
|
import cn.lili.modules.order.aftersale.entity.dos.AfterSaleReason;
|
||||||
import cn.lili.modules.order.order.entity.vo.AfterSaleApplyVO;
|
import cn.lili.modules.order.aftersale.entity.dto.AfterSaleDTO;
|
||||||
import cn.lili.modules.order.order.entity.vo.AfterSaleSearchParams;
|
import cn.lili.modules.order.aftersale.entity.vo.AfterSaleApplyVO;
|
||||||
import cn.lili.modules.order.order.entity.vo.AfterSaleVO;
|
import cn.lili.modules.order.aftersale.entity.vo.AfterSaleSearchParams;
|
||||||
import cn.lili.modules.order.order.service.AfterSaleLogService;
|
import cn.lili.modules.order.aftersale.entity.vo.AfterSaleVO;
|
||||||
import cn.lili.modules.order.order.service.AfterSaleReasonService;
|
import cn.lili.modules.order.aftersale.service.AfterSaleLogService;
|
||||||
import cn.lili.modules.order.order.service.AfterSaleService;
|
import cn.lili.modules.order.aftersale.service.AfterSaleReasonService;
|
||||||
import cn.lili.modules.order.trade.entity.dos.AfterSaleLog;
|
import cn.lili.modules.order.aftersale.service.AfterSaleService;
|
||||||
import cn.lili.modules.store.entity.dto.StoreAfterSaleAddressDTO;
|
import cn.lili.modules.store.entity.dto.StoreAfterSaleAddressDTO;
|
||||||
import cn.lili.modules.system.utils.OperationalJudgment;
|
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
@@ -35,7 +36,7 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,售后管理接口")
|
@Api(tags = "买家端,售后管理接口")
|
||||||
@RequestMapping("/buyer/afterSale")
|
@RequestMapping("/buyer/order/afterSale")
|
||||||
public class AfterSaleBuyerController {
|
public class AfterSaleBuyerController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -77,6 +78,7 @@ public class AfterSaleBuyerController {
|
|||||||
return ResultUtil.data(afterSaleService.getAfterSaleVO(sn));
|
return ResultUtil.data(afterSaleService.getAfterSaleVO(sn));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PreventDuplicateSubmissions
|
||||||
@PostMapping(value = "/save/{orderItemSn}")
|
@PostMapping(value = "/save/{orderItemSn}")
|
||||||
@ApiImplicitParam(name = "orderItemSn", value = "订单货物编号", required = true, paramType = "query")
|
@ApiImplicitParam(name = "orderItemSn", value = "订单货物编号", required = true, paramType = "query")
|
||||||
@ApiOperation(value = "申请售后")
|
@ApiOperation(value = "申请售后")
|
||||||
@@ -101,6 +103,7 @@ public class AfterSaleBuyerController {
|
|||||||
return ResultUtil.data(afterSaleService.buyerDelivery(afterSaleSn, logisticsNo, logisticsId, mDeliverTime));
|
return ResultUtil.data(afterSaleService.buyerDelivery(afterSaleSn, logisticsNo, logisticsId, mDeliverTime));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PreventDuplicateSubmissions
|
||||||
@ApiOperation(value = "售后,取消售后")
|
@ApiOperation(value = "售后,取消售后")
|
||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ApiImplicitParam(name = "afterSaleSn", value = "售后sn", required = true, dataType = "String", paramType = "path")
|
@ApiImplicitParam(name = "afterSaleSn", value = "售后sn", required = true, dataType = "String", paramType = "path")
|
||||||
@@ -1,8 +1,9 @@
|
|||||||
package cn.lili.controller.trade;
|
package cn.lili.controller.order;
|
||||||
|
|
||||||
|
import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
|
||||||
import cn.lili.common.enums.ResultCode;
|
import cn.lili.common.enums.ResultCode;
|
||||||
import cn.lili.common.exception.ServiceException;
|
|
||||||
import cn.lili.common.enums.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
|
import cn.lili.common.exception.ServiceException;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
import cn.lili.modules.order.cart.entity.dto.TradeDTO;
|
import cn.lili.modules.order.cart.entity.dto.TradeDTO;
|
||||||
import cn.lili.modules.order.cart.entity.enums.CartTypeEnum;
|
import cn.lili.modules.order.cart.entity.enums.CartTypeEnum;
|
||||||
@@ -235,6 +236,7 @@ public class CartController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@PreventDuplicateSubmissions
|
||||||
@ApiOperation(value = "创建交易")
|
@ApiOperation(value = "创建交易")
|
||||||
@PostMapping(value = "/create/trade", consumes = "application/json", produces = "application/json")
|
@PostMapping(value = "/create/trade", consumes = "application/json", produces = "application/json")
|
||||||
public ResultMessage<Object> crateTrade(@RequestBody TradeParams tradeParams) {
|
public ResultMessage<Object> crateTrade(@RequestBody TradeParams tradeParams) {
|
||||||
@@ -246,7 +248,7 @@ public class CartController {
|
|||||||
throw se;
|
throw se;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(ResultCode.ORDER_ERROR.message(), e);
|
log.error(ResultCode.ORDER_ERROR.message(), e);
|
||||||
throw new ServiceException(ResultCode.ORDER_ERROR);
|
throw e;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,9 +1,11 @@
|
|||||||
package cn.lili.controller.trade;
|
package cn.lili.controller.order;
|
||||||
|
|
||||||
|
import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
|
||||||
import cn.lili.common.enums.ResultCode;
|
import cn.lili.common.enums.ResultCode;
|
||||||
import cn.lili.common.enums.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.exception.ServiceException;
|
import cn.lili.common.exception.ServiceException;
|
||||||
import cn.lili.common.security.AuthUser;
|
import cn.lili.common.security.AuthUser;
|
||||||
|
import cn.lili.common.security.OperationalJudgment;
|
||||||
import cn.lili.common.security.context.UserContext;
|
import cn.lili.common.security.context.UserContext;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
import cn.lili.modules.order.order.entity.dos.Order;
|
import cn.lili.modules.order.order.entity.dos.Order;
|
||||||
@@ -12,7 +14,6 @@ import cn.lili.modules.order.order.entity.enums.OrderStatusEnum;
|
|||||||
import cn.lili.modules.order.order.entity.vo.OrderDetailVO;
|
import cn.lili.modules.order.order.entity.vo.OrderDetailVO;
|
||||||
import cn.lili.modules.order.order.entity.vo.OrderSimpleVO;
|
import cn.lili.modules.order.order.entity.vo.OrderSimpleVO;
|
||||||
import cn.lili.modules.order.order.service.OrderService;
|
import cn.lili.modules.order.order.service.OrderService;
|
||||||
import cn.lili.modules.system.utils.OperationalJudgment;
|
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
@@ -34,7 +35,7 @@ import java.util.Objects;
|
|||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,订单接口")
|
@Api(tags = "买家端,订单接口")
|
||||||
@RequestMapping("/buyer/orders")
|
@RequestMapping("/buyer/order/order")
|
||||||
public class OrderBuyerController {
|
public class OrderBuyerController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -62,6 +63,7 @@ public class OrderBuyerController {
|
|||||||
return ResultUtil.data(orderDetailVO);
|
return ResultUtil.data(orderDetailVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PreventDuplicateSubmissions
|
||||||
@ApiOperation(value = "确认收货")
|
@ApiOperation(value = "确认收货")
|
||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ApiImplicitParam(name = "orderSn", value = "订单编号", required = true, paramType = "path")
|
@ApiImplicitParam(name = "orderSn", value = "订单编号", required = true, paramType = "path")
|
||||||
@@ -80,6 +82,7 @@ public class OrderBuyerController {
|
|||||||
return ResultUtil.success();
|
return ResultUtil.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PreventDuplicateSubmissions
|
||||||
@ApiOperation(value = "取消订单")
|
@ApiOperation(value = "取消订单")
|
||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ApiImplicitParam(name = "orderSn", value = "订单编号", required = true, dataType = "String", paramType = "path"),
|
@ApiImplicitParam(name = "orderSn", value = "订单编号", required = true, dataType = "String", paramType = "path"),
|
||||||
@@ -91,6 +94,7 @@ public class OrderBuyerController {
|
|||||||
return ResultUtil.success();
|
return ResultUtil.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PreventDuplicateSubmissions
|
||||||
@ApiOperation(value = "删除订单")
|
@ApiOperation(value = "删除订单")
|
||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ApiImplicitParam(name = "orderSn", value = "订单编号", required = true, dataType = "String", paramType = "path")
|
@ApiImplicitParam(name = "orderSn", value = "订单编号", required = true, dataType = "String", paramType = "path")
|
||||||
@@ -113,6 +117,7 @@ public class OrderBuyerController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@PreventDuplicateSubmissions
|
||||||
@ApiOperation(value = "开票")
|
@ApiOperation(value = "开票")
|
||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ApiImplicitParam(name = "orderSn", value = "订单编号", required = true, dataType = "String", paramType = "path")
|
@ApiImplicitParam(name = "orderSn", value = "订单编号", required = true, dataType = "String", paramType = "path")
|
||||||
@@ -1,7 +1,9 @@
|
|||||||
package cn.lili.controller.trade;
|
package cn.lili.controller.order;
|
||||||
|
|
||||||
|
import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
|
||||||
import cn.lili.common.enums.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.security.AuthUser;
|
import cn.lili.common.security.AuthUser;
|
||||||
|
import cn.lili.common.security.OperationalJudgment;
|
||||||
import cn.lili.common.security.context.UserContext;
|
import cn.lili.common.security.context.UserContext;
|
||||||
import cn.lili.common.vo.PageVO;
|
import cn.lili.common.vo.PageVO;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
@@ -13,7 +15,6 @@ import cn.lili.modules.order.order.entity.vo.OrderComplaintSearchParams;
|
|||||||
import cn.lili.modules.order.order.entity.vo.OrderComplaintVO;
|
import cn.lili.modules.order.order.entity.vo.OrderComplaintVO;
|
||||||
import cn.lili.modules.order.order.service.OrderComplaintCommunicationService;
|
import cn.lili.modules.order.order.service.OrderComplaintCommunicationService;
|
||||||
import cn.lili.modules.order.order.service.OrderComplaintService;
|
import cn.lili.modules.order.order.service.OrderComplaintService;
|
||||||
import cn.lili.modules.system.utils.OperationalJudgment;
|
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
@@ -33,7 +34,7 @@ import java.util.Objects;
|
|||||||
**/
|
**/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,交易投诉接口")
|
@Api(tags = "买家端,交易投诉接口")
|
||||||
@RequestMapping("/buyer/complain")
|
@RequestMapping("/buyer/order/complain")
|
||||||
public class OrderComplaintBuyerController {
|
public class OrderComplaintBuyerController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -66,6 +67,7 @@ public class OrderComplaintBuyerController {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PreventDuplicateSubmissions
|
||||||
@ApiOperation(value = "添加交易投诉")
|
@ApiOperation(value = "添加交易投诉")
|
||||||
@PostMapping
|
@PostMapping
|
||||||
public ResultMessage<OrderComplaint> add(@Valid OrderComplaintDTO orderComplaintDTO) {
|
public ResultMessage<OrderComplaint> add(@Valid OrderComplaintDTO orderComplaintDTO) {
|
||||||
@@ -80,11 +82,12 @@ public class OrderComplaintBuyerController {
|
|||||||
@PostMapping("/communication")
|
@PostMapping("/communication")
|
||||||
public ResultMessage<OrderComplaintCommunicationVO> addCommunication(@RequestParam String complainId, @RequestParam String content) {
|
public ResultMessage<OrderComplaintCommunicationVO> addCommunication(@RequestParam String complainId, @RequestParam String content) {
|
||||||
AuthUser currentUser = Objects.requireNonNull(UserContext.getCurrentUser());
|
AuthUser currentUser = Objects.requireNonNull(UserContext.getCurrentUser());
|
||||||
OrderComplaintCommunicationVO communicationVO = new OrderComplaintCommunicationVO(complainId, content, CommunicationOwnerEnum.BUYER.name(), currentUser.getId(), currentUser.getNickName());
|
OrderComplaintCommunicationVO communicationVO = new OrderComplaintCommunicationVO(complainId, content, CommunicationOwnerEnum.BUYER.name(), currentUser.getNickName(), currentUser.getId());
|
||||||
orderComplaintCommunicationService.addCommunication(communicationVO);
|
orderComplaintCommunicationService.addCommunication(communicationVO);
|
||||||
return ResultUtil.data(communicationVO);
|
return ResultUtil.data(communicationVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PreventDuplicateSubmissions
|
||||||
@ApiOperation(value = "取消售后")
|
@ApiOperation(value = "取消售后")
|
||||||
@ApiImplicitParam(name = "id", value = "投诉单ID", required = true, paramType = "path")
|
@ApiImplicitParam(name = "id", value = "投诉单ID", required = true, paramType = "path")
|
||||||
@PutMapping(value = "/status/{id}")
|
@PutMapping(value = "/status/{id}")
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
package cn.lili.controller.trade;
|
package cn.lili.controller.order;
|
||||||
|
|
||||||
|
import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
|
||||||
import cn.lili.common.enums.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.vo.PageVO;
|
import cn.lili.common.vo.PageVO;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
@@ -41,6 +42,7 @@ public class ReceiptBuyerController {
|
|||||||
return ResultUtil.data(this.receiptService.getReceiptData(searchParams, pageVO));
|
return ResultUtil.data(this.receiptService.getReceiptData(searchParams, pageVO));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PreventDuplicateSubmissions
|
||||||
@ApiOperation(value = "保存发票信息")
|
@ApiOperation(value = "保存发票信息")
|
||||||
@PostMapping
|
@PostMapping
|
||||||
public ResultMessage<Receipt> save(@Valid Receipt receipt) {
|
public ResultMessage<Receipt> save(@Valid Receipt receipt) {
|
||||||
@@ -1,15 +1,15 @@
|
|||||||
package cn.lili.controller.trade;
|
package cn.lili.controller.order;
|
||||||
|
|
||||||
|
import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
|
||||||
import cn.lili.common.enums.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
import cn.lili.modules.order.trade.entity.dos.Recharge;
|
import cn.lili.modules.wallet.entity.dos.Recharge;
|
||||||
import cn.lili.modules.order.trade.service.RechargeService;
|
import cn.lili.modules.wallet.service.RechargeService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiImplicitParams;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
@@ -26,12 +26,12 @@ import javax.validation.constraints.Min;
|
|||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,预存款充值记录接口")
|
@Api(tags = "买家端,预存款充值记录接口")
|
||||||
@RequestMapping("/buyer/trade/recharge")
|
@RequestMapping("/buyer/trade/recharge")
|
||||||
@Transactional(rollbackFor = Exception.class)
|
|
||||||
public class RechargeTradeBuyerController {
|
public class RechargeTradeBuyerController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private RechargeService rechargeService;
|
private RechargeService rechargeService;
|
||||||
|
|
||||||
|
@PreventDuplicateSubmissions
|
||||||
@PostMapping
|
@PostMapping
|
||||||
@ApiOperation(value = "创建余额充值订单")
|
@ApiOperation(value = "创建余额充值订单")
|
||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@@ -25,7 +25,7 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,APP版本")
|
@Api(tags = "买家端,APP版本")
|
||||||
@RequestMapping("/buyer/appVersion")
|
@RequestMapping("/buyer/other/appVersion")
|
||||||
public class AppVersionBuyerController {
|
public class AppVersionBuyerController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,文章接口")
|
@Api(tags = "买家端,文章接口")
|
||||||
@RequestMapping("/buyer/article")
|
@RequestMapping("/buyer/other/article")
|
||||||
public class ArticleBuyerController {
|
public class ArticleBuyerController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package cn.lili.controller.other;
|
package cn.lili.controller.other;
|
||||||
|
|
||||||
|
import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
|
||||||
import cn.lili.common.enums.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.security.context.UserContext;
|
import cn.lili.common.security.context.UserContext;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
@@ -22,7 +23,7 @@ import javax.validation.Valid;
|
|||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,意见反馈接口")
|
@Api(tags = "买家端,意见反馈接口")
|
||||||
@RequestMapping("/buyer/feedback")
|
@RequestMapping("/buyer/other/feedback")
|
||||||
public class FeedbackBuyerController {
|
public class FeedbackBuyerController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -31,6 +32,7 @@ public class FeedbackBuyerController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private FeedbackService feedbackService;
|
private FeedbackService feedbackService;
|
||||||
|
|
||||||
|
@PreventDuplicateSubmissions
|
||||||
@ApiOperation(value = "添加意见反馈")
|
@ApiOperation(value = "添加意见反馈")
|
||||||
@PostMapping()
|
@PostMapping()
|
||||||
public ResultMessage<Object> save(@Valid Feedback feedback) {
|
public ResultMessage<Object> save(@Valid Feedback feedback) {
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,物流公司接口")
|
@Api(tags = "买家端,物流公司接口")
|
||||||
@RequestMapping("/buyer/logistics")
|
@RequestMapping("/buyer/other/logistics")
|
||||||
public class LogisticsBuyerController {
|
public class LogisticsBuyerController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
|
|||||||
@@ -2,17 +2,17 @@ package cn.lili.controller.other;
|
|||||||
|
|
||||||
import cn.lili.common.enums.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
|
import cn.lili.modules.page.entity.dos.PageData;
|
||||||
import cn.lili.modules.page.entity.dto.PageDataDTO;
|
import cn.lili.modules.page.entity.dto.PageDataDTO;
|
||||||
import cn.lili.modules.page.entity.enums.PageEnum;
|
import cn.lili.modules.page.entity.enums.PageEnum;
|
||||||
import cn.lili.modules.page.entity.vos.PageDataVO;
|
import cn.lili.modules.page.entity.vos.PageDataVO;
|
||||||
import cn.lili.modules.page.service.PageDataService;
|
import cn.lili.modules.page.service.PageDataService;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 买家端,页面接口
|
* 买家端,页面接口
|
||||||
@@ -22,7 +22,7 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,页面接口")
|
@Api(tags = "买家端,页面接口")
|
||||||
@RequestMapping("/buyer/pageData")
|
@RequestMapping("/buyer/other/pageData")
|
||||||
public class PageBuyerController {
|
public class PageBuyerController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -36,12 +36,53 @@ public class PageBuyerController {
|
|||||||
public ResultMessage<PageDataVO> getIndex(@RequestParam String clientType) {
|
public ResultMessage<PageDataVO> getIndex(@RequestParam String clientType) {
|
||||||
PageDataDTO pageDataDTO = new PageDataDTO(PageEnum.INDEX.name());
|
PageDataDTO pageDataDTO = new PageDataDTO(PageEnum.INDEX.name());
|
||||||
pageDataDTO.setPageClientType(clientType);
|
pageDataDTO.setPageClientType(clientType);
|
||||||
return ResultUtil.data(pageService.getPageData(pageDataDTO));
|
PageDataVO pageDataVO=pageService.getPageData(pageDataDTO);
|
||||||
|
return ResultUtil.data(pageDataVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "获取页面数据")
|
@ApiOperation(value = "获取页面数据")
|
||||||
@GetMapping
|
@GetMapping
|
||||||
public ResultMessage<PageDataVO> get(PageDataDTO pageDataDTO) {
|
public ResultMessage<PageDataVO> get(PageDataDTO pageDataDTO) {
|
||||||
return ResultUtil.data(pageService.getPageData(pageDataDTO));
|
PageDataVO pageDataVO=pageService.getPageData(pageDataDTO);
|
||||||
|
return ResultUtil.data(pageDataVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "获取页面数据")
|
||||||
|
@ApiImplicitParam(name = "id", value = "id", required = true, dataType = "String", paramType = "path")
|
||||||
|
@GetMapping("/get/{id}")
|
||||||
|
public ResultMessage<PageData> getPage(@PathVariable("id") String id) {
|
||||||
|
return ResultUtil.data(pageService.getSpecial(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "获取专题页面数据(根据消息内容得知)")
|
||||||
|
@GetMapping("/getSpecial")
|
||||||
|
public ResultMessage<PageData> getSpecial(@RequestParam String body) {
|
||||||
|
String name = "";
|
||||||
|
if (body.indexOf("』") >= 0 && body.indexOf("『") >= 0) {
|
||||||
|
name = body.substring(body.indexOf("『") + 1, body.lastIndexOf("』"));
|
||||||
|
} else if (body.indexOf("〉") >= 0 && body.indexOf("〈") >= 0) {
|
||||||
|
name = body.substring(body.indexOf("〈") + 1, body.lastIndexOf("〉"));
|
||||||
|
} else if (body.indexOf("」") >= 0 && body.indexOf("「") >= 0) {
|
||||||
|
name = body.substring(body.indexOf("「") + 1, body.lastIndexOf("」"));
|
||||||
|
} else if (body.indexOf("》") >= 0 && body.indexOf("《") >= 0) {
|
||||||
|
name = body.substring(body.indexOf("《") + 1, body.lastIndexOf("》"));
|
||||||
|
} else if (body.indexOf(")") >= 0 && body.indexOf("(") >= 0) {
|
||||||
|
name = body.substring(body.indexOf("(") + 1, body.lastIndexOf(")"));
|
||||||
|
} else if (body.indexOf("】") >= 0 && body.indexOf("【") >= 0) {
|
||||||
|
name = body.substring(body.indexOf("【") + 1, body.lastIndexOf("】"));
|
||||||
|
} else if (body.indexOf("}") >= 0 && body.indexOf("{") >= 0) {
|
||||||
|
name = body.substring(body.indexOf("{") + 1, body.lastIndexOf("}"));
|
||||||
|
} else if (body.indexOf("!") >= 0) {
|
||||||
|
name = body.substring(body.indexOf("!") + 1, body.lastIndexOf("!"));
|
||||||
|
} else if (body.indexOf("|") >= 0) {
|
||||||
|
name = body.substring(body.indexOf("|") + 1, body.lastIndexOf("|"));
|
||||||
|
}
|
||||||
|
|
||||||
|
PageData pageData = pageService.getOne(
|
||||||
|
new LambdaQueryWrapper<PageData>()
|
||||||
|
.eq(PageData::getPageType, PageEnum.SPECIAL.name())
|
||||||
|
.eq(PageData::getName, name));
|
||||||
|
return ResultUtil.data(pageData);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package cn.lili.controller.other.broadcast;
|
|||||||
import cn.lili.common.enums.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.vo.PageVO;
|
import cn.lili.common.vo.PageVO;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
import cn.lili.modules.goods.entity.dos.Studio;
|
import cn.lili.modules.goods.entity.vos.StudioVO;
|
||||||
import cn.lili.modules.goods.service.StudioService;
|
import cn.lili.modules.goods.service.StudioService;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
@@ -35,7 +35,7 @@ public class StudioController {
|
|||||||
@ApiImplicitParam(name = "status", value = "直播间状态", paramType = "query", dataType = "String")
|
@ApiImplicitParam(name = "status", value = "直播间状态", paramType = "query", dataType = "String")
|
||||||
})
|
})
|
||||||
@GetMapping
|
@GetMapping
|
||||||
public ResultMessage<IPage<Studio>> page(PageVO pageVO, Integer recommend, String status) {
|
public ResultMessage<IPage<StudioVO>> page(PageVO pageVO, Integer recommend, String status) {
|
||||||
return ResultUtil.data(studioService.studioList(pageVO, recommend, status));
|
return ResultUtil.data(studioService.studioList(pageVO, recommend, status));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package cn.lili.controller.other.purchase;
|
package cn.lili.controller.other.purchase;
|
||||||
|
|
||||||
|
import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
|
||||||
import cn.lili.common.enums.ResultCode;
|
import cn.lili.common.enums.ResultCode;
|
||||||
import cn.lili.common.enums.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.security.context.UserContext;
|
import cn.lili.common.security.context.UserContext;
|
||||||
@@ -29,7 +30,7 @@ import javax.validation.constraints.NotNull;
|
|||||||
*/
|
*/
|
||||||
@Api(tags = "买家端,采购接口")
|
@Api(tags = "买家端,采购接口")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/buyer/purchase")
|
@RequestMapping("/buyer/other/purchase/purchase")
|
||||||
public class PurchaseBuyerController {
|
public class PurchaseBuyerController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -48,6 +49,8 @@ public class PurchaseBuyerController {
|
|||||||
return ResultUtil.data(goodsUnitService.page(PageUtil.initPage(pageVO)));
|
return ResultUtil.data(goodsUnitService.page(PageUtil.initPage(pageVO)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@PreventDuplicateSubmissions
|
||||||
@ApiOperation(value = "添加采购单")
|
@ApiOperation(value = "添加采购单")
|
||||||
@PostMapping
|
@PostMapping
|
||||||
public ResultMessage<PurchaseOrderVO> addPurchaseOrderVO(@RequestBody PurchaseOrderVO purchaseOrderVO) {
|
public ResultMessage<PurchaseOrderVO> addPurchaseOrderVO(@RequestBody PurchaseOrderVO purchaseOrderVO) {
|
||||||
@@ -74,6 +77,7 @@ public class PurchaseBuyerController {
|
|||||||
return ResultUtil.data(purchaseOrderService.page(purchaseOrderSearchParams));
|
return ResultUtil.data(purchaseOrderService.page(purchaseOrderSearchParams));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PreventDuplicateSubmissions
|
||||||
@ApiOperation(value = "关闭采购单")
|
@ApiOperation(value = "关闭采购单")
|
||||||
@ApiImplicitParam(name = "id", value = "采购单ID", required = true, dataType = "Long", paramType = "path")
|
@ApiImplicitParam(name = "id", value = "采购单ID", required = true, dataType = "Long", paramType = "path")
|
||||||
@PutMapping("/{id}")
|
@PutMapping("/{id}")
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
@Api(tags = "买家端,采购报价接口")
|
@Api(tags = "买家端,采购报价接口")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/buyer/purchaseQuoted")
|
@RequestMapping("/buyer/other/purchase/purchaseQuoted")
|
||||||
public class PurchaseQuotedController {
|
public class PurchaseQuotedController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,22 +1,34 @@
|
|||||||
package cn.lili.controller.passport;
|
package cn.lili.controller.passport;
|
||||||
|
|
||||||
|
import cn.lili.common.enums.ResultCode;
|
||||||
import cn.lili.common.enums.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
|
import cn.lili.common.exception.ServiceException;
|
||||||
import cn.lili.common.security.enums.UserEnums;
|
import cn.lili.common.security.enums.UserEnums;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
import cn.lili.modules.member.entity.dos.Member;
|
import cn.lili.modules.member.entity.dos.Member;
|
||||||
import cn.lili.modules.member.entity.dto.MemberEditDTO;
|
import cn.lili.modules.member.entity.dto.MemberEditDTO;
|
||||||
|
import cn.lili.modules.member.entity.enums.QRCodeLoginSessionStatusEnum;
|
||||||
|
import cn.lili.modules.member.entity.vo.QRLoginResultVo;
|
||||||
import cn.lili.modules.member.service.MemberService;
|
import cn.lili.modules.member.service.MemberService;
|
||||||
import cn.lili.modules.system.sms.SmsUtil;
|
import cn.lili.modules.sms.SmsUtil;
|
||||||
import cn.lili.modules.verification.enums.VerificationEnums;
|
import cn.lili.modules.verification.entity.enums.VerificationEnums;
|
||||||
import cn.lili.modules.verification.service.VerificationService;
|
import cn.lili.modules.verification.service.VerificationService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiImplicitParams;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import org.springframework.web.context.request.async.DeferredResult;
|
||||||
|
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
import java.util.concurrent.Executors;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 买家端,会员接口
|
* 买家端,会员接口
|
||||||
@@ -24,9 +36,10 @@ import javax.validation.constraints.NotNull;
|
|||||||
* @author Chopper
|
* @author Chopper
|
||||||
* @since 2020/11/16 10:07 下午
|
* @since 2020/11/16 10:07 下午
|
||||||
*/
|
*/
|
||||||
|
@Slf4j
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,会员接口")
|
@Api(tags = "买家端,会员接口")
|
||||||
@RequestMapping("/buyer/members")
|
@RequestMapping("/buyer/passport/member")
|
||||||
public class MemberBuyerController {
|
public class MemberBuyerController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
@@ -37,6 +50,73 @@ public class MemberBuyerController {
|
|||||||
private VerificationService verificationService;
|
private VerificationService verificationService;
|
||||||
|
|
||||||
|
|
||||||
|
@ApiOperation(value = "web-获取登录二维码")
|
||||||
|
@PostMapping(value = "/pc_session", produces = "application/json;charset=UTF-8")
|
||||||
|
public ResultMessage<Object> createPcSession() {
|
||||||
|
return ResultUtil.data(memberService.createPcSession());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 长轮询:参考nacos
|
||||||
|
*
|
||||||
|
* @param token
|
||||||
|
* @param beforeSessionStatus 上次记录的session状态
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@ApiOperation(value = "web-二维码登录")
|
||||||
|
@PostMapping(value = "/session_login/{token}", produces = "application/json;charset=UTF-8")
|
||||||
|
public Object loginWithSession(@PathVariable("token") String token, Integer beforeSessionStatus) {
|
||||||
|
log.info("receive login with session key {}", token);
|
||||||
|
ResponseEntity<ResultMessage<Object>> timeoutResponseEntity =
|
||||||
|
new ResponseEntity<>(ResultUtil.error(ResultCode.ERROR), HttpStatus.OK);
|
||||||
|
int timeoutSecond = 20;
|
||||||
|
DeferredResult<ResponseEntity<Object>> deferredResult = new DeferredResult<>(timeoutSecond * 1000L, timeoutResponseEntity);
|
||||||
|
CompletableFuture.runAsync(() -> {
|
||||||
|
try {
|
||||||
|
int i = 0;
|
||||||
|
while (i < timeoutSecond) {
|
||||||
|
QRLoginResultVo queryResult = memberService.loginWithSession(token);
|
||||||
|
int status = queryResult.getStatus();
|
||||||
|
if (status == beforeSessionStatus
|
||||||
|
&& (QRCodeLoginSessionStatusEnum.WAIT_SCANNING.getCode() == status
|
||||||
|
|| QRCodeLoginSessionStatusEnum.SCANNING.getCode() == status)) {
|
||||||
|
//睡眠一秒种,继续等待结果
|
||||||
|
TimeUnit.SECONDS.sleep(1);
|
||||||
|
} else {
|
||||||
|
deferredResult.setResult(new ResponseEntity<>(ResultUtil.data(queryResult), HttpStatus.OK));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("获取登录状态异常,", e);
|
||||||
|
deferredResult.setResult(new ResponseEntity<>(ResultUtil.error(ResultCode.ERROR), HttpStatus.OK));
|
||||||
|
Thread.currentThread().interrupt();
|
||||||
|
}
|
||||||
|
}, Executors.newCachedThreadPool());
|
||||||
|
return deferredResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "app扫码")
|
||||||
|
@PostMapping(value = "/app_scanner", produces = "application/json;charset=UTF-8")
|
||||||
|
public ResultMessage<Object> appScanner(String token) {
|
||||||
|
return ResultUtil.data(memberService.appScanner(token));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ApiOperation(value = "app扫码-登录确认:同意/拒绝")
|
||||||
|
@ApiImplicitParams({
|
||||||
|
@ApiImplicitParam(name = "token", value = "sessionToken", required = true, paramType = "query"),
|
||||||
|
@ApiImplicitParam(name = "code", value = "操作:0拒绝登录,1同意登录", required = true, paramType = "query")
|
||||||
|
})
|
||||||
|
@PostMapping(value = "/app_confirm", produces = "application/json;charset=UTF-8")
|
||||||
|
public ResultMessage<Object> appSConfirm(String token, Integer code) {
|
||||||
|
boolean flag = memberService.appSConfirm(token, code);
|
||||||
|
return flag ? ResultUtil.success() : ResultUtil.error(ResultCode.ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@ApiOperation(value = "登录接口")
|
@ApiOperation(value = "登录接口")
|
||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ApiImplicitParam(name = "username", value = "用户名", required = true, paramType = "query"),
|
@ApiImplicitParam(name = "username", value = "用户名", required = true, paramType = "query"),
|
||||||
@@ -66,8 +146,11 @@ public class MemberBuyerController {
|
|||||||
public ResultMessage<Object> smsLogin(@NotNull(message = "手机号为空") @RequestParam String mobile,
|
public ResultMessage<Object> smsLogin(@NotNull(message = "手机号为空") @RequestParam String mobile,
|
||||||
@NotNull(message = "验证码为空") @RequestParam String code,
|
@NotNull(message = "验证码为空") @RequestParam String code,
|
||||||
@RequestHeader String uuid) {
|
@RequestHeader String uuid) {
|
||||||
smsUtil.verifyCode(mobile, VerificationEnums.LOGIN, uuid, code);
|
if (smsUtil.verifyCode(mobile, VerificationEnums.LOGIN, uuid, code)) {
|
||||||
return ResultUtil.data(memberService.mobilePhoneLogin(mobile));
|
return ResultUtil.data(memberService.mobilePhoneLogin(mobile));
|
||||||
|
} else {
|
||||||
|
throw new ServiceException(ResultCode.VERIFICATION_SMS_CHECKED_ERROR);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "注册用户")
|
@ApiOperation(value = "注册用户")
|
||||||
@@ -84,8 +167,11 @@ public class MemberBuyerController {
|
|||||||
@RequestHeader String uuid,
|
@RequestHeader String uuid,
|
||||||
@NotNull(message = "验证码不能为空") @RequestParam String code) {
|
@NotNull(message = "验证码不能为空") @RequestParam String code) {
|
||||||
|
|
||||||
smsUtil.verifyCode(mobilePhone, VerificationEnums.REGISTER, uuid, code);
|
if (smsUtil.verifyCode(mobilePhone, VerificationEnums.REGISTER, uuid, code)) {
|
||||||
return ResultUtil.data(memberService.register(username, password, mobilePhone));
|
return ResultUtil.data(memberService.register(username, password, mobilePhone));
|
||||||
|
} else {
|
||||||
|
throw new ServiceException(ResultCode.VERIFICATION_SMS_CHECKED_ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -106,16 +192,17 @@ public class MemberBuyerController {
|
|||||||
@NotNull(message = "验证码为空") @RequestParam String code,
|
@NotNull(message = "验证码为空") @RequestParam String code,
|
||||||
@RequestHeader String uuid) {
|
@RequestHeader String uuid) {
|
||||||
//校验短信验证码是否正确
|
//校验短信验证码是否正确
|
||||||
smsUtil.verifyCode(mobile, VerificationEnums.FIND_USER, uuid, code);
|
if (smsUtil.verifyCode(mobile, VerificationEnums.FIND_USER, uuid, code)) {
|
||||||
//校验是否通过手机号可获取会员,存在则将会员信息存入缓存,有效时间3分钟
|
//校验是否通过手机号可获取会员,存在则将会员信息存入缓存,有效时间3分钟
|
||||||
memberService.findByMobile(uuid, mobile);
|
memberService.findByMobile(uuid, mobile);
|
||||||
|
return ResultUtil.success();
|
||||||
return ResultUtil.success();
|
} else {
|
||||||
|
throw new ServiceException(ResultCode.VERIFICATION_SMS_CHECKED_ERROR);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "修改密码")
|
@ApiOperation(value = "修改密码")
|
||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ApiImplicitParam(name = "mobile", value = "手机号", required = true, paramType = "query"),
|
|
||||||
@ApiImplicitParam(name = "password", value = "是否保存登录", required = true, paramType = "query")
|
@ApiImplicitParam(name = "password", value = "是否保存登录", required = true, paramType = "query")
|
||||||
})
|
})
|
||||||
@PostMapping("/resetPassword")
|
@PostMapping("/resetPassword")
|
||||||
@@ -142,6 +229,34 @@ public class MemberBuyerController {
|
|||||||
return ResultUtil.data(memberService.modifyPass(password, newPassword));
|
return ResultUtil.data(memberService.modifyPass(password, newPassword));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "初始设置密码")
|
||||||
|
@ApiImplicitParams({
|
||||||
|
@ApiImplicitParam(name = "newPassword", value = "新密码", required = true, paramType = "query")
|
||||||
|
})
|
||||||
|
@PutMapping("/canInitPassword")
|
||||||
|
public ResultMessage<Object> canInitPassword() {
|
||||||
|
return ResultUtil.data(memberService.canInitPass());
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "初始设置密码")
|
||||||
|
@ApiImplicitParams({
|
||||||
|
@ApiImplicitParam(name = "newPassword", value = "新密码", required = true, paramType = "query")
|
||||||
|
})
|
||||||
|
@PutMapping("/initPassword")
|
||||||
|
public ResultMessage<Object> initPassword(@NotNull(message = "密码不能为空") @RequestParam String password) {
|
||||||
|
memberService.initPass(password);
|
||||||
|
return ResultUtil.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "注销账号")
|
||||||
|
@ApiImplicitParams({
|
||||||
|
@ApiImplicitParam(name = "password", value = "密码", required = true, paramType = "query")
|
||||||
|
})
|
||||||
|
@PutMapping("/cancellation")
|
||||||
|
public ResultMessage<Member> cancellation(@NotNull(message = "密码不能为空") @RequestParam String password) {
|
||||||
|
memberService.cancellation(password);
|
||||||
|
return ResultUtil.success();
|
||||||
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "刷新token")
|
@ApiOperation(value = "刷新token")
|
||||||
@GetMapping("/refresh/{refreshToken}")
|
@GetMapping("/refresh/{refreshToken}")
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,app/小程序 联合登录")
|
@Api(tags = "买家端,app/小程序 联合登录")
|
||||||
@RequestMapping("/buyer/connect/bind")
|
@RequestMapping("/buyer/passport/connect/bind")
|
||||||
public class ConnectBuyerBindController {
|
public class ConnectBuyerBindController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
|
|||||||
@@ -2,16 +2,16 @@ package cn.lili.controller.passport.connect;
|
|||||||
|
|
||||||
|
|
||||||
import cn.lili.common.enums.ResultCode;
|
import cn.lili.common.enums.ResultCode;
|
||||||
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.exception.ServiceException;
|
import cn.lili.common.exception.ServiceException;
|
||||||
import cn.lili.common.security.token.Token;
|
import cn.lili.common.security.token.Token;
|
||||||
import cn.lili.common.enums.ResultUtil;
|
import cn.lili.common.utils.UuidUtils;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
import cn.lili.modules.connect.entity.dto.AuthCallback;
|
import cn.lili.modules.connect.entity.dto.AuthCallback;
|
||||||
import cn.lili.modules.connect.entity.dto.ConnectAuthUser;
|
import cn.lili.modules.connect.entity.dto.ConnectAuthUser;
|
||||||
import cn.lili.modules.connect.request.AuthRequest;
|
import cn.lili.modules.connect.request.AuthRequest;
|
||||||
import cn.lili.modules.connect.service.ConnectService;
|
import cn.lili.modules.connect.service.ConnectService;
|
||||||
import cn.lili.modules.connect.util.ConnectUtil;
|
import cn.lili.modules.connect.util.ConnectUtil;
|
||||||
import cn.lili.modules.connect.util.UuidUtils;
|
|
||||||
import cn.lili.modules.member.service.MemberService;
|
import cn.lili.modules.member.service.MemberService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
@@ -33,7 +33,7 @@ import java.io.IOException;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,web联合登录")
|
@Api(tags = "买家端,web联合登录")
|
||||||
@RequestMapping("/buyer/connect")
|
@RequestMapping("/buyer/passport/connect/connect")
|
||||||
public class ConnectBuyerWebController {
|
public class ConnectBuyerWebController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
package cn.lili.controller.passport.connect;
|
package cn.lili.controller.passport.connect;
|
||||||
|
|
||||||
import cn.lili.common.security.token.Token;
|
|
||||||
import cn.lili.common.enums.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
|
import cn.lili.common.security.token.Token;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
import cn.lili.modules.connect.entity.dto.WechatMPLoginParams;
|
import cn.lili.modules.connect.entity.dto.WechatMPLoginParams;
|
||||||
import cn.lili.modules.connect.service.ConnectService;
|
import cn.lili.modules.connect.service.ConnectService;
|
||||||
import cn.lili.modules.message.entity.dos.WechatMPMessage;
|
|
||||||
import cn.lili.modules.message.service.ShortLinkService;
|
import cn.lili.modules.message.service.ShortLinkService;
|
||||||
import cn.lili.modules.message.service.WechatMPMessageService;
|
import cn.lili.modules.wechat.entity.dos.WechatMPMessage;
|
||||||
import cn.lili.modules.message.util.WechatMpCodeUtil;
|
import cn.lili.modules.wechat.service.WechatMPMessageService;
|
||||||
|
import cn.lili.modules.wechat.util.WechatMpCodeUtil;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -26,7 +26,7 @@ import java.util.List;
|
|||||||
* @since 2021/2/19 09:28
|
* @since 2021/2/19 09:28
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/buyer/mini-program")
|
@RequestMapping("/buyer/passport/connect/miniProgram")
|
||||||
@Api(tags = "买家端,小程序登录接口")
|
@Api(tags = "买家端,小程序登录接口")
|
||||||
public class MiniProgramBuyerController {
|
public class MiniProgramBuyerController {
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ import javax.servlet.http.HttpServletResponse;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,收银台接口")
|
@Api(tags = "买家端,收银台接口")
|
||||||
@RequestMapping("/buyer/cashier")
|
@RequestMapping("/buyer/payment/cashier")
|
||||||
public class CashierController {
|
public class CashierController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ import javax.servlet.http.HttpServletRequest;
|
|||||||
*/
|
*/
|
||||||
@Api(tags = "买家端,退款回调")
|
@Api(tags = "买家端,退款回调")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/buyer/cashier/refund")
|
@RequestMapping("/buyer/payment/cashierRefund")
|
||||||
public class CashierRefundController {
|
public class CashierRefundController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
|
|||||||
@@ -1,16 +1,19 @@
|
|||||||
package cn.lili.controller.member;
|
package cn.lili.controller.promotion;
|
||||||
|
|
||||||
import cn.lili.common.enums.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.security.AuthUser;
|
import cn.lili.common.security.AuthUser;
|
||||||
|
import cn.lili.common.security.OperationalJudgment;
|
||||||
import cn.lili.common.security.context.UserContext;
|
import cn.lili.common.security.context.UserContext;
|
||||||
import cn.lili.common.vo.PageVO;
|
import cn.lili.common.vo.PageVO;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
import cn.lili.modules.promotion.entity.dos.MemberCoupon;
|
import cn.lili.modules.promotion.entity.dos.MemberCoupon;
|
||||||
import cn.lili.modules.promotion.entity.vos.CouponSearchParams;
|
import cn.lili.modules.promotion.entity.dto.search.CouponSearchParams;
|
||||||
|
import cn.lili.modules.promotion.entity.dto.search.MemberCouponSearchParams;
|
||||||
|
import cn.lili.modules.promotion.entity.enums.CouponGetEnum;
|
||||||
|
import cn.lili.modules.promotion.entity.enums.PromotionsStatusEnum;
|
||||||
import cn.lili.modules.promotion.entity.vos.CouponVO;
|
import cn.lili.modules.promotion.entity.vos.CouponVO;
|
||||||
import cn.lili.modules.promotion.service.CouponService;
|
import cn.lili.modules.promotion.service.CouponService;
|
||||||
import cn.lili.modules.promotion.service.MemberCouponService;
|
import cn.lili.modules.promotion.service.MemberCouponService;
|
||||||
import cn.lili.modules.system.utils.OperationalJudgment;
|
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
@@ -51,13 +54,15 @@ public class CouponBuyerController {
|
|||||||
@GetMapping
|
@GetMapping
|
||||||
@ApiOperation(value = "获取可领取优惠券列表")
|
@ApiOperation(value = "获取可领取优惠券列表")
|
||||||
public ResultMessage<IPage<CouponVO>> getCouponList(CouponSearchParams queryParam, PageVO page) {
|
public ResultMessage<IPage<CouponVO>> getCouponList(CouponSearchParams queryParam, PageVO page) {
|
||||||
IPage<CouponVO> canUseCoupons = couponService.getCanReceiveCoupons(queryParam, page);
|
queryParam.setPromotionStatus(PromotionsStatusEnum.START.name());
|
||||||
|
queryParam.setGetType(CouponGetEnum.FREE.name());
|
||||||
|
IPage<CouponVO> canUseCoupons = couponService.pageVOFindAll(queryParam, page);
|
||||||
return ResultUtil.data(canUseCoupons);
|
return ResultUtil.data(canUseCoupons);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "获取当前会员的优惠券列表")
|
@ApiOperation(value = "获取当前会员的优惠券列表")
|
||||||
@GetMapping("/getCoupons")
|
@GetMapping("/getCoupons")
|
||||||
public ResultMessage<IPage<MemberCoupon>> getCoupons(CouponSearchParams param, PageVO pageVo) {
|
public ResultMessage<IPage<MemberCoupon>> getCoupons(MemberCouponSearchParams param, PageVO pageVo) {
|
||||||
AuthUser currentUser = Objects.requireNonNull(UserContext.getCurrentUser());
|
AuthUser currentUser = Objects.requireNonNull(UserContext.getCurrentUser());
|
||||||
param.setMemberId(currentUser.getId());
|
param.setMemberId(currentUser.getId());
|
||||||
return ResultUtil.data(memberCouponService.getMemberCoupons(param, pageVo));
|
return ResultUtil.data(memberCouponService.getMemberCoupons(param, pageVo));
|
||||||
@@ -65,7 +70,7 @@ public class CouponBuyerController {
|
|||||||
|
|
||||||
@ApiOperation(value = "获取当前会员的对于当前商品可使用的优惠券列表")
|
@ApiOperation(value = "获取当前会员的对于当前商品可使用的优惠券列表")
|
||||||
@GetMapping("/canUse")
|
@GetMapping("/canUse")
|
||||||
public ResultMessage<IPage<MemberCoupon>> getCouponsByCanUse(CouponSearchParams param, Double totalPrice, PageVO pageVo) {
|
public ResultMessage<IPage<MemberCoupon>> getCouponsByCanUse(MemberCouponSearchParams param, Double totalPrice, PageVO pageVo) {
|
||||||
AuthUser currentUser = Objects.requireNonNull(UserContext.getCurrentUser());
|
AuthUser currentUser = Objects.requireNonNull(UserContext.getCurrentUser());
|
||||||
param.setMemberId(currentUser.getId());
|
param.setMemberId(currentUser.getId());
|
||||||
return ResultUtil.data(memberCouponService.getMemberCouponsByCanUse(param, totalPrice, pageVo));
|
return ResultUtil.data(memberCouponService.getMemberCouponsByCanUse(param, totalPrice, pageVo));
|
||||||
@@ -84,8 +89,7 @@ public class CouponBuyerController {
|
|||||||
@GetMapping("/receive/{couponId}")
|
@GetMapping("/receive/{couponId}")
|
||||||
public ResultMessage<Object> receiveCoupon(@NotNull(message = "优惠券ID不能为空") @PathVariable("couponId") String couponId) {
|
public ResultMessage<Object> receiveCoupon(@NotNull(message = "优惠券ID不能为空") @PathVariable("couponId") String couponId) {
|
||||||
AuthUser currentUser = Objects.requireNonNull(UserContext.getCurrentUser());
|
AuthUser currentUser = Objects.requireNonNull(UserContext.getCurrentUser());
|
||||||
memberCouponService.checkCouponLimit(couponId, currentUser.getId());
|
memberCouponService.receiveBuyerCoupon(couponId, currentUser.getId(), currentUser.getNickName());
|
||||||
memberCouponService.receiveCoupon(couponId, currentUser.getId(), currentUser.getNickName());
|
|
||||||
return ResultUtil.success();
|
return ResultUtil.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1,16 +1,20 @@
|
|||||||
package cn.lili.controller.promotion;
|
package cn.lili.controller.promotion;
|
||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.text.CharSequenceUtil;
|
||||||
import cn.lili.common.enums.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.security.context.UserContext;
|
import cn.lili.common.security.context.UserContext;
|
||||||
import cn.lili.common.vo.PageVO;
|
import cn.lili.common.vo.PageVO;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
import cn.lili.modules.promotion.entity.dos.KanjiaActivity;
|
import cn.lili.modules.promotion.entity.dos.KanjiaActivity;
|
||||||
import cn.lili.modules.promotion.entity.dos.KanjiaActivityLog;
|
import cn.lili.modules.promotion.entity.dos.KanjiaActivityLog;
|
||||||
import cn.lili.modules.promotion.entity.dto.KanJiaActivityLogQuery;
|
import cn.lili.modules.promotion.entity.dto.search.KanJiaActivityLogQuery;
|
||||||
import cn.lili.modules.promotion.entity.dto.KanjiaActivityQuery;
|
import cn.lili.modules.promotion.entity.dto.search.KanjiaActivityGoodsParams;
|
||||||
import cn.lili.modules.promotion.entity.enums.PromotionStatusEnum;
|
import cn.lili.modules.promotion.entity.dto.search.KanjiaActivityQuery;
|
||||||
import cn.lili.modules.promotion.entity.vos.kanjia.*;
|
import cn.lili.modules.promotion.entity.dto.search.KanjiaActivitySearchParams;
|
||||||
|
import cn.lili.modules.promotion.entity.enums.PromotionsStatusEnum;
|
||||||
|
import cn.lili.modules.promotion.entity.vos.kanjia.KanjiaActivityGoodsListVO;
|
||||||
|
import cn.lili.modules.promotion.entity.vos.kanjia.KanjiaActivityGoodsVO;
|
||||||
|
import cn.lili.modules.promotion.entity.vos.kanjia.KanjiaActivityVO;
|
||||||
import cn.lili.modules.promotion.service.KanjiaActivityGoodsService;
|
import cn.lili.modules.promotion.service.KanjiaActivityGoodsService;
|
||||||
import cn.lili.modules.promotion.service.KanjiaActivityLogService;
|
import cn.lili.modules.promotion.service.KanjiaActivityLogService;
|
||||||
import cn.lili.modules.promotion.service.KanjiaActivityService;
|
import cn.lili.modules.promotion.service.KanjiaActivityService;
|
||||||
@@ -52,9 +56,9 @@ public class KanjiaGoodsActivityBuyerController {
|
|||||||
@ApiOperation(value = "分页获取砍价商品")
|
@ApiOperation(value = "分页获取砍价商品")
|
||||||
public ResultMessage<IPage<KanjiaActivityGoodsListVO>> kanjiaActivityGoodsPage(KanjiaActivityGoodsParams kanjiaActivityGoodsParams, PageVO page) {
|
public ResultMessage<IPage<KanjiaActivityGoodsListVO>> kanjiaActivityGoodsPage(KanjiaActivityGoodsParams kanjiaActivityGoodsParams, PageVO page) {
|
||||||
// 会员端查询到的肯定是已经开始的活动商品
|
// 会员端查询到的肯定是已经开始的活动商品
|
||||||
kanjiaActivityGoodsParams.setPromotionStatus(PromotionStatusEnum.START.name());
|
kanjiaActivityGoodsParams.setPromotionStatus(PromotionsStatusEnum.START.name());
|
||||||
kanjiaActivityGoodsParams.setStartTime(System.currentTimeMillis());
|
// kanjiaActivityGoodsParams.setStartTime(System.currentTimeMillis());
|
||||||
kanjiaActivityGoodsParams.setEndTime(System.currentTimeMillis());
|
// kanjiaActivityGoodsParams.setEndTime(System.currentTimeMillis());
|
||||||
return ResultUtil.data(kanJiaActivityGoodsService.kanjiaGoodsVOPage(kanjiaActivityGoodsParams, page));
|
return ResultUtil.data(kanJiaActivityGoodsService.kanjiaGoodsVOPage(kanjiaActivityGoodsParams, page));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -75,7 +79,7 @@ public class KanjiaGoodsActivityBuyerController {
|
|||||||
@ApiOperation(value = "获取砍价活动")
|
@ApiOperation(value = "获取砍价活动")
|
||||||
public ResultMessage<KanjiaActivityVO> getKanJiaActivity(KanjiaActivitySearchParams kanjiaActivitySearchParams) {
|
public ResultMessage<KanjiaActivityVO> getKanJiaActivity(KanjiaActivitySearchParams kanjiaActivitySearchParams) {
|
||||||
//如果是非被邀请关系则填写会员ID
|
//如果是非被邀请关系则填写会员ID
|
||||||
if (StrUtil.isEmpty(kanjiaActivitySearchParams.getKanjiaActivityId())) {
|
if (CharSequenceUtil.isEmpty(kanjiaActivitySearchParams.getKanjiaActivityId())) {
|
||||||
kanjiaActivitySearchParams.setMemberId(UserContext.getCurrentUser().getId());
|
kanjiaActivitySearchParams.setMemberId(UserContext.getCurrentUser().getId());
|
||||||
}
|
}
|
||||||
return ResultUtil.data(kanJiaActivityService.getKanjiaActivityVO(kanjiaActivitySearchParams));
|
return ResultUtil.data(kanJiaActivityService.getKanjiaActivityVO(kanjiaActivitySearchParams));
|
||||||
|
|||||||
@@ -1,15 +1,14 @@
|
|||||||
package cn.lili.controller.promotion;
|
package cn.lili.controller.promotion;
|
||||||
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.lili.common.enums.PromotionTypeEnum;
|
||||||
import cn.lili.common.enums.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.vo.PageVO;
|
import cn.lili.common.vo.PageVO;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
import cn.lili.modules.promotion.entity.dto.PromotionGoodsDTO;
|
import cn.lili.modules.promotion.entity.dos.PromotionGoods;
|
||||||
import cn.lili.modules.promotion.entity.enums.PromotionStatusEnum;
|
import cn.lili.modules.promotion.entity.dto.search.PromotionGoodsSearchParams;
|
||||||
import cn.lili.common.enums.PromotionTypeEnum;
|
import cn.lili.modules.promotion.entity.enums.PromotionsStatusEnum;
|
||||||
import cn.lili.modules.promotion.entity.vos.PintuanMemberVO;
|
import cn.lili.modules.promotion.entity.vos.PintuanMemberVO;
|
||||||
import cn.lili.modules.promotion.entity.vos.PintuanShareVO;
|
import cn.lili.modules.promotion.entity.vos.PintuanShareVO;
|
||||||
import cn.lili.modules.promotion.entity.vos.PromotionGoodsSearchParams;
|
|
||||||
import cn.lili.modules.promotion.service.PintuanService;
|
import cn.lili.modules.promotion.service.PintuanService;
|
||||||
import cn.lili.modules.promotion.service.PromotionGoodsService;
|
import cn.lili.modules.promotion.service.PromotionGoodsService;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
@@ -40,14 +39,13 @@ public class PintuanBuyerController {
|
|||||||
|
|
||||||
@ApiOperation(value = "获取拼团商品")
|
@ApiOperation(value = "获取拼团商品")
|
||||||
@GetMapping
|
@GetMapping
|
||||||
public ResultMessage<IPage<PromotionGoodsDTO>> getPintuanCategory(String goodsName, String categoryPath, PageVO pageVo) {
|
public ResultMessage<IPage<PromotionGoods>> getPintuanCategory(String goodsName, String categoryPath, PageVO pageVo) {
|
||||||
PromotionGoodsSearchParams searchParams = new PromotionGoodsSearchParams();
|
PromotionGoodsSearchParams searchParams = new PromotionGoodsSearchParams();
|
||||||
searchParams.setGoodsName(goodsName);
|
searchParams.setGoodsName(goodsName);
|
||||||
searchParams.setPromotionType(PromotionTypeEnum.PINTUAN.name());
|
searchParams.setPromotionType(PromotionTypeEnum.PINTUAN.name());
|
||||||
searchParams.setPromotionStatus(PromotionStatusEnum.START.name());
|
searchParams.setPromotionStatus(PromotionsStatusEnum.START.name());
|
||||||
searchParams.setCategoryPath(categoryPath);
|
searchParams.setCategoryPath(categoryPath);
|
||||||
searchParams.setEndTime(DateUtil.date().getTime());
|
return ResultUtil.data(promotionGoodsService.pageFindAll(searchParams, pageVo));
|
||||||
return ResultUtil.data(promotionGoodsService.getPromotionGoods(searchParams, pageVo));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,8 +3,10 @@ package cn.lili.controller.promotion;
|
|||||||
import cn.lili.common.enums.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.vo.PageVO;
|
import cn.lili.common.vo.PageVO;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
|
import cn.lili.modules.promotion.entity.dos.PointsGoods;
|
||||||
import cn.lili.modules.promotion.entity.dos.PointsGoodsCategory;
|
import cn.lili.modules.promotion.entity.dos.PointsGoodsCategory;
|
||||||
import cn.lili.modules.promotion.entity.vos.PointsGoodsSearchParams;
|
import cn.lili.modules.promotion.entity.dto.search.PointsGoodsSearchParams;
|
||||||
|
import cn.lili.modules.promotion.entity.enums.PromotionsStatusEnum;
|
||||||
import cn.lili.modules.promotion.entity.vos.PointsGoodsVO;
|
import cn.lili.modules.promotion.entity.vos.PointsGoodsVO;
|
||||||
import cn.lili.modules.promotion.service.PointsGoodsCategoryService;
|
import cn.lili.modules.promotion.service.PointsGoodsCategoryService;
|
||||||
import cn.lili.modules.promotion.service.PointsGoodsService;
|
import cn.lili.modules.promotion.service.PointsGoodsService;
|
||||||
@@ -35,8 +37,9 @@ public class PointsGoodsBuyerController {
|
|||||||
|
|
||||||
@GetMapping
|
@GetMapping
|
||||||
@ApiOperation(value = "分页获取积分商品")
|
@ApiOperation(value = "分页获取积分商品")
|
||||||
public ResultMessage<IPage<PointsGoodsVO>> getPointsGoodsPage(PointsGoodsSearchParams searchParams, PageVO page) {
|
public ResultMessage<IPage<PointsGoods>> getPointsGoodsPage(PointsGoodsSearchParams searchParams, PageVO page) {
|
||||||
IPage<PointsGoodsVO> pointsGoodsByPage = pointsGoodsService.getPointsGoodsByPage(searchParams, page);
|
searchParams.setPromotionStatus(PromotionsStatusEnum.START.name());
|
||||||
|
IPage<PointsGoods> pointsGoodsByPage = pointsGoodsService.pageFindAll(searchParams, page);
|
||||||
return ResultUtil.data(pointsGoodsByPage);
|
return ResultUtil.data(pointsGoodsByPage);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,12 +4,13 @@ import cn.lili.common.enums.ResultUtil;
|
|||||||
import cn.lili.common.security.context.UserContext;
|
import cn.lili.common.security.context.UserContext;
|
||||||
import cn.lili.common.vo.PageVO;
|
import cn.lili.common.vo.PageVO;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
|
import cn.lili.modules.goods.entity.vos.StoreGoodsLabelVO;
|
||||||
|
import cn.lili.modules.goods.service.StoreGoodsLabelService;
|
||||||
import cn.lili.modules.store.entity.dto.StoreBankDTO;
|
import cn.lili.modules.store.entity.dto.StoreBankDTO;
|
||||||
import cn.lili.modules.store.entity.dto.StoreCompanyDTO;
|
import cn.lili.modules.store.entity.dto.StoreCompanyDTO;
|
||||||
import cn.lili.modules.store.entity.dto.StoreOtherInfoDTO;
|
import cn.lili.modules.store.entity.dto.StoreOtherInfoDTO;
|
||||||
import cn.lili.modules.store.entity.vos.*;
|
import cn.lili.modules.store.entity.vos.*;
|
||||||
import cn.lili.modules.store.service.StoreDetailService;
|
import cn.lili.modules.store.service.StoreDetailService;
|
||||||
import cn.lili.modules.store.service.StoreGoodsLabelService;
|
|
||||||
import cn.lili.modules.store.service.StoreService;
|
import cn.lili.modules.store.service.StoreService;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
@@ -30,7 +31,7 @@ import java.util.List;
|
|||||||
* @since 2020/11/17 2:32 下午
|
* @since 2020/11/17 2:32 下午
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/buyer/store")
|
@RequestMapping("/buyer/store/store")
|
||||||
@Api(tags = "买家端,店铺接口")
|
@Api(tags = "买家端,店铺接口")
|
||||||
public class StoreBuyerController {
|
public class StoreBuyerController {
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package cn.lili.controller.member;
|
package cn.lili.controller.wallet;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
|
||||||
import cn.lili.common.enums.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.security.context.UserContext;
|
import cn.lili.common.security.context.UserContext;
|
||||||
import cn.lili.common.vo.PageVO;
|
import cn.lili.common.vo.PageVO;
|
||||||
@@ -23,7 +24,7 @@ import org.springframework.web.bind.annotation.*;
|
|||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,会员发票接口")
|
@Api(tags = "买家端,会员发票接口")
|
||||||
@RequestMapping("/buyer/member/receipt")
|
@RequestMapping("/buyer/wallet/receipt")
|
||||||
public class MemberReceiptController {
|
public class MemberReceiptController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
@@ -35,6 +36,7 @@ public class MemberReceiptController {
|
|||||||
return ResultUtil.data(memberReceiptService.getPage(memberReceiptVO, page));
|
return ResultUtil.data(memberReceiptService.getPage(memberReceiptVO, page));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PreventDuplicateSubmissions
|
||||||
@ApiOperation(value = "新增会员发票")
|
@ApiOperation(value = "新增会员发票")
|
||||||
@PostMapping
|
@PostMapping
|
||||||
public ResultMessage<Object> add(MemberReceiptAddVO memberReceiptAddVO) {
|
public ResultMessage<Object> add(MemberReceiptAddVO memberReceiptAddVO) {
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
package cn.lili.controller.member;
|
package cn.lili.controller.wallet;
|
||||||
|
|
||||||
|
import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
|
||||||
import cn.lili.common.enums.ResultCode;
|
import cn.lili.common.enums.ResultCode;
|
||||||
import cn.lili.common.enums.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.exception.ServiceException;
|
import cn.lili.common.exception.ServiceException;
|
||||||
@@ -7,12 +8,12 @@ import cn.lili.common.security.AuthUser;
|
|||||||
import cn.lili.common.security.context.UserContext;
|
import cn.lili.common.security.context.UserContext;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
import cn.lili.modules.member.entity.dos.Member;
|
import cn.lili.modules.member.entity.dos.Member;
|
||||||
import cn.lili.modules.member.entity.dos.MemberWallet;
|
|
||||||
import cn.lili.modules.member.entity.vo.MemberWalletVO;
|
|
||||||
import cn.lili.modules.member.service.MemberService;
|
import cn.lili.modules.member.service.MemberService;
|
||||||
import cn.lili.modules.member.service.MemberWalletService;
|
import cn.lili.modules.verification.entity.enums.VerificationEnums;
|
||||||
import cn.lili.modules.verification.enums.VerificationEnums;
|
|
||||||
import cn.lili.modules.verification.service.VerificationService;
|
import cn.lili.modules.verification.service.VerificationService;
|
||||||
|
import cn.lili.modules.wallet.entity.dos.MemberWallet;
|
||||||
|
import cn.lili.modules.wallet.entity.vo.MemberWalletVO;
|
||||||
|
import cn.lili.modules.wallet.service.MemberWalletService;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
@@ -34,7 +35,7 @@ import javax.validation.constraints.Pattern;
|
|||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,会员余额接口")
|
@Api(tags = "买家端,会员余额接口")
|
||||||
@RequestMapping("/buyer/members/wallet")
|
@RequestMapping("/buyer/wallet/wallet")
|
||||||
public class MemberWalletBuyerController {
|
public class MemberWalletBuyerController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -120,12 +121,13 @@ public class MemberWalletBuyerController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@PreventDuplicateSubmissions
|
||||||
@PostMapping(value = "/withdrawal")
|
@PostMapping(value = "/withdrawal")
|
||||||
@ApiOperation(value = "会员中心余额提现")
|
@ApiOperation(value = "会员中心余额提现")
|
||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ApiImplicitParam(name = "price", value = "提现金额", required = true, dataType = "double", paramType = "query")
|
@ApiImplicitParam(name = "price", value = "提现金额", required = true, dataType = "double", paramType = "query")
|
||||||
})
|
})
|
||||||
public ResultMessage<Boolean> withdrawal(@Max(value = 1000, message = "充值金额单次最多允许提现1000元") @Min(value = 1, message = "充值金额单次最少提现金额为1元") Double price) {
|
public ResultMessage<Boolean> withdrawal(@Max(value = 9999, message = "充值金额单次最多允许提现9999元") @Min(value = 1, message = "充值金额单次最少提现金额为1元") Double price) {
|
||||||
return ResultUtil.data(memberWalletService.applyWithdrawal(price));
|
return ResultUtil.data(memberWalletService.applyWithdrawal(price));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1,18 +1,17 @@
|
|||||||
package cn.lili.controller.member;
|
package cn.lili.controller.wallet;
|
||||||
|
|
||||||
|
|
||||||
import cn.lili.common.enums.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.security.context.UserContext;
|
import cn.lili.common.security.context.UserContext;
|
||||||
import cn.lili.common.vo.PageVO;
|
import cn.lili.common.vo.PageVO;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
import cn.lili.modules.member.entity.dos.MemberWithdrawApply;
|
import cn.lili.modules.wallet.entity.dos.MemberWithdrawApply;
|
||||||
import cn.lili.modules.member.entity.vo.MemberWithdrawApplyQueryVO;
|
import cn.lili.modules.wallet.entity.vo.MemberWithdrawApplyQueryVO;
|
||||||
import cn.lili.modules.member.service.MemberWithdrawApplyService;
|
import cn.lili.modules.wallet.service.MemberWithdrawApplyService;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
@@ -27,7 +26,6 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,余额提现记录接口")
|
@Api(tags = "买家端,余额提现记录接口")
|
||||||
@RequestMapping("/buyer/member/withdrawApply")
|
@RequestMapping("/buyer/member/withdrawApply")
|
||||||
@Transactional(rollbackFor = Exception.class)
|
|
||||||
public class MemberWithdrawApplyBuyerController {
|
public class MemberWithdrawApplyBuyerController {
|
||||||
@Autowired
|
@Autowired
|
||||||
private MemberWithdrawApplyService memberWithdrawApplyService;
|
private MemberWithdrawApplyService memberWithdrawApplyService;
|
||||||
@@ -1,17 +1,16 @@
|
|||||||
package cn.lili.controller.member;
|
package cn.lili.controller.wallet;
|
||||||
|
|
||||||
import cn.lili.common.enums.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.security.context.UserContext;
|
import cn.lili.common.security.context.UserContext;
|
||||||
import cn.lili.common.vo.PageVO;
|
import cn.lili.common.vo.PageVO;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
import cn.lili.modules.order.trade.entity.dos.Recharge;
|
|
||||||
import cn.lili.modules.order.trade.entity.vo.RechargeQueryVO;
|
import cn.lili.modules.order.trade.entity.vo.RechargeQueryVO;
|
||||||
import cn.lili.modules.order.trade.service.RechargeService;
|
import cn.lili.modules.wallet.entity.dos.Recharge;
|
||||||
|
import cn.lili.modules.wallet.service.RechargeService;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
@@ -24,8 +23,7 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,预存款充值记录接口")
|
@Api(tags = "买家端,预存款充值记录接口")
|
||||||
@RequestMapping("/buyer/member/recharge")
|
@RequestMapping("/buyer/wallet/recharge")
|
||||||
@Transactional(rollbackFor = Exception.class)
|
|
||||||
public class RechargeBuyerController {
|
public class RechargeBuyerController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
package cn.lili.controller.trade;
|
package cn.lili.controller.wallet;
|
||||||
|
|
||||||
import cn.lili.common.enums.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.security.AuthUser;
|
import cn.lili.common.security.AuthUser;
|
||||||
import cn.lili.common.security.context.UserContext;
|
import cn.lili.common.security.context.UserContext;
|
||||||
import cn.lili.common.vo.PageVO;
|
import cn.lili.common.vo.PageVO;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
import cn.lili.modules.order.trade.entity.dos.WalletLog;
|
import cn.lili.modules.wallet.entity.dos.WalletLog;
|
||||||
import cn.lili.modules.order.trade.service.WalletLogService;
|
import cn.lili.modules.wallet.service.WalletLogService;
|
||||||
import cn.lili.mybatis.util.PageUtil;
|
import cn.lili.mybatis.util.PageUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
package cn.lili.init;
|
||||||
|
|
||||||
|
import cn.lili.modules.search.service.EsGoodsIndexService;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.boot.ApplicationArguments;
|
||||||
|
import org.springframework.boot.ApplicationRunner;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author paulG
|
||||||
|
* @since 2022/6/9
|
||||||
|
**/
|
||||||
|
@Component
|
||||||
|
@Slf4j
|
||||||
|
public class EsGoodsIndexInitRunner implements ApplicationRunner {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private EsGoodsIndexService esGoodsIndexService;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run(ApplicationArguments args) {
|
||||||
|
try {
|
||||||
|
esGoodsIndexService.initIndex();
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("检测ES商品索引失败", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
0
buyer-api/src/main/java/cn/lili/security/BuyerAuthenticationFilter.java
Executable file → Normal file
0
buyer-api/src/main/java/cn/lili/security/BuyerAuthenticationFilter.java
Executable file → Normal file
@@ -3,12 +3,19 @@ server:
|
|||||||
|
|
||||||
servlet:
|
servlet:
|
||||||
context-path: /
|
context-path: /
|
||||||
|
#
|
||||||
tomcat:
|
# tomcat:
|
||||||
uri-encoding: UTF-8
|
# #最大链接数,默认不设置,默认是10000
|
||||||
threads:
|
# max-connections: 6500
|
||||||
min-spare: 50
|
# #最大等待队列长度,允许HTTP请求缓存到请求队列的最大个数,默认不限制
|
||||||
max: 1000
|
# accept-count: 1000
|
||||||
|
# threads:
|
||||||
|
# #最少闲置
|
||||||
|
# min-spare: 50
|
||||||
|
# #最大线程数 ,默认是200
|
||||||
|
# max: 800
|
||||||
|
netty:
|
||||||
|
connection-timeout:
|
||||||
|
|
||||||
# 与Spring Boot 2一样,默认情况下,大多数端点都不通过http公开,我们公开了所有端点。对于生产,您应该仔细选择要公开的端点。
|
# 与Spring Boot 2一样,默认情况下,大多数端点都不通过http公开,我们公开了所有端点。对于生产,您应该仔细选择要公开的端点。
|
||||||
management:
|
management:
|
||||||
@@ -43,16 +50,6 @@ spring:
|
|||||||
#关闭jackson 对json做解析
|
#关闭jackson 对json做解析
|
||||||
fail-on-empty-beans: false
|
fail-on-empty-beans: false
|
||||||
|
|
||||||
# mongodb
|
|
||||||
data:
|
|
||||||
mongodb:
|
|
||||||
uri: 127.0.0.1:27017
|
|
||||||
database: lilishop
|
|
||||||
username: root
|
|
||||||
password: lilishop
|
|
||||||
authentication-database: admin
|
|
||||||
# replica-set-name: mongoreplset
|
|
||||||
|
|
||||||
# Redis
|
# Redis
|
||||||
redis:
|
redis:
|
||||||
host: 127.0.0.1
|
host: 127.0.0.1
|
||||||
@@ -79,10 +76,10 @@ spring:
|
|||||||
url: jdbc:mysql://127.0.0.1:3306/lilishop?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
|
url: jdbc:mysql://127.0.0.1:3306/lilishop?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
|
||||||
username: root
|
username: root
|
||||||
password: lilishop
|
password: lilishop
|
||||||
maxActive: 20
|
maxActive: 50
|
||||||
initialSize: 5
|
initialSize: 10
|
||||||
maxWait: 60000
|
maxWait: 60000
|
||||||
minIdle: 5
|
minIdle: 10
|
||||||
timeBetweenEvictionRunsMillis: 60000
|
timeBetweenEvictionRunsMillis: 60000
|
||||||
minEvictableIdleTimeMillis: 300000
|
minEvictableIdleTimeMillis: 300000
|
||||||
validationQuery: SELECT 1 FROM DUAL
|
validationQuery: SELECT 1 FROM DUAL
|
||||||
@@ -120,7 +117,7 @@ spring:
|
|||||||
props:
|
props:
|
||||||
#是否打印逻辑SQL语句和实际SQL语句,建议调试时打印,在生产环境关闭
|
#是否打印逻辑SQL语句和实际SQL语句,建议调试时打印,在生产环境关闭
|
||||||
sql:
|
sql:
|
||||||
show: true
|
show: false
|
||||||
|
|
||||||
# 忽略TOKEN 鉴权 的url
|
# 忽略TOKEN 鉴权 的url
|
||||||
ignored:
|
ignored:
|
||||||
@@ -131,21 +128,23 @@ ignored:
|
|||||||
- /MP_verify_qSyvBPhDsPdxvOhC.txt
|
- /MP_verify_qSyvBPhDsPdxvOhC.txt
|
||||||
- /weixin/**
|
- /weixin/**
|
||||||
- /source/**
|
- /source/**
|
||||||
- /buyer/mini-program/**
|
- /buyer/payment/cashier/**
|
||||||
- /buyer/cashier/**
|
- /buyer/payment/cashierRefund/**
|
||||||
- /buyer/pageData/**
|
- /buyer/other/pageData/**
|
||||||
- /buyer/article/**
|
- /buyer/other/article/**
|
||||||
- /buyer/goods/**
|
- /buyer/goods/**
|
||||||
- /buyer/category/**
|
|
||||||
- /buyer/store/**
|
- /buyer/store/**
|
||||||
- /buyer/connect/**
|
- /buyer/passport/connect/**
|
||||||
- /buyer/members/**
|
- /buyer/members/**
|
||||||
|
- /buyer/passport/member/**
|
||||||
|
- /buyer/passport/member/refresh/**
|
||||||
- /buyer/promotion/pintuan/**
|
- /buyer/promotion/pintuan/**
|
||||||
- /buyer/promotion/seckill/**
|
- /buyer/promotion/seckill/**
|
||||||
- /buyer/promotion/pointsGoods/**
|
- /buyer/promotion/pointsGoods/**
|
||||||
- /buyer/memberEvaluation/**/goodsEvaluation
|
- /buyer/promotion/coupon
|
||||||
- /buyer/memberEvaluation/**/evaluationNumber
|
- /buyer/member/evaluation/**/goodsEvaluation
|
||||||
- /buyer/appVersion/**
|
- /buyer/member/evaluation/**/evaluationNumber
|
||||||
|
- /buyer/other/appVersion/**
|
||||||
- /buyer/broadcast/studio/**
|
- /buyer/broadcast/studio/**
|
||||||
- /druid/**
|
- /druid/**
|
||||||
- /swagger-ui.html
|
- /swagger-ui.html
|
||||||
@@ -186,10 +185,8 @@ logging:
|
|||||||
config: classpath:logback-spring.xml
|
config: classpath:logback-spring.xml
|
||||||
# 输出级别
|
# 输出级别
|
||||||
level:
|
level:
|
||||||
cn.lili: debug
|
root: info
|
||||||
org.hibernate: debug
|
|
||||||
# org.springframework: debug
|
# org.springframework: debug
|
||||||
# org.springframework.data.mongodb.core: debug
|
|
||||||
file:
|
file:
|
||||||
# 指定路径
|
# 指定路径
|
||||||
path: lili-logs
|
path: lili-logs
|
||||||
|
|||||||
@@ -20,6 +20,23 @@
|
|||||||
</encoder>
|
</encoder>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
|
<appender name="RocketmqClientAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||||
|
<file>${LOG_FILE_PATH}/rocketmq.log</file>
|
||||||
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||||
|
<fileNamePattern>${LOG_FILE_PATH}/rocketmq/rocketmq-%d{yyyy-MM-dd}.log</fileNamePattern>
|
||||||
|
<maxHistory>30</maxHistory>
|
||||||
|
<totalSizeCap>30MB</totalSizeCap>
|
||||||
|
</rollingPolicy>
|
||||||
|
<encoder>
|
||||||
|
<pattern>%d{yy-MM-dd.HH:mm:ss.SSS} [%-16t] %-5p %-22c{0} %X{ServiceId} - %m%n</pattern>
|
||||||
|
</encoder>
|
||||||
|
</appender>
|
||||||
|
<logger name="RocketmqClient" additivity="false">
|
||||||
|
<level value="info" />
|
||||||
|
<appender-ref ref="RocketmqClientAppender"/>
|
||||||
|
</logger>
|
||||||
|
|
||||||
|
|
||||||
<!--输出到elk的LOGSTASH-->
|
<!--输出到elk的LOGSTASH-->
|
||||||
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
|
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
|
||||||
<!-- 配置elk日志收集 配饰的是 LOGSTASH 的地址-->
|
<!-- 配置elk日志收集 配饰的是 LOGSTASH 的地址-->
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package cn.lili.buyer.test.cart;
|
package cn.lili.buyer.test.cart;
|
||||||
|
|
||||||
|
|
||||||
import cn.lili.modules.file.plugin.FileManagerPlugin;
|
import cn.lili.modules.file.plugin.FilePlugin;
|
||||||
import cn.lili.modules.goods.entity.dos.Brand;
|
import cn.lili.modules.goods.entity.dos.Brand;
|
||||||
import cn.lili.modules.goods.service.BrandService;
|
import cn.lili.modules.goods.service.BrandService;
|
||||||
import com.xkcoding.http.util.StringUtil;
|
import com.xkcoding.http.util.StringUtil;
|
||||||
@@ -27,7 +27,7 @@ class FileTest {
|
|||||||
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private FileManagerPlugin fileManagerPlugin;
|
private FilePlugin fileManagerPlugin;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private BrandService brandService;
|
private BrandService brandService;
|
||||||
|
|||||||
@@ -25,16 +25,6 @@ spring:
|
|||||||
admin:
|
admin:
|
||||||
client:
|
client:
|
||||||
url: http://192.168.0.116:8000
|
url: http://192.168.0.116:8000
|
||||||
# mongodb
|
|
||||||
data:
|
|
||||||
mongodb:
|
|
||||||
host: 192.168.0.116
|
|
||||||
port: 27017
|
|
||||||
database: lilishop
|
|
||||||
username: root
|
|
||||||
password: lilishop
|
|
||||||
authentication-database: admin
|
|
||||||
# replica-set-name: mongoreplset
|
|
||||||
cache:
|
cache:
|
||||||
type: redis
|
type: redis
|
||||||
#amqp
|
#amqp
|
||||||
@@ -186,7 +176,6 @@ logging:
|
|||||||
cn.lili: info
|
cn.lili: info
|
||||||
# org.hibernate: debug
|
# org.hibernate: debug
|
||||||
# org.springframework: debug
|
# org.springframework: debug
|
||||||
# org.springframework.data.mongodb.core: debug
|
|
||||||
file:
|
file:
|
||||||
# 指定路径
|
# 指定路径
|
||||||
path: lili-logs
|
path: lili-logs
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import org.springframework.cache.annotation.EnableCaching;
|
|||||||
public class CommonApiApplication {
|
public class CommonApiApplication {
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
System.setProperty("rocketmq.client.logUseSlf4j","true");
|
||||||
SpringApplication.run(CommonApiApplication.class, args);
|
SpringApplication.run(CommonApiApplication.class, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,11 +2,11 @@ package cn.lili.controller.common;
|
|||||||
|
|
||||||
import cn.lili.cache.Cache;
|
import cn.lili.cache.Cache;
|
||||||
import cn.lili.common.enums.ResultCode;
|
import cn.lili.common.enums.ResultCode;
|
||||||
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.exception.ServiceException;
|
import cn.lili.common.exception.ServiceException;
|
||||||
import cn.lili.common.security.AuthUser;
|
import cn.lili.common.security.AuthUser;
|
||||||
import cn.lili.common.security.context.UserContext;
|
import cn.lili.common.security.context.UserContext;
|
||||||
import cn.lili.common.security.enums.UserEnums;
|
import cn.lili.common.security.enums.UserEnums;
|
||||||
import cn.lili.common.enums.ResultUtil;
|
|
||||||
import cn.lili.common.vo.PageVO;
|
import cn.lili.common.vo.PageVO;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
import cn.lili.common.vo.SearchVO;
|
import cn.lili.common.vo.SearchVO;
|
||||||
@@ -30,8 +30,8 @@ import java.util.List;
|
|||||||
* @since 2020/11/26 15:41
|
* @since 2020/11/26 15:41
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "文件管理管理接口")
|
@Api(tags = "文件管理接口")
|
||||||
@RequestMapping("/common/file")
|
@RequestMapping("/common/common/file")
|
||||||
public class FileController {
|
public class FileController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
@@ -78,9 +78,7 @@ public class FileController {
|
|||||||
}
|
}
|
||||||
throw new ServiceException(ResultCode.USER_AUTHORITY_ERROR);
|
throw new ServiceException(ResultCode.USER_AUTHORITY_ERROR);
|
||||||
case MANAGER:
|
case MANAGER:
|
||||||
if (file.getUserEnums().equals(authUser.getRole().name())) {
|
break;
|
||||||
break;
|
|
||||||
}
|
|
||||||
default:
|
default:
|
||||||
throw new ServiceException(ResultCode.USER_AUTHORITY_ERROR);
|
throw new ServiceException(ResultCode.USER_AUTHORITY_ERROR);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
* 2021-09-16 15:32
|
* 2021-09-16 15:32
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/common/IM")
|
@RequestMapping("/common/common/IM")
|
||||||
@Api(tags = "IM 中心")
|
@Api(tags = "IM 中心")
|
||||||
public class IMController {
|
public class IMController {
|
||||||
|
|
||||||
@@ -39,7 +39,7 @@ public class IMController {
|
|||||||
try {
|
try {
|
||||||
Setting imSettingVal = settingService.get(SettingEnum.IM_SETTING.name());
|
Setting imSettingVal = settingService.get(SettingEnum.IM_SETTING.name());
|
||||||
ImSetting imSetting = JSONUtil.toBean(imSettingVal.getSettingValue(), ImSetting.class);
|
ImSetting imSetting = JSONUtil.toBean(imSettingVal.getSettingValue(), ImSetting.class);
|
||||||
imUrl = imSetting.getHttpUrl() + "?tenant_id=" + imSetting.getTenantId()+"&merchant_euid=";
|
imUrl = imSetting.getHttpUrl();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new ServiceException(ResultCode.PLATFORM_NOT_SUPPORTED_IM);
|
throw new ServiceException(ResultCode.PLATFORM_NOT_SUPPORTED_IM);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package cn.lili.controller.member;
|
package cn.lili.controller.common;
|
||||||
|
|
||||||
import cn.lili.common.utils.IpHelper;
|
import cn.lili.common.utils.IpHelper;
|
||||||
import cn.lili.common.enums.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
@@ -19,8 +19,8 @@ import javax.servlet.http.HttpServletRequest;
|
|||||||
* @since 2020-02-25 14:10:16
|
* @since 2020-02-25 14:10:16
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "管理端,IP接口")
|
@Api(tags = "获取IP信息以及天气")
|
||||||
@RequestMapping("/manager/common/ip")
|
@RequestMapping("/common/common/ip")
|
||||||
public class IpInfoManagerController {
|
public class IpInfoManagerController {
|
||||||
@Autowired
|
@Autowired
|
||||||
private IpHelper ipHelper;
|
private IpHelper ipHelper;
|
||||||
@@ -2,9 +2,9 @@ package cn.lili.controller.common;
|
|||||||
|
|
||||||
import cn.lili.common.enums.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
import cn.lili.modules.system.service.RegionService;
|
|
||||||
import cn.lili.modules.system.entity.dos.Region;
|
import cn.lili.modules.system.entity.dos.Region;
|
||||||
import cn.lili.modules.system.entity.vo.RegionVO;
|
import cn.lili.modules.system.entity.vo.RegionVO;
|
||||||
|
import cn.lili.modules.system.service.RegionService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiImplicitParams;
|
||||||
@@ -22,7 +22,7 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "地址信息接口")
|
@Api(tags = "地址信息接口")
|
||||||
@RequestMapping("/common/region")
|
@RequestMapping("/common/common/region")
|
||||||
public class RegionController {
|
public class RegionController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
@@ -38,6 +38,11 @@ public class RegionController {
|
|||||||
return ResultUtil.data(regionService.getRegion(cityCode,townName));
|
return ResultUtil.data(regionService.getRegion(cityCode,townName));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping(value = "/name")
|
||||||
|
@ApiOperation(value = "根据名字获取地区地址id")
|
||||||
|
public ResultMessage<String> getItemByLastName(String lastName) {
|
||||||
|
return ResultUtil.data(regionService.getItemByLastName(lastName));
|
||||||
|
}
|
||||||
|
|
||||||
@GetMapping(value = "/item/{id}")
|
@GetMapping(value = "/item/{id}")
|
||||||
@ApiImplicitParam(name = "id", value = "地区ID", required = true, dataType = "String", paramType = "path")
|
@ApiImplicitParam(name = "id", value = "地区ID", required = true, dataType = "String", paramType = "path")
|
||||||
|
|||||||
@@ -6,31 +6,30 @@ import cn.lili.modules.system.entity.enums.SettingEnum;
|
|||||||
import cn.lili.modules.system.service.SettingService;
|
import cn.lili.modules.system.service.SettingService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 文件管理管理接口
|
* 站点基础配置获取
|
||||||
*
|
*
|
||||||
* @author Chopper
|
* @author liushuai(liushuai711 @ gmail.com)
|
||||||
* @since 2020/11/26 15:41
|
* @version v4.0
|
||||||
|
* @Description:
|
||||||
|
* @since 2022/9/22 17:49
|
||||||
*/
|
*/
|
||||||
|
@Slf4j
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "文件管理管理接口")
|
@RequestMapping("/common/common/site")
|
||||||
@RequestMapping("/common/logo")
|
@Api(tags = "站点基础接口")
|
||||||
public class LogoController {
|
public class SiteController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private SettingService settingService;
|
private SettingService settingService;
|
||||||
|
|
||||||
@ApiOperation(value = "获取logo")
|
@ApiOperation(value = "获取站点基础信息")
|
||||||
@GetMapping
|
@GetMapping
|
||||||
public ResultMessage<Object> getFileList() {
|
public ResultMessage<Object> baseSetting() {
|
||||||
return ResultUtil.data(settingService.get(SettingEnum.BASE_SETTING.name()));
|
return ResultUtil.data(settingService.get(SettingEnum.BASE_SETTING.name()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,43 +1,43 @@
|
|||||||
package cn.lili.controller.common;
|
package cn.lili.controller.common;
|
||||||
|
|
||||||
import cn.lili.cache.limit.annotation.LimitPoint;
|
import cn.lili.cache.limit.annotation.LimitPoint;
|
||||||
import cn.lili.common.enums.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
import cn.lili.modules.verification.enums.VerificationEnums;
|
import cn.lili.modules.verification.entity.enums.VerificationEnums;
|
||||||
import cn.lili.modules.verification.service.VerificationService;
|
import cn.lili.modules.verification.service.VerificationService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 滑块验证码接口
|
* 滑块验证码接口
|
||||||
*
|
*
|
||||||
* @author Chopper
|
* @author Chopper
|
||||||
* @since 2020/11/26 15:41
|
* @since 2020/11/26 15:41
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/common/slider")
|
@RequestMapping("/common/common/slider")
|
||||||
@Api(tags = "滑块验证码接口")
|
@Api(tags = "滑块验证码接口")
|
||||||
public class SliderImageController {
|
public class SliderImageController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private VerificationService verificationService;
|
private VerificationService verificationService;
|
||||||
|
|
||||||
@LimitPoint(name = "slider_image", key = "verification")
|
@LimitPoint(name = "slider_image", key = "verification")
|
||||||
@GetMapping("/{verificationEnums}")
|
@GetMapping("/{verificationEnums}")
|
||||||
@ApiOperation(value = "获取校验接口,一分钟同一个ip请求10次")
|
@ApiOperation(value = "获取校验接口,一分钟同一个ip请求10次")
|
||||||
public ResultMessage getSliderImage(@RequestHeader String uuid, @PathVariable VerificationEnums verificationEnums) {
|
public ResultMessage getSliderImage(@RequestHeader String uuid, @PathVariable VerificationEnums verificationEnums) {
|
||||||
return ResultUtil.data(verificationService.createVerification(verificationEnums, uuid));
|
return ResultUtil.data(verificationService.createVerification(verificationEnums, uuid));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@LimitPoint(name = "slider_image", key = "verification_pre_check", limit = 600)
|
@LimitPoint(name = "slider_image", key = "verification_pre_check", limit = 600)
|
||||||
@PostMapping("/{verificationEnums}")
|
@PostMapping("/{verificationEnums}")
|
||||||
@ApiOperation(value = "验证码预校验")
|
@ApiOperation(value = "验证码预校验")
|
||||||
public ResultMessage verificationImage(Integer xPos, @RequestHeader String uuid, @PathVariable VerificationEnums verificationEnums) {
|
public ResultMessage verificationImage(Integer xPos, @RequestHeader String uuid, @PathVariable VerificationEnums verificationEnums) {
|
||||||
return ResultUtil.data(verificationService.preCheck(xPos, uuid, verificationEnums));
|
return ResultUtil.data(verificationService.preCheck(xPos, uuid, verificationEnums));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,48 +1,48 @@
|
|||||||
package cn.lili.controller.common;
|
package cn.lili.controller.common;
|
||||||
|
|
||||||
import cn.lili.cache.limit.annotation.LimitPoint;
|
import cn.lili.cache.limit.annotation.LimitPoint;
|
||||||
import cn.lili.common.enums.ResultCode;
|
import cn.lili.common.enums.ResultCode;
|
||||||
import cn.lili.common.enums.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
import cn.lili.modules.system.sms.SmsUtil;
|
import cn.lili.modules.sms.SmsUtil;
|
||||||
import cn.lili.modules.verification.enums.VerificationEnums;
|
import cn.lili.modules.verification.entity.enums.VerificationEnums;
|
||||||
import cn.lili.modules.verification.service.VerificationService;
|
import cn.lili.modules.verification.service.VerificationService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiImplicitParams;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 短信验证码接口
|
* 短信验证码接口
|
||||||
*
|
*
|
||||||
* @author Chopper
|
* @author Chopper
|
||||||
* @since 2020/11/26 15:41
|
* @since 2020/11/26 15:41
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "短信验证码接口")
|
@Api(tags = "短信验证码接口")
|
||||||
@RequestMapping("/common/sms")
|
@RequestMapping("/common/common/sms")
|
||||||
public class SmsController {
|
public class SmsController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private SmsUtil smsUtil;
|
private SmsUtil smsUtil;
|
||||||
@Autowired
|
@Autowired
|
||||||
private VerificationService verificationService;
|
private VerificationService verificationService;
|
||||||
|
|
||||||
@LimitPoint(name = "sms_send", key = "sms")
|
@LimitPoint(name = "sms_send", key = "sms")
|
||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ApiImplicitParam(paramType = "path", dataType = "String", name = "mobile", value = "手机号"),
|
@ApiImplicitParam(paramType = "path", dataType = "String", name = "mobile", value = "手机号"),
|
||||||
@ApiImplicitParam(paramType = "header", dataType = "String", name = "uuid", value = "uuid"),
|
@ApiImplicitParam(paramType = "header", dataType = "String", name = "uuid", value = "uuid"),
|
||||||
})
|
})
|
||||||
@GetMapping("/{verificationEnums}/{mobile}")
|
@GetMapping("/{verificationEnums}/{mobile}")
|
||||||
@ApiOperation(value = "发送短信验证码,一分钟同一个ip请求1次")
|
@ApiOperation(value = "发送短信验证码,一分钟同一个ip请求1次")
|
||||||
public ResultMessage getSmsCode(
|
public ResultMessage getSmsCode(
|
||||||
@RequestHeader String uuid,
|
@RequestHeader String uuid,
|
||||||
@PathVariable String mobile,
|
@PathVariable String mobile,
|
||||||
@PathVariable VerificationEnums verificationEnums) {
|
@PathVariable VerificationEnums verificationEnums) {
|
||||||
verificationService.check(uuid, verificationEnums);
|
verificationService.check(uuid, verificationEnums);
|
||||||
smsUtil.sendSmsCode(mobile, verificationEnums, uuid);
|
smsUtil.sendSmsCode(mobile, verificationEnums, uuid);
|
||||||
return ResultUtil.success(ResultCode.VERIFICATION_SEND_SUCCESS);
|
return ResultUtil.success(ResultCode.VERIFICATION_SEND_SUCCESS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import cn.lili.cache.Cache;
|
|||||||
import cn.lili.common.enums.ResultCode;
|
import cn.lili.common.enums.ResultCode;
|
||||||
import cn.lili.common.enums.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.exception.ServiceException;
|
import cn.lili.common.exception.ServiceException;
|
||||||
import cn.lili.common.properties.SystemSettingProperties;
|
|
||||||
import cn.lili.common.security.AuthUser;
|
import cn.lili.common.security.AuthUser;
|
||||||
import cn.lili.common.security.context.UserContext;
|
import cn.lili.common.security.context.UserContext;
|
||||||
import cn.lili.common.security.enums.UserEnums;
|
import cn.lili.common.security.enums.UserEnums;
|
||||||
@@ -13,7 +12,8 @@ import cn.lili.common.utils.Base64DecodeMultipartFile;
|
|||||||
import cn.lili.common.utils.CommonUtil;
|
import cn.lili.common.utils.CommonUtil;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
import cn.lili.modules.file.entity.File;
|
import cn.lili.modules.file.entity.File;
|
||||||
import cn.lili.modules.file.plugin.FileManagerPlugin;
|
import cn.lili.modules.file.plugin.FilePlugin;
|
||||||
|
import cn.lili.modules.file.plugin.FilePluginFactory;
|
||||||
import cn.lili.modules.file.service.FileService;
|
import cn.lili.modules.file.service.FileService;
|
||||||
import cn.lili.modules.system.entity.dos.Setting;
|
import cn.lili.modules.system.entity.dos.Setting;
|
||||||
import cn.lili.modules.system.entity.enums.SettingEnum;
|
import cn.lili.modules.system.entity.enums.SettingEnum;
|
||||||
@@ -40,7 +40,7 @@ import java.util.Objects;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "文件上传接口")
|
@Api(tags = "文件上传接口")
|
||||||
@RequestMapping("/common/upload")
|
@RequestMapping("/common/common/upload")
|
||||||
public class UploadController {
|
public class UploadController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
@@ -48,13 +48,10 @@ public class UploadController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private SettingService settingService;
|
private SettingService settingService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private FileManagerPlugin fileManagerPlugin;
|
private FilePluginFactory filePluginFactory;
|
||||||
@Autowired
|
@Autowired
|
||||||
private Cache cache;
|
private Cache cache;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private SystemSettingProperties systemSettingProperties;
|
|
||||||
|
|
||||||
@ApiOperation(value = "文件上传")
|
@ApiOperation(value = "文件上传")
|
||||||
@PostMapping(value = "/file")
|
@PostMapping(value = "/file")
|
||||||
public ResultMessage<Object> upload(MultipartFile file,
|
public ResultMessage<Object> upload(MultipartFile file,
|
||||||
@@ -90,7 +87,7 @@ public class UploadController {
|
|||||||
try {
|
try {
|
||||||
InputStream inputStream = file.getInputStream();
|
InputStream inputStream = file.getInputStream();
|
||||||
//上传至第三方云服务或服务器
|
//上传至第三方云服务或服务器
|
||||||
result = fileManagerPlugin.inputStreamUpload(inputStream, fileKey);
|
result = filePluginFactory.filePlugin().inputStreamUpload(inputStream, fileKey);
|
||||||
//保存数据信息至数据库
|
//保存数据信息至数据库
|
||||||
newFile.setName(file.getOriginalFilename());
|
newFile.setName(file.getOriginalFilename());
|
||||||
newFile.setFileSize(file.getSize());
|
newFile.setFileSize(file.getSize());
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
package cn.lili.controller.security;
|
package cn.lili.controller.security;
|
||||||
|
|
||||||
import cn.lili.cache.Cache;
|
|
||||||
import cn.lili.common.security.CustomAccessDeniedHandler;
|
|
||||||
import cn.lili.common.properties.IgnoredUrlsProperties;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
@@ -25,19 +22,10 @@ import org.springframework.web.cors.CorsConfigurationSource;
|
|||||||
public class CommonSecurityConfig extends WebSecurityConfigurerAdapter {
|
public class CommonSecurityConfig extends WebSecurityConfigurerAdapter {
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 忽略验权配置
|
|
||||||
*/
|
|
||||||
@Autowired
|
|
||||||
private IgnoredUrlsProperties ignoredUrlsProperties;
|
|
||||||
/**
|
/**
|
||||||
* spring security -》 权限不足处理
|
* spring security -》 权限不足处理
|
||||||
*/
|
*/
|
||||||
@Autowired
|
@Autowired
|
||||||
private CustomAccessDeniedHandler accessDeniedHandler;
|
|
||||||
@Autowired
|
|
||||||
private Cache<String> cache;
|
|
||||||
@Autowired
|
|
||||||
private CorsConfigurationSource corsConfigurationSource;
|
private CorsConfigurationSource corsConfigurationSource;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -29,15 +29,6 @@ spring:
|
|||||||
admin:
|
admin:
|
||||||
client:
|
client:
|
||||||
url: http://127.0.0.1:8000
|
url: http://127.0.0.1:8000
|
||||||
# mongodb
|
|
||||||
data:
|
|
||||||
mongodb:
|
|
||||||
uri: 127.0.0.1:27017
|
|
||||||
database: lilishop
|
|
||||||
username: root
|
|
||||||
password: lilishop
|
|
||||||
authentication-database: admin
|
|
||||||
# replica-set-name: mongoreplset
|
|
||||||
cache:
|
cache:
|
||||||
type: redis
|
type: redis
|
||||||
# Redis
|
# Redis
|
||||||
@@ -117,7 +108,7 @@ spring:
|
|||||||
props:
|
props:
|
||||||
#是否打印逻辑SQL语句和实际SQL语句,建议调试时打印,在生产环境关闭
|
#是否打印逻辑SQL语句和实际SQL语句,建议调试时打印,在生产环境关闭
|
||||||
sql:
|
sql:
|
||||||
show: true
|
show: false
|
||||||
|
|
||||||
# 忽略鉴权url
|
# 忽略鉴权url
|
||||||
ignored:
|
ignored:
|
||||||
@@ -128,24 +119,10 @@ ignored:
|
|||||||
- /MP_verify_qSyvBPhDsPdxvOhC.txt
|
- /MP_verify_qSyvBPhDsPdxvOhC.txt
|
||||||
- /weixin/**
|
- /weixin/**
|
||||||
- /source/**
|
- /source/**
|
||||||
- /buyer/mini-program/**
|
- /common/common/slider/**
|
||||||
- /buyer/cashier/**
|
- /common/common/sms/**
|
||||||
- /buyer/pageData/**
|
- /common/common/logo
|
||||||
- /buyer/article/**
|
- /common/common/site
|
||||||
- /buyer/goods/**
|
|
||||||
- /buyer/category/**
|
|
||||||
- /buyer/shop/**
|
|
||||||
- /buyer/connect/**
|
|
||||||
- /buyer/members/smsLogin
|
|
||||||
- /buyer/members/refresh/*
|
|
||||||
- /buyer/members/refresh**
|
|
||||||
- /buyer/promotion/pintuan
|
|
||||||
- /buyer/promotion/seckill
|
|
||||||
- /buyer/memberEvaluation/**/goodsEvaluation
|
|
||||||
- /buyer/memberEvaluation/**/evaluationNumber
|
|
||||||
- /store/login/**
|
|
||||||
- /manager/user/login
|
|
||||||
- /manager/user/refresh/**
|
|
||||||
- /druid/**
|
- /druid/**
|
||||||
- /swagger-ui.html
|
- /swagger-ui.html
|
||||||
- /doc.html
|
- /doc.html
|
||||||
@@ -185,10 +162,9 @@ logging:
|
|||||||
config: classpath:logback-spring.xml
|
config: classpath:logback-spring.xml
|
||||||
# 输出级别
|
# 输出级别
|
||||||
level:
|
level:
|
||||||
cn.lili: info
|
root: info
|
||||||
# org.hibernate: debug
|
# org.hibernate: debug
|
||||||
# org.springframework: debug
|
# org.springframework: debug
|
||||||
# org.springframework.data.mongodb.core: debug
|
|
||||||
file:
|
file:
|
||||||
# 指定路径
|
# 指定路径
|
||||||
path: lili-logs
|
path: lili-logs
|
||||||
|
|||||||
@@ -20,6 +20,22 @@
|
|||||||
</encoder>
|
</encoder>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
|
<appender name="RocketmqClientAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||||
|
<file>${LOG_FILE_PATH}/rocketmq.log</file>
|
||||||
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||||
|
<fileNamePattern>${LOG_FILE_PATH}/rocketmq/rocketmq-%d{yyyy-MM-dd}.log</fileNamePattern>
|
||||||
|
<maxHistory>30</maxHistory>
|
||||||
|
<totalSizeCap>30MB</totalSizeCap>
|
||||||
|
</rollingPolicy>
|
||||||
|
<encoder>
|
||||||
|
<pattern>%d{yy-MM-dd.HH:mm:ss.SSS} [%-16t] %-5p %-22c{0} %X{ServiceId} - %m%n</pattern>
|
||||||
|
</encoder>
|
||||||
|
</appender>
|
||||||
|
<logger name="RocketmqClient" additivity="false">
|
||||||
|
<level value="info" />
|
||||||
|
<appender-ref ref="RocketmqClientAppender"/>
|
||||||
|
</logger>
|
||||||
|
|
||||||
<!--输出到elk的LOGSTASH-->
|
<!--输出到elk的LOGSTASH-->
|
||||||
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
|
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
|
||||||
<!-- 配置elk日志收集 配饰的是 LOGSTASH 的地址-->
|
<!-- 配置elk日志收集 配饰的是 LOGSTASH 的地址-->
|
||||||
|
|||||||
@@ -25,20 +25,11 @@ spring:
|
|||||||
admin:
|
admin:
|
||||||
client:
|
client:
|
||||||
url: http://192.168.0.116:8000
|
url: http://192.168.0.116:8000
|
||||||
# mongodb
|
|
||||||
data:
|
|
||||||
mongodb:
|
|
||||||
uri: 192.168.0.116:27017
|
|
||||||
database: lilishop
|
|
||||||
username: root
|
|
||||||
password: lilishop
|
|
||||||
authentication-database: admin
|
|
||||||
# replica-set-name: mongoreplset
|
|
||||||
cache:
|
cache:
|
||||||
type: redis
|
type: redis
|
||||||
# Redis
|
# Redis
|
||||||
redis:
|
redis:
|
||||||
host: 192.168.0.116
|
host: 127.0.0.1
|
||||||
port: 6379
|
port: 6379
|
||||||
password: lilishop
|
password: lilishop
|
||||||
lettuce:
|
lettuce:
|
||||||
@@ -69,11 +60,11 @@ spring:
|
|||||||
default-datasource:
|
default-datasource:
|
||||||
type: com.alibaba.druid.pool.DruidDataSource
|
type: com.alibaba.druid.pool.DruidDataSource
|
||||||
driverClassName: com.mysql.cj.jdbc.Driver
|
driverClassName: com.mysql.cj.jdbc.Driver
|
||||||
url: jdbc:mysql://192.168.0.116:3306/lilishop?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
|
url: jdbc:mysql://127.0.0.1:3306/lilishop?useUnicode=true&characterEncoding=utf-8&useSSL=false&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
|
||||||
username: root
|
username: root
|
||||||
password: lilishop
|
password: lilishop
|
||||||
maxActive: 20
|
maxActive: 50
|
||||||
initialSize: 5
|
initialSize: 20
|
||||||
maxWait: 60000
|
maxWait: 60000
|
||||||
minIdle: 5
|
minIdle: 5
|
||||||
timeBetweenEvictionRunsMillis: 60000
|
timeBetweenEvictionRunsMillis: 60000
|
||||||
@@ -124,26 +115,32 @@ ignored:
|
|||||||
- /MP_verify_qSyvBPhDsPdxvOhC.txt
|
- /MP_verify_qSyvBPhDsPdxvOhC.txt
|
||||||
- /weixin/**
|
- /weixin/**
|
||||||
- /source/**
|
- /source/**
|
||||||
- /buyer/mini-program/**
|
- /store/passport/login/**
|
||||||
- /buyer/cashier/**
|
- /store/passport/login/refresh/**
|
||||||
- /buyer/pageData/**
|
- /common/common/slider/**
|
||||||
- /buyer/article/**
|
- /common/common/sms/**
|
||||||
|
- /common/common/site
|
||||||
|
- /buyer/payment/cashier/**
|
||||||
|
- /buyer/other/pageData/**
|
||||||
|
- /buyer/other/article/**
|
||||||
- /buyer/goods/**
|
- /buyer/goods/**
|
||||||
- /buyer/category/**
|
|
||||||
- /buyer/store/**
|
- /buyer/store/**
|
||||||
- /buyer/connect/**
|
- /buyer/passport/connect/**
|
||||||
- /buyer/members/**
|
- /buyer/members/**
|
||||||
|
- /buyer/passport/member/**
|
||||||
|
- /buyer/passport/member/refresh/**
|
||||||
- /buyer/promotion/pintuan/**
|
- /buyer/promotion/pintuan/**
|
||||||
- /buyer/promotion/seckill/**
|
- /buyer/promotion/seckill/**
|
||||||
- /buyer/promotion/pointsGoods/**
|
- /buyer/promotion/pointsGoods/**
|
||||||
- /buyer/promotion/coupon
|
- /buyer/promotion/coupon
|
||||||
- /buyer/memberEvaluation/**/goodsEvaluation
|
- /buyer/member/evaluation/**/goodsEvaluation
|
||||||
- /buyer/memberEvaluation/**/evaluationNumber
|
- /buyer/member/evaluation/**/evaluationNumber
|
||||||
- /buyer/appVersion/**
|
- /buyer/other/appVersion/**
|
||||||
- /buyer/broadcast/studio/**
|
- /buyer/broadcast/studio/**
|
||||||
- /store/login/**
|
- /manager/passport/user/login
|
||||||
- /manager/user/login
|
- /manager/passport/user/refresh/**
|
||||||
- /manager/user/refresh/**
|
- /manager/other/elasticsearch
|
||||||
|
- /manager/other/customWords
|
||||||
- /druid/**
|
- /druid/**
|
||||||
- /swagger-ui.html
|
- /swagger-ui.html
|
||||||
- /doc.html
|
- /doc.html
|
||||||
@@ -186,7 +183,6 @@ logging:
|
|||||||
cn.lili: info
|
cn.lili: info
|
||||||
# org.hibernate: debug
|
# org.hibernate: debug
|
||||||
# org.springframework: debug
|
# org.springframework: debug
|
||||||
# org.springframework.data.mongodb.core: debug
|
|
||||||
file:
|
file:
|
||||||
# 指定路径
|
# 指定路径
|
||||||
path: logs
|
path: logs
|
||||||
@@ -232,7 +228,7 @@ lili:
|
|||||||
# 0:不做脱敏处理
|
# 0:不做脱敏处理
|
||||||
# 1:管理端用户手机号等信息脱敏
|
# 1:管理端用户手机号等信息脱敏
|
||||||
# 2:商家端信息脱敏(为2时,表示管理端,商家端同时脱敏)
|
# 2:商家端信息脱敏(为2时,表示管理端,商家端同时脱敏)
|
||||||
# sensitiveLevel: 2
|
sensitiveLevel: 1
|
||||||
|
|
||||||
statistics:
|
statistics:
|
||||||
# 在线人数统计 X 小时。这里设置48,即统计过去48小时每小时在线人数
|
# 在线人数统计 X 小时。这里设置48,即统计过去48小时每小时在线人数
|
||||||
@@ -273,7 +269,7 @@ lili:
|
|||||||
data:
|
data:
|
||||||
elasticsearch:
|
elasticsearch:
|
||||||
cluster-name: elasticsearch
|
cluster-name: elasticsearch
|
||||||
cluster-nodes: 192.168.0.116:9200
|
cluster-nodes: 127.0.0.1:9200
|
||||||
index:
|
index:
|
||||||
number-of-replicas: 0
|
number-of-replicas: 0
|
||||||
number-of-shards: 3
|
number-of-shards: 3
|
||||||
@@ -284,7 +280,7 @@ lili:
|
|||||||
# password: LiLiShopES
|
# password: LiLiShopES
|
||||||
|
|
||||||
logstash:
|
logstash:
|
||||||
server: 192.168.0.116:4560
|
server: 127.0.0.1:4560
|
||||||
rocketmq:
|
rocketmq:
|
||||||
promotion-topic: lili_promotion_topic
|
promotion-topic: lili_promotion_topic
|
||||||
promotion-group: lili_promotion_group
|
promotion-group: lili_promotion_group
|
||||||
@@ -302,9 +298,10 @@ lili:
|
|||||||
notice-group: lili_notice_group
|
notice-group: lili_notice_group
|
||||||
notice-send-topic: lili_send_notice_topic
|
notice-send-topic: lili_send_notice_topic
|
||||||
notice-send-group: lili_send_notice_group
|
notice-send-group: lili_send_notice_group
|
||||||
|
after-sale-topic: lili_after_sale_topic
|
||||||
|
after-sale-group: lili_after_sale_group
|
||||||
rocketmq:
|
rocketmq:
|
||||||
name-server: 192.168.0.116:9876
|
name-server: 127.0.0.1:9876
|
||||||
namesrvAddr: 192.168.0.116:9876
|
|
||||||
isVIPChannel: false
|
isVIPChannel: false
|
||||||
producer:
|
producer:
|
||||||
group: lili_group
|
group: lili_group
|
||||||
@@ -313,7 +310,7 @@ rocketmq:
|
|||||||
xxl:
|
xxl:
|
||||||
job:
|
job:
|
||||||
admin:
|
admin:
|
||||||
addresses: http://192.168.0.116:9001/xxl-job-admin
|
addresses: http://127.0.0.1:9001/xxl-job-admin
|
||||||
executor:
|
executor:
|
||||||
appname: xxl-job-executor-lilishop
|
appname: xxl-job-executor-lilishop
|
||||||
address:
|
address:
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ public class ConsumerApplication {
|
|||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
System.setProperty("es.set.netty.runtime.available.processors", "false");
|
System.setProperty("es.set.netty.runtime.available.processors", "false");
|
||||||
|
System.setProperty("rocketmq.client.logUseSlf4j","true");
|
||||||
SpringApplication.run(ConsumerApplication.class, args);
|
SpringApplication.run(ConsumerApplication.class, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package cn.lili.event;
|
package cn.lili.event;
|
||||||
|
|
||||||
|
|
||||||
import cn.lili.modules.order.order.entity.dos.AfterSale;
|
import cn.lili.modules.order.aftersale.entity.dos.AfterSale;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 售后单改变状态
|
* 售后单改变状态
|
||||||
|
|||||||
19
consumer/src/main/java/cn/lili/event/MemberLoginEvent.java
Normal file
19
consumer/src/main/java/cn/lili/event/MemberLoginEvent.java
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
package cn.lili.event;
|
||||||
|
|
||||||
|
import cn.lili.modules.member.entity.dos.Member;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 会员登录消息
|
||||||
|
*
|
||||||
|
* @author Chopper
|
||||||
|
* @since 2020/11/17 7:13 下午
|
||||||
|
*/
|
||||||
|
public interface MemberLoginEvent {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 会员登录
|
||||||
|
*
|
||||||
|
* @param member 会员
|
||||||
|
*/
|
||||||
|
void memberLogin(Member member);
|
||||||
|
}
|
||||||
@@ -11,7 +11,7 @@ import cn.lili.modules.member.entity.dos.Member;
|
|||||||
public interface MemberRegisterEvent {
|
public interface MemberRegisterEvent {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 会员登录
|
* 会员注册
|
||||||
*
|
*
|
||||||
* @param member 会员
|
* @param member 会员
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package cn.lili.event;
|
package cn.lili.event;
|
||||||
|
|
||||||
import cn.lili.modules.member.entity.dto.MemberWithdrawalMessage;
|
import cn.lili.modules.wallet.entity.dto.MemberWithdrawalMessage;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 会员提现消息
|
* 会员提现消息
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import cn.lili.modules.distribution.entity.dos.DistributionOrder;
|
|||||||
import cn.lili.modules.distribution.entity.enums.DistributionOrderStatusEnum;
|
import cn.lili.modules.distribution.entity.enums.DistributionOrderStatusEnum;
|
||||||
import cn.lili.modules.distribution.mapper.DistributionOrderMapper;
|
import cn.lili.modules.distribution.mapper.DistributionOrderMapper;
|
||||||
import cn.lili.modules.distribution.service.DistributionOrderService;
|
import cn.lili.modules.distribution.service.DistributionOrderService;
|
||||||
import cn.lili.modules.order.order.entity.dos.AfterSale;
|
import cn.lili.modules.order.aftersale.entity.dos.AfterSale;
|
||||||
import cn.lili.modules.order.order.entity.dto.OrderMessage;
|
import cn.lili.modules.order.order.entity.dto.OrderMessage;
|
||||||
import cn.lili.modules.order.trade.entity.enums.AfterSaleStatusEnum;
|
import cn.lili.modules.order.trade.entity.enums.AfterSaleStatusEnum;
|
||||||
import cn.lili.timetask.handler.EveryDayExecute;
|
import cn.lili.timetask.handler.EveryDayExecute;
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import cn.lili.common.utils.SnowFlake;
|
|||||||
import cn.lili.event.OrderStatusChangeEvent;
|
import cn.lili.event.OrderStatusChangeEvent;
|
||||||
import cn.lili.event.TradeEvent;
|
import cn.lili.event.TradeEvent;
|
||||||
import cn.lili.modules.goods.entity.dos.GoodsSku;
|
import cn.lili.modules.goods.entity.dos.GoodsSku;
|
||||||
|
import cn.lili.modules.goods.entity.enums.GoodsTypeEnum;
|
||||||
import cn.lili.modules.goods.service.GoodsSkuService;
|
import cn.lili.modules.goods.service.GoodsSkuService;
|
||||||
import cn.lili.modules.member.entity.enums.PointTypeEnum;
|
import cn.lili.modules.member.entity.enums.PointTypeEnum;
|
||||||
import cn.lili.modules.member.service.MemberService;
|
import cn.lili.modules.member.service.MemberService;
|
||||||
@@ -18,6 +19,7 @@ import cn.lili.modules.order.cart.entity.vo.CartVO;
|
|||||||
import cn.lili.modules.order.order.entity.dos.Order;
|
import cn.lili.modules.order.order.entity.dos.Order;
|
||||||
import cn.lili.modules.order.order.entity.dos.OrderItem;
|
import cn.lili.modules.order.order.entity.dos.OrderItem;
|
||||||
import cn.lili.modules.order.order.entity.dto.OrderMessage;
|
import cn.lili.modules.order.order.entity.dto.OrderMessage;
|
||||||
|
import cn.lili.modules.order.order.entity.dto.OrderSearchParams;
|
||||||
import cn.lili.modules.order.order.entity.dto.PriceDetailDTO;
|
import cn.lili.modules.order.order.entity.dto.PriceDetailDTO;
|
||||||
import cn.lili.modules.order.order.entity.enums.*;
|
import cn.lili.modules.order.order.entity.enums.*;
|
||||||
import cn.lili.modules.order.order.service.OrderItemService;
|
import cn.lili.modules.order.order.service.OrderItemService;
|
||||||
@@ -26,7 +28,7 @@ import cn.lili.modules.order.trade.entity.dos.OrderLog;
|
|||||||
import cn.lili.modules.order.trade.service.OrderLogService;
|
import cn.lili.modules.order.trade.service.OrderLogService;
|
||||||
import cn.lili.modules.promotion.service.MemberCouponService;
|
import cn.lili.modules.promotion.service.MemberCouponService;
|
||||||
import cn.lili.rocketmq.RocketmqSendCallbackBuilder;
|
import cn.lili.rocketmq.RocketmqSendCallbackBuilder;
|
||||||
import cn.lili.rocketmq.tags.MqOrderTagsEnum;
|
import cn.lili.rocketmq.tags.OrderTagsEnum;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.rocketmq.spring.core.RocketMQTemplate;
|
import org.apache.rocketmq.spring.core.RocketMQTemplate;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -34,6 +36,7 @@ import org.springframework.stereotype.Service;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单状态处理类
|
* 订单状态处理类
|
||||||
@@ -82,7 +85,7 @@ public class FullDiscountExecute implements TradeEvent, OrderStatusChangeEvent {
|
|||||||
if ((cartVO.getGiftList() != null && !cartVO.getGiftList().isEmpty())
|
if ((cartVO.getGiftList() != null && !cartVO.getGiftList().isEmpty())
|
||||||
|| (cartVO.getGiftPoint() != null && cartVO.getGiftPoint() > 0)
|
|| (cartVO.getGiftPoint() != null && cartVO.getGiftPoint() > 0)
|
||||||
|| (cartVO.getGiftCouponList() != null && !cartVO.getGiftCouponList().isEmpty())) {
|
|| (cartVO.getGiftCouponList() != null && !cartVO.getGiftCouponList().isEmpty())) {
|
||||||
cache.put(CachePrefix.ORDER.getPrefix() + cartVO.getSn(), cartVO);
|
cache.put(CachePrefix.ORDER.getPrefix() + cartVO.getSn(), JSONUtil.toJsonStr(cartVO));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@@ -90,9 +93,19 @@ public class FullDiscountExecute implements TradeEvent, OrderStatusChangeEvent {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void orderChange(OrderMessage orderMessage) {
|
public void orderChange(OrderMessage orderMessage) {
|
||||||
|
//如果订单已支付
|
||||||
if (orderMessage.getNewStatus().equals(OrderStatusEnum.PAID)) {
|
if (orderMessage.getNewStatus().equals(OrderStatusEnum.PAID)) {
|
||||||
log.debug("满减活动,订单状态操作 {}", CachePrefix.ORDER.getPrefix() + orderMessage.getOrderSn());
|
log.debug("满减活动,订单状态操作 {}", CachePrefix.ORDER.getPrefix() + orderMessage.getOrderSn());
|
||||||
renderGift((CartVO) cache.get(CachePrefix.ORDER.getPrefix() + orderMessage.getOrderSn()), orderMessage);
|
renderGift(JSONUtil.toBean(cache.getString(CachePrefix.ORDER.getPrefix() + orderMessage.getOrderSn()), CartVO.class), orderMessage);
|
||||||
|
} else if (orderMessage.getNewStatus().equals(OrderStatusEnum.CANCELLED)) {
|
||||||
|
log.debug("满减活动,取消订单状态操作 {}", CachePrefix.ORDER.getPrefix() + orderMessage.getOrderSn());
|
||||||
|
OrderSearchParams searchParams = new OrderSearchParams();
|
||||||
|
searchParams.setParentOrderSn(orderMessage.getOrderSn());
|
||||||
|
searchParams.setOrderPromotionType(OrderPromotionTypeEnum.GIFT.name());
|
||||||
|
List<Order> orders = orderService.queryListByParams(searchParams);
|
||||||
|
if (orders != null && !orders.isEmpty()) {
|
||||||
|
orderService.systemCancel(orders.get(0).getSn(),"主订单取消,赠送订单字段自动取消");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -142,58 +155,97 @@ public class FullDiscountExecute implements TradeEvent, OrderStatusChangeEvent {
|
|||||||
* @param originOrder 赠品原订单信息
|
* @param originOrder 赠品原订单信息
|
||||||
*/
|
*/
|
||||||
private void generatorGiftOrder(List<String> skuIds, Order originOrder) {
|
private void generatorGiftOrder(List<String> skuIds, Order originOrder) {
|
||||||
|
//获取赠品列表
|
||||||
|
List<GoodsSku> goodsSkus = goodsSkuService.getGoodsSkuByIdFromCache(skuIds);
|
||||||
|
|
||||||
|
//赠品判定
|
||||||
|
if (goodsSkus == null || goodsSkus.isEmpty()) {
|
||||||
|
log.error("赠品不存在:{}", skuIds);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//赠品分类,分为实体商品/虚拟商品/电子卡券
|
||||||
|
List<GoodsSku> physicalSkus = goodsSkus.stream().filter(goodsSku -> goodsSku.getGoodsType().equals(GoodsTypeEnum.PHYSICAL_GOODS.name())).collect(Collectors.toList());
|
||||||
|
List<GoodsSku> virtualSkus = goodsSkus.stream().filter(goodsSku -> goodsSku.getGoodsType().equals(GoodsTypeEnum.VIRTUAL_GOODS.name())).collect(Collectors.toList());
|
||||||
|
List<GoodsSku> eCouponSkus = goodsSkus.stream().filter(goodsSku -> goodsSku.getGoodsType().equals(GoodsTypeEnum.E_COUPON.name())).collect(Collectors.toList());
|
||||||
|
|
||||||
|
//如果赠品不为空,则生成对应的赠品订单
|
||||||
|
if (!physicalSkus.isEmpty()) {
|
||||||
|
giftOrderHandler(physicalSkus, originOrder, OrderTypeEnum.NORMAL);
|
||||||
|
}
|
||||||
|
if (!virtualSkus.isEmpty()) {
|
||||||
|
giftOrderHandler(virtualSkus, originOrder, OrderTypeEnum.VIRTUAL);
|
||||||
|
}
|
||||||
|
if (!eCouponSkus.isEmpty()) {
|
||||||
|
giftOrderHandler(eCouponSkus, originOrder, OrderTypeEnum.E_COUPON);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 赠品订单处理
|
||||||
|
*
|
||||||
|
* @param skuList 赠品列表
|
||||||
|
* @param originOrder 原始订单
|
||||||
|
* @param orderTypeEnum 订单类型
|
||||||
|
*/
|
||||||
|
private void giftOrderHandler(List<GoodsSku> skuList, Order originOrder, OrderTypeEnum orderTypeEnum) {
|
||||||
|
//初始化订单对象/订单日志/自订单
|
||||||
|
Order order = new Order();
|
||||||
List<OrderItem> orderItems = new ArrayList<>();
|
List<OrderItem> orderItems = new ArrayList<>();
|
||||||
List<OrderLog> orderLogs = new ArrayList<>();
|
List<OrderLog> orderLogs = new ArrayList<>();
|
||||||
Order order = new Order();
|
//初始化价格详情
|
||||||
PriceDetailDTO priceDetailDTO = new PriceDetailDTO();
|
PriceDetailDTO priceDetailDTO = new PriceDetailDTO();
|
||||||
|
//复制通用属性
|
||||||
BeanUtil.copyProperties(originOrder, order, "id");
|
BeanUtil.copyProperties(originOrder, order, "id");
|
||||||
BeanUtil.copyProperties(priceDetailDTO, order, "id");
|
BeanUtil.copyProperties(priceDetailDTO, order, "id");
|
||||||
|
//生成订单参数
|
||||||
order.setSn(SnowFlake.createStr("G"));
|
order.setSn(SnowFlake.createStr("G"));
|
||||||
order.setOrderType(OrderPromotionTypeEnum.GIFT.name());
|
order.setParentOrderSn(originOrder.getSn());
|
||||||
|
order.setOrderPromotionType(OrderPromotionTypeEnum.GIFT.name());
|
||||||
order.setOrderStatus(OrderStatusEnum.UNPAID.name());
|
order.setOrderStatus(OrderStatusEnum.UNPAID.name());
|
||||||
order.setPayStatus(PayStatusEnum.PAID.name());
|
order.setPayStatus(PayStatusEnum.PAID.name());
|
||||||
order.setDeliverStatus(DeliverStatusEnum.UNDELIVERED.name());
|
order.setOrderType(orderTypeEnum.name());
|
||||||
order.setNeedReceipt(false);
|
order.setNeedReceipt(false);
|
||||||
order.setPriceDetailDTO(priceDetailDTO);
|
order.setPriceDetailDTO(priceDetailDTO);
|
||||||
order.setClientType(originOrder.getClientType());
|
order.setClientType(originOrder.getClientType());
|
||||||
|
//订单日志
|
||||||
String message = "赠品订单[" + order.getSn() + "]创建";
|
String message = "赠品订单[" + order.getSn() + "]创建";
|
||||||
orderLogs.add(new OrderLog(order.getSn(), originOrder.getMemberId(), UserEnums.MEMBER.name(), originOrder.getMemberName(), message));
|
orderLogs.add(new OrderLog(order.getSn(), originOrder.getMemberId(), UserEnums.MEMBER.name(), originOrder.getMemberName(), message));
|
||||||
|
|
||||||
for (String skuId : skuIds) {
|
//生成子订单
|
||||||
GoodsSku goodsSkuByIdFromCache = goodsSkuService.getGoodsSkuByIdFromCache(skuId);
|
for (GoodsSku goodsSku : skuList) {
|
||||||
OrderItem orderItem = new OrderItem();
|
OrderItem orderItem = new OrderItem();
|
||||||
BeanUtil.copyProperties(goodsSkuByIdFromCache, orderItem, "id");
|
BeanUtil.copyProperties(goodsSku, orderItem, "id");
|
||||||
BeanUtil.copyProperties(priceDetailDTO, orderItem, "id");
|
BeanUtil.copyProperties(priceDetailDTO, orderItem, "id");
|
||||||
orderItem.setAfterSaleStatus(OrderItemAfterSaleStatusEnum.NEW.name());
|
orderItem.setAfterSaleStatus(OrderItemAfterSaleStatusEnum.NEW.name());
|
||||||
orderItem.setCommentStatus(CommentStatusEnum.NEW.name());
|
orderItem.setCommentStatus(CommentStatusEnum.NEW.name());
|
||||||
orderItem.setComplainStatus(OrderComplaintStatusEnum.NEW.name());
|
orderItem.setComplainStatus(OrderComplaintStatusEnum.NEW.name());
|
||||||
orderItem.setNum(1);
|
orderItem.setNum(1);
|
||||||
orderItem.setOrderSn(order.getSn());
|
orderItem.setOrderSn(order.getSn());
|
||||||
orderItem.setImage(goodsSkuByIdFromCache.getThumbnail());
|
orderItem.setImage(goodsSku.getThumbnail());
|
||||||
orderItem.setGoodsName(goodsSkuByIdFromCache.getGoodsName());
|
orderItem.setGoodsName(goodsSku.getGoodsName());
|
||||||
orderItem.setSkuId(goodsSkuByIdFromCache.getId());
|
orderItem.setSkuId(goodsSku.getId());
|
||||||
orderItem.setCategoryId(goodsSkuByIdFromCache.getCategoryPath().substring(
|
orderItem.setCategoryId(goodsSku.getCategoryPath().substring(
|
||||||
goodsSkuByIdFromCache.getCategoryPath().lastIndexOf(",") + 1
|
goodsSku.getCategoryPath().lastIndexOf(",") + 1
|
||||||
));
|
));
|
||||||
orderItem.setGoodsPrice(goodsSkuByIdFromCache.getPrice());
|
orderItem.setGoodsPrice(goodsSku.getPrice());
|
||||||
orderItem.setPriceDetailDTO(priceDetailDTO);
|
orderItem.setPriceDetailDTO(priceDetailDTO);
|
||||||
orderItems.add(orderItem);
|
orderItems.add(orderItem);
|
||||||
}
|
}
|
||||||
|
//保存订单
|
||||||
orderService.save(order);
|
orderService.save(order);
|
||||||
orderItemService.saveBatch(orderItems);
|
orderItemService.saveBatch(orderItems);
|
||||||
orderLogService.saveBatch(orderLogs);
|
orderLogService.saveBatch(orderLogs);
|
||||||
|
|
||||||
|
|
||||||
//发送订单已付款消息
|
//发送订单已付款消息(PS:不在这里处理逻辑是因为期望加交给消费者统一处理库存等等问题)
|
||||||
OrderMessage orderMessage = new OrderMessage();
|
OrderMessage orderMessage = new OrderMessage();
|
||||||
orderMessage.setOrderSn(order.getSn());
|
orderMessage.setOrderSn(order.getSn());
|
||||||
orderMessage.setPaymentMethod(order.getPaymentMethod());
|
orderMessage.setPaymentMethod(order.getPaymentMethod());
|
||||||
orderMessage.setNewStatus(OrderStatusEnum.PAID);
|
orderMessage.setNewStatus(OrderStatusEnum.PAID);
|
||||||
|
|
||||||
String destination = rocketmqCustomProperties.getOrderTopic() + ":" + MqOrderTagsEnum.STATUS_CHANGE.name();
|
String destination = rocketmqCustomProperties.getOrderTopic() + ":" + OrderTagsEnum.STATUS_CHANGE.name();
|
||||||
//发送订单变更mq消息
|
//发送订单变更mq消息
|
||||||
rocketMQTemplate.asyncSend(destination, JSONUtil.toJsonStr(orderMessage), RocketmqSendCallbackBuilder.commonCallback());
|
rocketMQTemplate.asyncSend(destination, JSONUtil.toJsonStr(orderMessage), RocketmqSendCallbackBuilder.commonCallback());
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,65 @@
|
|||||||
|
package cn.lili.event.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.ListUtil;
|
||||||
|
import cn.hutool.core.text.CharSequenceUtil;
|
||||||
|
import cn.lili.event.AfterSaleStatusChangeEvent;
|
||||||
|
import cn.lili.event.OrderStatusChangeEvent;
|
||||||
|
import cn.lili.modules.order.aftersale.entity.dos.AfterSale;
|
||||||
|
import cn.lili.modules.order.order.entity.dos.Order;
|
||||||
|
import cn.lili.modules.order.order.entity.dto.OrderMessage;
|
||||||
|
import cn.lili.modules.order.order.entity.enums.OrderStatusEnum;
|
||||||
|
import cn.lili.modules.order.order.service.OrderService;
|
||||||
|
import cn.lili.modules.order.trade.entity.enums.AfterSaleStatusEnum;
|
||||||
|
import cn.lili.modules.promotion.service.MemberCouponService;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 会员优惠券执行类
|
||||||
|
*
|
||||||
|
* @author paulG
|
||||||
|
* @since 2022/8/12
|
||||||
|
**/
|
||||||
|
@Service
|
||||||
|
public class MemberCouponExecute implements OrderStatusChangeEvent, AfterSaleStatusChangeEvent {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单
|
||||||
|
*/
|
||||||
|
@Autowired
|
||||||
|
private OrderService orderService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private MemberCouponService memberCouponService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void orderChange(OrderMessage orderMessage) {
|
||||||
|
// 订单取消返还优惠券
|
||||||
|
if (orderMessage.getNewStatus() == OrderStatusEnum.CANCELLED) {
|
||||||
|
this.refundCoupon(orderMessage.getOrderSn());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void afterSaleStatusChange(AfterSale afterSale) {
|
||||||
|
// 售后完成返还优惠券
|
||||||
|
if (afterSale.getServiceStatus().equals(AfterSaleStatusEnum.COMPLETE.name())) {
|
||||||
|
this.refundCoupon(afterSale.getOrderSn());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 退款返还优惠券
|
||||||
|
* @param orderSn 订单编号
|
||||||
|
*/
|
||||||
|
private void refundCoupon(String orderSn) {
|
||||||
|
Order order = orderService.getBySn(orderSn);
|
||||||
|
if (CharSequenceUtil.isNotEmpty(order.getUseStoreMemberCouponIds())) {
|
||||||
|
memberCouponService.recoveryMemberCoupon(ListUtil.toList(order.getUseStoreMemberCouponIds().split(",")));
|
||||||
|
}
|
||||||
|
if (CharSequenceUtil.isNotEmpty(order.getUsePlatformMemberCouponId())) {
|
||||||
|
memberCouponService.recoveryMemberCoupon(ListUtil.toList(order.getUsePlatformMemberCouponId().split(",")));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
25
consumer/src/main/java/cn/lili/event/impl/MemberExecute.java
Normal file
25
consumer/src/main/java/cn/lili/event/impl/MemberExecute.java
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
package cn.lili.event.impl;
|
||||||
|
|
||||||
|
import cn.lili.event.MemberLoginEvent;
|
||||||
|
import cn.lili.modules.member.entity.dos.Member;
|
||||||
|
import cn.lili.modules.member.service.MemberService;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 会员自身业务
|
||||||
|
*
|
||||||
|
* @author Chopper
|
||||||
|
* @version v1.0
|
||||||
|
* 2022-01-11 11:08
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class MemberExecute implements MemberLoginEvent {
|
||||||
|
@Autowired
|
||||||
|
private MemberService memberService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void memberLogin(Member member) {
|
||||||
|
memberService.updateMemberLoginTime(member.getId());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,9 +1,8 @@
|
|||||||
package cn.lili.event.impl;
|
package cn.lili.event.impl;
|
||||||
|
|
||||||
|
|
||||||
import cn.hutool.core.convert.Convert;
|
import cn.hutool.core.text.CharSequenceUtil;
|
||||||
import cn.lili.common.utils.CurrencyUtil;
|
import cn.lili.common.utils.CurrencyUtil;
|
||||||
import cn.lili.common.utils.StringUtils;
|
|
||||||
import cn.lili.event.AfterSaleStatusChangeEvent;
|
import cn.lili.event.AfterSaleStatusChangeEvent;
|
||||||
import cn.lili.event.GoodsCommentCompleteEvent;
|
import cn.lili.event.GoodsCommentCompleteEvent;
|
||||||
import cn.lili.event.MemberRegisterEvent;
|
import cn.lili.event.MemberRegisterEvent;
|
||||||
@@ -12,11 +11,10 @@ import cn.lili.modules.member.entity.dos.Member;
|
|||||||
import cn.lili.modules.member.entity.dos.MemberEvaluation;
|
import cn.lili.modules.member.entity.dos.MemberEvaluation;
|
||||||
import cn.lili.modules.member.entity.enums.PointTypeEnum;
|
import cn.lili.modules.member.entity.enums.PointTypeEnum;
|
||||||
import cn.lili.modules.member.service.MemberService;
|
import cn.lili.modules.member.service.MemberService;
|
||||||
import cn.lili.modules.order.order.entity.dos.AfterSale;
|
import cn.lili.modules.order.aftersale.entity.dos.AfterSale;
|
||||||
import cn.lili.modules.order.order.entity.dos.Order;
|
import cn.lili.modules.order.order.entity.dos.Order;
|
||||||
import cn.lili.modules.order.order.entity.dto.OrderMessage;
|
import cn.lili.modules.order.order.entity.dto.OrderMessage;
|
||||||
import cn.lili.modules.order.order.entity.enums.OrderPromotionTypeEnum;
|
import cn.lili.modules.order.order.entity.enums.OrderPromotionTypeEnum;
|
||||||
import cn.lili.modules.order.order.entity.enums.OrderStatusEnum;
|
|
||||||
import cn.lili.modules.order.order.entity.enums.PayStatusEnum;
|
import cn.lili.modules.order.order.entity.enums.PayStatusEnum;
|
||||||
import cn.lili.modules.order.order.service.OrderService;
|
import cn.lili.modules.order.order.service.OrderService;
|
||||||
import cn.lili.modules.order.trade.entity.enums.AfterSaleStatusEnum;
|
import cn.lili.modules.order.trade.entity.enums.AfterSaleStatusEnum;
|
||||||
@@ -105,14 +103,18 @@ public class MemberPointExecute implements MemberRegisterEvent, GoodsCommentComp
|
|||||||
}
|
}
|
||||||
case COMPLETED: {
|
case COMPLETED: {
|
||||||
Order order = orderService.getBySn(orderMessage.getOrderSn());
|
Order order = orderService.getBySn(orderMessage.getOrderSn());
|
||||||
//根据订单编号获取订单数据,如果订单促销类型不为空,并且订单促销类型为积分订单 则直接返回
|
//如果是积分订单 则直接返回
|
||||||
if (StringUtils.isNotEmpty(order.getOrderPromotionType()) && order.getOrderPromotionType().equals(OrderPromotionTypeEnum.POINTS.name())) {
|
if (CharSequenceUtil.isNotEmpty(order.getOrderPromotionType())
|
||||||
|
&& order.getOrderPromotionType().equals(OrderPromotionTypeEnum.POINTS.name())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//获取积分设置
|
//获取积分设置
|
||||||
PointSetting pointSetting = getPointSetting();
|
PointSetting pointSetting = getPointSetting();
|
||||||
|
if (pointSetting.getConsumer() == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
//计算赠送积分数量
|
//计算赠送积分数量
|
||||||
Double point = CurrencyUtil.mul(pointSetting.getMoney(), order.getFlowPrice(), 0);
|
Double point = CurrencyUtil.mul(pointSetting.getConsumer(), order.getFlowPrice(), 0);
|
||||||
//赠送会员积分
|
//赠送会员积分
|
||||||
memberService.updateMemberPoint(point.longValue(), PointTypeEnum.INCREASE.name(), order.getMemberId(), "会员下单,赠送积分" + point + "分");
|
memberService.updateMemberPoint(point.longValue(), PointTypeEnum.INCREASE.name(), order.getMemberId(), "会员下单,赠送积分" + point + "分");
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -3,8 +3,7 @@ package cn.lili.event.impl;
|
|||||||
|
|
||||||
import cn.lili.event.MemberRegisterEvent;
|
import cn.lili.event.MemberRegisterEvent;
|
||||||
import cn.lili.modules.member.entity.dos.Member;
|
import cn.lili.modules.member.entity.dos.Member;
|
||||||
import cn.lili.modules.member.service.MemberWalletService;
|
import cn.lili.modules.wallet.service.MemberWalletService;
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@@ -22,6 +21,7 @@ public class MemberWalletExecute implements MemberRegisterEvent {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void memberRegister(Member member) {
|
public void memberRegister(Member member) {
|
||||||
memberWalletService.save(member.getId(),member.getUsername());
|
// 有些情况下,会同时创建一个member_id的两条数据
|
||||||
|
// memberWalletService.save(member.getId(),member.getUsername());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,22 +2,22 @@ package cn.lili.event.impl;
|
|||||||
|
|
||||||
import cn.lili.event.*;
|
import cn.lili.event.*;
|
||||||
import cn.lili.modules.member.entity.dto.MemberPointMessage;
|
import cn.lili.modules.member.entity.dto.MemberPointMessage;
|
||||||
import cn.lili.modules.member.entity.dto.MemberWithdrawalMessage;
|
|
||||||
import cn.lili.modules.member.entity.enums.MemberWithdrawalDestinationEnum;
|
|
||||||
import cn.lili.modules.member.entity.enums.PointTypeEnum;
|
import cn.lili.modules.member.entity.enums.PointTypeEnum;
|
||||||
import cn.lili.modules.member.entity.enums.WithdrawStatusEnum;
|
|
||||||
import cn.lili.modules.message.entity.dto.NoticeMessageDTO;
|
import cn.lili.modules.message.entity.dto.NoticeMessageDTO;
|
||||||
import cn.lili.modules.message.entity.enums.NoticeMessageNodeEnum;
|
import cn.lili.modules.message.entity.enums.NoticeMessageNodeEnum;
|
||||||
import cn.lili.modules.message.entity.enums.NoticeMessageParameterEnum;
|
import cn.lili.modules.message.entity.enums.NoticeMessageParameterEnum;
|
||||||
import cn.lili.modules.message.service.NoticeMessageService;
|
import cn.lili.modules.message.service.NoticeMessageService;
|
||||||
|
import cn.lili.modules.order.aftersale.entity.dos.AfterSale;
|
||||||
import cn.lili.modules.order.cart.entity.dto.TradeDTO;
|
import cn.lili.modules.order.cart.entity.dto.TradeDTO;
|
||||||
import cn.lili.modules.order.order.entity.dos.AfterSale;
|
|
||||||
import cn.lili.modules.order.order.entity.dto.OrderMessage;
|
import cn.lili.modules.order.order.entity.dto.OrderMessage;
|
||||||
import cn.lili.modules.order.order.entity.enums.OrderPromotionTypeEnum;
|
import cn.lili.modules.order.order.entity.enums.OrderPromotionTypeEnum;
|
||||||
import cn.lili.modules.order.order.entity.vo.OrderDetailVO;
|
import cn.lili.modules.order.order.entity.vo.OrderDetailVO;
|
||||||
import cn.lili.modules.order.order.service.OrderService;
|
import cn.lili.modules.order.order.service.OrderService;
|
||||||
import cn.lili.modules.order.trade.entity.enums.AfterSaleStatusEnum;
|
import cn.lili.modules.order.trade.entity.enums.AfterSaleStatusEnum;
|
||||||
import cn.lili.modules.order.trade.entity.enums.AfterSaleTypeEnum;
|
import cn.lili.modules.order.trade.entity.enums.AfterSaleTypeEnum;
|
||||||
|
import cn.lili.modules.wallet.entity.dto.MemberWithdrawalMessage;
|
||||||
|
import cn.lili.modules.wallet.entity.enums.MemberWithdrawalDestinationEnum;
|
||||||
|
import cn.lili.modules.wallet.entity.enums.WithdrawStatusEnum;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import cn.lili.modules.order.order.entity.dos.Receipt;
|
|||||||
import cn.lili.modules.order.order.entity.vo.OrderVO;
|
import cn.lili.modules.order.order.entity.vo.OrderVO;
|
||||||
import cn.lili.modules.order.order.entity.vo.ReceiptVO;
|
import cn.lili.modules.order.order.entity.vo.ReceiptVO;
|
||||||
import cn.lili.modules.order.order.service.ReceiptService;
|
import cn.lili.modules.order.order.service.ReceiptService;
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@@ -34,25 +33,23 @@ public class OrderCreateReceiptExecute implements TradeEvent {
|
|||||||
//获取发票信息
|
//获取发票信息
|
||||||
ReceiptVO receiptVO = tradeDTO.getReceiptVO();
|
ReceiptVO receiptVO = tradeDTO.getReceiptVO();
|
||||||
//如果需要获取发票则保存发票信息
|
//如果需要获取发票则保存发票信息
|
||||||
if (tradeDTO.getNeedReceipt()) {
|
if (Boolean.TRUE.equals(tradeDTO.getNeedReceipt()) && !orderList.isEmpty()) {
|
||||||
if (orderList.size() > 0) {
|
List<Receipt> receipts = new ArrayList<>();
|
||||||
List<Receipt> receipts = new ArrayList<>();
|
for (OrderVO orderVO : orderList) {
|
||||||
for (OrderVO orderVO : orderList) {
|
Receipt receipt = new Receipt();
|
||||||
Receipt receipt = new Receipt();
|
BeanUtil.copyProperties(receiptVO, receipt);
|
||||||
BeanUtil.copyProperties(receiptVO, receipt);
|
receipt.setMemberId(orderVO.getMemberId());
|
||||||
receipt.setMemberId(orderVO.getMemberId());
|
receipt.setMemberName(orderVO.getMemberName());
|
||||||
receipt.setMemberName(orderVO.getMemberName());
|
receipt.setStoreId(orderVO.getStoreId());
|
||||||
receipt.setStoreId(orderVO.getStoreId());
|
receipt.setStoreName(orderVO.getStoreName());
|
||||||
receipt.setStoreName(orderVO.getStoreName());
|
receipt.setOrderSn(orderVO.getSn());
|
||||||
receipt.setOrderSn(orderVO.getSn());
|
receipt.setReceiptDetail(JSONUtil.toJsonStr(orderVO.getOrderItems()));
|
||||||
receipt.setReceiptDetail(JSONUtil.toJsonStr(orderVO.getOrderItems()));
|
receipt.setReceiptPrice(orderVO.getFlowPrice());
|
||||||
receipt.setReceiptPrice(orderVO.getFlowPrice());
|
receipt.setReceiptStatus(0);
|
||||||
receipt.setReceiptStatus(0);
|
receipts.add(receipt);
|
||||||
receipts.add(receipt);
|
|
||||||
}
|
|
||||||
//保存发票
|
|
||||||
receiptService.saveBatch(receipts);
|
|
||||||
}
|
}
|
||||||
|
//保存发票
|
||||||
|
receiptService.saveBatch(receipts);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import cn.lili.common.utils.SpringContextUtil;
|
|||||||
import cn.lili.event.OrderStatusChangeEvent;
|
import cn.lili.event.OrderStatusChangeEvent;
|
||||||
import cn.lili.modules.order.order.entity.dos.Order;
|
import cn.lili.modules.order.order.entity.dos.Order;
|
||||||
import cn.lili.modules.order.order.entity.dto.OrderMessage;
|
import cn.lili.modules.order.order.entity.dto.OrderMessage;
|
||||||
|
import cn.lili.modules.order.order.entity.enums.OrderStatusEnum;
|
||||||
import cn.lili.modules.order.order.entity.enums.PayStatusEnum;
|
import cn.lili.modules.order.order.entity.enums.PayStatusEnum;
|
||||||
import cn.lili.modules.order.order.service.OrderService;
|
import cn.lili.modules.order.order.service.OrderService;
|
||||||
import cn.lili.modules.payment.entity.RefundLog;
|
import cn.lili.modules.payment.entity.RefundLog;
|
||||||
@@ -33,52 +34,32 @@ public class PaymentExecute implements OrderStatusChangeEvent {
|
|||||||
@Override
|
@Override
|
||||||
public void orderChange(OrderMessage orderMessage) {
|
public void orderChange(OrderMessage orderMessage) {
|
||||||
|
|
||||||
switch (orderMessage.getNewStatus()) {
|
if (orderMessage.getNewStatus() == OrderStatusEnum.CANCELLED) {
|
||||||
case CANCELLED:
|
Order order = orderService.getBySn(orderMessage.getOrderSn());
|
||||||
Order order = orderService.getBySn(orderMessage.getOrderSn());
|
|
||||||
|
|
||||||
//如果未付款,则不去要退回相关代码执行
|
//如果未付款,则不去要退回相关代码执行
|
||||||
if (order.getPayStatus().equals(PayStatusEnum.UNPAID.name())) {
|
if (order.getPayStatus().equals(PayStatusEnum.UNPAID.name())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
PaymentMethodEnum paymentMethodEnum = PaymentMethodEnum.valueOf(order.getPaymentMethod());
|
PaymentMethodEnum paymentMethodEnum = PaymentMethodEnum.valueOf(order.getPaymentMethod());
|
||||||
//进行退款操作
|
|
||||||
switch (paymentMethodEnum) {
|
|
||||||
case WALLET:
|
|
||||||
case ALIPAY:
|
|
||||||
case WECHAT:
|
|
||||||
//获取支付方式
|
|
||||||
Payment payment =
|
|
||||||
(Payment) SpringContextUtil.getBean(paymentMethodEnum.getPlugin());
|
|
||||||
|
|
||||||
RefundLog refundLog = RefundLog.builder()
|
//获取支付方式
|
||||||
.isRefund(false)
|
Payment payment =
|
||||||
.totalAmount(order.getFlowPrice())
|
(Payment) SpringContextUtil.getBean(paymentMethodEnum.getPlugin());
|
||||||
.payPrice(order.getFlowPrice())
|
|
||||||
.memberId(order.getMemberId())
|
RefundLog refundLog = RefundLog.builder()
|
||||||
.paymentName(order.getPaymentMethod())
|
.isRefund(false)
|
||||||
.afterSaleNo("订单取消")
|
.totalAmount(order.getFlowPrice())
|
||||||
.orderSn(order.getSn())
|
.payPrice(order.getFlowPrice())
|
||||||
.paymentReceivableNo(order.getReceivableNo())
|
.memberId(order.getMemberId())
|
||||||
.outOrderNo("AF" + SnowFlake.getIdStr())
|
.paymentName(order.getPaymentMethod())
|
||||||
.outOrderNo("AF" + SnowFlake.getIdStr())
|
.afterSaleNo("订单取消")
|
||||||
.refundReason("订单取消")
|
.orderSn(order.getSn())
|
||||||
.build();
|
.paymentReceivableNo(order.getReceivableNo())
|
||||||
payment.cancel(refundLog);
|
.outOrderNo("AF" + SnowFlake.getIdStr())
|
||||||
break;
|
.refundReason("订单取消")
|
||||||
case BANK_TRANSFER:
|
.build();
|
||||||
break;
|
payment.refund(refundLog);
|
||||||
default:
|
|
||||||
log.error("订单支付执行异常,订单编号:{}", orderMessage.getOrderSn());
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,9 +4,10 @@ import cn.lili.event.MemberRegisterEvent;
|
|||||||
import cn.lili.modules.member.entity.dos.Member;
|
import cn.lili.modules.member.entity.dos.Member;
|
||||||
import cn.lili.modules.promotion.entity.dos.CouponActivity;
|
import cn.lili.modules.promotion.entity.dos.CouponActivity;
|
||||||
import cn.lili.modules.promotion.entity.enums.CouponActivityTypeEnum;
|
import cn.lili.modules.promotion.entity.enums.CouponActivityTypeEnum;
|
||||||
import cn.lili.modules.promotion.entity.enums.PromotionStatusEnum;
|
import cn.lili.modules.promotion.entity.enums.PromotionsStatusEnum;
|
||||||
import cn.lili.modules.promotion.service.CouponActivityService;
|
import cn.lili.modules.promotion.service.CouponActivityService;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import cn.lili.modules.promotion.tools.PromotionTools;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
@@ -32,10 +33,9 @@ public class RegisteredCouponActivityExecute implements MemberRegisterEvent {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void memberRegister(Member member) {
|
public void memberRegister(Member member) {
|
||||||
List<CouponActivity> couponActivities = couponActivityService.list(new LambdaQueryWrapper<CouponActivity>()
|
List<CouponActivity> couponActivities = couponActivityService.list(new QueryWrapper<CouponActivity>()
|
||||||
.eq(CouponActivity::getCouponActivityType, CouponActivityTypeEnum.REGISTERED.name())
|
.eq("coupon_activity_type", CouponActivityTypeEnum.REGISTERED.name())
|
||||||
.eq(CouponActivity::getPromotionStatus, PromotionStatusEnum.START.name()));
|
.and(PromotionTools.queryPromotionStatus(PromotionsStatusEnum.START)));
|
||||||
couponActivityService.registered(couponActivities, member);
|
couponActivityService.registered(couponActivities, member);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,17 +14,22 @@ import cn.lili.modules.order.order.service.OrderService;
|
|||||||
import cn.lili.modules.promotion.entity.dos.KanjiaActivity;
|
import cn.lili.modules.promotion.entity.dos.KanjiaActivity;
|
||||||
import cn.lili.modules.promotion.entity.dos.PromotionGoods;
|
import cn.lili.modules.promotion.entity.dos.PromotionGoods;
|
||||||
import cn.lili.modules.promotion.entity.dto.KanjiaActivityGoodsDTO;
|
import cn.lili.modules.promotion.entity.dto.KanjiaActivityGoodsDTO;
|
||||||
|
import cn.lili.modules.promotion.entity.dto.search.PromotionGoodsSearchParams;
|
||||||
import cn.lili.modules.promotion.entity.vos.PointsGoodsVO;
|
import cn.lili.modules.promotion.entity.vos.PointsGoodsVO;
|
||||||
import cn.lili.modules.promotion.service.*;
|
import cn.lili.modules.promotion.service.KanjiaActivityGoodsService;
|
||||||
|
import cn.lili.modules.promotion.service.KanjiaActivityService;
|
||||||
|
import cn.lili.modules.promotion.service.PointsGoodsService;
|
||||||
|
import cn.lili.modules.promotion.service.PromotionGoodsService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
|
||||||
import org.springframework.data.redis.core.StringRedisTemplate;
|
import org.springframework.data.redis.core.StringRedisTemplate;
|
||||||
import org.springframework.data.redis.core.script.DefaultRedisScript;
|
import org.springframework.data.redis.core.script.DefaultRedisScript;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 库存扣减,他表示了订单状态是否出库成功
|
* 库存扣减,他表示了订单状态是否出库成功
|
||||||
@@ -62,11 +67,6 @@ public class StockUpdateExecute implements OrderStatusChangeEvent {
|
|||||||
*/
|
*/
|
||||||
@Autowired
|
@Autowired
|
||||||
private PromotionGoodsService promotionGoodsService;
|
private PromotionGoodsService promotionGoodsService;
|
||||||
/**
|
|
||||||
* 促销商品
|
|
||||||
*/
|
|
||||||
@Autowired
|
|
||||||
private SeckillApplyService seckillApplyService;
|
|
||||||
/**
|
/**
|
||||||
* 缓存
|
* 缓存
|
||||||
*/
|
*/
|
||||||
@@ -79,10 +79,9 @@ public class StockUpdateExecute implements OrderStatusChangeEvent {
|
|||||||
private KanjiaActivityGoodsService kanjiaActivityGoodsService;
|
private KanjiaActivityGoodsService kanjiaActivityGoodsService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private PointsGoodsService pointsGoodsService;
|
private PointsGoodsService pointsGoodsService;
|
||||||
@Autowired
|
|
||||||
private MongoTemplate mongoTemplate;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void orderChange(OrderMessage orderMessage) {
|
public void orderChange(OrderMessage orderMessage) {
|
||||||
|
|
||||||
switch (orderMessage.getNewStatus()) {
|
switch (orderMessage.getNewStatus()) {
|
||||||
@@ -158,14 +157,11 @@ public class StockUpdateExecute implements OrderStatusChangeEvent {
|
|||||||
* @param stocks
|
* @param stocks
|
||||||
*/
|
*/
|
||||||
private void checkStocks(List<Integer> stocks, OrderDetailVO order) {
|
private void checkStocks(List<Integer> stocks, OrderDetailVO order) {
|
||||||
for (int i = 0; i < stocks.size(); i++) {
|
if (!stocks.isEmpty() && order.getOrderItems().size() == stocks.size() && stocks.stream().anyMatch(Objects::nonNull)) {
|
||||||
if (null == stocks.get(i)) {
|
return;
|
||||||
initSkuCache(order.getOrderItems());
|
|
||||||
initPromotionCache(order.getOrderItems());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
initSkuCache(order.getOrderItems());
|
||||||
|
initPromotionCache(order.getOrderItems());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -202,10 +198,10 @@ public class StockUpdateExecute implements OrderStatusChangeEvent {
|
|||||||
|
|
||||||
switch (promotionTypeEnum) {
|
switch (promotionTypeEnum) {
|
||||||
case KANJIA:
|
case KANJIA:
|
||||||
cache.put(cacheKey, kanjiaActivityGoodsService.getKanJiaGoodsBySku(orderItem.getSkuId()).getStock().intValue());
|
cache.put(cacheKey, kanjiaActivityGoodsService.getKanjiaGoodsBySkuId(orderItem.getSkuId()).getStock());
|
||||||
return;
|
return;
|
||||||
case POINTS_GOODS:
|
case POINTS_GOODS:
|
||||||
cache.put(cacheKey, pointsGoodsService.getPointsGoodsVOByMongo(orderItem.getSkuId()).getActiveStock().intValue());
|
cache.put(cacheKey, pointsGoodsService.getPointsGoodsDetailBySkuId(orderItem.getSkuId()).getActiveStock());
|
||||||
return;
|
return;
|
||||||
case SECKILL:
|
case SECKILL:
|
||||||
case PINTUAN:
|
case PINTUAN:
|
||||||
@@ -294,23 +290,27 @@ public class StockUpdateExecute implements OrderStatusChangeEvent {
|
|||||||
kanjiaActivityGoodsDTO.setStock(stock);
|
kanjiaActivityGoodsDTO.setStock(stock);
|
||||||
|
|
||||||
kanjiaActivityGoodsService.updateById(kanjiaActivityGoodsDTO);
|
kanjiaActivityGoodsService.updateById(kanjiaActivityGoodsDTO);
|
||||||
this.mongoTemplate.save(kanjiaActivityGoodsDTO);
|
|
||||||
//修改积分商品库存
|
//修改积分商品库存
|
||||||
} else if (promotionTypeEnum.equals(PromotionTypeEnum.POINTS_GOODS)) {
|
} else if (promotionTypeEnum.equals(PromotionTypeEnum.POINTS_GOODS)) {
|
||||||
PointsGoodsVO pointsGoodsVO = pointsGoodsService.getPointsGoodsDetail(orderItem.getPromotionId());
|
PointsGoodsVO pointsGoodsVO = pointsGoodsService.getPointsGoodsDetail(orderItem.getPromotionId());
|
||||||
Integer stock = Integer.parseInt(cache.get(PromotionGoodsService.getPromotionGoodsStockCacheKey(promotionTypeEnum, orderItem.getPromotionId(), orderItem.getSkuId())).toString());
|
Integer stock = Integer.parseInt(cache.get(PromotionGoodsService.getPromotionGoodsStockCacheKey(promotionTypeEnum, orderItem.getPromotionId(), orderItem.getSkuId())).toString());
|
||||||
pointsGoodsVO.setActiveStock(stock);
|
pointsGoodsVO.setActiveStock(stock);
|
||||||
pointsGoodsService.updateById(pointsGoodsVO);
|
pointsGoodsService.updateById(pointsGoodsVO);
|
||||||
this.mongoTemplate.save(pointsGoodsVO);
|
|
||||||
} else {
|
} else {
|
||||||
PromotionGoods pGoods = promotionGoodsService.getPromotionGoods(promotionTypeEnum, orderItem.getPromotionId(), orderItem.getSkuId());
|
PromotionGoodsSearchParams searchParams = new PromotionGoodsSearchParams();
|
||||||
|
searchParams.setPromotionType(promotionTypeEnum.name());
|
||||||
|
searchParams.setPromotionId(orderItem.getPromotionId());
|
||||||
|
searchParams.setSkuId(orderItem.getSkuId());
|
||||||
|
PromotionGoods pGoods = promotionGoodsService.getPromotionsGoods(searchParams);
|
||||||
//记录需要更新的促销库存信息
|
//记录需要更新的促销库存信息
|
||||||
promotionKey.add(
|
promotionKey.add(
|
||||||
PromotionGoodsService.getPromotionGoodsStockCacheKey(
|
PromotionGoodsService.getPromotionGoodsStockCacheKey(
|
||||||
promotionTypeEnum,
|
promotionTypeEnum,
|
||||||
orderItem.getPromotionId(), orderItem.getSkuId())
|
orderItem.getPromotionId(), orderItem.getSkuId())
|
||||||
);
|
);
|
||||||
promotionGoods.add(pGoods);
|
if (pGoods != null) {
|
||||||
|
promotionGoods.add(pGoods);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
goodsSkus.add(goodsSku);
|
goodsSkus.add(goodsSku);
|
||||||
@@ -333,7 +333,7 @@ public class StockUpdateExecute implements OrderStatusChangeEvent {
|
|||||||
Integer num = promotionGoods.get(i).getNum();
|
Integer num = promotionGoods.get(i).getNum();
|
||||||
promotionGoods.get(i).setNum((num != null ? num : 0) + order.getOrder().getGoodsNum());
|
promotionGoods.get(i).setNum((num != null ? num : 0) + order.getOrder().getGoodsNum());
|
||||||
}
|
}
|
||||||
promotionGoodsService.updateBatchById(promotionGoods);
|
promotionGoodsService.updatePromotionGoodsStock(promotionGoods);
|
||||||
}
|
}
|
||||||
//商品库存,包含sku库存集合,批量更新商品库存相关
|
//商品库存,包含sku库存集合,批量更新商品库存相关
|
||||||
goodsSkuService.updateGoodsStuck(goodsSkus);
|
goodsSkuService.updateGoodsStuck(goodsSkus);
|
||||||
@@ -358,6 +358,7 @@ public class StockUpdateExecute implements OrderStatusChangeEvent {
|
|||||||
skuKeys.add(GoodsSkuService.getStockCacheKey(orderItem.getSkuId()));
|
skuKeys.add(GoodsSkuService.getStockCacheKey(orderItem.getSkuId()));
|
||||||
GoodsSku goodsSku = new GoodsSku();
|
GoodsSku goodsSku = new GoodsSku();
|
||||||
goodsSku.setId(orderItem.getSkuId());
|
goodsSku.setId(orderItem.getSkuId());
|
||||||
|
goodsSku.setGoodsId(orderItem.getGoodsId());
|
||||||
goodsSkus.add(goodsSku);
|
goodsSkus.add(goodsSku);
|
||||||
}
|
}
|
||||||
//批量获取商品库存
|
//批量获取商品库存
|
||||||
|
|||||||
@@ -2,10 +2,10 @@ package cn.lili.event.impl;
|
|||||||
|
|
||||||
import cn.lili.event.OrderStatusChangeEvent;
|
import cn.lili.event.OrderStatusChangeEvent;
|
||||||
import cn.lili.event.TradeEvent;
|
import cn.lili.event.TradeEvent;
|
||||||
import cn.lili.modules.message.util.WechatMessageUtil;
|
|
||||||
import cn.lili.modules.order.cart.entity.dto.TradeDTO;
|
import cn.lili.modules.order.cart.entity.dto.TradeDTO;
|
||||||
import cn.lili.modules.order.order.entity.dto.OrderMessage;
|
import cn.lili.modules.order.order.entity.dto.OrderMessage;
|
||||||
import cn.lili.modules.order.order.entity.vo.OrderVO;
|
import cn.lili.modules.order.order.entity.vo.OrderVO;
|
||||||
|
import cn.lili.modules.wechat.util.WechatMessageUtil;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|||||||
34
consumer/src/main/java/cn/lili/init/SensitiveWordsInit.java
Normal file
34
consumer/src/main/java/cn/lili/init/SensitiveWordsInit.java
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
package cn.lili.init;
|
||||||
|
|
||||||
|
import cn.lili.modules.system.service.SensitiveWordsService;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.boot.ApplicationArguments;
|
||||||
|
import org.springframework.boot.ApplicationRunner;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* SensitiveWordsInit
|
||||||
|
*
|
||||||
|
* @author Chopper
|
||||||
|
* @version v1.0
|
||||||
|
* 2021-11-29 11:38
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Component
|
||||||
|
public class SensitiveWordsInit implements ApplicationRunner {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private SensitiveWordsService sensitiveWordsService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* consumer 启动时,实时更新一下过滤词
|
||||||
|
*
|
||||||
|
* @param args 启动参数
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void run(ApplicationArguments args) {
|
||||||
|
sensitiveWordsService.resetCache();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
package cn.lili.listener;
|
package cn.lili.listener;
|
||||||
|
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
import cn.lili.rocketmq.tags.AfterSaleTagsEnum;
|
|
||||||
import cn.lili.event.AfterSaleStatusChangeEvent;
|
import cn.lili.event.AfterSaleStatusChangeEvent;
|
||||||
import cn.lili.modules.order.order.entity.dos.AfterSale;
|
import cn.lili.modules.order.aftersale.entity.dos.AfterSale;
|
||||||
|
import cn.lili.rocketmq.tags.AfterSaleTagsEnum;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.rocketmq.common.message.MessageExt;
|
import org.apache.rocketmq.common.message.MessageExt;
|
||||||
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
|
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
|
||||||
@@ -17,7 +17,6 @@ import java.util.List;
|
|||||||
* 售后通知
|
* 售后通知
|
||||||
*
|
*
|
||||||
* @author paulG
|
* @author paulG
|
||||||
* @since 2020/12/9
|
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Component
|
@Component
|
||||||
|
|||||||
@@ -3,52 +3,45 @@ package cn.lili.listener;
|
|||||||
import cn.hutool.core.map.MapUtil;
|
import cn.hutool.core.map.MapUtil;
|
||||||
import cn.hutool.core.text.CharSequenceUtil;
|
import cn.hutool.core.text.CharSequenceUtil;
|
||||||
import cn.hutool.core.util.ArrayUtil;
|
import cn.hutool.core.util.ArrayUtil;
|
||||||
|
import cn.hutool.core.util.ClassLoaderUtil;
|
||||||
import cn.hutool.json.JSONObject;
|
import cn.hutool.json.JSONObject;
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
import cn.lili.common.properties.RocketmqCustomProperties;
|
import cn.lili.common.aop.annotation.RetryOperation;
|
||||||
|
import cn.lili.common.exception.RetryException;
|
||||||
import cn.lili.event.GoodsCommentCompleteEvent;
|
import cn.lili.event.GoodsCommentCompleteEvent;
|
||||||
import cn.lili.modules.distribution.entity.dos.DistributionGoods;
|
import cn.lili.modules.distribution.entity.dos.DistributionGoods;
|
||||||
import cn.lili.modules.distribution.entity.dos.DistributionSelectedGoods;
|
import cn.lili.modules.distribution.entity.dto.DistributionGoodsSearchParams;
|
||||||
import cn.lili.modules.distribution.service.DistributionGoodsService;
|
import cn.lili.modules.distribution.service.DistributionGoodsService;
|
||||||
import cn.lili.modules.distribution.service.DistributionSelectedGoodsService;
|
import cn.lili.modules.distribution.service.DistributionSelectedGoodsService;
|
||||||
import cn.lili.modules.goods.entity.dos.Brand;
|
import cn.lili.modules.goods.entity.dos.*;
|
||||||
import cn.lili.modules.goods.entity.dos.Category;
|
|
||||||
import cn.lili.modules.goods.entity.dos.Goods;
|
|
||||||
import cn.lili.modules.goods.entity.dos.GoodsSku;
|
|
||||||
import cn.lili.modules.goods.entity.dto.GoodsCompleteMessage;
|
import cn.lili.modules.goods.entity.dto.GoodsCompleteMessage;
|
||||||
import cn.lili.modules.goods.entity.dto.GoodsParamsDTO;
|
import cn.lili.modules.goods.entity.dto.GoodsParamsDTO;
|
||||||
|
import cn.lili.modules.goods.entity.dto.GoodsSearchParams;
|
||||||
import cn.lili.modules.goods.entity.enums.GoodsAuthEnum;
|
import cn.lili.modules.goods.entity.enums.GoodsAuthEnum;
|
||||||
import cn.lili.modules.goods.entity.enums.GoodsStatusEnum;
|
import cn.lili.modules.goods.entity.enums.GoodsStatusEnum;
|
||||||
import cn.lili.modules.goods.service.BrandService;
|
import cn.lili.modules.goods.service.*;
|
||||||
import cn.lili.modules.goods.service.CategoryService;
|
|
||||||
import cn.lili.modules.goods.service.GoodsService;
|
|
||||||
import cn.lili.modules.goods.service.GoodsSkuService;
|
|
||||||
import cn.lili.modules.member.entity.dos.FootPrint;
|
import cn.lili.modules.member.entity.dos.FootPrint;
|
||||||
import cn.lili.modules.member.entity.dos.MemberEvaluation;
|
import cn.lili.modules.member.entity.dos.MemberEvaluation;
|
||||||
import cn.lili.modules.member.service.FootprintService;
|
import cn.lili.modules.member.service.FootprintService;
|
||||||
import cn.lili.modules.member.service.GoodsCollectionService;
|
import cn.lili.modules.member.service.GoodsCollectionService;
|
||||||
|
import cn.lili.modules.promotion.entity.dos.BasePromotions;
|
||||||
|
import cn.lili.modules.promotion.entity.dos.PromotionGoods;
|
||||||
|
import cn.lili.modules.promotion.entity.dto.search.PromotionGoodsSearchParams;
|
||||||
|
import cn.lili.modules.promotion.entity.enums.PromotionsScopeTypeEnum;
|
||||||
|
import cn.lili.modules.promotion.service.PromotionGoodsService;
|
||||||
|
import cn.lili.modules.promotion.service.PromotionService;
|
||||||
import cn.lili.modules.search.entity.dos.EsGoodsIndex;
|
import cn.lili.modules.search.entity.dos.EsGoodsIndex;
|
||||||
import cn.lili.modules.search.service.EsGoodsIndexService;
|
import cn.lili.modules.search.service.EsGoodsIndexService;
|
||||||
import cn.lili.modules.search.utils.EsIndexUtil;
|
|
||||||
import cn.lili.modules.store.entity.dos.StoreGoodsLabel;
|
|
||||||
import cn.lili.modules.store.service.StoreGoodsLabelService;
|
|
||||||
import cn.lili.modules.store.service.StoreService;
|
|
||||||
import cn.lili.rocketmq.RocketmqSendCallbackBuilder;
|
|
||||||
import cn.lili.rocketmq.tags.GoodsTagsEnum;
|
import cn.lili.rocketmq.tags.GoodsTagsEnum;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.rocketmq.common.message.MessageExt;
|
import org.apache.rocketmq.common.message.MessageExt;
|
||||||
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
|
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
|
||||||
import org.apache.rocketmq.spring.core.RocketMQListener;
|
import org.apache.rocketmq.spring.core.RocketMQListener;
|
||||||
import org.apache.rocketmq.spring.core.RocketMQTemplate;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Arrays;
|
import java.util.stream.Collectors;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 商品消息
|
* 商品消息
|
||||||
@@ -66,11 +59,6 @@ public class GoodsMessageListener implements RocketMQListener<MessageExt> {
|
|||||||
*/
|
*/
|
||||||
@Autowired
|
@Autowired
|
||||||
private EsGoodsIndexService goodsIndexService;
|
private EsGoodsIndexService goodsIndexService;
|
||||||
/**
|
|
||||||
* 店铺
|
|
||||||
*/
|
|
||||||
@Autowired
|
|
||||||
private StoreService storeService;
|
|
||||||
/**
|
/**
|
||||||
* 商品
|
* 商品
|
||||||
*/
|
*/
|
||||||
@@ -122,18 +110,14 @@ public class GoodsMessageListener implements RocketMQListener<MessageExt> {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private StoreGoodsLabelService storeGoodsLabelService;
|
private StoreGoodsLabelService storeGoodsLabelService;
|
||||||
|
|
||||||
/**
|
|
||||||
* rocketMq
|
|
||||||
*/
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private RocketMQTemplate rocketMQTemplate;
|
private PromotionService promotionService;
|
||||||
/**
|
|
||||||
* rocketMq配置
|
|
||||||
*/
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private RocketmqCustomProperties rocketmqCustomProperties;
|
private PromotionGoodsService promotionGoodsService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@RetryOperation
|
||||||
public void onMessage(MessageExt messageExt) {
|
public void onMessage(MessageExt messageExt) {
|
||||||
|
|
||||||
switch (GoodsTagsEnum.valueOf(messageExt.getTags())) {
|
switch (GoodsTagsEnum.valueOf(messageExt.getTags())) {
|
||||||
@@ -145,20 +129,46 @@ public class GoodsMessageListener implements RocketMQListener<MessageExt> {
|
|||||||
//生成索引
|
//生成索引
|
||||||
case GENERATOR_GOODS_INDEX:
|
case GENERATOR_GOODS_INDEX:
|
||||||
try {
|
try {
|
||||||
String goodsJsonStr = new String(messageExt.getBody());
|
String goodsId = new String(messageExt.getBody());
|
||||||
Goods goods = JSONUtil.toBean(goodsJsonStr, Goods.class);
|
log.info("生成索引: {}", goodsId);
|
||||||
updateGoodsIndex(goods);
|
Goods goods = this.goodsService.getById(goodsId);
|
||||||
|
this.updateGoodsIndex(goods);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("生成商品索引事件执行异常,商品信息 {}", new String(messageExt.getBody()));
|
log.error("生成商品索引事件执行异常,商品信息: " + new String(messageExt.getBody()), e);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case GENERATOR_STORE_GOODS_INDEX:
|
||||||
|
try {
|
||||||
|
String storeId = new String(messageExt.getBody());
|
||||||
|
this.updateGoodsIndex(storeId);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("生成店铺商品索引事件执行异常,商品信息: " + new String(messageExt.getBody()), e);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case UPDATE_GOODS_INDEX_PROMOTIONS:
|
||||||
|
this.updateGoodsIndexPromotions(new String(messageExt.getBody()));
|
||||||
|
break;
|
||||||
|
case DELETE_GOODS_INDEX_PROMOTIONS:
|
||||||
|
JSONObject jsonObject = JSONUtil.parseObj(new String(messageExt.getBody()));
|
||||||
|
String promotionKey = jsonObject.getStr("promotionKey");
|
||||||
|
if (CharSequenceUtil.isEmpty(promotionKey)) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (CharSequenceUtil.isNotEmpty(jsonObject.getStr("scopeId"))) {
|
||||||
|
this.goodsIndexService.deleteEsGoodsPromotionByPromotionKey(Arrays.asList(jsonObject.getStr("scopeId").split(",")), promotionKey);
|
||||||
|
} else {
|
||||||
|
this.goodsIndexService.deleteEsGoodsPromotionByPromotionKey(promotionKey);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case UPDATE_GOODS_INDEX:
|
case UPDATE_GOODS_INDEX:
|
||||||
try {
|
try {
|
||||||
String goodsIdsJsonStr = new String(messageExt.getBody());
|
String goodsIdsJsonStr = new String(messageExt.getBody());
|
||||||
List<Goods> goodsList = goodsService.list(new LambdaQueryWrapper<Goods>().in(Goods::getId, JSONUtil.toList(goodsIdsJsonStr, String.class)));
|
GoodsSearchParams searchParams = new GoodsSearchParams();
|
||||||
|
searchParams.setId(ArrayUtil.join(JSONUtil.toList(goodsIdsJsonStr, String.class).toArray(), ","));
|
||||||
|
List<Goods> goodsList = goodsService.queryListByParams(searchParams);
|
||||||
this.updateGoodsIndex(goodsList);
|
this.updateGoodsIndex(goodsList);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("更新商品索引事件执行异常,商品信息 {}", new String(messageExt.getBody()));
|
log.error("更新商品索引事件执行异常,商品信息: " + new String(messageExt.getBody()), e);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case UPDATE_GOODS_INDEX_FIELD:
|
case UPDATE_GOODS_INDEX_FIELD:
|
||||||
@@ -171,7 +181,7 @@ public class GoodsMessageListener implements RocketMQListener<MessageExt> {
|
|||||||
Map<String, Object> updateFields = updateIndexFields.get("updateFields", Map.class);
|
Map<String, Object> updateFields = updateIndexFields.get("updateFields", Map.class);
|
||||||
goodsIndexService.updateIndex(queryFields, updateFields);
|
goodsIndexService.updateIndex(queryFields, updateFields);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("更新商品索引事件执行异常,商品信息 {}", new String(messageExt.getBody()));
|
log.error("更新商品索引事件执行异常,商品信息: " + new String(messageExt.getBody()), e);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case RESET_GOODS_INDEX:
|
case RESET_GOODS_INDEX:
|
||||||
@@ -180,17 +190,30 @@ public class GoodsMessageListener implements RocketMQListener<MessageExt> {
|
|||||||
List<EsGoodsIndex> goodsIndices = JSONUtil.toList(goodsIdsJsonStr, EsGoodsIndex.class);
|
List<EsGoodsIndex> goodsIndices = JSONUtil.toList(goodsIdsJsonStr, EsGoodsIndex.class);
|
||||||
goodsIndexService.updateBulkIndex(goodsIndices);
|
goodsIndexService.updateBulkIndex(goodsIndices);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("重置商品索引事件执行异常,商品信息 {}", new String(messageExt.getBody()));
|
log.error("重置商品索引事件执行异常,商品信息: " + new String(messageExt.getBody()), e);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
//审核商品
|
//审核商品
|
||||||
case GOODS_AUDIT:
|
case GOODS_AUDIT:
|
||||||
updateGoodsNum(messageExt);
|
Goods goods = JSONUtil.toBean(new String(messageExt.getBody()), Goods.class);
|
||||||
|
updateGoodsIndex(goods);
|
||||||
break;
|
break;
|
||||||
//删除商品
|
//删除商品
|
||||||
case GOODS_DELETE:
|
case GOODS_DELETE:
|
||||||
deleteGoods(messageExt);
|
try {
|
||||||
updateGoodsNum(messageExt);
|
String goodsIdsJsonStr = new String(messageExt.getBody());
|
||||||
|
for (String goodsId : JSONUtil.toList(goodsIdsJsonStr, String.class)) {
|
||||||
|
goodsIndexService.deleteIndex(MapUtil.builder(new HashMap<String, Object>()).put("goodsId", goodsId).build());
|
||||||
|
}
|
||||||
|
|
||||||
|
promotionService.removeByGoodsIds(goodsIdsJsonStr);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("删除商品索引事件执行异常,商品信息: " + new String(messageExt.getBody()), e);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case DOWN:
|
||||||
|
String goodsIdsJsonStr = new String(messageExt.getBody());
|
||||||
|
promotionService.removeByGoodsIds(goodsIdsJsonStr);
|
||||||
break;
|
break;
|
||||||
//规格删除
|
//规格删除
|
||||||
case SKU_DELETE:
|
case SKU_DELETE:
|
||||||
@@ -198,9 +221,15 @@ public class GoodsMessageListener implements RocketMQListener<MessageExt> {
|
|||||||
List<String> skuIds = JSONUtil.toList(message, String.class);
|
List<String> skuIds = JSONUtil.toList(message, String.class);
|
||||||
goodsCollectionService.deleteSkuCollection(skuIds);
|
goodsCollectionService.deleteSkuCollection(skuIds);
|
||||||
break;
|
break;
|
||||||
//收藏商品
|
case STORE_GOODS_DELETE:
|
||||||
case GOODS_COLLECTION:
|
try {
|
||||||
storeService.updateStoreCollectionNum(new String(messageExt.getBody()));
|
String storeId = new String(messageExt.getBody());
|
||||||
|
goodsIndexService.deleteIndex(MapUtil.builder(new HashMap<String, Object>()).put("storeId", storeId).build());
|
||||||
|
} catch (RetryException re) {
|
||||||
|
throw re;
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("删除店铺商品索引事件执行异常,商品信息: " + new String(messageExt.getBody()), e);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
//商品评价
|
//商品评价
|
||||||
case GOODS_COMMENT_COMPLETE:
|
case GOODS_COMMENT_COMPLETE:
|
||||||
@@ -226,35 +255,64 @@ public class GoodsMessageListener implements RocketMQListener<MessageExt> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void updateGoodsIndexPromotions(String promotionsJsonStr) {
|
||||||
|
try {
|
||||||
|
log.info("更新商品索引促销信息: {}", promotionsJsonStr);
|
||||||
|
JSONObject jsonObject = JSONUtil.parseObj(promotionsJsonStr);
|
||||||
|
// 转换为详细的促销信息(注:促销信息必须继承自 BasePromotions,且必须保证派生类存在与sdk包下)
|
||||||
|
BasePromotions promotions = (BasePromotions) jsonObject.get("promotions",
|
||||||
|
ClassLoaderUtil.loadClass(jsonObject.get("promotionsType").toString()));
|
||||||
|
// 获取促销唯一key,由 促销类型 + 促销id 组成
|
||||||
|
String esPromotionKey = jsonObject.get("esPromotionKey").toString();
|
||||||
|
if (PromotionsScopeTypeEnum.PORTION_GOODS.name().equals(promotions.getScopeType())) {
|
||||||
|
PromotionGoodsSearchParams searchParams = new PromotionGoodsSearchParams();
|
||||||
|
searchParams.setPromotionId(promotions.getId());
|
||||||
|
List<PromotionGoods> promotionGoodsList = this.promotionGoodsService.listFindAll(searchParams);
|
||||||
|
List<String> skuIds = promotionGoodsList.stream().map(PromotionGoods::getSkuId).collect(Collectors.toList());
|
||||||
|
// 更新商品索引促销信息(删除原索引中相关的促销信息,更新索引中促销信息)
|
||||||
|
this.goodsIndexService.deleteEsGoodsPromotionByPromotionKey(skuIds, esPromotionKey);
|
||||||
|
this.goodsIndexService.updateEsGoodsIndexByList(promotionGoodsList, promotions, esPromotionKey);
|
||||||
|
} else if (PromotionsScopeTypeEnum.PORTION_GOODS_CATEGORY.name().equals(promotions.getScopeType())) {
|
||||||
|
GoodsSearchParams searchParams = new GoodsSearchParams();
|
||||||
|
searchParams.setCategoryPath(promotions.getScopeId());
|
||||||
|
List<GoodsSku> goodsSkuByList = this.goodsSkuService.getGoodsSkuByList(searchParams);
|
||||||
|
List<String> skuIds = goodsSkuByList.stream().map(GoodsSku::getId).collect(Collectors.toList());
|
||||||
|
// 更新商品索引促销信息(删除原索引中相关的促销信息,更新索引中促销信息)
|
||||||
|
this.goodsIndexService.deleteEsGoodsPromotionByPromotionKey(skuIds, esPromotionKey);
|
||||||
|
this.goodsIndexService.updateEsGoodsIndexPromotions(skuIds, promotions, esPromotionKey);
|
||||||
|
} else if (PromotionsScopeTypeEnum.ALL.name().equals(promotions.getScopeType())) {
|
||||||
|
this.goodsIndexService.updateEsGoodsIndexAllByList(promotions, esPromotionKey);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("生成商品索引促销信息执行异常", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新商品索引
|
* 更新商品索引
|
||||||
*
|
*
|
||||||
* @param goodsList 商品列表消息
|
* @param goodsList 商品列表消息
|
||||||
*/
|
*/
|
||||||
private void updateGoodsIndex(List<Goods> goodsList) {
|
private void updateGoodsIndex(List<Goods> goodsList) {
|
||||||
List<EsGoodsIndex> goodsIndices = new ArrayList<>();
|
|
||||||
for (Goods goods : goodsList) {
|
for (Goods goods : goodsList) {
|
||||||
//如果商品通过审核&&并且已上架
|
this.updateGoodsIndex(goods);
|
||||||
List<GoodsSku> goodsSkuList = this.goodsSkuService.list(new LambdaQueryWrapper<GoodsSku>().eq(GoodsSku::getGoodsId, goods.getId()).gt(GoodsSku::getQuantity, 0));
|
|
||||||
if (goods.getIsAuth().equals(GoodsAuthEnum.PASS.name())
|
|
||||||
&& goods.getMarketEnable().equals(GoodsStatusEnum.UPPER.name())
|
|
||||||
&& Boolean.FALSE.equals(goods.getDeleteFlag())) {
|
|
||||||
goodsSkuList.forEach(goodsSku -> {
|
|
||||||
EsGoodsIndex goodsIndex = this.settingUpGoodsIndexData(goods, goodsSku);
|
|
||||||
goodsIndices.add(goodsIndex);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
//如果商品状态值不支持es搜索,那么将商品信息做下架处理
|
|
||||||
else {
|
|
||||||
for (GoodsSku goodsSku : goodsSkuList) {
|
|
||||||
EsGoodsIndex esGoodsOld = goodsIndexService.findById(goodsSku.getId());
|
|
||||||
if (esGoodsOld != null) {
|
|
||||||
goodsIndexService.deleteIndexById(goodsSku.getId());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
goodsIndexService.updateBulkIndex(goodsIndices);
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新商品索引根据店铺id
|
||||||
|
*
|
||||||
|
* @param storeId 店铺id
|
||||||
|
*/
|
||||||
|
private void updateGoodsIndex(String storeId) {
|
||||||
|
//如果商品通过审核&&并且已上架
|
||||||
|
GoodsSearchParams searchParams = new GoodsSearchParams();
|
||||||
|
searchParams.setStoreId(storeId);
|
||||||
|
for (Goods goods : this.goodsService.queryListByParams(searchParams)) {
|
||||||
|
this.updateGoodsIndex(goods);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -264,8 +322,12 @@ public class GoodsMessageListener implements RocketMQListener<MessageExt> {
|
|||||||
*/
|
*/
|
||||||
private void updateGoodsIndex(Goods goods) {
|
private void updateGoodsIndex(Goods goods) {
|
||||||
//如果商品通过审核&&并且已上架
|
//如果商品通过审核&&并且已上架
|
||||||
List<GoodsSku> goodsSkuList = this.goodsSkuService.list(new LambdaQueryWrapper<GoodsSku>().eq(GoodsSku::getGoodsId, goods.getId()));
|
GoodsSearchParams searchParams = new GoodsSearchParams();
|
||||||
if (goods.getIsAuth().equals(GoodsAuthEnum.PASS.name())
|
searchParams.setGoodsId(goods.getId());
|
||||||
|
List<GoodsSku> goodsSkuList = this.goodsSkuService.getGoodsSkuByList(searchParams);
|
||||||
|
log.info("goods:{}", goods);
|
||||||
|
log.info("goodsSkuList:{}", goodsSkuList);
|
||||||
|
if (goods.getAuthFlag().equals(GoodsAuthEnum.PASS.name())
|
||||||
&& goods.getMarketEnable().equals(GoodsStatusEnum.UPPER.name())
|
&& goods.getMarketEnable().equals(GoodsStatusEnum.UPPER.name())
|
||||||
&& Boolean.FALSE.equals(goods.getDeleteFlag())) {
|
&& Boolean.FALSE.equals(goods.getDeleteFlag())) {
|
||||||
this.generatorGoodsIndex(goods, goodsSkuList);
|
this.generatorGoodsIndex(goods, goodsSkuList);
|
||||||
@@ -289,18 +351,19 @@ public class GoodsMessageListener implements RocketMQListener<MessageExt> {
|
|||||||
*/
|
*/
|
||||||
private void generatorGoodsIndex(Goods goods, List<GoodsSku> goodsSkuList) {
|
private void generatorGoodsIndex(Goods goods, List<GoodsSku> goodsSkuList) {
|
||||||
int skuSource = 100;
|
int skuSource = 100;
|
||||||
|
List<EsGoodsIndex> esGoodsIndices = new ArrayList<>();
|
||||||
for (GoodsSku goodsSku : goodsSkuList) {
|
for (GoodsSku goodsSku : goodsSkuList) {
|
||||||
EsGoodsIndex esGoodsOld = goodsIndexService.findById(goodsSku.getId());
|
|
||||||
EsGoodsIndex goodsIndex = this.settingUpGoodsIndexData(goods, goodsSku);
|
EsGoodsIndex goodsIndex = this.settingUpGoodsIndexData(goods, goodsSku);
|
||||||
goodsIndex.setSkuSource(skuSource--);
|
goodsIndex.setSkuSource(skuSource--);
|
||||||
|
log.info("goodsSku:{}", goodsSku);
|
||||||
//如果商品库存不为0,并且es中有数据
|
//如果商品库存不为0,并且es中有数据
|
||||||
if (goodsSku.getQuantity() > 0 && esGoodsOld == null) {
|
if (goodsSku.getQuantity() > 0) {
|
||||||
log.info("生成商品索引 {}", goodsIndex);
|
log.info("生成商品索引 {}", goodsIndex);
|
||||||
this.goodsIndexService.addIndex(goodsIndex);
|
esGoodsIndices.add(goodsIndex);
|
||||||
} else if (goodsSku.getQuantity() > 0 && esGoodsOld != null) {
|
|
||||||
goodsIndexService.updateIndex(goodsIndex);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
this.goodsIndexService.deleteIndex(MapUtil.builder(new HashMap<String, Object>()).put("goodsId", goods.getId()).build());
|
||||||
|
this.goodsIndexService.addIndex(esGoodsIndices);
|
||||||
}
|
}
|
||||||
|
|
||||||
private EsGoodsIndex settingUpGoodsIndexData(Goods goods, GoodsSku goodsSku) {
|
private EsGoodsIndex settingUpGoodsIndexData(Goods goods, GoodsSku goodsSku) {
|
||||||
@@ -309,7 +372,7 @@ public class GoodsMessageListener implements RocketMQListener<MessageExt> {
|
|||||||
List<GoodsParamsDTO> goodsParamDTOS = JSONUtil.toList(goods.getParams(), GoodsParamsDTO.class);
|
List<GoodsParamsDTO> goodsParamDTOS = JSONUtil.toList(goods.getParams(), GoodsParamsDTO.class);
|
||||||
goodsIndex = new EsGoodsIndex(goodsSku, goodsParamDTOS);
|
goodsIndex = new EsGoodsIndex(goodsSku, goodsParamDTOS);
|
||||||
}
|
}
|
||||||
goodsIndex.setIsAuth(goods.getIsAuth());
|
goodsIndex.setAuthFlag(goods.getAuthFlag());
|
||||||
goodsIndex.setMarketEnable(goods.getMarketEnable());
|
goodsIndex.setMarketEnable(goods.getMarketEnable());
|
||||||
this.settingUpGoodsIndexOtherParam(goodsIndex);
|
this.settingUpGoodsIndexOtherParam(goodsIndex);
|
||||||
return goodsIndex;
|
return goodsIndex;
|
||||||
@@ -336,6 +399,11 @@ public class GoodsMessageListener implements RocketMQListener<MessageExt> {
|
|||||||
goodsIndex.setStoreCategoryNamePath(ArrayUtil.join(storeGoodsLabels.stream().map(StoreGoodsLabel::getLabelName).toArray(), ","));
|
goodsIndex.setStoreCategoryNamePath(ArrayUtil.join(storeGoodsLabels.stream().map(StoreGoodsLabel::getLabelName).toArray(), ","));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (goodsIndex.getOriginPromotionMap() == null || goodsIndex.getOriginPromotionMap().isEmpty()) {
|
||||||
|
Map<String, Object> goodsCurrentPromotionMap = promotionService.getGoodsSkuPromotionMap(goodsIndex.getStoreId(), goodsIndex.getId());
|
||||||
|
goodsIndex.setPromotionMapJson(JSONUtil.toJsonStr(goodsCurrentPromotionMap));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -345,38 +413,22 @@ public class GoodsMessageListener implements RocketMQListener<MessageExt> {
|
|||||||
* 2.删除分销员-分销商品绑定关系
|
* 2.删除分销员-分销商品绑定关系
|
||||||
* 3.删除分销商品
|
* 3.删除分销商品
|
||||||
*
|
*
|
||||||
* @param messageExt 消息
|
* @param goods 消息
|
||||||
*/
|
*/
|
||||||
private void deleteGoods(MessageExt messageExt) {
|
private void deleteGoods(Goods goods) {
|
||||||
Goods goods = JSONUtil.toBean(new String(messageExt.getBody()), Goods.class);
|
|
||||||
|
|
||||||
|
DistributionGoodsSearchParams searchParams = new DistributionGoodsSearchParams();
|
||||||
|
searchParams.setGoodsId(goods.getId());
|
||||||
//删除获取分销商品
|
//删除获取分销商品
|
||||||
DistributionGoods distributionGoods = distributionGoodsService.getOne(new LambdaQueryWrapper<DistributionGoods>()
|
DistributionGoods distributionGoods = distributionGoodsService.getDistributionGoods(searchParams);
|
||||||
.eq(DistributionGoods::getGoodsId, goods.getId()));
|
|
||||||
|
|
||||||
//删除分销商品绑定关系
|
if (distributionGoods != null) {
|
||||||
distributionSelectedGoodsService.remove(new LambdaQueryWrapper<DistributionSelectedGoods>()
|
|
||||||
.eq(DistributionSelectedGoods::getDistributionGoodsId, distributionGoods.getId()));
|
|
||||||
|
|
||||||
//删除分销商品
|
//删除分销商品绑定关系
|
||||||
distributionGoodsService.removeById(distributionGoods.getId());
|
distributionSelectedGoodsService.deleteByDistributionGoodsId(distributionGoods.getId());
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
//删除分销商品
|
||||||
* 修改商品数量
|
distributionGoodsService.removeById(distributionGoods.getId());
|
||||||
*
|
|
||||||
* @param messageExt 信息体
|
|
||||||
*/
|
|
||||||
private void updateGoodsNum(MessageExt messageExt) {
|
|
||||||
|
|
||||||
Goods goods;
|
|
||||||
try {
|
|
||||||
goods = JSONUtil.toBean(new String(messageExt.getBody()), Goods.class);
|
|
||||||
//更新店铺商品数量
|
|
||||||
assert goods != null;
|
|
||||||
storeService.updateStoreGoodsNum(goods.getStoreId());
|
|
||||||
} catch (Exception e) {
|
|
||||||
log.error("商品MQ信息错误:{}", messageExt.toString());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -399,9 +451,7 @@ public class GoodsMessageListener implements RocketMQListener<MessageExt> {
|
|||||||
goods.setBuyCount(0);
|
goods.setBuyCount(0);
|
||||||
}
|
}
|
||||||
int buyCount = goods.getBuyCount() + goodsCompleteMessage.getBuyNum();
|
int buyCount = goods.getBuyCount() + goodsCompleteMessage.getBuyNum();
|
||||||
goodsService.update(new LambdaUpdateWrapper<Goods>()
|
this.goodsService.updateGoodsBuyCount(goodsCompleteMessage.getGoodsId(), buyCount);
|
||||||
.eq(Goods::getId, goodsCompleteMessage.getGoodsId())
|
|
||||||
.set(Goods::getBuyCount, buyCount));
|
|
||||||
} else {
|
} else {
|
||||||
log.error("商品Id为[" + goodsCompleteMessage.getGoodsId() + "的商品不存在,更新商品失败!");
|
log.error("商品Id为[" + goodsCompleteMessage.getGoodsId() + "的商品不存在,更新商品失败!");
|
||||||
}
|
}
|
||||||
@@ -415,13 +465,10 @@ public class GoodsMessageListener implements RocketMQListener<MessageExt> {
|
|||||||
goodsSku.setBuyCount(buyCount);
|
goodsSku.setBuyCount(buyCount);
|
||||||
goodsSkuService.update(goodsSku);
|
goodsSkuService.update(goodsSku);
|
||||||
|
|
||||||
//修改规格索引,发送mq消息
|
this.goodsIndexService.updateIndex(
|
||||||
Map<String, Object> updateIndexFieldsMap = EsIndexUtil.getUpdateIndexFieldsMap(
|
MapUtil.builder(new HashMap<String, Object>()).put("id", goodsCompleteMessage.getSkuId()).build(),
|
||||||
MapUtil.builder().put("id", goodsCompleteMessage.getSkuId()).build(),
|
MapUtil.builder(new HashMap<String, Object>()).put("buyCount", buyCount).build());
|
||||||
MapUtil.builder().put("buyCount", buyCount).build());
|
|
||||||
String destination = rocketmqCustomProperties.getGoodsTopic() + ":" + GoodsTagsEnum.UPDATE_GOODS_INDEX_FIELD.name();
|
|
||||||
rocketMQTemplate.asyncSend(destination, JSONUtil.toJsonStr(updateIndexFieldsMap), RocketmqSendCallbackBuilder.commonCallback());
|
|
||||||
goodsIndexService.updateIndex(goodsCompleteMessage.getSkuId(), new EsGoodsIndex().setBuyCount(buyCount));
|
|
||||||
} else {
|
} else {
|
||||||
log.error("商品SkuId为[" + goodsCompleteMessage.getGoodsId() + "的商品不存在,更新商品失败!");
|
log.error("商品SkuId为[" + goodsCompleteMessage.getGoodsId() + "的商品不存在,更新商品失败!");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +1,16 @@
|
|||||||
package cn.lili.listener;
|
package cn.lili.listener;
|
||||||
|
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
import cn.lili.rocketmq.tags.MemberTagsEnum;
|
import cn.lili.event.MemberLoginEvent;
|
||||||
import cn.lili.event.MemberPointChangeEvent;
|
import cn.lili.event.MemberPointChangeEvent;
|
||||||
import cn.lili.event.MemberRegisterEvent;
|
import cn.lili.event.MemberRegisterEvent;
|
||||||
import cn.lili.event.MemberWithdrawalEvent;
|
import cn.lili.event.MemberWithdrawalEvent;
|
||||||
import cn.lili.modules.member.entity.dos.Member;
|
import cn.lili.modules.member.entity.dos.Member;
|
||||||
import cn.lili.modules.member.entity.dos.MemberSign;
|
import cn.lili.modules.member.entity.dos.MemberSign;
|
||||||
import cn.lili.modules.member.entity.dto.MemberPointMessage;
|
import cn.lili.modules.member.entity.dto.MemberPointMessage;
|
||||||
import cn.lili.modules.member.entity.dto.MemberWithdrawalMessage;
|
|
||||||
import cn.lili.modules.member.service.MemberSignService;
|
import cn.lili.modules.member.service.MemberSignService;
|
||||||
|
import cn.lili.modules.wallet.entity.dto.MemberWithdrawalMessage;
|
||||||
|
import cn.lili.rocketmq.tags.MemberTagsEnum;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.rocketmq.common.message.MessageExt;
|
import org.apache.rocketmq.common.message.MessageExt;
|
||||||
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
|
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
|
||||||
@@ -51,6 +52,12 @@ public class MemberMessageListener implements RocketMQListener<MessageExt> {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private List<MemberRegisterEvent> memberSignEvents;
|
private List<MemberRegisterEvent> memberSignEvents;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 会员注册
|
||||||
|
*/
|
||||||
|
@Autowired
|
||||||
|
private List<MemberLoginEvent> memberLoginEvents;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onMessage(MessageExt messageExt) {
|
public void onMessage(MessageExt messageExt) {
|
||||||
@@ -69,6 +76,21 @@ public class MemberMessageListener implements RocketMQListener<MessageExt> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case MEMBER_LOGIN:
|
||||||
|
|
||||||
|
for (MemberLoginEvent memberLoginEvent : memberLoginEvents) {
|
||||||
|
try {
|
||||||
|
Member member = JSONUtil.toBean(new String(messageExt.getBody()), Member.class);
|
||||||
|
memberLoginEvent.memberLogin(member);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("会员{},在{}业务中,状态修改事件执行异常",
|
||||||
|
new String(messageExt.getBody()),
|
||||||
|
memberLoginEvent.getClass().getName(),
|
||||||
|
e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
//会员签到
|
//会员签到
|
||||||
case MEMBER_SING:
|
case MEMBER_SING:
|
||||||
MemberSign memberSign = JSONUtil.toBean(new String(messageExt.getBody()), MemberSign.class);
|
MemberSign memberSign = JSONUtil.toBean(new String(messageExt.getBody()), MemberSign.class);
|
||||||
|
|||||||
@@ -5,20 +5,19 @@ import cn.lili.common.enums.SwitchEnum;
|
|||||||
import cn.lili.common.vo.PageVO;
|
import cn.lili.common.vo.PageVO;
|
||||||
import cn.lili.modules.member.entity.vo.MemberSearchVO;
|
import cn.lili.modules.member.entity.vo.MemberSearchVO;
|
||||||
import cn.lili.modules.member.entity.vo.MemberVO;
|
import cn.lili.modules.member.entity.vo.MemberVO;
|
||||||
import cn.lili.modules.member.mapper.MemberMapper;
|
|
||||||
import cn.lili.modules.member.service.MemberService;
|
import cn.lili.modules.member.service.MemberService;
|
||||||
import cn.lili.modules.message.entity.dos.MemberMessage;
|
import cn.lili.modules.message.entity.dos.MemberMessage;
|
||||||
import cn.lili.modules.message.entity.dos.Message;
|
import cn.lili.modules.message.entity.dos.Message;
|
||||||
import cn.lili.modules.message.entity.dos.StoreMessage;
|
import cn.lili.modules.message.entity.dos.StoreMessage;
|
||||||
import cn.lili.modules.message.entity.dto.SmsReachDTO;
|
|
||||||
import cn.lili.modules.message.entity.enums.MessageSendClient;
|
import cn.lili.modules.message.entity.enums.MessageSendClient;
|
||||||
import cn.lili.modules.message.entity.enums.MessageStatusEnum;
|
import cn.lili.modules.message.entity.enums.MessageStatusEnum;
|
||||||
import cn.lili.modules.message.entity.enums.RangeEnum;
|
import cn.lili.modules.message.entity.enums.RangeEnum;
|
||||||
import cn.lili.modules.message.service.MemberMessageService;
|
import cn.lili.modules.message.service.MemberMessageService;
|
||||||
import cn.lili.modules.message.service.StoreMessageService;
|
import cn.lili.modules.message.service.StoreMessageService;
|
||||||
|
import cn.lili.modules.sms.SmsUtil;
|
||||||
|
import cn.lili.modules.sms.entity.dto.SmsReachDTO;
|
||||||
import cn.lili.modules.store.entity.dos.Store;
|
import cn.lili.modules.store.entity.dos.Store;
|
||||||
import cn.lili.modules.store.service.StoreService;
|
import cn.lili.modules.store.service.StoreService;
|
||||||
import cn.lili.modules.system.sms.SmsUtil;
|
|
||||||
import cn.lili.rocketmq.tags.OtherTagsEnum;
|
import cn.lili.rocketmq.tags.OtherTagsEnum;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
@@ -28,7 +27,6 @@ import org.apache.rocketmq.spring.core.RocketMQListener;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -42,11 +40,6 @@ import java.util.List;
|
|||||||
@RocketMQMessageListener(topic = "${lili.data.rocketmq.notice-send-topic}", consumerGroup = "${lili.data.rocketmq.notice-send-group}")
|
@RocketMQMessageListener(topic = "${lili.data.rocketmq.notice-send-topic}", consumerGroup = "${lili.data.rocketmq.notice-send-group}")
|
||||||
public class NoticeSendMessageListener implements RocketMQListener<MessageExt> {
|
public class NoticeSendMessageListener implements RocketMQListener<MessageExt> {
|
||||||
|
|
||||||
/**
|
|
||||||
* 会员
|
|
||||||
*/
|
|
||||||
@Resource
|
|
||||||
private MemberMapper memberMapper;
|
|
||||||
/**
|
/**
|
||||||
* 短信
|
* 短信
|
||||||
*/
|
*/
|
||||||
@@ -82,7 +75,7 @@ public class NoticeSendMessageListener implements RocketMQListener<MessageExt> {
|
|||||||
//发送全部会员
|
//发送全部会员
|
||||||
if (smsReachDTO.getSmsRange().equals(RangeEnum.ALL.name())) {
|
if (smsReachDTO.getSmsRange().equals(RangeEnum.ALL.name())) {
|
||||||
//获取所有会员的手机号
|
//获取所有会员的手机号
|
||||||
List<String> list = memberMapper.getAllMemberMobile();
|
List<String> list = memberService.getAllMemberMobile();
|
||||||
smsUtil.sendBatchSms(smsReachDTO.getSignName(), list, smsReachDTO.getMessageCode());
|
smsUtil.sendBatchSms(smsReachDTO.getSignName(), list, smsReachDTO.getMessageCode());
|
||||||
//判断为发送部分用户
|
//判断为发送部分用户
|
||||||
} else {
|
} else {
|
||||||
@@ -158,12 +151,12 @@ public class NoticeSendMessageListener implements RocketMQListener<MessageExt> {
|
|||||||
//查询所有会员总数,因为会员总数比较大 如果一次性查出来会占用数据库资源,所以要分页查询
|
//查询所有会员总数,因为会员总数比较大 如果一次性查出来会占用数据库资源,所以要分页查询
|
||||||
MemberSearchVO memberSearchVO = new MemberSearchVO();
|
MemberSearchVO memberSearchVO = new MemberSearchVO();
|
||||||
memberSearchVO.setDisabled(SwitchEnum.OPEN.name());
|
memberSearchVO.setDisabled(SwitchEnum.OPEN.name());
|
||||||
Integer memberNum = memberService.getMemberNum(memberSearchVO);
|
long memberNum = memberService.getMemberNum(memberSearchVO);
|
||||||
//构建分页查询参数
|
//构建分页查询参数
|
||||||
//100条查一次
|
//100条查一次
|
||||||
Integer pageSize = 100;
|
int pageSize = 100;
|
||||||
Integer pageCount = 0;
|
int pageCount;
|
||||||
pageCount = memberNum / pageSize;
|
pageCount = (int) (memberNum / pageSize);
|
||||||
pageCount = memberNum % pageSize > 0 ? pageCount + 1 : pageCount;
|
pageCount = memberNum % pageSize > 0 ? pageCount + 1 : pageCount;
|
||||||
for (int i = 1; i <= pageCount; i++) {
|
for (int i = 1; i <= pageCount; i++) {
|
||||||
PageVO pageVO = new PageVO();
|
PageVO pageVO = new PageVO();
|
||||||
|
|||||||
@@ -2,11 +2,11 @@ package cn.lili.listener;
|
|||||||
|
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
import cn.lili.cache.Cache;
|
import cn.lili.cache.Cache;
|
||||||
import cn.lili.rocketmq.tags.MqOrderTagsEnum;
|
|
||||||
import cn.lili.event.OrderStatusChangeEvent;
|
import cn.lili.event.OrderStatusChangeEvent;
|
||||||
import cn.lili.event.TradeEvent;
|
import cn.lili.event.TradeEvent;
|
||||||
import cn.lili.modules.order.cart.entity.dto.TradeDTO;
|
import cn.lili.modules.order.cart.entity.dto.TradeDTO;
|
||||||
import cn.lili.modules.order.order.entity.dto.OrderMessage;
|
import cn.lili.modules.order.order.entity.dto.OrderMessage;
|
||||||
|
import cn.lili.rocketmq.tags.OrderTagsEnum;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.rocketmq.common.message.MessageExt;
|
import org.apache.rocketmq.common.message.MessageExt;
|
||||||
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
|
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
|
||||||
@@ -58,11 +58,11 @@ public class OrderMessageListener implements RocketMQListener<MessageExt> {
|
|||||||
*/
|
*/
|
||||||
public void orderStatusEvent(MessageExt messageExt) {
|
public void orderStatusEvent(MessageExt messageExt) {
|
||||||
|
|
||||||
switch (MqOrderTagsEnum.valueOf(messageExt.getTags())) {
|
switch (OrderTagsEnum.valueOf(messageExt.getTags())) {
|
||||||
//订单创建
|
//订单创建
|
||||||
case ORDER_CREATE:
|
case ORDER_CREATE:
|
||||||
String key = new String(messageExt.getBody());
|
String key = new String(messageExt.getBody());
|
||||||
TradeDTO tradeDTO = (TradeDTO) cache.get(key);
|
TradeDTO tradeDTO = JSONUtil.toBean(cache.getString(key), TradeDTO.class);
|
||||||
boolean result = true;
|
boolean result = true;
|
||||||
for (TradeEvent event : tradeEvent) {
|
for (TradeEvent event : tradeEvent) {
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -1,22 +0,0 @@
|
|||||||
package cn.lili.service;
|
|
||||||
|
|
||||||
import cn.lili.event.OrderStatusChangeEvent;
|
|
||||||
import cn.lili.modules.order.order.entity.dto.OrderMessage;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 消息发送
|
|
||||||
*
|
|
||||||
* @author paulG
|
|
||||||
* @since 2020/12/9
|
|
||||||
*/
|
|
||||||
@Component
|
|
||||||
public class NoticeSendMessageConsumer implements OrderStatusChangeEvent {
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void orderChange(OrderMessage orderMessage) {
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
package cn.lili.sucurity;
|
||||||
|
|
||||||
|
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
||||||
|
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author paulG
|
||||||
|
* @since 2022/2/18
|
||||||
|
**/
|
||||||
|
@Component
|
||||||
|
public class ConsumerSecurityConfig extends WebSecurityConfigurerAdapter {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void configure(HttpSecurity http) throws Exception {
|
||||||
|
http.formLogin().disable();
|
||||||
|
}
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user