init
This commit is contained in:
commit
6999b9fe4d
33
.gitignore
vendored
Normal file
33
.gitignore
vendored
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
HELP.md
|
||||||
|
target/
|
||||||
|
!.mvn/wrapper/maven-wrapper.jar
|
||||||
|
!**/src/main/**/target/
|
||||||
|
!**/src/test/**/target/
|
||||||
|
|
||||||
|
### STS ###
|
||||||
|
.apt_generated
|
||||||
|
.classpath
|
||||||
|
.factorypath
|
||||||
|
.project
|
||||||
|
.settings
|
||||||
|
.springBeans
|
||||||
|
.sts4-cache
|
||||||
|
|
||||||
|
### IntelliJ IDEA ###
|
||||||
|
.idea
|
||||||
|
*.iws
|
||||||
|
*.iml
|
||||||
|
*.ipr
|
||||||
|
|
||||||
|
### NetBeans ###
|
||||||
|
/nbproject/private/
|
||||||
|
/nbbuild/
|
||||||
|
/dist/
|
||||||
|
/nbdist/
|
||||||
|
/.nb-gradle/
|
||||||
|
build/
|
||||||
|
!**/src/main/**/build/
|
||||||
|
!**/src/test/**/build/
|
||||||
|
|
||||||
|
### VS Code ###
|
||||||
|
.vscode/
|
||||||
26
nginx-1.18.0/conf/fastcgi.conf
Normal file
26
nginx-1.18.0/conf/fastcgi.conf
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
|
||||||
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
|
fastcgi_param QUERY_STRING $query_string;
|
||||||
|
fastcgi_param REQUEST_METHOD $request_method;
|
||||||
|
fastcgi_param CONTENT_TYPE $content_type;
|
||||||
|
fastcgi_param CONTENT_LENGTH $content_length;
|
||||||
|
|
||||||
|
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
|
||||||
|
fastcgi_param REQUEST_URI $request_uri;
|
||||||
|
fastcgi_param DOCUMENT_URI $document_uri;
|
||||||
|
fastcgi_param DOCUMENT_ROOT $document_root;
|
||||||
|
fastcgi_param SERVER_PROTOCOL $server_protocol;
|
||||||
|
fastcgi_param REQUEST_SCHEME $scheme;
|
||||||
|
fastcgi_param HTTPS $https if_not_empty;
|
||||||
|
|
||||||
|
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
|
||||||
|
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
|
||||||
|
|
||||||
|
fastcgi_param REMOTE_ADDR $remote_addr;
|
||||||
|
fastcgi_param REMOTE_PORT $remote_port;
|
||||||
|
fastcgi_param SERVER_ADDR $server_addr;
|
||||||
|
fastcgi_param SERVER_PORT $server_port;
|
||||||
|
fastcgi_param SERVER_NAME $server_name;
|
||||||
|
|
||||||
|
# PHP only, required if PHP was built with --enable-force-cgi-redirect
|
||||||
|
fastcgi_param REDIRECT_STATUS 200;
|
||||||
25
nginx-1.18.0/conf/fastcgi_params
Normal file
25
nginx-1.18.0/conf/fastcgi_params
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
|
||||||
|
fastcgi_param QUERY_STRING $query_string;
|
||||||
|
fastcgi_param REQUEST_METHOD $request_method;
|
||||||
|
fastcgi_param CONTENT_TYPE $content_type;
|
||||||
|
fastcgi_param CONTENT_LENGTH $content_length;
|
||||||
|
|
||||||
|
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
|
||||||
|
fastcgi_param REQUEST_URI $request_uri;
|
||||||
|
fastcgi_param DOCUMENT_URI $document_uri;
|
||||||
|
fastcgi_param DOCUMENT_ROOT $document_root;
|
||||||
|
fastcgi_param SERVER_PROTOCOL $server_protocol;
|
||||||
|
fastcgi_param REQUEST_SCHEME $scheme;
|
||||||
|
fastcgi_param HTTPS $https if_not_empty;
|
||||||
|
|
||||||
|
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
|
||||||
|
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
|
||||||
|
|
||||||
|
fastcgi_param REMOTE_ADDR $remote_addr;
|
||||||
|
fastcgi_param REMOTE_PORT $remote_port;
|
||||||
|
fastcgi_param SERVER_ADDR $server_addr;
|
||||||
|
fastcgi_param SERVER_PORT $server_port;
|
||||||
|
fastcgi_param SERVER_NAME $server_name;
|
||||||
|
|
||||||
|
# PHP only, required if PHP was built with --enable-force-cgi-redirect
|
||||||
|
fastcgi_param REDIRECT_STATUS 200;
|
||||||
109
nginx-1.18.0/conf/koi-utf
Normal file
109
nginx-1.18.0/conf/koi-utf
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
|
||||||
|
# This map is not a full koi8-r <> utf8 map: it does not contain
|
||||||
|
# box-drawing and some other characters. Besides this map contains
|
||||||
|
# several koi8-u and Byelorussian letters which are not in koi8-r.
|
||||||
|
# If you need a full and standard map, use contrib/unicode2nginx/koi-utf
|
||||||
|
# map instead.
|
||||||
|
|
||||||
|
charset_map koi8-r utf-8 {
|
||||||
|
|
||||||
|
80 E282AC ; # euro
|
||||||
|
|
||||||
|
95 E280A2 ; # bullet
|
||||||
|
|
||||||
|
9A C2A0 ; #
|
||||||
|
|
||||||
|
9E C2B7 ; # ·
|
||||||
|
|
||||||
|
A3 D191 ; # small yo
|
||||||
|
A4 D194 ; # small Ukrainian ye
|
||||||
|
|
||||||
|
A6 D196 ; # small Ukrainian i
|
||||||
|
A7 D197 ; # small Ukrainian yi
|
||||||
|
|
||||||
|
AD D291 ; # small Ukrainian soft g
|
||||||
|
AE D19E ; # small Byelorussian short u
|
||||||
|
|
||||||
|
B0 C2B0 ; # °
|
||||||
|
|
||||||
|
B3 D081 ; # capital YO
|
||||||
|
B4 D084 ; # capital Ukrainian YE
|
||||||
|
|
||||||
|
B6 D086 ; # capital Ukrainian I
|
||||||
|
B7 D087 ; # capital Ukrainian YI
|
||||||
|
|
||||||
|
B9 E28496 ; # numero sign
|
||||||
|
|
||||||
|
BD D290 ; # capital Ukrainian soft G
|
||||||
|
BE D18E ; # capital Byelorussian short U
|
||||||
|
|
||||||
|
BF C2A9 ; # (C)
|
||||||
|
|
||||||
|
C0 D18E ; # small yu
|
||||||
|
C1 D0B0 ; # small a
|
||||||
|
C2 D0B1 ; # small b
|
||||||
|
C3 D186 ; # small ts
|
||||||
|
C4 D0B4 ; # small d
|
||||||
|
C5 D0B5 ; # small ye
|
||||||
|
C6 D184 ; # small f
|
||||||
|
C7 D0B3 ; # small g
|
||||||
|
C8 D185 ; # small kh
|
||||||
|
C9 D0B8 ; # small i
|
||||||
|
CA D0B9 ; # small j
|
||||||
|
CB D0BA ; # small k
|
||||||
|
CC D0BB ; # small l
|
||||||
|
CD D0BC ; # small m
|
||||||
|
CE D0BD ; # small n
|
||||||
|
CF D0BE ; # small o
|
||||||
|
|
||||||
|
D0 D0BF ; # small p
|
||||||
|
D1 D18F ; # small ya
|
||||||
|
D2 D180 ; # small r
|
||||||
|
D3 D181 ; # small s
|
||||||
|
D4 D182 ; # small t
|
||||||
|
D5 D183 ; # small u
|
||||||
|
D6 D0B6 ; # small zh
|
||||||
|
D7 D0B2 ; # small v
|
||||||
|
D8 D18C ; # small soft sign
|
||||||
|
D9 D18B ; # small y
|
||||||
|
DA D0B7 ; # small z
|
||||||
|
DB D188 ; # small sh
|
||||||
|
DC D18D ; # small e
|
||||||
|
DD D189 ; # small shch
|
||||||
|
DE D187 ; # small ch
|
||||||
|
DF D18A ; # small hard sign
|
||||||
|
|
||||||
|
E0 D0AE ; # capital YU
|
||||||
|
E1 D090 ; # capital A
|
||||||
|
E2 D091 ; # capital B
|
||||||
|
E3 D0A6 ; # capital TS
|
||||||
|
E4 D094 ; # capital D
|
||||||
|
E5 D095 ; # capital YE
|
||||||
|
E6 D0A4 ; # capital F
|
||||||
|
E7 D093 ; # capital G
|
||||||
|
E8 D0A5 ; # capital KH
|
||||||
|
E9 D098 ; # capital I
|
||||||
|
EA D099 ; # capital J
|
||||||
|
EB D09A ; # capital K
|
||||||
|
EC D09B ; # capital L
|
||||||
|
ED D09C ; # capital M
|
||||||
|
EE D09D ; # capital N
|
||||||
|
EF D09E ; # capital O
|
||||||
|
|
||||||
|
F0 D09F ; # capital P
|
||||||
|
F1 D0AF ; # capital YA
|
||||||
|
F2 D0A0 ; # capital R
|
||||||
|
F3 D0A1 ; # capital S
|
||||||
|
F4 D0A2 ; # capital T
|
||||||
|
F5 D0A3 ; # capital U
|
||||||
|
F6 D096 ; # capital ZH
|
||||||
|
F7 D092 ; # capital V
|
||||||
|
F8 D0AC ; # capital soft sign
|
||||||
|
F9 D0AB ; # capital Y
|
||||||
|
FA D097 ; # capital Z
|
||||||
|
FB D0A8 ; # capital SH
|
||||||
|
FC D0AD ; # capital E
|
||||||
|
FD D0A9 ; # capital SHCH
|
||||||
|
FE D0A7 ; # capital CH
|
||||||
|
FF D0AA ; # capital hard sign
|
||||||
|
}
|
||||||
103
nginx-1.18.0/conf/koi-win
Normal file
103
nginx-1.18.0/conf/koi-win
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
|
||||||
|
charset_map koi8-r windows-1251 {
|
||||||
|
|
||||||
|
80 88 ; # euro
|
||||||
|
|
||||||
|
95 95 ; # bullet
|
||||||
|
|
||||||
|
9A A0 ; #
|
||||||
|
|
||||||
|
9E B7 ; # ·
|
||||||
|
|
||||||
|
A3 B8 ; # small yo
|
||||||
|
A4 BA ; # small Ukrainian ye
|
||||||
|
|
||||||
|
A6 B3 ; # small Ukrainian i
|
||||||
|
A7 BF ; # small Ukrainian yi
|
||||||
|
|
||||||
|
AD B4 ; # small Ukrainian soft g
|
||||||
|
AE A2 ; # small Byelorussian short u
|
||||||
|
|
||||||
|
B0 B0 ; # °
|
||||||
|
|
||||||
|
B3 A8 ; # capital YO
|
||||||
|
B4 AA ; # capital Ukrainian YE
|
||||||
|
|
||||||
|
B6 B2 ; # capital Ukrainian I
|
||||||
|
B7 AF ; # capital Ukrainian YI
|
||||||
|
|
||||||
|
B9 B9 ; # numero sign
|
||||||
|
|
||||||
|
BD A5 ; # capital Ukrainian soft G
|
||||||
|
BE A1 ; # capital Byelorussian short U
|
||||||
|
|
||||||
|
BF A9 ; # (C)
|
||||||
|
|
||||||
|
C0 FE ; # small yu
|
||||||
|
C1 E0 ; # small a
|
||||||
|
C2 E1 ; # small b
|
||||||
|
C3 F6 ; # small ts
|
||||||
|
C4 E4 ; # small d
|
||||||
|
C5 E5 ; # small ye
|
||||||
|
C6 F4 ; # small f
|
||||||
|
C7 E3 ; # small g
|
||||||
|
C8 F5 ; # small kh
|
||||||
|
C9 E8 ; # small i
|
||||||
|
CA E9 ; # small j
|
||||||
|
CB EA ; # small k
|
||||||
|
CC EB ; # small l
|
||||||
|
CD EC ; # small m
|
||||||
|
CE ED ; # small n
|
||||||
|
CF EE ; # small o
|
||||||
|
|
||||||
|
D0 EF ; # small p
|
||||||
|
D1 FF ; # small ya
|
||||||
|
D2 F0 ; # small r
|
||||||
|
D3 F1 ; # small s
|
||||||
|
D4 F2 ; # small t
|
||||||
|
D5 F3 ; # small u
|
||||||
|
D6 E6 ; # small zh
|
||||||
|
D7 E2 ; # small v
|
||||||
|
D8 FC ; # small soft sign
|
||||||
|
D9 FB ; # small y
|
||||||
|
DA E7 ; # small z
|
||||||
|
DB F8 ; # small sh
|
||||||
|
DC FD ; # small e
|
||||||
|
DD F9 ; # small shch
|
||||||
|
DE F7 ; # small ch
|
||||||
|
DF FA ; # small hard sign
|
||||||
|
|
||||||
|
E0 DE ; # capital YU
|
||||||
|
E1 C0 ; # capital A
|
||||||
|
E2 C1 ; # capital B
|
||||||
|
E3 D6 ; # capital TS
|
||||||
|
E4 C4 ; # capital D
|
||||||
|
E5 C5 ; # capital YE
|
||||||
|
E6 D4 ; # capital F
|
||||||
|
E7 C3 ; # capital G
|
||||||
|
E8 D5 ; # capital KH
|
||||||
|
E9 C8 ; # capital I
|
||||||
|
EA C9 ; # capital J
|
||||||
|
EB CA ; # capital K
|
||||||
|
EC CB ; # capital L
|
||||||
|
ED CC ; # capital M
|
||||||
|
EE CD ; # capital N
|
||||||
|
EF CE ; # capital O
|
||||||
|
|
||||||
|
F0 CF ; # capital P
|
||||||
|
F1 DF ; # capital YA
|
||||||
|
F2 D0 ; # capital R
|
||||||
|
F3 D1 ; # capital S
|
||||||
|
F4 D2 ; # capital T
|
||||||
|
F5 D3 ; # capital U
|
||||||
|
F6 C6 ; # capital ZH
|
||||||
|
F7 C2 ; # capital V
|
||||||
|
F8 DC ; # capital soft sign
|
||||||
|
F9 DB ; # capital Y
|
||||||
|
FA C7 ; # capital Z
|
||||||
|
FB D8 ; # capital SH
|
||||||
|
FC DD ; # capital E
|
||||||
|
FD D9 ; # capital SHCH
|
||||||
|
FE D7 ; # capital CH
|
||||||
|
FF DA ; # capital hard sign
|
||||||
|
}
|
||||||
97
nginx-1.18.0/conf/mime.types
Normal file
97
nginx-1.18.0/conf/mime.types
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
|
||||||
|
types {
|
||||||
|
text/html html htm shtml;
|
||||||
|
text/css css;
|
||||||
|
text/xml xml;
|
||||||
|
image/gif gif;
|
||||||
|
image/jpeg jpeg jpg;
|
||||||
|
application/javascript js;
|
||||||
|
application/atom+xml atom;
|
||||||
|
application/rss+xml rss;
|
||||||
|
|
||||||
|
text/mathml mml;
|
||||||
|
text/plain txt;
|
||||||
|
text/vnd.sun.j2me.app-descriptor jad;
|
||||||
|
text/vnd.wap.wml wml;
|
||||||
|
text/x-component htc;
|
||||||
|
|
||||||
|
image/png png;
|
||||||
|
image/svg+xml svg svgz;
|
||||||
|
image/tiff tif tiff;
|
||||||
|
image/vnd.wap.wbmp wbmp;
|
||||||
|
image/webp webp;
|
||||||
|
image/x-icon ico;
|
||||||
|
image/x-jng jng;
|
||||||
|
image/x-ms-bmp bmp;
|
||||||
|
|
||||||
|
font/woff woff;
|
||||||
|
font/woff2 woff2;
|
||||||
|
|
||||||
|
application/java-archive jar war ear;
|
||||||
|
application/json json;
|
||||||
|
application/mac-binhex40 hqx;
|
||||||
|
application/msword doc;
|
||||||
|
application/pdf pdf;
|
||||||
|
application/postscript ps eps ai;
|
||||||
|
application/rtf rtf;
|
||||||
|
application/vnd.apple.mpegurl m3u8;
|
||||||
|
application/vnd.google-earth.kml+xml kml;
|
||||||
|
application/vnd.google-earth.kmz kmz;
|
||||||
|
application/vnd.ms-excel xls;
|
||||||
|
application/vnd.ms-fontobject eot;
|
||||||
|
application/vnd.ms-powerpoint ppt;
|
||||||
|
application/vnd.oasis.opendocument.graphics odg;
|
||||||
|
application/vnd.oasis.opendocument.presentation odp;
|
||||||
|
application/vnd.oasis.opendocument.spreadsheet ods;
|
||||||
|
application/vnd.oasis.opendocument.text odt;
|
||||||
|
application/vnd.openxmlformats-officedocument.presentationml.presentation
|
||||||
|
pptx;
|
||||||
|
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
|
||||||
|
xlsx;
|
||||||
|
application/vnd.openxmlformats-officedocument.wordprocessingml.document
|
||||||
|
docx;
|
||||||
|
application/vnd.wap.wmlc wmlc;
|
||||||
|
application/x-7z-compressed 7z;
|
||||||
|
application/x-cocoa cco;
|
||||||
|
application/x-java-archive-diff jardiff;
|
||||||
|
application/x-java-jnlp-file jnlp;
|
||||||
|
application/x-makeself run;
|
||||||
|
application/x-perl pl pm;
|
||||||
|
application/x-pilot prc pdb;
|
||||||
|
application/x-rar-compressed rar;
|
||||||
|
application/x-redhat-package-manager rpm;
|
||||||
|
application/x-sea sea;
|
||||||
|
application/x-shockwave-flash swf;
|
||||||
|
application/x-stuffit sit;
|
||||||
|
application/x-tcl tcl tk;
|
||||||
|
application/x-x509-ca-cert der pem crt;
|
||||||
|
application/x-xpinstall xpi;
|
||||||
|
application/xhtml+xml xhtml;
|
||||||
|
application/xspf+xml xspf;
|
||||||
|
application/zip zip;
|
||||||
|
|
||||||
|
application/octet-stream bin exe dll;
|
||||||
|
application/octet-stream deb;
|
||||||
|
application/octet-stream dmg;
|
||||||
|
application/octet-stream iso img;
|
||||||
|
application/octet-stream msi msp msm;
|
||||||
|
|
||||||
|
audio/midi mid midi kar;
|
||||||
|
audio/mpeg mp3;
|
||||||
|
audio/ogg ogg;
|
||||||
|
audio/x-m4a m4a;
|
||||||
|
audio/x-realaudio ra;
|
||||||
|
|
||||||
|
video/3gpp 3gpp 3gp;
|
||||||
|
video/mp2t ts;
|
||||||
|
video/mp4 mp4;
|
||||||
|
video/mpeg mpeg mpg;
|
||||||
|
video/quicktime mov;
|
||||||
|
video/webm webm;
|
||||||
|
video/x-flv flv;
|
||||||
|
video/x-m4v m4v;
|
||||||
|
video/x-mng mng;
|
||||||
|
video/x-ms-asf asx asf;
|
||||||
|
video/x-ms-wmv wmv;
|
||||||
|
video/x-msvideo avi;
|
||||||
|
}
|
||||||
51
nginx-1.18.0/conf/nginx.conf
Normal file
51
nginx-1.18.0/conf/nginx.conf
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
|
||||||
|
worker_processes 1;
|
||||||
|
|
||||||
|
events {
|
||||||
|
worker_connections 1024;
|
||||||
|
}
|
||||||
|
|
||||||
|
http {
|
||||||
|
include mime.types;
|
||||||
|
default_type application/json;
|
||||||
|
|
||||||
|
sendfile on;
|
||||||
|
|
||||||
|
keepalive_timeout 65;
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 8080;
|
||||||
|
server_name localhost;
|
||||||
|
# 指定前端项目所在的位置
|
||||||
|
location / {
|
||||||
|
root html/hmdp;
|
||||||
|
index index.html index.htm;
|
||||||
|
}
|
||||||
|
|
||||||
|
error_page 500 502 503 504 /50x.html;
|
||||||
|
location = /50x.html {
|
||||||
|
root html;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
location /api {
|
||||||
|
default_type application/json;
|
||||||
|
#internal;
|
||||||
|
keepalive_timeout 30s;
|
||||||
|
keepalive_requests 1000;
|
||||||
|
#支持keep-alive
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
rewrite /api(/.*) $1 break;
|
||||||
|
proxy_pass_request_headers on;
|
||||||
|
#more_clear_input_headers Accept-Encoding;
|
||||||
|
proxy_next_upstream error timeout;
|
||||||
|
proxy_pass http://127.0.0.1:8081;
|
||||||
|
#proxy_pass http://backend;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
upstream backend {
|
||||||
|
server 127.0.0.1:8081 max_fails=5 fail_timeout=10s weight=1;
|
||||||
|
#server 127.0.0.1:8082 max_fails=5 fail_timeout=10s weight=1;
|
||||||
|
}
|
||||||
|
}
|
||||||
17
nginx-1.18.0/conf/scgi_params
Normal file
17
nginx-1.18.0/conf/scgi_params
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
|
||||||
|
scgi_param REQUEST_METHOD $request_method;
|
||||||
|
scgi_param REQUEST_URI $request_uri;
|
||||||
|
scgi_param QUERY_STRING $query_string;
|
||||||
|
scgi_param CONTENT_TYPE $content_type;
|
||||||
|
|
||||||
|
scgi_param DOCUMENT_URI $document_uri;
|
||||||
|
scgi_param DOCUMENT_ROOT $document_root;
|
||||||
|
scgi_param SCGI 1;
|
||||||
|
scgi_param SERVER_PROTOCOL $server_protocol;
|
||||||
|
scgi_param REQUEST_SCHEME $scheme;
|
||||||
|
scgi_param HTTPS $https if_not_empty;
|
||||||
|
|
||||||
|
scgi_param REMOTE_ADDR $remote_addr;
|
||||||
|
scgi_param REMOTE_PORT $remote_port;
|
||||||
|
scgi_param SERVER_PORT $server_port;
|
||||||
|
scgi_param SERVER_NAME $server_name;
|
||||||
17
nginx-1.18.0/conf/uwsgi_params
Normal file
17
nginx-1.18.0/conf/uwsgi_params
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
|
||||||
|
uwsgi_param QUERY_STRING $query_string;
|
||||||
|
uwsgi_param REQUEST_METHOD $request_method;
|
||||||
|
uwsgi_param CONTENT_TYPE $content_type;
|
||||||
|
uwsgi_param CONTENT_LENGTH $content_length;
|
||||||
|
|
||||||
|
uwsgi_param REQUEST_URI $request_uri;
|
||||||
|
uwsgi_param PATH_INFO $document_uri;
|
||||||
|
uwsgi_param DOCUMENT_ROOT $document_root;
|
||||||
|
uwsgi_param SERVER_PROTOCOL $server_protocol;
|
||||||
|
uwsgi_param REQUEST_SCHEME $scheme;
|
||||||
|
uwsgi_param HTTPS $https if_not_empty;
|
||||||
|
|
||||||
|
uwsgi_param REMOTE_ADDR $remote_addr;
|
||||||
|
uwsgi_param REMOTE_PORT $remote_port;
|
||||||
|
uwsgi_param SERVER_PORT $server_port;
|
||||||
|
uwsgi_param SERVER_NAME $server_name;
|
||||||
126
nginx-1.18.0/conf/win-utf
Normal file
126
nginx-1.18.0/conf/win-utf
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
|
||||||
|
# This map is not a full windows-1251 <> utf8 map: it does not
|
||||||
|
# contain Serbian and Macedonian letters. If you need a full map,
|
||||||
|
# use contrib/unicode2nginx/win-utf map instead.
|
||||||
|
|
||||||
|
charset_map windows-1251 utf-8 {
|
||||||
|
|
||||||
|
82 E2809A ; # single low-9 quotation mark
|
||||||
|
|
||||||
|
84 E2809E ; # double low-9 quotation mark
|
||||||
|
85 E280A6 ; # ellipsis
|
||||||
|
86 E280A0 ; # dagger
|
||||||
|
87 E280A1 ; # double dagger
|
||||||
|
88 E282AC ; # euro
|
||||||
|
89 E280B0 ; # per mille
|
||||||
|
|
||||||
|
91 E28098 ; # left single quotation mark
|
||||||
|
92 E28099 ; # right single quotation mark
|
||||||
|
93 E2809C ; # left double quotation mark
|
||||||
|
94 E2809D ; # right double quotation mark
|
||||||
|
95 E280A2 ; # bullet
|
||||||
|
96 E28093 ; # en dash
|
||||||
|
97 E28094 ; # em dash
|
||||||
|
|
||||||
|
99 E284A2 ; # trade mark sign
|
||||||
|
|
||||||
|
A0 C2A0 ; #
|
||||||
|
A1 D18E ; # capital Byelorussian short U
|
||||||
|
A2 D19E ; # small Byelorussian short u
|
||||||
|
|
||||||
|
A4 C2A4 ; # currency sign
|
||||||
|
A5 D290 ; # capital Ukrainian soft G
|
||||||
|
A6 C2A6 ; # borken bar
|
||||||
|
A7 C2A7 ; # section sign
|
||||||
|
A8 D081 ; # capital YO
|
||||||
|
A9 C2A9 ; # (C)
|
||||||
|
AA D084 ; # capital Ukrainian YE
|
||||||
|
AB C2AB ; # left-pointing double angle quotation mark
|
||||||
|
AC C2AC ; # not sign
|
||||||
|
AD C2AD ; # soft hypen
|
||||||
|
AE C2AE ; # (R)
|
||||||
|
AF D087 ; # capital Ukrainian YI
|
||||||
|
|
||||||
|
B0 C2B0 ; # °
|
||||||
|
B1 C2B1 ; # plus-minus sign
|
||||||
|
B2 D086 ; # capital Ukrainian I
|
||||||
|
B3 D196 ; # small Ukrainian i
|
||||||
|
B4 D291 ; # small Ukrainian soft g
|
||||||
|
B5 C2B5 ; # micro sign
|
||||||
|
B6 C2B6 ; # pilcrow sign
|
||||||
|
B7 C2B7 ; # ·
|
||||||
|
B8 D191 ; # small yo
|
||||||
|
B9 E28496 ; # numero sign
|
||||||
|
BA D194 ; # small Ukrainian ye
|
||||||
|
BB C2BB ; # right-pointing double angle quotation mark
|
||||||
|
|
||||||
|
BF D197 ; # small Ukrainian yi
|
||||||
|
|
||||||
|
C0 D090 ; # capital A
|
||||||
|
C1 D091 ; # capital B
|
||||||
|
C2 D092 ; # capital V
|
||||||
|
C3 D093 ; # capital G
|
||||||
|
C4 D094 ; # capital D
|
||||||
|
C5 D095 ; # capital YE
|
||||||
|
C6 D096 ; # capital ZH
|
||||||
|
C7 D097 ; # capital Z
|
||||||
|
C8 D098 ; # capital I
|
||||||
|
C9 D099 ; # capital J
|
||||||
|
CA D09A ; # capital K
|
||||||
|
CB D09B ; # capital L
|
||||||
|
CC D09C ; # capital M
|
||||||
|
CD D09D ; # capital N
|
||||||
|
CE D09E ; # capital O
|
||||||
|
CF D09F ; # capital P
|
||||||
|
|
||||||
|
D0 D0A0 ; # capital R
|
||||||
|
D1 D0A1 ; # capital S
|
||||||
|
D2 D0A2 ; # capital T
|
||||||
|
D3 D0A3 ; # capital U
|
||||||
|
D4 D0A4 ; # capital F
|
||||||
|
D5 D0A5 ; # capital KH
|
||||||
|
D6 D0A6 ; # capital TS
|
||||||
|
D7 D0A7 ; # capital CH
|
||||||
|
D8 D0A8 ; # capital SH
|
||||||
|
D9 D0A9 ; # capital SHCH
|
||||||
|
DA D0AA ; # capital hard sign
|
||||||
|
DB D0AB ; # capital Y
|
||||||
|
DC D0AC ; # capital soft sign
|
||||||
|
DD D0AD ; # capital E
|
||||||
|
DE D0AE ; # capital YU
|
||||||
|
DF D0AF ; # capital YA
|
||||||
|
|
||||||
|
E0 D0B0 ; # small a
|
||||||
|
E1 D0B1 ; # small b
|
||||||
|
E2 D0B2 ; # small v
|
||||||
|
E3 D0B3 ; # small g
|
||||||
|
E4 D0B4 ; # small d
|
||||||
|
E5 D0B5 ; # small ye
|
||||||
|
E6 D0B6 ; # small zh
|
||||||
|
E7 D0B7 ; # small z
|
||||||
|
E8 D0B8 ; # small i
|
||||||
|
E9 D0B9 ; # small j
|
||||||
|
EA D0BA ; # small k
|
||||||
|
EB D0BB ; # small l
|
||||||
|
EC D0BC ; # small m
|
||||||
|
ED D0BD ; # small n
|
||||||
|
EE D0BE ; # small o
|
||||||
|
EF D0BF ; # small p
|
||||||
|
|
||||||
|
F0 D180 ; # small r
|
||||||
|
F1 D181 ; # small s
|
||||||
|
F2 D182 ; # small t
|
||||||
|
F3 D183 ; # small u
|
||||||
|
F4 D184 ; # small f
|
||||||
|
F5 D185 ; # small kh
|
||||||
|
F6 D186 ; # small ts
|
||||||
|
F7 D187 ; # small ch
|
||||||
|
F8 D188 ; # small sh
|
||||||
|
F9 D189 ; # small shch
|
||||||
|
FA D18A ; # small hard sign
|
||||||
|
FB D18B ; # small y
|
||||||
|
FC D18C ; # small soft sign
|
||||||
|
FD D18D ; # small e
|
||||||
|
FE D18E ; # small yu
|
||||||
|
FF D18F ; # small ya
|
||||||
|
}
|
||||||
21
nginx-1.18.0/contrib/README
Normal file
21
nginx-1.18.0/contrib/README
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
|
||||||
|
geo2nginx.pl by Andrei Nigmatulin
|
||||||
|
|
||||||
|
The perl script to convert CSV geoip database ( free download
|
||||||
|
at http://www.maxmind.com/app/geoip_country ) to format, suitable
|
||||||
|
for use by the ngx_http_geo_module.
|
||||||
|
|
||||||
|
|
||||||
|
unicode2nginx by Maxim Dounin
|
||||||
|
|
||||||
|
The perl script to convert unicode mappings ( available
|
||||||
|
at http://www.unicode.org/Public/MAPPINGS/ ) to the nginx
|
||||||
|
configuration file format.
|
||||||
|
Two generated full maps for windows-1251 and koi8-r.
|
||||||
|
|
||||||
|
|
||||||
|
vim by Evan Miller
|
||||||
|
|
||||||
|
Syntax highlighting of nginx configuration for vim, to be
|
||||||
|
placed into ~/.vim/.
|
||||||
|
|
||||||
58
nginx-1.18.0/contrib/geo2nginx.pl
Normal file
58
nginx-1.18.0/contrib/geo2nginx.pl
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
#!/usr/bin/perl -w
|
||||||
|
|
||||||
|
# (c) Andrei Nigmatulin, 2005
|
||||||
|
#
|
||||||
|
# this script provided "as is", without any warranties. use it at your own risk.
|
||||||
|
#
|
||||||
|
# special thanx to Andrew Sitnikov for perl port
|
||||||
|
#
|
||||||
|
# this script converts CSV geoip database (free download at http://www.maxmind.com/app/geoip_country)
|
||||||
|
# to format, suitable for use with nginx_http_geo module (http://sysoev.ru/nginx)
|
||||||
|
#
|
||||||
|
# for example, line with ip range
|
||||||
|
#
|
||||||
|
# "62.16.68.0","62.16.127.255","1041253376","1041268735","RU","Russian Federation"
|
||||||
|
#
|
||||||
|
# will be converted to four subnetworks:
|
||||||
|
#
|
||||||
|
# 62.16.68.0/22 RU;
|
||||||
|
# 62.16.72.0/21 RU;
|
||||||
|
# 62.16.80.0/20 RU;
|
||||||
|
# 62.16.96.0/19 RU;
|
||||||
|
|
||||||
|
|
||||||
|
use warnings;
|
||||||
|
use strict;
|
||||||
|
|
||||||
|
while( <STDIN> ){
|
||||||
|
if (/"[^"]+","[^"]+","([^"]+)","([^"]+)","([^"]+)"/){
|
||||||
|
print_subnets($1, $2, $3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sub print_subnets {
|
||||||
|
my ($a1, $a2, $c) = @_;
|
||||||
|
my $l;
|
||||||
|
while ($a1 <= $a2) {
|
||||||
|
for ($l = 0; ($a1 & (1 << $l)) == 0 && ($a1 + ((1 << ($l + 1)) - 1)) <= $a2; $l++){};
|
||||||
|
print long2ip($a1) . "/" . (32 - $l) . " " . $c . ";\n";
|
||||||
|
$a1 += (1 << $l);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sub long2ip {
|
||||||
|
my $ip = shift;
|
||||||
|
|
||||||
|
my $str = 0;
|
||||||
|
|
||||||
|
$str = ($ip & 255);
|
||||||
|
|
||||||
|
$ip >>= 8;
|
||||||
|
$str = ($ip & 255).".$str";
|
||||||
|
|
||||||
|
$ip >>= 8;
|
||||||
|
$str = ($ip & 255).".$str";
|
||||||
|
|
||||||
|
$ip >>= 8;
|
||||||
|
$str = ($ip & 255).".$str";
|
||||||
|
}
|
||||||
131
nginx-1.18.0/contrib/unicode2nginx/koi-utf
Normal file
131
nginx-1.18.0/contrib/unicode2nginx/koi-utf
Normal file
@ -0,0 +1,131 @@
|
|||||||
|
charset_map koi8-r utf-8 {
|
||||||
|
|
||||||
|
80 E29480 ; # BOX DRAWINGS LIGHT HORIZONTAL
|
||||||
|
81 E29482 ; # BOX DRAWINGS LIGHT VERTICAL
|
||||||
|
82 E2948C ; # BOX DRAWINGS LIGHT DOWN AND RIGHT
|
||||||
|
83 E29490 ; # BOX DRAWINGS LIGHT DOWN AND LEFT
|
||||||
|
84 E29494 ; # BOX DRAWINGS LIGHT UP AND RIGHT
|
||||||
|
85 E29498 ; # BOX DRAWINGS LIGHT UP AND LEFT
|
||||||
|
86 E2949C ; # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
|
||||||
|
87 E294A4 ; # BOX DRAWINGS LIGHT VERTICAL AND LEFT
|
||||||
|
88 E294AC ; # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
|
||||||
|
89 E294B4 ; # BOX DRAWINGS LIGHT UP AND HORIZONTAL
|
||||||
|
8A E294BC ; # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
|
||||||
|
8B E29680 ; # UPPER HALF BLOCK
|
||||||
|
8C E29684 ; # LOWER HALF BLOCK
|
||||||
|
8D E29688 ; # FULL BLOCK
|
||||||
|
8E E2968C ; # LEFT HALF BLOCK
|
||||||
|
8F E29690 ; # RIGHT HALF BLOCK
|
||||||
|
90 E29691 ; # LIGHT SHADE
|
||||||
|
91 E29692 ; # MEDIUM SHADE
|
||||||
|
92 E29693 ; # DARK SHADE
|
||||||
|
93 E28CA0 ; # TOP HALF INTEGRAL
|
||||||
|
94 E296A0 ; # BLACK SQUARE
|
||||||
|
95 E28899 ; # BULLET OPERATOR
|
||||||
|
96 E2889A ; # SQUARE ROOT
|
||||||
|
97 E28988 ; # ALMOST EQUAL TO
|
||||||
|
98 E289A4 ; # LESS-THAN OR EQUAL TO
|
||||||
|
99 E289A5 ; # GREATER-THAN OR EQUAL TO
|
||||||
|
9A C2A0 ; # NO-BREAK SPACE
|
||||||
|
9B E28CA1 ; # BOTTOM HALF INTEGRAL
|
||||||
|
9C C2B0 ; # DEGREE SIGN
|
||||||
|
9D C2B2 ; # SUPERSCRIPT TWO
|
||||||
|
9E C2B7 ; # MIDDLE DOT
|
||||||
|
9F C3B7 ; # DIVISION SIGN
|
||||||
|
A0 E29590 ; # BOX DRAWINGS DOUBLE HORIZONTAL
|
||||||
|
A1 E29591 ; # BOX DRAWINGS DOUBLE VERTICAL
|
||||||
|
A2 E29592 ; # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
|
||||||
|
A3 D191 ; # CYRILLIC SMALL LETTER IO
|
||||||
|
A4 E29593 ; # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
|
||||||
|
A5 E29594 ; # BOX DRAWINGS DOUBLE DOWN AND RIGHT
|
||||||
|
A6 E29595 ; # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
|
||||||
|
A7 E29596 ; # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
|
||||||
|
A8 E29597 ; # BOX DRAWINGS DOUBLE DOWN AND LEFT
|
||||||
|
A9 E29598 ; # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
|
||||||
|
AA E29599 ; # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
|
||||||
|
AB E2959A ; # BOX DRAWINGS DOUBLE UP AND RIGHT
|
||||||
|
AC E2959B ; # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
|
||||||
|
AD E2959C ; # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
|
||||||
|
AE E2959D ; # BOX DRAWINGS DOUBLE UP AND LEFT
|
||||||
|
AF E2959E ; # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
|
||||||
|
B0 E2959F ; # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
|
||||||
|
B1 E295A0 ; # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
|
||||||
|
B2 E295A1 ; # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
|
||||||
|
B3 D081 ; # CYRILLIC CAPITAL LETTER IO
|
||||||
|
B4 E295A2 ; # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
|
||||||
|
B5 E295A3 ; # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
|
||||||
|
B6 E295A4 ; # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
|
||||||
|
B7 E295A5 ; # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
|
||||||
|
B8 E295A6 ; # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
|
||||||
|
B9 E295A7 ; # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
|
||||||
|
BA E295A8 ; # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
|
||||||
|
BB E295A9 ; # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
|
||||||
|
BC E295AA ; # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
|
||||||
|
BD E295AB ; # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
|
||||||
|
BE E295AC ; # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
|
||||||
|
BF C2A9 ; # COPYRIGHT SIGN
|
||||||
|
C0 D18E ; # CYRILLIC SMALL LETTER YU
|
||||||
|
C1 D0B0 ; # CYRILLIC SMALL LETTER A
|
||||||
|
C2 D0B1 ; # CYRILLIC SMALL LETTER BE
|
||||||
|
C3 D186 ; # CYRILLIC SMALL LETTER TSE
|
||||||
|
C4 D0B4 ; # CYRILLIC SMALL LETTER DE
|
||||||
|
C5 D0B5 ; # CYRILLIC SMALL LETTER IE
|
||||||
|
C6 D184 ; # CYRILLIC SMALL LETTER EF
|
||||||
|
C7 D0B3 ; # CYRILLIC SMALL LETTER GHE
|
||||||
|
C8 D185 ; # CYRILLIC SMALL LETTER HA
|
||||||
|
C9 D0B8 ; # CYRILLIC SMALL LETTER I
|
||||||
|
CA D0B9 ; # CYRILLIC SMALL LETTER SHORT I
|
||||||
|
CB D0BA ; # CYRILLIC SMALL LETTER KA
|
||||||
|
CC D0BB ; # CYRILLIC SMALL LETTER EL
|
||||||
|
CD D0BC ; # CYRILLIC SMALL LETTER EM
|
||||||
|
CE D0BD ; # CYRILLIC SMALL LETTER EN
|
||||||
|
CF D0BE ; # CYRILLIC SMALL LETTER O
|
||||||
|
D0 D0BF ; # CYRILLIC SMALL LETTER PE
|
||||||
|
D1 D18F ; # CYRILLIC SMALL LETTER YA
|
||||||
|
D2 D180 ; # CYRILLIC SMALL LETTER ER
|
||||||
|
D3 D181 ; # CYRILLIC SMALL LETTER ES
|
||||||
|
D4 D182 ; # CYRILLIC SMALL LETTER TE
|
||||||
|
D5 D183 ; # CYRILLIC SMALL LETTER U
|
||||||
|
D6 D0B6 ; # CYRILLIC SMALL LETTER ZHE
|
||||||
|
D7 D0B2 ; # CYRILLIC SMALL LETTER VE
|
||||||
|
D8 D18C ; # CYRILLIC SMALL LETTER SOFT SIGN
|
||||||
|
D9 D18B ; # CYRILLIC SMALL LETTER YERU
|
||||||
|
DA D0B7 ; # CYRILLIC SMALL LETTER ZE
|
||||||
|
DB D188 ; # CYRILLIC SMALL LETTER SHA
|
||||||
|
DC D18D ; # CYRILLIC SMALL LETTER E
|
||||||
|
DD D189 ; # CYRILLIC SMALL LETTER SHCHA
|
||||||
|
DE D187 ; # CYRILLIC SMALL LETTER CHE
|
||||||
|
DF D18A ; # CYRILLIC SMALL LETTER HARD SIGN
|
||||||
|
E0 D0AE ; # CYRILLIC CAPITAL LETTER YU
|
||||||
|
E1 D090 ; # CYRILLIC CAPITAL LETTER A
|
||||||
|
E2 D091 ; # CYRILLIC CAPITAL LETTER BE
|
||||||
|
E3 D0A6 ; # CYRILLIC CAPITAL LETTER TSE
|
||||||
|
E4 D094 ; # CYRILLIC CAPITAL LETTER DE
|
||||||
|
E5 D095 ; # CYRILLIC CAPITAL LETTER IE
|
||||||
|
E6 D0A4 ; # CYRILLIC CAPITAL LETTER EF
|
||||||
|
E7 D093 ; # CYRILLIC CAPITAL LETTER GHE
|
||||||
|
E8 D0A5 ; # CYRILLIC CAPITAL LETTER HA
|
||||||
|
E9 D098 ; # CYRILLIC CAPITAL LETTER I
|
||||||
|
EA D099 ; # CYRILLIC CAPITAL LETTER SHORT I
|
||||||
|
EB D09A ; # CYRILLIC CAPITAL LETTER KA
|
||||||
|
EC D09B ; # CYRILLIC CAPITAL LETTER EL
|
||||||
|
ED D09C ; # CYRILLIC CAPITAL LETTER EM
|
||||||
|
EE D09D ; # CYRILLIC CAPITAL LETTER EN
|
||||||
|
EF D09E ; # CYRILLIC CAPITAL LETTER O
|
||||||
|
F0 D09F ; # CYRILLIC CAPITAL LETTER PE
|
||||||
|
F1 D0AF ; # CYRILLIC CAPITAL LETTER YA
|
||||||
|
F2 D0A0 ; # CYRILLIC CAPITAL LETTER ER
|
||||||
|
F3 D0A1 ; # CYRILLIC CAPITAL LETTER ES
|
||||||
|
F4 D0A2 ; # CYRILLIC CAPITAL LETTER TE
|
||||||
|
F5 D0A3 ; # CYRILLIC CAPITAL LETTER U
|
||||||
|
F6 D096 ; # CYRILLIC CAPITAL LETTER ZHE
|
||||||
|
F7 D092 ; # CYRILLIC CAPITAL LETTER VE
|
||||||
|
F8 D0AC ; # CYRILLIC CAPITAL LETTER SOFT SIGN
|
||||||
|
F9 D0AB ; # CYRILLIC CAPITAL LETTER YERU
|
||||||
|
FA D097 ; # CYRILLIC CAPITAL LETTER ZE
|
||||||
|
FB D0A8 ; # CYRILLIC CAPITAL LETTER SHA
|
||||||
|
FC D0AD ; # CYRILLIC CAPITAL LETTER E
|
||||||
|
FD D0A9 ; # CYRILLIC CAPITAL LETTER SHCHA
|
||||||
|
FE D0A7 ; # CYRILLIC CAPITAL LETTER CHE
|
||||||
|
FF D0AA ; # CYRILLIC CAPITAL LETTER HARD SIGN
|
||||||
|
}
|
||||||
48
nginx-1.18.0/contrib/unicode2nginx/unicode-to-nginx.pl
Normal file
48
nginx-1.18.0/contrib/unicode2nginx/unicode-to-nginx.pl
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
#!/usr/bin/perl -w
|
||||||
|
|
||||||
|
# Convert unicode mappings to nginx configuration file format.
|
||||||
|
|
||||||
|
# You may find useful mappings in various places, including
|
||||||
|
# unicode.org official site:
|
||||||
|
#
|
||||||
|
# http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1251.TXT
|
||||||
|
# http://www.unicode.org/Public/MAPPINGS/VENDORS/MISC/KOI8-R.TXT
|
||||||
|
|
||||||
|
# Needs perl 5.6 or later.
|
||||||
|
|
||||||
|
# Written by Maxim Dounin, mdounin@mdounin.ru
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
require 5.006;
|
||||||
|
|
||||||
|
while (<>) {
|
||||||
|
# Skip comments and empty lines
|
||||||
|
|
||||||
|
next if /^#/;
|
||||||
|
next if /^\s*$/;
|
||||||
|
chomp;
|
||||||
|
|
||||||
|
# Convert mappings
|
||||||
|
|
||||||
|
if (/^\s*0x(..)\s*0x(....)\s*(#.*)/) {
|
||||||
|
# Mapping <from-code> <unicode-code> "#" <unicode-name>
|
||||||
|
my $cs_code = $1;
|
||||||
|
my $un_code = $2;
|
||||||
|
my $un_name = $3;
|
||||||
|
|
||||||
|
# Produce UTF-8 sequence from character code;
|
||||||
|
|
||||||
|
my $un_utf8 = join('',
|
||||||
|
map { sprintf("%02X", $_) }
|
||||||
|
unpack("U0C*", pack("U", hex($un_code)))
|
||||||
|
);
|
||||||
|
|
||||||
|
print " $cs_code $un_utf8 ; $un_name\n";
|
||||||
|
|
||||||
|
} else {
|
||||||
|
warn "Unrecognized line: '$_'";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
130
nginx-1.18.0/contrib/unicode2nginx/win-utf
Normal file
130
nginx-1.18.0/contrib/unicode2nginx/win-utf
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
charset_map windows-1251 utf-8 {
|
||||||
|
|
||||||
|
80 D082 ; #CYRILLIC CAPITAL LETTER DJE
|
||||||
|
81 D083 ; #CYRILLIC CAPITAL LETTER GJE
|
||||||
|
82 E2809A ; #SINGLE LOW-9 QUOTATION MARK
|
||||||
|
83 D193 ; #CYRILLIC SMALL LETTER GJE
|
||||||
|
84 E2809E ; #DOUBLE LOW-9 QUOTATION MARK
|
||||||
|
85 E280A6 ; #HORIZONTAL ELLIPSIS
|
||||||
|
86 E280A0 ; #DAGGER
|
||||||
|
87 E280A1 ; #DOUBLE DAGGER
|
||||||
|
88 E282AC ; #EURO SIGN
|
||||||
|
89 E280B0 ; #PER MILLE SIGN
|
||||||
|
8A D089 ; #CYRILLIC CAPITAL LETTER LJE
|
||||||
|
8B E280B9 ; #SINGLE LEFT-POINTING ANGLE QUOTATION MARK
|
||||||
|
8C D08A ; #CYRILLIC CAPITAL LETTER NJE
|
||||||
|
8D D08C ; #CYRILLIC CAPITAL LETTER KJE
|
||||||
|
8E D08B ; #CYRILLIC CAPITAL LETTER TSHE
|
||||||
|
8F D08F ; #CYRILLIC CAPITAL LETTER DZHE
|
||||||
|
90 D192 ; #CYRILLIC SMALL LETTER DJE
|
||||||
|
91 E28098 ; #LEFT SINGLE QUOTATION MARK
|
||||||
|
92 E28099 ; #RIGHT SINGLE QUOTATION MARK
|
||||||
|
93 E2809C ; #LEFT DOUBLE QUOTATION MARK
|
||||||
|
94 E2809D ; #RIGHT DOUBLE QUOTATION MARK
|
||||||
|
95 E280A2 ; #BULLET
|
||||||
|
96 E28093 ; #EN DASH
|
||||||
|
97 E28094 ; #EM DASH
|
||||||
|
99 E284A2 ; #TRADE MARK SIGN
|
||||||
|
9A D199 ; #CYRILLIC SMALL LETTER LJE
|
||||||
|
9B E280BA ; #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
|
||||||
|
9C D19A ; #CYRILLIC SMALL LETTER NJE
|
||||||
|
9D D19C ; #CYRILLIC SMALL LETTER KJE
|
||||||
|
9E D19B ; #CYRILLIC SMALL LETTER TSHE
|
||||||
|
9F D19F ; #CYRILLIC SMALL LETTER DZHE
|
||||||
|
A0 C2A0 ; #NO-BREAK SPACE
|
||||||
|
A1 D08E ; #CYRILLIC CAPITAL LETTER SHORT U
|
||||||
|
A2 D19E ; #CYRILLIC SMALL LETTER SHORT U
|
||||||
|
A3 D088 ; #CYRILLIC CAPITAL LETTER JE
|
||||||
|
A4 C2A4 ; #CURRENCY SIGN
|
||||||
|
A5 D290 ; #CYRILLIC CAPITAL LETTER GHE WITH UPTURN
|
||||||
|
A6 C2A6 ; #BROKEN BAR
|
||||||
|
A7 C2A7 ; #SECTION SIGN
|
||||||
|
A8 D081 ; #CYRILLIC CAPITAL LETTER IO
|
||||||
|
A9 C2A9 ; #COPYRIGHT SIGN
|
||||||
|
AA D084 ; #CYRILLIC CAPITAL LETTER UKRAINIAN IE
|
||||||
|
AB C2AB ; #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||||
|
AC C2AC ; #NOT SIGN
|
||||||
|
AD C2AD ; #SOFT HYPHEN
|
||||||
|
AE C2AE ; #REGISTERED SIGN
|
||||||
|
AF D087 ; #CYRILLIC CAPITAL LETTER YI
|
||||||
|
B0 C2B0 ; #DEGREE SIGN
|
||||||
|
B1 C2B1 ; #PLUS-MINUS SIGN
|
||||||
|
B2 D086 ; #CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
|
||||||
|
B3 D196 ; #CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
|
||||||
|
B4 D291 ; #CYRILLIC SMALL LETTER GHE WITH UPTURN
|
||||||
|
B5 C2B5 ; #MICRO SIGN
|
||||||
|
B6 C2B6 ; #PILCROW SIGN
|
||||||
|
B7 C2B7 ; #MIDDLE DOT
|
||||||
|
B8 D191 ; #CYRILLIC SMALL LETTER IO
|
||||||
|
B9 E28496 ; #NUMERO SIGN
|
||||||
|
BA D194 ; #CYRILLIC SMALL LETTER UKRAINIAN IE
|
||||||
|
BB C2BB ; #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||||
|
BC D198 ; #CYRILLIC SMALL LETTER JE
|
||||||
|
BD D085 ; #CYRILLIC CAPITAL LETTER DZE
|
||||||
|
BE D195 ; #CYRILLIC SMALL LETTER DZE
|
||||||
|
BF D197 ; #CYRILLIC SMALL LETTER YI
|
||||||
|
C0 D090 ; #CYRILLIC CAPITAL LETTER A
|
||||||
|
C1 D091 ; #CYRILLIC CAPITAL LETTER BE
|
||||||
|
C2 D092 ; #CYRILLIC CAPITAL LETTER VE
|
||||||
|
C3 D093 ; #CYRILLIC CAPITAL LETTER GHE
|
||||||
|
C4 D094 ; #CYRILLIC CAPITAL LETTER DE
|
||||||
|
C5 D095 ; #CYRILLIC CAPITAL LETTER IE
|
||||||
|
C6 D096 ; #CYRILLIC CAPITAL LETTER ZHE
|
||||||
|
C7 D097 ; #CYRILLIC CAPITAL LETTER ZE
|
||||||
|
C8 D098 ; #CYRILLIC CAPITAL LETTER I
|
||||||
|
C9 D099 ; #CYRILLIC CAPITAL LETTER SHORT I
|
||||||
|
CA D09A ; #CYRILLIC CAPITAL LETTER KA
|
||||||
|
CB D09B ; #CYRILLIC CAPITAL LETTER EL
|
||||||
|
CC D09C ; #CYRILLIC CAPITAL LETTER EM
|
||||||
|
CD D09D ; #CYRILLIC CAPITAL LETTER EN
|
||||||
|
CE D09E ; #CYRILLIC CAPITAL LETTER O
|
||||||
|
CF D09F ; #CYRILLIC CAPITAL LETTER PE
|
||||||
|
D0 D0A0 ; #CYRILLIC CAPITAL LETTER ER
|
||||||
|
D1 D0A1 ; #CYRILLIC CAPITAL LETTER ES
|
||||||
|
D2 D0A2 ; #CYRILLIC CAPITAL LETTER TE
|
||||||
|
D3 D0A3 ; #CYRILLIC CAPITAL LETTER U
|
||||||
|
D4 D0A4 ; #CYRILLIC CAPITAL LETTER EF
|
||||||
|
D5 D0A5 ; #CYRILLIC CAPITAL LETTER HA
|
||||||
|
D6 D0A6 ; #CYRILLIC CAPITAL LETTER TSE
|
||||||
|
D7 D0A7 ; #CYRILLIC CAPITAL LETTER CHE
|
||||||
|
D8 D0A8 ; #CYRILLIC CAPITAL LETTER SHA
|
||||||
|
D9 D0A9 ; #CYRILLIC CAPITAL LETTER SHCHA
|
||||||
|
DA D0AA ; #CYRILLIC CAPITAL LETTER HARD SIGN
|
||||||
|
DB D0AB ; #CYRILLIC CAPITAL LETTER YERU
|
||||||
|
DC D0AC ; #CYRILLIC CAPITAL LETTER SOFT SIGN
|
||||||
|
DD D0AD ; #CYRILLIC CAPITAL LETTER E
|
||||||
|
DE D0AE ; #CYRILLIC CAPITAL LETTER YU
|
||||||
|
DF D0AF ; #CYRILLIC CAPITAL LETTER YA
|
||||||
|
E0 D0B0 ; #CYRILLIC SMALL LETTER A
|
||||||
|
E1 D0B1 ; #CYRILLIC SMALL LETTER BE
|
||||||
|
E2 D0B2 ; #CYRILLIC SMALL LETTER VE
|
||||||
|
E3 D0B3 ; #CYRILLIC SMALL LETTER GHE
|
||||||
|
E4 D0B4 ; #CYRILLIC SMALL LETTER DE
|
||||||
|
E5 D0B5 ; #CYRILLIC SMALL LETTER IE
|
||||||
|
E6 D0B6 ; #CYRILLIC SMALL LETTER ZHE
|
||||||
|
E7 D0B7 ; #CYRILLIC SMALL LETTER ZE
|
||||||
|
E8 D0B8 ; #CYRILLIC SMALL LETTER I
|
||||||
|
E9 D0B9 ; #CYRILLIC SMALL LETTER SHORT I
|
||||||
|
EA D0BA ; #CYRILLIC SMALL LETTER KA
|
||||||
|
EB D0BB ; #CYRILLIC SMALL LETTER EL
|
||||||
|
EC D0BC ; #CYRILLIC SMALL LETTER EM
|
||||||
|
ED D0BD ; #CYRILLIC SMALL LETTER EN
|
||||||
|
EE D0BE ; #CYRILLIC SMALL LETTER O
|
||||||
|
EF D0BF ; #CYRILLIC SMALL LETTER PE
|
||||||
|
F0 D180 ; #CYRILLIC SMALL LETTER ER
|
||||||
|
F1 D181 ; #CYRILLIC SMALL LETTER ES
|
||||||
|
F2 D182 ; #CYRILLIC SMALL LETTER TE
|
||||||
|
F3 D183 ; #CYRILLIC SMALL LETTER U
|
||||||
|
F4 D184 ; #CYRILLIC SMALL LETTER EF
|
||||||
|
F5 D185 ; #CYRILLIC SMALL LETTER HA
|
||||||
|
F6 D186 ; #CYRILLIC SMALL LETTER TSE
|
||||||
|
F7 D187 ; #CYRILLIC SMALL LETTER CHE
|
||||||
|
F8 D188 ; #CYRILLIC SMALL LETTER SHA
|
||||||
|
F9 D189 ; #CYRILLIC SMALL LETTER SHCHA
|
||||||
|
FA D18A ; #CYRILLIC SMALL LETTER HARD SIGN
|
||||||
|
FB D18B ; #CYRILLIC SMALL LETTER YERU
|
||||||
|
FC D18C ; #CYRILLIC SMALL LETTER SOFT SIGN
|
||||||
|
FD D18D ; #CYRILLIC SMALL LETTER E
|
||||||
|
FE D18E ; #CYRILLIC SMALL LETTER YU
|
||||||
|
FF D18F ; #CYRILLIC SMALL LETTER YA
|
||||||
|
}
|
||||||
4
nginx-1.18.0/contrib/vim/ftdetect/nginx.vim
Normal file
4
nginx-1.18.0/contrib/vim/ftdetect/nginx.vim
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
au BufRead,BufNewFile *.nginx set ft=nginx
|
||||||
|
au BufRead,BufNewFile */etc/nginx/* set ft=nginx
|
||||||
|
au BufRead,BufNewFile */usr/local/nginx/conf/* set ft=nginx
|
||||||
|
au BufRead,BufNewFile nginx.conf set ft=nginx
|
||||||
1
nginx-1.18.0/contrib/vim/ftplugin/nginx.vim
Normal file
1
nginx-1.18.0/contrib/vim/ftplugin/nginx.vim
Normal file
@ -0,0 +1 @@
|
|||||||
|
setlocal commentstring=#\ %s
|
||||||
11
nginx-1.18.0/contrib/vim/indent/nginx.vim
Normal file
11
nginx-1.18.0/contrib/vim/indent/nginx.vim
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
if exists("b:did_indent")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let b:did_indent = 1
|
||||||
|
|
||||||
|
setlocal indentexpr=
|
||||||
|
|
||||||
|
" cindent actually works for nginx' simple file structure
|
||||||
|
setlocal cindent
|
||||||
|
" Just make sure that the comments are not reset as defs would be.
|
||||||
|
setlocal cinkeys-=0#
|
||||||
2338
nginx-1.18.0/contrib/vim/syntax/nginx.vim
Normal file
2338
nginx-1.18.0/contrib/vim/syntax/nginx.vim
Normal file
File diff suppressed because it is too large
Load Diff
8508
nginx-1.18.0/docs/CHANGES
Normal file
8508
nginx-1.18.0/docs/CHANGES
Normal file
File diff suppressed because it is too large
Load Diff
8656
nginx-1.18.0/docs/CHANGES.ru
Normal file
8656
nginx-1.18.0/docs/CHANGES.ru
Normal file
File diff suppressed because it is too large
Load Diff
26
nginx-1.18.0/docs/LICENSE
Normal file
26
nginx-1.18.0/docs/LICENSE
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2002-2019 Igor Sysoev
|
||||||
|
* Copyright (C) 2011-2019 Nginx, Inc.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||||
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||||
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||||
|
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||||
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
|
* SUCH DAMAGE.
|
||||||
|
*/
|
||||||
125
nginx-1.18.0/docs/OpenSSL.LICENSE
Normal file
125
nginx-1.18.0/docs/OpenSSL.LICENSE
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
|
||||||
|
LICENSE ISSUES
|
||||||
|
==============
|
||||||
|
|
||||||
|
The OpenSSL toolkit stays under a double license, i.e. both the conditions of
|
||||||
|
the OpenSSL License and the original SSLeay license apply to the toolkit.
|
||||||
|
See below for the actual license texts.
|
||||||
|
|
||||||
|
OpenSSL License
|
||||||
|
---------------
|
||||||
|
|
||||||
|
/* ====================================================================
|
||||||
|
* Copyright (c) 1998-2019 The OpenSSL Project. All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in
|
||||||
|
* the documentation and/or other materials provided with the
|
||||||
|
* distribution.
|
||||||
|
*
|
||||||
|
* 3. All advertising materials mentioning features or use of this
|
||||||
|
* software must display the following acknowledgment:
|
||||||
|
* "This product includes software developed by the OpenSSL Project
|
||||||
|
* for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
|
||||||
|
*
|
||||||
|
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
|
||||||
|
* endorse or promote products derived from this software without
|
||||||
|
* prior written permission. For written permission, please contact
|
||||||
|
* openssl-core@openssl.org.
|
||||||
|
*
|
||||||
|
* 5. Products derived from this software may not be called "OpenSSL"
|
||||||
|
* nor may "OpenSSL" appear in their names without prior written
|
||||||
|
* permission of the OpenSSL Project.
|
||||||
|
*
|
||||||
|
* 6. Redistributions of any form whatsoever must retain the following
|
||||||
|
* acknowledgment:
|
||||||
|
* "This product includes software developed by the OpenSSL Project
|
||||||
|
* for use in the OpenSSL Toolkit (http://www.openssl.org/)"
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
|
||||||
|
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
|
||||||
|
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||||
|
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||||
|
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||||
|
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
* ====================================================================
|
||||||
|
*
|
||||||
|
* This product includes cryptographic software written by Eric Young
|
||||||
|
* (eay@cryptsoft.com). This product includes software written by Tim
|
||||||
|
* Hudson (tjh@cryptsoft.com).
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
Original SSLeay License
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* This package is an SSL implementation written
|
||||||
|
* by Eric Young (eay@cryptsoft.com).
|
||||||
|
* The implementation was written so as to conform with Netscapes SSL.
|
||||||
|
*
|
||||||
|
* This library is free for commercial and non-commercial use as long as
|
||||||
|
* the following conditions are aheared to. The following conditions
|
||||||
|
* apply to all code found in this distribution, be it the RC4, RSA,
|
||||||
|
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
|
||||||
|
* included with this distribution is covered by the same copyright terms
|
||||||
|
* except that the holder is Tim Hudson (tjh@cryptsoft.com).
|
||||||
|
*
|
||||||
|
* Copyright remains Eric Young's, and as such any Copyright notices in
|
||||||
|
* the code are not to be removed.
|
||||||
|
* If this package is used in a product, Eric Young should be given attribution
|
||||||
|
* as the author of the parts of the library used.
|
||||||
|
* This can be in the form of a textual message at program startup or
|
||||||
|
* in documentation (online or textual) provided with the package.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
* 1. Redistributions of source code must retain the copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* 3. All advertising materials mentioning features or use of this software
|
||||||
|
* must display the following acknowledgement:
|
||||||
|
* "This product includes cryptographic software written by
|
||||||
|
* Eric Young (eay@cryptsoft.com)"
|
||||||
|
* The word 'cryptographic' can be left out if the rouines from the library
|
||||||
|
* being used are not cryptographic related :-).
|
||||||
|
* 4. If you include any Windows specific code (or a derivative thereof) from
|
||||||
|
* the apps directory (application code) you must include an acknowledgement:
|
||||||
|
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
|
||||||
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||||
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||||
|
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||||
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
|
* SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* The licence and distribution terms for any publically available version or
|
||||||
|
* derivative of this code cannot be changed. i.e. this code cannot simply be
|
||||||
|
* copied and put under another distribution licence
|
||||||
|
* [including the GNU Public Licence.]
|
||||||
|
*/
|
||||||
|
|
||||||
93
nginx-1.18.0/docs/PCRE.LICENCE
Normal file
93
nginx-1.18.0/docs/PCRE.LICENCE
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
PCRE LICENCE
|
||||||
|
------------
|
||||||
|
|
||||||
|
PCRE is a library of functions to support regular expressions whose syntax
|
||||||
|
and semantics are as close as possible to those of the Perl 5 language.
|
||||||
|
|
||||||
|
Release 8 of PCRE is distributed under the terms of the "BSD" licence, as
|
||||||
|
specified below. The documentation for PCRE, supplied in the "doc"
|
||||||
|
directory, is distributed under the same terms as the software itself. The data
|
||||||
|
in the testdata directory is not copyrighted and is in the public domain.
|
||||||
|
|
||||||
|
The basic library functions are written in C and are freestanding. Also
|
||||||
|
included in the distribution is a set of C++ wrapper functions, and a
|
||||||
|
just-in-time compiler that can be used to optimize pattern matching. These
|
||||||
|
are both optional features that can be omitted when the library is built.
|
||||||
|
|
||||||
|
|
||||||
|
THE BASIC LIBRARY FUNCTIONS
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
Written by: Philip Hazel
|
||||||
|
Email local part: ph10
|
||||||
|
Email domain: cam.ac.uk
|
||||||
|
|
||||||
|
University of Cambridge Computing Service,
|
||||||
|
Cambridge, England.
|
||||||
|
|
||||||
|
Copyright (c) 1997-2020 University of Cambridge
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
|
||||||
|
PCRE JUST-IN-TIME COMPILATION SUPPORT
|
||||||
|
-------------------------------------
|
||||||
|
|
||||||
|
Written by: Zoltan Herczeg
|
||||||
|
Email local part: hzmester
|
||||||
|
Email domain: freemail.hu
|
||||||
|
|
||||||
|
Copyright(c) 2010-2020 Zoltan Herczeg
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
|
||||||
|
STACK-LESS JUST-IN-TIME COMPILER
|
||||||
|
--------------------------------
|
||||||
|
|
||||||
|
Written by: Zoltan Herczeg
|
||||||
|
Email local part: hzmester
|
||||||
|
Email domain: freemail.hu
|
||||||
|
|
||||||
|
Copyright(c) 2009-2020 Zoltan Herczeg
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
|
||||||
|
THE C++ WRAPPER FUNCTIONS
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
Contributed by: Google Inc.
|
||||||
|
|
||||||
|
Copyright (c) 2007-2012, Google Inc.
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
|
||||||
|
THE "BSD" LICENCE
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer.
|
||||||
|
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in the
|
||||||
|
documentation and/or other materials provided with the distribution.
|
||||||
|
|
||||||
|
* Neither the name of the University of Cambridge nor the name of Google
|
||||||
|
Inc. nor the names of their contributors may be used to endorse or
|
||||||
|
promote products derived from this software without specific prior
|
||||||
|
written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
End
|
||||||
3
nginx-1.18.0/docs/README
Normal file
3
nginx-1.18.0/docs/README
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
|
||||||
|
Documentation is available at http://nginx.org
|
||||||
|
|
||||||
20
nginx-1.18.0/docs/zlib.LICENSE
Normal file
20
nginx-1.18.0/docs/zlib.LICENSE
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
(C) 1995-2017 Jean-loup Gailly and Mark Adler
|
||||||
|
|
||||||
|
This software is provided 'as-is', without any express or implied
|
||||||
|
warranty. In no event will the authors be held liable for any damages
|
||||||
|
arising from the use of this software.
|
||||||
|
|
||||||
|
Permission is granted to anyone to use this software for any purpose,
|
||||||
|
including commercial applications, and to alter it and redistribute it
|
||||||
|
freely, subject to the following restrictions:
|
||||||
|
|
||||||
|
1. The origin of this software must not be misrepresented; you must not
|
||||||
|
claim that you wrote the original software. If you use this software
|
||||||
|
in a product, an acknowledgment in the product documentation would be
|
||||||
|
appreciated but is not required.
|
||||||
|
2. Altered source versions must be plainly marked as such, and must not be
|
||||||
|
misrepresented as being the original software.
|
||||||
|
3. This notice may not be removed or altered from any source distribution.
|
||||||
|
|
||||||
|
Jean-loup Gailly Mark Adler
|
||||||
|
jloup@gzip.org madler@alumni.caltech.edu
|
||||||
21
nginx-1.18.0/html/50x.html
Normal file
21
nginx-1.18.0/html/50x.html
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Error</title>
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
width: 35em;
|
||||||
|
margin: 0 auto;
|
||||||
|
font-family: Tahoma, Verdana, Arial, sans-serif;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>An error occurred.</h1>
|
||||||
|
<p>Sorry, the page you are looking for is currently unavailable.<br/>
|
||||||
|
Please try again later.</p>
|
||||||
|
<p>If you are the system administrator of this resource then you should check
|
||||||
|
the error log for details.</p>
|
||||||
|
<p><em>Faithfully yours, nginx.</em></p>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
25
nginx-1.18.0/html/index.html
Normal file
25
nginx-1.18.0/html/index.html
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Welcome to nginx!</title>
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
width: 35em;
|
||||||
|
margin: 0 auto;
|
||||||
|
font-family: Tahoma, Verdana, Arial, sans-serif;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Welcome to nginx!</h1>
|
||||||
|
<p>If you see this page, the nginx web server is successfully installed and
|
||||||
|
working. Further configuration is required.</p>
|
||||||
|
|
||||||
|
<p>For online documentation and support please refer to
|
||||||
|
<a href="http://nginx.org/">nginx.org</a>.<br/>
|
||||||
|
Commercial support is available at
|
||||||
|
<a href="http://nginx.com/">nginx.com</a>.</p>
|
||||||
|
|
||||||
|
<p><em>Thank you for using nginx.</em></p>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
14710
nginx-1.18.0/logs/access.log
Normal file
14710
nginx-1.18.0/logs/access.log
Normal file
File diff suppressed because it is too large
Load Diff
2789
nginx-1.18.0/logs/error.log
Normal file
2789
nginx-1.18.0/logs/error.log
Normal file
File diff suppressed because it is too large
Load Diff
1
nginx-1.18.0/logs/nginx.pid
Normal file
1
nginx-1.18.0/logs/nginx.pid
Normal file
@ -0,0 +1 @@
|
|||||||
|
45532
|
||||||
BIN
nginx-1.18.0/nginx.exe
Normal file
BIN
nginx-1.18.0/nginx.exe
Normal file
Binary file not shown.
79
pom.xml
Normal file
79
pom.xml
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<parent>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-parent</artifactId>
|
||||||
|
<version>2.3.12.RELEASE</version>
|
||||||
|
<relativePath/> <!-- lookup parent from repository -->
|
||||||
|
</parent>
|
||||||
|
<groupId>com.hmdp</groupId>
|
||||||
|
<artifactId>hm-dianping</artifactId>
|
||||||
|
<version>0.0.1-SNAPSHOT</version>
|
||||||
|
<name>hm-dianping</name>
|
||||||
|
<description>Demo project for Spring Boot</description>
|
||||||
|
<properties>
|
||||||
|
<java.version>1.8</java.version>
|
||||||
|
</properties>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-data-redis</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.commons</groupId>
|
||||||
|
<artifactId>commons-pool2</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-web</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>mysql</groupId>
|
||||||
|
<artifactId>mysql-connector-java</artifactId>
|
||||||
|
<scope>runtime</scope>
|
||||||
|
<version>5.1.47</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
<optional>true</optional>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-test</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.baomidou</groupId>
|
||||||
|
<artifactId>mybatis-plus-boot-starter</artifactId>
|
||||||
|
<version>3.4.3</version>
|
||||||
|
</dependency>
|
||||||
|
<!--hutool-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.hutool</groupId>
|
||||||
|
<artifactId>hutool-all</artifactId>
|
||||||
|
<version>5.7.17</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<excludes>
|
||||||
|
<exclude>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
</exclude>
|
||||||
|
</excludes>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
|
||||||
|
</project>
|
||||||
15
src/main/java/com/hmdp/HmDianPingApplication.java
Normal file
15
src/main/java/com/hmdp/HmDianPingApplication.java
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
package com.hmdp;
|
||||||
|
|
||||||
|
import org.mybatis.spring.annotation.MapperScan;
|
||||||
|
import org.springframework.boot.SpringApplication;
|
||||||
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
|
|
||||||
|
@MapperScan("com.hmdp.mapper")
|
||||||
|
@SpringBootApplication
|
||||||
|
public class HmDianPingApplication {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
SpringApplication.run(HmDianPingApplication.class, args);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
23
src/main/java/com/hmdp/config/MvcConfig.java
Normal file
23
src/main/java/com/hmdp/config/MvcConfig.java
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
package com.hmdp.config;
|
||||||
|
|
||||||
|
import com.hmdp.utils.LoginInterceptor;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
||||||
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
public class MvcConfig implements WebMvcConfigurer {
|
||||||
|
@Override
|
||||||
|
public void addInterceptors(InterceptorRegistry registry) {
|
||||||
|
registry.addInterceptor(new LoginInterceptor())
|
||||||
|
.excludePathPatterns(
|
||||||
|
"/shop/**",
|
||||||
|
"/voucher/**",
|
||||||
|
"/shop-type/**",
|
||||||
|
"/upload/**",
|
||||||
|
"/blog/hot",
|
||||||
|
"/user/code",
|
||||||
|
"/user/login"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
17
src/main/java/com/hmdp/config/MybatisConfig.java
Normal file
17
src/main/java/com/hmdp/config/MybatisConfig.java
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
package com.hmdp.config;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.DbType;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
public class MybatisConfig {
|
||||||
|
@Bean
|
||||||
|
public MybatisPlusInterceptor mybatisPlusInterceptor() {
|
||||||
|
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
|
||||||
|
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
|
||||||
|
return interceptor;
|
||||||
|
}
|
||||||
|
}
|
||||||
17
src/main/java/com/hmdp/config/WebExceptionAdvice.java
Normal file
17
src/main/java/com/hmdp/config/WebExceptionAdvice.java
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
package com.hmdp.config;
|
||||||
|
|
||||||
|
import com.hmdp.dto.Result;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||||
|
import org.springframework.web.bind.annotation.RestControllerAdvice;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
@RestControllerAdvice
|
||||||
|
public class WebExceptionAdvice {
|
||||||
|
|
||||||
|
@ExceptionHandler(RuntimeException.class)
|
||||||
|
public Result handleRuntimeException(RuntimeException e) {
|
||||||
|
log.error(e.toString(), e);
|
||||||
|
return Result.fail("服务器异常");
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
package com.hmdp.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 前端控制器
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/blog-comments")
|
||||||
|
public class BlogCommentsController {
|
||||||
|
|
||||||
|
}
|
||||||
83
src/main/java/com/hmdp/controller/BlogController.java
Normal file
83
src/main/java/com/hmdp/controller/BlogController.java
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
package com.hmdp.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.hmdp.dto.Result;
|
||||||
|
import com.hmdp.dto.UserDTO;
|
||||||
|
import com.hmdp.entity.Blog;
|
||||||
|
import com.hmdp.entity.User;
|
||||||
|
import com.hmdp.service.IBlogService;
|
||||||
|
import com.hmdp.service.IUserService;
|
||||||
|
import com.hmdp.utils.SystemConstants;
|
||||||
|
import com.hmdp.utils.UserHolder;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 前端控制器
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/blog")
|
||||||
|
public class BlogController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IBlogService blogService;
|
||||||
|
@Resource
|
||||||
|
private IUserService userService;
|
||||||
|
|
||||||
|
@PostMapping
|
||||||
|
public Result saveBlog(@RequestBody Blog blog) {
|
||||||
|
// 获取登录用户
|
||||||
|
UserDTO user = UserHolder.getUser();
|
||||||
|
blog.setUserId(user.getId());
|
||||||
|
// 保存探店博文
|
||||||
|
blogService.save(blog);
|
||||||
|
// 返回id
|
||||||
|
return Result.ok(blog.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
@PutMapping("/like/{id}")
|
||||||
|
public Result likeBlog(@PathVariable("id") Long id) {
|
||||||
|
// 修改点赞数量
|
||||||
|
blogService.update()
|
||||||
|
.setSql("liked = liked + 1").eq("id", id).update();
|
||||||
|
return Result.ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/of/me")
|
||||||
|
public Result queryMyBlog(@RequestParam(value = "current", defaultValue = "1") Integer current) {
|
||||||
|
// 获取登录用户
|
||||||
|
UserDTO user = UserHolder.getUser();
|
||||||
|
// 根据用户查询
|
||||||
|
Page<Blog> page = blogService.query()
|
||||||
|
.eq("user_id", user.getId()).page(new Page<>(current, SystemConstants.MAX_PAGE_SIZE));
|
||||||
|
// 获取当前页数据
|
||||||
|
List<Blog> records = page.getRecords();
|
||||||
|
return Result.ok(records);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/hot")
|
||||||
|
public Result queryHotBlog(@RequestParam(value = "current", defaultValue = "1") Integer current) {
|
||||||
|
// 根据用户查询
|
||||||
|
Page<Blog> page = blogService.query()
|
||||||
|
.orderByDesc("liked")
|
||||||
|
.page(new Page<>(current, SystemConstants.MAX_PAGE_SIZE));
|
||||||
|
// 获取当前页数据
|
||||||
|
List<Blog> records = page.getRecords();
|
||||||
|
// 查询用户
|
||||||
|
records.forEach(blog ->{
|
||||||
|
Long userId = blog.getUserId();
|
||||||
|
User user = userService.getById(userId);
|
||||||
|
blog.setName(user.getNickName());
|
||||||
|
blog.setIcon(user.getIcon());
|
||||||
|
});
|
||||||
|
return Result.ok(records);
|
||||||
|
}
|
||||||
|
}
|
||||||
20
src/main/java/com/hmdp/controller/FollowController.java
Normal file
20
src/main/java/com/hmdp/controller/FollowController.java
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
package com.hmdp.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 前端控制器
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/follow")
|
||||||
|
public class FollowController {
|
||||||
|
|
||||||
|
}
|
||||||
101
src/main/java/com/hmdp/controller/ShopController.java
Normal file
101
src/main/java/com/hmdp/controller/ShopController.java
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
package com.hmdp.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.hmdp.dto.Result;
|
||||||
|
import com.hmdp.entity.Shop;
|
||||||
|
import com.hmdp.service.IShopService;
|
||||||
|
import com.hmdp.utils.SystemConstants;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 前端控制器
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/shop")
|
||||||
|
public class ShopController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
public IShopService shopService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据id查询商铺信息
|
||||||
|
* @param id 商铺id
|
||||||
|
* @return 商铺详情数据
|
||||||
|
*/
|
||||||
|
@GetMapping("/{id}")
|
||||||
|
public Result queryShopById(@PathVariable("id") Long id) {
|
||||||
|
return Result.ok(shopService.getById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增商铺信息
|
||||||
|
* @param shop 商铺数据
|
||||||
|
* @return 商铺id
|
||||||
|
*/
|
||||||
|
@PostMapping
|
||||||
|
public Result saveShop(@RequestBody Shop shop) {
|
||||||
|
// 写入数据库
|
||||||
|
shopService.save(shop);
|
||||||
|
// 返回店铺id
|
||||||
|
return Result.ok(shop.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新商铺信息
|
||||||
|
* @param shop 商铺数据
|
||||||
|
* @return 无
|
||||||
|
*/
|
||||||
|
@PutMapping
|
||||||
|
public Result updateShop(@RequestBody Shop shop) {
|
||||||
|
// 写入数据库
|
||||||
|
shopService.updateById(shop);
|
||||||
|
return Result.ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据商铺类型分页查询商铺信息
|
||||||
|
* @param typeId 商铺类型
|
||||||
|
* @param current 页码
|
||||||
|
* @return 商铺列表
|
||||||
|
*/
|
||||||
|
@GetMapping("/of/type")
|
||||||
|
public Result queryShopByType(
|
||||||
|
@RequestParam("typeId") Integer typeId,
|
||||||
|
@RequestParam(value = "current", defaultValue = "1") Integer current
|
||||||
|
) {
|
||||||
|
// 根据类型分页查询
|
||||||
|
Page<Shop> page = shopService.query()
|
||||||
|
.eq("type_id", typeId)
|
||||||
|
.page(new Page<>(current, SystemConstants.DEFAULT_PAGE_SIZE));
|
||||||
|
// 返回数据
|
||||||
|
return Result.ok(page.getRecords());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据商铺名称关键字分页查询商铺信息
|
||||||
|
* @param name 商铺名称关键字
|
||||||
|
* @param current 页码
|
||||||
|
* @return 商铺列表
|
||||||
|
*/
|
||||||
|
@GetMapping("/of/name")
|
||||||
|
public Result queryShopByName(
|
||||||
|
@RequestParam(value = "name", required = false) String name,
|
||||||
|
@RequestParam(value = "current", defaultValue = "1") Integer current
|
||||||
|
) {
|
||||||
|
// 根据类型分页查询
|
||||||
|
Page<Shop> page = shopService.query()
|
||||||
|
.like(StrUtil.isNotBlank(name), "name", name)
|
||||||
|
.page(new Page<>(current, SystemConstants.MAX_PAGE_SIZE));
|
||||||
|
// 返回数据
|
||||||
|
return Result.ok(page.getRecords());
|
||||||
|
}
|
||||||
|
}
|
||||||
34
src/main/java/com/hmdp/controller/ShopTypeController.java
Normal file
34
src/main/java/com/hmdp/controller/ShopTypeController.java
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
package com.hmdp.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import com.hmdp.dto.Result;
|
||||||
|
import com.hmdp.entity.ShopType;
|
||||||
|
import com.hmdp.service.IShopTypeService;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 前端控制器
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/shop-type")
|
||||||
|
public class ShopTypeController {
|
||||||
|
@Resource
|
||||||
|
private IShopTypeService typeService;
|
||||||
|
|
||||||
|
@GetMapping("list")
|
||||||
|
public Result queryTypeList() {
|
||||||
|
List<ShopType> typeList = typeService
|
||||||
|
.query().orderByAsc("sort").list();
|
||||||
|
return Result.ok(typeList);
|
||||||
|
}
|
||||||
|
}
|
||||||
63
src/main/java/com/hmdp/controller/UploadController.java
Normal file
63
src/main/java/com/hmdp/controller/UploadController.java
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
package com.hmdp.controller;
|
||||||
|
|
||||||
|
import cn.hutool.core.io.FileUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.hmdp.dto.Result;
|
||||||
|
import com.hmdp.utils.SystemConstants;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("upload")
|
||||||
|
public class UploadController {
|
||||||
|
|
||||||
|
@PostMapping("blog")
|
||||||
|
public Result uploadImage(@RequestParam("file") MultipartFile image) {
|
||||||
|
try {
|
||||||
|
// 获取原始文件名称
|
||||||
|
String originalFilename = image.getOriginalFilename();
|
||||||
|
// 生成新文件名
|
||||||
|
String fileName = createNewFileName(originalFilename);
|
||||||
|
// 保存文件
|
||||||
|
image.transferTo(new File(SystemConstants.IMAGE_UPLOAD_DIR, fileName));
|
||||||
|
// 返回结果
|
||||||
|
log.debug("文件上传成功,{}", fileName);
|
||||||
|
return Result.ok(fileName);
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new RuntimeException("文件上传失败", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/blog/delete")
|
||||||
|
public Result deleteBlogImg(@RequestParam("name") String filename) {
|
||||||
|
File file = new File(SystemConstants.IMAGE_UPLOAD_DIR, filename);
|
||||||
|
if (file.isDirectory()) {
|
||||||
|
return Result.fail("错误的文件名称");
|
||||||
|
}
|
||||||
|
FileUtil.del(file);
|
||||||
|
return Result.ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
private String createNewFileName(String originalFilename) {
|
||||||
|
// 获取后缀
|
||||||
|
String suffix = StrUtil.subAfter(originalFilename, ".", true);
|
||||||
|
// 生成目录
|
||||||
|
String name = UUID.randomUUID().toString();
|
||||||
|
int hash = name.hashCode();
|
||||||
|
int d1 = hash & 0xF;
|
||||||
|
int d2 = (hash >> 4) & 0xF;
|
||||||
|
// 判断目录是否存在
|
||||||
|
File dir = new File(SystemConstants.IMAGE_UPLOAD_DIR, StrUtil.format("/blogs/{}/{}", d1, d2));
|
||||||
|
if (!dir.exists()) {
|
||||||
|
dir.mkdirs();
|
||||||
|
}
|
||||||
|
// 生成文件名
|
||||||
|
return StrUtil.format("/blogs/{}/{}/{}.{}", d1, d2, name, suffix);
|
||||||
|
}
|
||||||
|
}
|
||||||
86
src/main/java/com/hmdp/controller/UserController.java
Normal file
86
src/main/java/com/hmdp/controller/UserController.java
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
package com.hmdp.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.hutool.core.util.RandomUtil;
|
||||||
|
import com.hmdp.dto.LoginFormDTO;
|
||||||
|
import com.hmdp.dto.Result;
|
||||||
|
import com.hmdp.dto.UserDTO;
|
||||||
|
import com.hmdp.entity.User;
|
||||||
|
import com.hmdp.entity.UserInfo;
|
||||||
|
import com.hmdp.service.IUserInfoService;
|
||||||
|
import com.hmdp.service.IUserService;
|
||||||
|
import com.hmdp.utils.RegexUtils;
|
||||||
|
import com.hmdp.utils.UserHolder;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import javax.servlet.http.HttpSession;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 前端控制器
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/user")
|
||||||
|
public class UserController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IUserService userService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IUserInfoService userInfoService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发送手机验证码
|
||||||
|
*/
|
||||||
|
@PostMapping("code")
|
||||||
|
public Result sendCode(@RequestParam("phone") String phone, HttpSession session) {
|
||||||
|
return userService.sendCode(phone, session);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 登录功能
|
||||||
|
* @param loginForm 登录参数,包含手机号、验证码;或者手机号、密码
|
||||||
|
*/
|
||||||
|
@PostMapping("/login")
|
||||||
|
public Result login(@RequestBody LoginFormDTO loginForm, HttpSession session){
|
||||||
|
return userService.login(loginForm, session);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 登出功能
|
||||||
|
* @return 无
|
||||||
|
*/
|
||||||
|
@PostMapping("/logout")
|
||||||
|
public Result logout(){
|
||||||
|
// TODO 实现登出功能
|
||||||
|
return Result.fail("功能未完成");
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/me")
|
||||||
|
public Result me(){
|
||||||
|
//获取当前登录的用户并返回
|
||||||
|
UserDTO user = UserHolder.getUser();
|
||||||
|
return Result.ok(user);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/info/{id}")
|
||||||
|
public Result info(@PathVariable("id") Long userId){
|
||||||
|
// 查询详情
|
||||||
|
UserInfo info = userInfoService.getById(userId);
|
||||||
|
if (info == null) {
|
||||||
|
// 没有详情,应该是第一次查看详情
|
||||||
|
return Result.ok();
|
||||||
|
}
|
||||||
|
info.setCreateTime(null);
|
||||||
|
info.setUpdateTime(null);
|
||||||
|
// 返回
|
||||||
|
return Result.ok(info);
|
||||||
|
}
|
||||||
|
}
|
||||||
57
src/main/java/com/hmdp/controller/VoucherController.java
Normal file
57
src/main/java/com/hmdp/controller/VoucherController.java
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
package com.hmdp.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import com.hmdp.dto.Result;
|
||||||
|
import com.hmdp.entity.Voucher;
|
||||||
|
import com.hmdp.service.IVoucherService;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 前端控制器
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/voucher")
|
||||||
|
public class VoucherController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IVoucherService voucherService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增普通券
|
||||||
|
* @param voucher 优惠券信息
|
||||||
|
* @return 优惠券id
|
||||||
|
*/
|
||||||
|
@PostMapping
|
||||||
|
public Result addVoucher(@RequestBody Voucher voucher) {
|
||||||
|
voucherService.save(voucher);
|
||||||
|
return Result.ok(voucher.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增秒杀券
|
||||||
|
* @param voucher 优惠券信息,包含秒杀信息
|
||||||
|
* @return 优惠券id
|
||||||
|
*/
|
||||||
|
@PostMapping("seckill")
|
||||||
|
public Result addSeckillVoucher(@RequestBody Voucher voucher) {
|
||||||
|
voucherService.addSeckillVoucher(voucher);
|
||||||
|
return Result.ok(voucher.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询店铺的优惠券列表
|
||||||
|
* @param shopId 店铺id
|
||||||
|
* @return 优惠券列表
|
||||||
|
*/
|
||||||
|
@GetMapping("/list/{shopId}")
|
||||||
|
public Result queryVoucherOfShop(@PathVariable("shopId") Long shopId) {
|
||||||
|
return voucherService.queryVoucherOfShop(shopId);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,25 @@
|
|||||||
|
package com.hmdp.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import com.hmdp.dto.Result;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 前端控制器
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/voucher-order")
|
||||||
|
public class VoucherOrderController {
|
||||||
|
@PostMapping("seckill/{id}")
|
||||||
|
public Result seckillVoucher(@PathVariable("id") Long voucherId) {
|
||||||
|
return Result.fail("功能未完成");
|
||||||
|
}
|
||||||
|
}
|
||||||
10
src/main/java/com/hmdp/dto/LoginFormDTO.java
Normal file
10
src/main/java/com/hmdp/dto/LoginFormDTO.java
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
package com.hmdp.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class LoginFormDTO {
|
||||||
|
private String phone;
|
||||||
|
private String code;
|
||||||
|
private String password;
|
||||||
|
}
|
||||||
30
src/main/java/com/hmdp/dto/Result.java
Normal file
30
src/main/java/com/hmdp/dto/Result.java
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
package com.hmdp.dto;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class Result {
|
||||||
|
private Boolean success;
|
||||||
|
private String errorMsg;
|
||||||
|
private Object data;
|
||||||
|
private Long total;
|
||||||
|
|
||||||
|
public static Result ok(){
|
||||||
|
return new Result(true, null, null, null);
|
||||||
|
}
|
||||||
|
public static Result ok(Object data){
|
||||||
|
return new Result(true, null, data, null);
|
||||||
|
}
|
||||||
|
public static Result ok(List<?> data, Long total){
|
||||||
|
return new Result(true, null, data, total);
|
||||||
|
}
|
||||||
|
public static Result fail(String errorMsg){
|
||||||
|
return new Result(false, errorMsg, null, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
12
src/main/java/com/hmdp/dto/ScrollResult.java
Normal file
12
src/main/java/com/hmdp/dto/ScrollResult.java
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
package com.hmdp.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class ScrollResult {
|
||||||
|
private List<?> list;
|
||||||
|
private Long minTime;
|
||||||
|
private Integer offset;
|
||||||
|
}
|
||||||
10
src/main/java/com/hmdp/dto/UserDTO.java
Normal file
10
src/main/java/com/hmdp/dto/UserDTO.java
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
package com.hmdp.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class UserDTO {
|
||||||
|
private Long id;
|
||||||
|
private String nickName;
|
||||||
|
private String icon;
|
||||||
|
}
|
||||||
95
src/main/java/com/hmdp/entity/Blog.java
Normal file
95
src/main/java/com/hmdp/entity/Blog.java
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
package com.hmdp.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@TableName("tb_blog")
|
||||||
|
public class Blog implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键
|
||||||
|
*/
|
||||||
|
@TableId(value = "id", type = IdType.AUTO)
|
||||||
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 商户id
|
||||||
|
*/
|
||||||
|
private Long shopId;
|
||||||
|
/**
|
||||||
|
* 用户id
|
||||||
|
*/
|
||||||
|
private Long userId;
|
||||||
|
/**
|
||||||
|
* 用户图标
|
||||||
|
*/
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String icon;
|
||||||
|
/**
|
||||||
|
* 用户姓名
|
||||||
|
*/
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String name;
|
||||||
|
/**
|
||||||
|
* 是否点赞过了
|
||||||
|
*/
|
||||||
|
@TableField(exist = false)
|
||||||
|
private Boolean isLike;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 标题
|
||||||
|
*/
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 探店的照片,最多9张,多张以","隔开
|
||||||
|
*/
|
||||||
|
private String images;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 探店的文字描述
|
||||||
|
*/
|
||||||
|
private String content;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 点赞数量
|
||||||
|
*/
|
||||||
|
private Integer liked;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 评论数量
|
||||||
|
*/
|
||||||
|
private Integer comments;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
81
src/main/java/com/hmdp/entity/BlogComments.java
Normal file
81
src/main/java/com/hmdp/entity/BlogComments.java
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
package com.hmdp.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@TableName("tb_blog_comments")
|
||||||
|
public class BlogComments implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键
|
||||||
|
*/
|
||||||
|
@TableId(value = "id", type = IdType.AUTO)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户id
|
||||||
|
*/
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 探店id
|
||||||
|
*/
|
||||||
|
private Long blogId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联的1级评论id,如果是一级评论,则值为0
|
||||||
|
*/
|
||||||
|
private Long parentId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 回复的评论id
|
||||||
|
*/
|
||||||
|
private Long answerId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 回复的内容
|
||||||
|
*/
|
||||||
|
private String content;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 点赞数
|
||||||
|
*/
|
||||||
|
private Integer liked;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 状态,0:正常,1:被举报,2:禁止查看
|
||||||
|
*/
|
||||||
|
private Boolean status;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
51
src/main/java/com/hmdp/entity/Follow.java
Normal file
51
src/main/java/com/hmdp/entity/Follow.java
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
package com.hmdp.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@TableName("tb_follow")
|
||||||
|
public class Follow implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键
|
||||||
|
*/
|
||||||
|
@TableId(value = "id", type = IdType.AUTO)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户id
|
||||||
|
*/
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联的用户id
|
||||||
|
*/
|
||||||
|
private Long followUserId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
61
src/main/java/com/hmdp/entity/SeckillVoucher.java
Normal file
61
src/main/java/com/hmdp/entity/SeckillVoucher.java
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
package com.hmdp.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 秒杀优惠券表,与优惠券是一对一关系
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2022-01-04
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@TableName("tb_seckill_voucher")
|
||||||
|
public class SeckillVoucher implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联的优惠券的id
|
||||||
|
*/
|
||||||
|
@TableId(value = "voucher_id", type = IdType.INPUT)
|
||||||
|
private Long voucherId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 库存
|
||||||
|
*/
|
||||||
|
private Integer stock;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生效时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime beginTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 失效时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime endTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
109
src/main/java/com/hmdp/entity/Shop.java
Normal file
109
src/main/java/com/hmdp/entity/Shop.java
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
package com.hmdp.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@TableName("tb_shop")
|
||||||
|
public class Shop implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键
|
||||||
|
*/
|
||||||
|
@TableId(value = "id", type = IdType.AUTO)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商铺名称
|
||||||
|
*/
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商铺类型的id
|
||||||
|
*/
|
||||||
|
private Long typeId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商铺图片,多个图片以','隔开
|
||||||
|
*/
|
||||||
|
private String images;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商圈,例如陆家嘴
|
||||||
|
*/
|
||||||
|
private String area;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 地址
|
||||||
|
*/
|
||||||
|
private String address;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 经度
|
||||||
|
*/
|
||||||
|
private Double x;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 维度
|
||||||
|
*/
|
||||||
|
private Double y;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 均价,取整数
|
||||||
|
*/
|
||||||
|
private Long avgPrice;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 销量
|
||||||
|
*/
|
||||||
|
private Integer sold;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 评论数量
|
||||||
|
*/
|
||||||
|
private Integer comments;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 评分,1~5分,乘10保存,避免小数
|
||||||
|
*/
|
||||||
|
private Integer score;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 营业时间,例如 10:00-22:00
|
||||||
|
*/
|
||||||
|
private String openHours;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
private Double distance;
|
||||||
|
}
|
||||||
64
src/main/java/com/hmdp/entity/ShopType.java
Normal file
64
src/main/java/com/hmdp/entity/ShopType.java
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
package com.hmdp.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@TableName("tb_shop_type")
|
||||||
|
public class ShopType implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键
|
||||||
|
*/
|
||||||
|
@TableId(value = "id", type = IdType.AUTO)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 类型名称
|
||||||
|
*/
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 图标
|
||||||
|
*/
|
||||||
|
private String icon;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 顺序
|
||||||
|
*/
|
||||||
|
private Integer sort;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
@JsonIgnore
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新时间
|
||||||
|
*/
|
||||||
|
@JsonIgnore
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
66
src/main/java/com/hmdp/entity/User.java
Normal file
66
src/main/java/com/hmdp/entity/User.java
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
package com.hmdp.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@TableName("tb_user")
|
||||||
|
public class User implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键
|
||||||
|
*/
|
||||||
|
@TableId(value = "id", type = IdType.AUTO)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手机号码
|
||||||
|
*/
|
||||||
|
private String phone;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 密码,加密存储
|
||||||
|
*/
|
||||||
|
private String password;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 昵称,默认是随机字符
|
||||||
|
*/
|
||||||
|
private String nickName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户头像
|
||||||
|
*/
|
||||||
|
private String icon = "";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
87
src/main/java/com/hmdp/entity/UserInfo.java
Normal file
87
src/main/java/com/hmdp/entity/UserInfo.java
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
package com.hmdp.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-24
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@TableName("tb_user_info")
|
||||||
|
public class UserInfo implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键,用户id
|
||||||
|
*/
|
||||||
|
@TableId(value = "user_id", type = IdType.AUTO)
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 城市名称
|
||||||
|
*/
|
||||||
|
private String city;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 个人介绍,不要超过128个字符
|
||||||
|
*/
|
||||||
|
private String introduce;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 粉丝数量
|
||||||
|
*/
|
||||||
|
private Integer fans;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关注的人的数量
|
||||||
|
*/
|
||||||
|
private Integer followee;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 性别,0:男,1:女
|
||||||
|
*/
|
||||||
|
private Boolean gender;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生日
|
||||||
|
*/
|
||||||
|
private LocalDate birthday;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 积分
|
||||||
|
*/
|
||||||
|
private Integer credits;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 会员级别,0~9级,0代表未开通会员
|
||||||
|
*/
|
||||||
|
private Boolean level;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
105
src/main/java/com/hmdp/entity/Voucher.java
Normal file
105
src/main/java/com/hmdp/entity/Voucher.java
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
package com.hmdp.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@TableName("tb_voucher")
|
||||||
|
public class Voucher implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键
|
||||||
|
*/
|
||||||
|
@TableId(value = "id", type = IdType.AUTO)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商铺id
|
||||||
|
*/
|
||||||
|
private Long shopId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 代金券标题
|
||||||
|
*/
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 副标题
|
||||||
|
*/
|
||||||
|
private String subTitle;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 使用规则
|
||||||
|
*/
|
||||||
|
private String rules;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 支付金额
|
||||||
|
*/
|
||||||
|
private Long payValue;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 抵扣金额
|
||||||
|
*/
|
||||||
|
private Long actualValue;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 优惠券类型
|
||||||
|
*/
|
||||||
|
private Integer type;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 优惠券类型
|
||||||
|
*/
|
||||||
|
private Integer status;
|
||||||
|
/**
|
||||||
|
* 库存
|
||||||
|
*/
|
||||||
|
@TableField(exist = false)
|
||||||
|
private Integer stock;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生效时间
|
||||||
|
*/
|
||||||
|
@TableField(exist = false)
|
||||||
|
private LocalDateTime beginTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 失效时间
|
||||||
|
*/
|
||||||
|
@TableField(exist = false)
|
||||||
|
private LocalDateTime endTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
81
src/main/java/com/hmdp/entity/VoucherOrder.java
Normal file
81
src/main/java/com/hmdp/entity/VoucherOrder.java
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
package com.hmdp.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@TableName("tb_voucher_order")
|
||||||
|
public class VoucherOrder implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键
|
||||||
|
*/
|
||||||
|
@TableId(value = "id", type = IdType.INPUT)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 下单的用户id
|
||||||
|
*/
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 购买的代金券id
|
||||||
|
*/
|
||||||
|
private Long voucherId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 支付方式 1:余额支付;2:支付宝;3:微信
|
||||||
|
*/
|
||||||
|
private Integer payType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单状态,1:未支付;2:已支付;3:已核销;4:已取消;5:退款中;6:已退款
|
||||||
|
*/
|
||||||
|
private Integer status;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 下单时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 支付时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime payTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 核销时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime useTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 退款时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime refundTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
16
src/main/java/com/hmdp/mapper/BlogCommentsMapper.java
Normal file
16
src/main/java/com/hmdp/mapper/BlogCommentsMapper.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package com.hmdp.mapper;
|
||||||
|
|
||||||
|
import com.hmdp.entity.BlogComments;
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
public interface BlogCommentsMapper extends BaseMapper<BlogComments> {
|
||||||
|
|
||||||
|
}
|
||||||
16
src/main/java/com/hmdp/mapper/BlogMapper.java
Normal file
16
src/main/java/com/hmdp/mapper/BlogMapper.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package com.hmdp.mapper;
|
||||||
|
|
||||||
|
import com.hmdp.entity.Blog;
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
public interface BlogMapper extends BaseMapper<Blog> {
|
||||||
|
|
||||||
|
}
|
||||||
16
src/main/java/com/hmdp/mapper/FollowMapper.java
Normal file
16
src/main/java/com/hmdp/mapper/FollowMapper.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package com.hmdp.mapper;
|
||||||
|
|
||||||
|
import com.hmdp.entity.Follow;
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
public interface FollowMapper extends BaseMapper<Follow> {
|
||||||
|
|
||||||
|
}
|
||||||
16
src/main/java/com/hmdp/mapper/SeckillVoucherMapper.java
Normal file
16
src/main/java/com/hmdp/mapper/SeckillVoucherMapper.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package com.hmdp.mapper;
|
||||||
|
|
||||||
|
import com.hmdp.entity.SeckillVoucher;
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 秒杀优惠券表,与优惠券是一对一关系 Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2022-01-04
|
||||||
|
*/
|
||||||
|
public interface SeckillVoucherMapper extends BaseMapper<SeckillVoucher> {
|
||||||
|
|
||||||
|
}
|
||||||
16
src/main/java/com/hmdp/mapper/ShopMapper.java
Normal file
16
src/main/java/com/hmdp/mapper/ShopMapper.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package com.hmdp.mapper;
|
||||||
|
|
||||||
|
import com.hmdp.entity.Shop;
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
public interface ShopMapper extends BaseMapper<Shop> {
|
||||||
|
|
||||||
|
}
|
||||||
16
src/main/java/com/hmdp/mapper/ShopTypeMapper.java
Normal file
16
src/main/java/com/hmdp/mapper/ShopTypeMapper.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package com.hmdp.mapper;
|
||||||
|
|
||||||
|
import com.hmdp.entity.ShopType;
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
public interface ShopTypeMapper extends BaseMapper<ShopType> {
|
||||||
|
|
||||||
|
}
|
||||||
16
src/main/java/com/hmdp/mapper/UserInfoMapper.java
Normal file
16
src/main/java/com/hmdp/mapper/UserInfoMapper.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package com.hmdp.mapper;
|
||||||
|
|
||||||
|
import com.hmdp.entity.UserInfo;
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-24
|
||||||
|
*/
|
||||||
|
public interface UserInfoMapper extends BaseMapper<UserInfo> {
|
||||||
|
|
||||||
|
}
|
||||||
16
src/main/java/com/hmdp/mapper/UserMapper.java
Normal file
16
src/main/java/com/hmdp/mapper/UserMapper.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package com.hmdp.mapper;
|
||||||
|
|
||||||
|
import com.hmdp.entity.User;
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
public interface UserMapper extends BaseMapper<User> {
|
||||||
|
|
||||||
|
}
|
||||||
20
src/main/java/com/hmdp/mapper/VoucherMapper.java
Normal file
20
src/main/java/com/hmdp/mapper/VoucherMapper.java
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
package com.hmdp.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.hmdp.entity.Voucher;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
public interface VoucherMapper extends BaseMapper<Voucher> {
|
||||||
|
|
||||||
|
List<Voucher> queryVoucherOfShop(@Param("shopId") Long shopId);
|
||||||
|
}
|
||||||
16
src/main/java/com/hmdp/mapper/VoucherOrderMapper.java
Normal file
16
src/main/java/com/hmdp/mapper/VoucherOrderMapper.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package com.hmdp.mapper;
|
||||||
|
|
||||||
|
import com.hmdp.entity.VoucherOrder;
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
public interface VoucherOrderMapper extends BaseMapper<VoucherOrder> {
|
||||||
|
|
||||||
|
}
|
||||||
16
src/main/java/com/hmdp/service/IBlogCommentsService.java
Normal file
16
src/main/java/com/hmdp/service/IBlogCommentsService.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package com.hmdp.service;
|
||||||
|
|
||||||
|
import com.hmdp.entity.BlogComments;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
public interface IBlogCommentsService extends IService<BlogComments> {
|
||||||
|
|
||||||
|
}
|
||||||
16
src/main/java/com/hmdp/service/IBlogService.java
Normal file
16
src/main/java/com/hmdp/service/IBlogService.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package com.hmdp.service;
|
||||||
|
|
||||||
|
import com.hmdp.entity.Blog;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
public interface IBlogService extends IService<Blog> {
|
||||||
|
|
||||||
|
}
|
||||||
16
src/main/java/com/hmdp/service/IFollowService.java
Normal file
16
src/main/java/com/hmdp/service/IFollowService.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package com.hmdp.service;
|
||||||
|
|
||||||
|
import com.hmdp.entity.Follow;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
public interface IFollowService extends IService<Follow> {
|
||||||
|
|
||||||
|
}
|
||||||
16
src/main/java/com/hmdp/service/ISeckillVoucherService.java
Normal file
16
src/main/java/com/hmdp/service/ISeckillVoucherService.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package com.hmdp.service;
|
||||||
|
|
||||||
|
import com.hmdp.entity.SeckillVoucher;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 秒杀优惠券表,与优惠券是一对一关系 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2022-01-04
|
||||||
|
*/
|
||||||
|
public interface ISeckillVoucherService extends IService<SeckillVoucher> {
|
||||||
|
|
||||||
|
}
|
||||||
16
src/main/java/com/hmdp/service/IShopService.java
Normal file
16
src/main/java/com/hmdp/service/IShopService.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package com.hmdp.service;
|
||||||
|
|
||||||
|
import com.hmdp.entity.Shop;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
public interface IShopService extends IService<Shop> {
|
||||||
|
|
||||||
|
}
|
||||||
16
src/main/java/com/hmdp/service/IShopTypeService.java
Normal file
16
src/main/java/com/hmdp/service/IShopTypeService.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package com.hmdp.service;
|
||||||
|
|
||||||
|
import com.hmdp.entity.ShopType;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
public interface IShopTypeService extends IService<ShopType> {
|
||||||
|
|
||||||
|
}
|
||||||
16
src/main/java/com/hmdp/service/IUserInfoService.java
Normal file
16
src/main/java/com/hmdp/service/IUserInfoService.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package com.hmdp.service;
|
||||||
|
|
||||||
|
import com.hmdp.entity.UserInfo;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-24
|
||||||
|
*/
|
||||||
|
public interface IUserInfoService extends IService<UserInfo> {
|
||||||
|
|
||||||
|
}
|
||||||
23
src/main/java/com/hmdp/service/IUserService.java
Normal file
23
src/main/java/com/hmdp/service/IUserService.java
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
package com.hmdp.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.hmdp.dto.LoginFormDTO;
|
||||||
|
import com.hmdp.dto.Result;
|
||||||
|
import com.hmdp.entity.User;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpSession;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
public interface IUserService extends IService<User> {
|
||||||
|
|
||||||
|
Result sendCode(String phone, HttpSession session);
|
||||||
|
|
||||||
|
Result login(LoginFormDTO loginForm, HttpSession session);
|
||||||
|
}
|
||||||
16
src/main/java/com/hmdp/service/IVoucherOrderService.java
Normal file
16
src/main/java/com/hmdp/service/IVoucherOrderService.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package com.hmdp.service;
|
||||||
|
|
||||||
|
import com.hmdp.entity.VoucherOrder;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
public interface IVoucherOrderService extends IService<VoucherOrder> {
|
||||||
|
|
||||||
|
}
|
||||||
20
src/main/java/com/hmdp/service/IVoucherService.java
Normal file
20
src/main/java/com/hmdp/service/IVoucherService.java
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
package com.hmdp.service;
|
||||||
|
|
||||||
|
import com.hmdp.dto.Result;
|
||||||
|
import com.hmdp.entity.Voucher;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
public interface IVoucherService extends IService<Voucher> {
|
||||||
|
|
||||||
|
Result queryVoucherOfShop(Long shopId);
|
||||||
|
|
||||||
|
void addSeckillVoucher(Voucher voucher);
|
||||||
|
}
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
package com.hmdp.service.impl;
|
||||||
|
|
||||||
|
import com.hmdp.entity.BlogComments;
|
||||||
|
import com.hmdp.mapper.BlogCommentsMapper;
|
||||||
|
import com.hmdp.service.IBlogCommentsService;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class BlogCommentsServiceImpl extends ServiceImpl<BlogCommentsMapper, BlogComments> implements IBlogCommentsService {
|
||||||
|
|
||||||
|
}
|
||||||
20
src/main/java/com/hmdp/service/impl/BlogServiceImpl.java
Normal file
20
src/main/java/com/hmdp/service/impl/BlogServiceImpl.java
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
package com.hmdp.service.impl;
|
||||||
|
|
||||||
|
import com.hmdp.entity.Blog;
|
||||||
|
import com.hmdp.mapper.BlogMapper;
|
||||||
|
import com.hmdp.service.IBlogService;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IBlogService {
|
||||||
|
|
||||||
|
}
|
||||||
20
src/main/java/com/hmdp/service/impl/FollowServiceImpl.java
Normal file
20
src/main/java/com/hmdp/service/impl/FollowServiceImpl.java
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
package com.hmdp.service.impl;
|
||||||
|
|
||||||
|
import com.hmdp.entity.Follow;
|
||||||
|
import com.hmdp.mapper.FollowMapper;
|
||||||
|
import com.hmdp.service.IFollowService;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class FollowServiceImpl extends ServiceImpl<FollowMapper, Follow> implements IFollowService {
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
package com.hmdp.service.impl;
|
||||||
|
|
||||||
|
import com.hmdp.entity.SeckillVoucher;
|
||||||
|
import com.hmdp.mapper.SeckillVoucherMapper;
|
||||||
|
import com.hmdp.service.ISeckillVoucherService;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 秒杀优惠券表,与优惠券是一对一关系 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2022-01-04
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class SeckillVoucherServiceImpl extends ServiceImpl<SeckillVoucherMapper, SeckillVoucher> implements ISeckillVoucherService {
|
||||||
|
|
||||||
|
}
|
||||||
20
src/main/java/com/hmdp/service/impl/ShopServiceImpl.java
Normal file
20
src/main/java/com/hmdp/service/impl/ShopServiceImpl.java
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
package com.hmdp.service.impl;
|
||||||
|
|
||||||
|
import com.hmdp.entity.Shop;
|
||||||
|
import com.hmdp.mapper.ShopMapper;
|
||||||
|
import com.hmdp.service.IShopService;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class ShopServiceImpl extends ServiceImpl<ShopMapper, Shop> implements IShopService {
|
||||||
|
|
||||||
|
}
|
||||||
20
src/main/java/com/hmdp/service/impl/ShopTypeServiceImpl.java
Normal file
20
src/main/java/com/hmdp/service/impl/ShopTypeServiceImpl.java
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
package com.hmdp.service.impl;
|
||||||
|
|
||||||
|
import com.hmdp.entity.ShopType;
|
||||||
|
import com.hmdp.mapper.ShopTypeMapper;
|
||||||
|
import com.hmdp.service.IShopTypeService;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class ShopTypeServiceImpl extends ServiceImpl<ShopTypeMapper, ShopType> implements IShopTypeService {
|
||||||
|
|
||||||
|
}
|
||||||
20
src/main/java/com/hmdp/service/impl/UserInfoServiceImpl.java
Normal file
20
src/main/java/com/hmdp/service/impl/UserInfoServiceImpl.java
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
package com.hmdp.service.impl;
|
||||||
|
|
||||||
|
import com.hmdp.entity.UserInfo;
|
||||||
|
import com.hmdp.mapper.UserInfoMapper;
|
||||||
|
import com.hmdp.service.IUserInfoService;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-24
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo> implements IUserInfoService {
|
||||||
|
|
||||||
|
}
|
||||||
73
src/main/java/com/hmdp/service/impl/UserServiceImpl.java
Normal file
73
src/main/java/com/hmdp/service/impl/UserServiceImpl.java
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
package com.hmdp.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.RandomUtil;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.hmdp.dto.LoginFormDTO;
|
||||||
|
import com.hmdp.dto.Result;
|
||||||
|
import com.hmdp.entity.User;
|
||||||
|
import com.hmdp.mapper.UserMapper;
|
||||||
|
import com.hmdp.service.IUserService;
|
||||||
|
import com.hmdp.utils.RegexUtils;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpSession;
|
||||||
|
|
||||||
|
import static com.hmdp.utils.SystemConstants.USER_NICK_NAME_PREFIX;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Service
|
||||||
|
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Result sendCode(String phone, HttpSession session) {
|
||||||
|
// 校验手机号是否合格
|
||||||
|
if(RegexUtils.isPhoneInvalid(phone)){
|
||||||
|
return Result.fail("手机号格式错误");
|
||||||
|
}
|
||||||
|
// 合格生成验证码
|
||||||
|
String code = RandomUtil.randomNumbers(6);
|
||||||
|
// 保存到session
|
||||||
|
session.setAttribute("code",code);
|
||||||
|
// 发送验证码
|
||||||
|
log.debug("发送验证码成功,验证码为:{}",code);
|
||||||
|
return Result.ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Result login(LoginFormDTO loginForm, HttpSession session) {
|
||||||
|
// 校验手机号是否合格
|
||||||
|
String phone = loginForm.getPhone();
|
||||||
|
if(RegexUtils.isPhoneInvalid(phone)){
|
||||||
|
return Result.fail("手机号格式错误");
|
||||||
|
}
|
||||||
|
// 获取loginForm中的code对比session中的
|
||||||
|
String code = loginForm.getCode();
|
||||||
|
if(code == null || !code.equals(session.getAttribute("code"))){
|
||||||
|
return Result.fail("验证码错误");
|
||||||
|
}
|
||||||
|
// 判断用户是否存在,存在存到session,不存在创建用户
|
||||||
|
User user = query().eq("phone", phone).one();
|
||||||
|
if (user == null){
|
||||||
|
user = saveUserByPhone(phone);
|
||||||
|
save(user);
|
||||||
|
}
|
||||||
|
session.setAttribute("user",user);
|
||||||
|
return Result.ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
private User saveUserByPhone(String phone) {
|
||||||
|
User user = new User();
|
||||||
|
user.setPhone(phone);
|
||||||
|
user.setNickName(USER_NICK_NAME_PREFIX+RandomUtil.randomString(10));
|
||||||
|
return user;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
package com.hmdp.service.impl;
|
||||||
|
|
||||||
|
import com.hmdp.entity.VoucherOrder;
|
||||||
|
import com.hmdp.mapper.VoucherOrderMapper;
|
||||||
|
import com.hmdp.service.IVoucherOrderService;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class VoucherOrderServiceImpl extends ServiceImpl<VoucherOrderMapper, VoucherOrder> implements IVoucherOrderService {
|
||||||
|
|
||||||
|
}
|
||||||
51
src/main/java/com/hmdp/service/impl/VoucherServiceImpl.java
Normal file
51
src/main/java/com/hmdp/service/impl/VoucherServiceImpl.java
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
package com.hmdp.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.hmdp.dto.Result;
|
||||||
|
import com.hmdp.entity.Voucher;
|
||||||
|
import com.hmdp.mapper.VoucherMapper;
|
||||||
|
import com.hmdp.entity.SeckillVoucher;
|
||||||
|
import com.hmdp.service.ISeckillVoucherService;
|
||||||
|
import com.hmdp.service.IVoucherService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 虎哥
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class VoucherServiceImpl extends ServiceImpl<VoucherMapper, Voucher> implements IVoucherService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ISeckillVoucherService seckillVoucherService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Result queryVoucherOfShop(Long shopId) {
|
||||||
|
// 查询优惠券信息
|
||||||
|
List<Voucher> vouchers = getBaseMapper().queryVoucherOfShop(shopId);
|
||||||
|
// 返回结果
|
||||||
|
return Result.ok(vouchers);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public void addSeckillVoucher(Voucher voucher) {
|
||||||
|
// 保存优惠券
|
||||||
|
save(voucher);
|
||||||
|
// 保存秒杀信息
|
||||||
|
SeckillVoucher seckillVoucher = new SeckillVoucher();
|
||||||
|
seckillVoucher.setVoucherId(voucher.getId());
|
||||||
|
seckillVoucher.setStock(voucher.getStock());
|
||||||
|
seckillVoucher.setBeginTime(voucher.getBeginTime());
|
||||||
|
seckillVoucher.setEndTime(voucher.getEndTime());
|
||||||
|
seckillVoucherService.save(seckillVoucher);
|
||||||
|
}
|
||||||
|
}
|
||||||
27
src/main/java/com/hmdp/utils/LoginInterceptor.java
Normal file
27
src/main/java/com/hmdp/utils/LoginInterceptor.java
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
package com.hmdp.utils;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import com.hmdp.dto.UserDTO;
|
||||||
|
import com.hmdp.entity.User;
|
||||||
|
import org.springframework.web.servlet.HandlerInterceptor;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import javax.servlet.http.HttpSession;
|
||||||
|
|
||||||
|
public class LoginInterceptor implements HandlerInterceptor {
|
||||||
|
@Override
|
||||||
|
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
||||||
|
HttpSession session = request.getSession();
|
||||||
|
User user = (User) session.getAttribute("user");
|
||||||
|
if (user == null) {
|
||||||
|
response.setStatus(401);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
// 将user信息保存到线程中
|
||||||
|
UserDTO userDTO = new UserDTO();
|
||||||
|
BeanUtil.copyProperties(user, userDTO);
|
||||||
|
UserHolder.saveUser(userDTO);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
34
src/main/java/com/hmdp/utils/PasswordEncoder.java
Normal file
34
src/main/java/com/hmdp/utils/PasswordEncoder.java
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
package com.hmdp.utils;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.hutool.core.util.RandomUtil;
|
||||||
|
import org.springframework.util.DigestUtils;
|
||||||
|
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
|
||||||
|
public class PasswordEncoder {
|
||||||
|
|
||||||
|
public static String encode(String password) {
|
||||||
|
// 生成盐
|
||||||
|
String salt = RandomUtil.randomString(20);
|
||||||
|
// 加密
|
||||||
|
return encode(password,salt);
|
||||||
|
}
|
||||||
|
private static String encode(String password, String salt) {
|
||||||
|
// 加密
|
||||||
|
return salt + "@" + DigestUtils.md5DigestAsHex((password + salt).getBytes(StandardCharsets.UTF_8));
|
||||||
|
}
|
||||||
|
public static Boolean matches(String encodedPassword, String rawPassword) {
|
||||||
|
if (encodedPassword == null || rawPassword == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if(!encodedPassword.contains("@")){
|
||||||
|
throw new RuntimeException("密码格式不正确!");
|
||||||
|
}
|
||||||
|
String[] arr = encodedPassword.split("@");
|
||||||
|
// 获取盐
|
||||||
|
String salt = arr[0];
|
||||||
|
// 比较
|
||||||
|
return encodedPassword.equals(encode(rawPassword, salt));
|
||||||
|
}
|
||||||
|
}
|
||||||
22
src/main/java/com/hmdp/utils/RedisConstants.java
Normal file
22
src/main/java/com/hmdp/utils/RedisConstants.java
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
package com.hmdp.utils;
|
||||||
|
|
||||||
|
public class RedisConstants {
|
||||||
|
public static final String LOGIN_CODE_KEY = "login:code:";
|
||||||
|
public static final Long LOGIN_CODE_TTL = 2L;
|
||||||
|
public static final String LOGIN_USER_KEY = "login:token:";
|
||||||
|
public static final Long LOGIN_USER_TTL = 36000L;
|
||||||
|
|
||||||
|
public static final Long CACHE_NULL_TTL = 2L;
|
||||||
|
|
||||||
|
public static final Long CACHE_SHOP_TTL = 30L;
|
||||||
|
public static final String CACHE_SHOP_KEY = "cache:shop:";
|
||||||
|
|
||||||
|
public static final String LOCK_SHOP_KEY = "lock:shop:";
|
||||||
|
public static final Long LOCK_SHOP_TTL = 10L;
|
||||||
|
|
||||||
|
public static final String SECKILL_STOCK_KEY = "seckill:stock:";
|
||||||
|
public static final String BLOG_LIKED_KEY = "blog:liked:";
|
||||||
|
public static final String FEED_KEY = "feed:";
|
||||||
|
public static final String SHOP_GEO_KEY = "shop:geo:";
|
||||||
|
public static final String USER_SIGN_KEY = "sign:";
|
||||||
|
}
|
||||||
11
src/main/java/com/hmdp/utils/RedisData.java
Normal file
11
src/main/java/com/hmdp/utils/RedisData.java
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
package com.hmdp.utils;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class RedisData {
|
||||||
|
private LocalDateTime expireTime;
|
||||||
|
private Object data;
|
||||||
|
}
|
||||||
24
src/main/java/com/hmdp/utils/RegexPatterns.java
Normal file
24
src/main/java/com/hmdp/utils/RegexPatterns.java
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
package com.hmdp.utils;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author 虎哥
|
||||||
|
*/
|
||||||
|
public abstract class RegexPatterns {
|
||||||
|
/**
|
||||||
|
* 手机号正则
|
||||||
|
*/
|
||||||
|
public static final String PHONE_REGEX = "^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\\d{8}$";
|
||||||
|
/**
|
||||||
|
* 邮箱正则
|
||||||
|
*/
|
||||||
|
public static final String EMAIL_REGEX = "^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$";
|
||||||
|
/**
|
||||||
|
* 密码正则。4~32位的字母、数字、下划线
|
||||||
|
*/
|
||||||
|
public static final String PASSWORD_REGEX = "^\\w{4,32}$";
|
||||||
|
/**
|
||||||
|
* 验证码正则, 6位数字或字母
|
||||||
|
*/
|
||||||
|
public static final String VERIFY_CODE_REGEX = "^[a-zA-Z\\d]{6}$";
|
||||||
|
|
||||||
|
}
|
||||||
42
src/main/java/com/hmdp/utils/RegexUtils.java
Normal file
42
src/main/java/com/hmdp/utils/RegexUtils.java
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
package com.hmdp.utils;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author 虎哥
|
||||||
|
*/
|
||||||
|
public class RegexUtils {
|
||||||
|
/**
|
||||||
|
* 是否是无效手机格式
|
||||||
|
* @param phone 要校验的手机号
|
||||||
|
* @return true:符合,false:不符合
|
||||||
|
*/
|
||||||
|
public static boolean isPhoneInvalid(String phone){
|
||||||
|
return mismatch(phone, RegexPatterns.PHONE_REGEX);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 是否是无效邮箱格式
|
||||||
|
* @param email 要校验的邮箱
|
||||||
|
* @return true:符合,false:不符合
|
||||||
|
*/
|
||||||
|
public static boolean isEmailInvalid(String email){
|
||||||
|
return mismatch(email, RegexPatterns.EMAIL_REGEX);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否是无效验证码格式
|
||||||
|
* @param code 要校验的验证码
|
||||||
|
* @return true:符合,false:不符合
|
||||||
|
*/
|
||||||
|
public static boolean isCodeInvalid(String code){
|
||||||
|
return mismatch(code, RegexPatterns.VERIFY_CODE_REGEX);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 校验是否不符合正则格式
|
||||||
|
private static boolean mismatch(String str, String regex){
|
||||||
|
if (StrUtil.isBlank(str)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return !str.matches(regex);
|
||||||
|
}
|
||||||
|
}
|
||||||
8
src/main/java/com/hmdp/utils/SystemConstants.java
Normal file
8
src/main/java/com/hmdp/utils/SystemConstants.java
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
package com.hmdp.utils;
|
||||||
|
|
||||||
|
public class SystemConstants {
|
||||||
|
public static final String IMAGE_UPLOAD_DIR = "D:\\lesson\\nginx-1.18.0\\html\\hmdp\\imgs\\";
|
||||||
|
public static final String USER_NICK_NAME_PREFIX = "user_";
|
||||||
|
public static final int DEFAULT_PAGE_SIZE = 5;
|
||||||
|
public static final int MAX_PAGE_SIZE = 10;
|
||||||
|
}
|
||||||
21
src/main/java/com/hmdp/utils/UserHolder.java
Normal file
21
src/main/java/com/hmdp/utils/UserHolder.java
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
package com.hmdp.utils;
|
||||||
|
|
||||||
|
|
||||||
|
import com.hmdp.dto.UserDTO;
|
||||||
|
import com.hmdp.entity.User;
|
||||||
|
|
||||||
|
public class UserHolder {
|
||||||
|
private static final ThreadLocal<UserDTO> tl = new ThreadLocal<>();
|
||||||
|
|
||||||
|
public static void saveUser(UserDTO user){
|
||||||
|
tl.set(user);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static UserDTO getUser(){
|
||||||
|
return tl.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void removeUser(){
|
||||||
|
tl.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
27
src/main/resources/application.yaml
Normal file
27
src/main/resources/application.yaml
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
server:
|
||||||
|
port: 8081
|
||||||
|
spring:
|
||||||
|
application:
|
||||||
|
name: hmdp
|
||||||
|
datasource:
|
||||||
|
driver-class-name: com.mysql.jdbc.Driver
|
||||||
|
url: jdbc:mysql://127.0.0.1:3307/hmdp?useSSL=false&serverTimezone=UTC
|
||||||
|
username: root
|
||||||
|
password: 123456
|
||||||
|
redis:
|
||||||
|
host: localhost
|
||||||
|
port: 6379
|
||||||
|
password: ningzaichun
|
||||||
|
lettuce:
|
||||||
|
pool:
|
||||||
|
max-active: 10
|
||||||
|
max-idle: 10
|
||||||
|
min-idle: 1
|
||||||
|
time-between-eviction-runs: 10s
|
||||||
|
jackson:
|
||||||
|
default-property-inclusion: non_null # JSON处理时忽略非空字段
|
||||||
|
mybatis-plus:
|
||||||
|
type-aliases-package: com.hmdp.entity # 别名扫描包
|
||||||
|
logging:
|
||||||
|
level:
|
||||||
|
com.hmdp: debug
|
||||||
1284
src/main/resources/db/hmdp.sql
Normal file
1284
src/main/resources/db/hmdp.sql
Normal file
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user