From 08625b0ca54e96090f8e231bcaa3a5d23f871f34 Mon Sep 17 00:00:00 2001 From: macro Date: Sat, 8 Aug 2020 11:05:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=87=E7=BA=A7SpringBoot=202.3.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- document/docker/docker-compose-app.yml | 16 +- document/docker/docker-compose-env.yml | 24 +- document/docker/docker-deploy.md | 149 ---- document/elk/logback-spring.xml | 14 - document/elk/logstash-springboot.conf | 14 - document/elk/logstash.conf | 49 ++ document/pdm/mall.pdb | 702 +++++++++--------- document/pdm/mall.pdm | 10 +- document/resource/mall_micro_service_arch.jpg | Bin 127145 -> 197026 bytes document/sh/Dockerfile | 10 + document/sh/run.sh | 28 + mall-admin/pom.xml | 8 +- .../main/java/com/macro/mall/bo/WebLog.java | 144 ---- .../com/macro/mall/config/Swagger2Config.java | 78 -- .../com/macro/mall/config/SwaggerConfig.java | 27 + .../impl/UmsAdminCacheServiceImpl.java | 2 +- .../src/main/resources/application-dev.yml | 10 +- .../src/main/resources/application-prod.yml | 9 +- mall-admin/src/main/resources/application.yml | 11 +- .../src/main/resources/logback-spring.xml | 31 - mall-common/pom.xml | 32 +- .../mall/common/config/BaseRedisConfig.java | 68 ++ .../mall/common/config/BaseSwaggerConfig.java | 49 +- .../mall/common/domain/SwaggerProperties.java | 47 ++ .../com/macro/mall/common/domain/WebLog.java | 68 ++ .../macro/mall/common/log}/WebLogAspect.java | 7 +- .../mall/common}/service/RedisService.java | 4 +- .../service/impl/RedisServiceImpl.java | 8 +- .../src/main/resources/logback-spring.xml | 196 +++++ mall-demo/pom.xml | 4 + .../mall/demo/config/Swagger2Config.java | 37 - .../macro/mall/demo/config/SwaggerConfig.java | 28 + mall-demo/src/main/resources/application.yml | 7 +- mall-mbg/pom.xml | 8 + .../mall/portal/config/SwaggerConfig.java | 27 + .../impl/OmsPortalOrderServiceImpl.java | 2 +- .../impl/UmsMemberCacheServiceImpl.java | 3 +- .../src/main/resources/application-dev.yml | 13 +- .../src/main/resources/application-prod.yml | 14 +- .../src/main/resources/application.yml | 2 + .../mall/search/MallSearchApplication.java | 2 +- .../mall/search/config/Swagger2Config.java | 38 - .../mall/search/config/SwaggerConfig.java | 27 + .../service/impl/EsProductServiceImpl.java | 45 +- .../src/main/resources/application-dev.yml | 12 +- .../src/main/resources/application-prod.yml | 14 +- .../src/main/resources/application.yml | 7 +- .../search/MallSearchApplicationTests.java | 13 +- .../mall/security/config/RedisConfig.java | 54 +- pom.xml | 25 +- 50 files changed, 1137 insertions(+), 1060 deletions(-) delete mode 100644 document/docker/docker-deploy.md delete mode 100644 document/elk/logback-spring.xml delete mode 100644 document/elk/logstash-springboot.conf create mode 100644 document/elk/logstash.conf create mode 100644 document/sh/Dockerfile create mode 100644 document/sh/run.sh delete mode 100644 mall-admin/src/main/java/com/macro/mall/bo/WebLog.java delete mode 100644 mall-admin/src/main/java/com/macro/mall/config/Swagger2Config.java create mode 100644 mall-admin/src/main/java/com/macro/mall/config/SwaggerConfig.java delete mode 100644 mall-admin/src/main/resources/logback-spring.xml create mode 100644 mall-common/src/main/java/com/macro/mall/common/config/BaseRedisConfig.java rename mall-portal/src/main/java/com/macro/mall/portal/config/Swagger2Config.java => mall-common/src/main/java/com/macro/mall/common/config/BaseSwaggerConfig.java (60%) create mode 100644 mall-common/src/main/java/com/macro/mall/common/domain/SwaggerProperties.java create mode 100644 mall-common/src/main/java/com/macro/mall/common/domain/WebLog.java rename {mall-admin/src/main/java/com/macro/mall/component => mall-common/src/main/java/com/macro/mall/common/log}/WebLogAspect.java (97%) rename {mall-security/src/main/java/com/macro/mall/security => mall-common/src/main/java/com/macro/mall/common}/service/RedisService.java (97%) rename {mall-security/src/main/java/com/macro/mall/security => mall-common/src/main/java/com/macro/mall/common}/service/impl/RedisServiceImpl.java (95%) create mode 100644 mall-common/src/main/resources/logback-spring.xml delete mode 100644 mall-demo/src/main/java/com/macro/mall/demo/config/Swagger2Config.java create mode 100644 mall-demo/src/main/java/com/macro/mall/demo/config/SwaggerConfig.java create mode 100644 mall-portal/src/main/java/com/macro/mall/portal/config/SwaggerConfig.java delete mode 100644 mall-search/src/main/java/com/macro/mall/search/config/Swagger2Config.java create mode 100644 mall-search/src/main/java/com/macro/mall/search/config/SwaggerConfig.java diff --git a/document/docker/docker-compose-app.yml b/document/docker/docker-compose-app.yml index ff403ef..7469953 100644 --- a/document/docker/docker-compose-app.yml +++ b/document/docker/docker-compose-app.yml @@ -5,14 +5,23 @@ services: container_name: mall-admin ports: - 8080:8080 + volumes: + - /mydata/app/mall-admin/logs:/var/logs + - /etc/localtime:/etc/localtime + environment: + - 'TZ="Asia/Shanghai"' external_links: - - redis:redis #可以用redis这个域名访问redis服务 - mysql:db #可以用db这个域名访问mysql服务 mall-search: image: mall/mall-search:1.0-SNAPSHOT container_name: mall-search ports: - 8081:8081 + volumes: + - /mydata/app/mall-search/logs:/var/logs + - /etc/localtime:/etc/localtime + environment: + - 'TZ="Asia/Shanghai"' external_links: - elasticsearch:es #可以用es这个域名访问elasticsearch服务 - mysql:db #可以用db这个域名访问mysql服务 @@ -21,6 +30,11 @@ services: container_name: mall-portal ports: - 8085:8085 + volumes: + - /mydata/app/mall-portal/logs:/var/logs + - /etc/localtime:/etc/localtime + environment: + - 'TZ="Asia/Shanghai"' external_links: - redis:redis #可以用redis这个域名访问redis服务 - mongo:mongo #可以用mongo这个域名访问mongo服务 diff --git a/document/docker/docker-compose-env.yml b/document/docker/docker-compose-env.yml index b4e1f82..bd5bc51 100644 --- a/document/docker/docker-compose-env.yml +++ b/document/docker/docker-compose-env.yml @@ -14,7 +14,7 @@ services: - /mydata/mysql/data/conf:/etc/mysql/conf.d #配置文件挂载 - /mydata/mysql/log:/var/log/mysql #日志文件挂载 redis: - image: redis:3.2 + image: redis:5 container_name: redis command: redis-server --appendonly yes volumes: @@ -40,7 +40,7 @@ services: - 5672:5672 - 15672:15672 elasticsearch: - image: elasticsearch:6.4.0 + image: elasticsearch:7.6.2 container_name: elasticsearch environment: - "cluster.name=elasticsearch" #设置集群名称为elasticsearch @@ -52,8 +52,24 @@ services: ports: - 9200:9200 - 9300:9300 + logstash: + image: logstash:7.6.2 + container_name: logstash + environment: + - TZ=Asia/Shanghai + volumes: + - /mydata/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf #挂载logstash的配置文件 + depends_on: + - elasticsearch #kibana在elasticsearch启动之后再启动 + links: + - elasticsearch:es #可以用es这个域名访问elasticsearch服务 + ports: + - 4560:4560 + - 4561:4561 + - 4562:4562 + - 4563:4563 kibana: - image: kibana:6.4.0 + image: kibana:7.6.2 container_name: kibana links: - elasticsearch:es #可以用es这个域名访问elasticsearch服务 @@ -64,7 +80,7 @@ services: ports: - 5601:5601 mongo: - image: mongo:3.2 + image: mongo:4.2.5 container_name: mongo volumes: - /mydata/mongo/db:/data/db #数据文件挂载 diff --git a/document/docker/docker-deploy.md b/document/docker/docker-deploy.md deleted file mode 100644 index 8cd872f..0000000 --- a/document/docker/docker-deploy.md +++ /dev/null @@ -1,149 +0,0 @@ -# docker环境部署 - -## docker环境安装 -### docker安装 -1. 安装yum-utils: -yum install -y yum-utils \ -device-mapper-persistent-data \ -lvm2 -2. 为yum源添加docker仓库位置: -yum-config-manager \ ---add-repo \ -https://download.docker.com/linux/centos/docker-ce.repo -3. 安装docker: -yum install docker-ce -4. 启动docker: -systemctl start docker -注:常见命令见document/reference文件夹中的docker.md -5. 安装上传下载插件: -yum -y install lrzsz -### docker compose安装 -1. 下载地址:https://github.com/docker/compose/releases -2. 安装地址:/usr/local/bin/docker-compose -3. 设置为可执行:sudo chmod +x /usr/local/bin/docker-compose -4. 测试是否安装成功:docker-compose --version - -## mysql安装 -### 下载镜像文件 -docker pull mysql:5.7 -### 创建实例并启动 -docker run -p 3306:3306 --name mysql \ --v /mydata/mysql/log:/var/log/mysql \ --v /mydata/mysql/data:/var/lib/mysql \ --v /mydata/mysql/conf:/etc/mysql \ --e MYSQL_ROOT_PASSWORD=root \ --d mysql:5.7 -> 参数说明 -- -p 3306:3306:将容器的3306端口映射到主机的3306端口 -- -v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂在到主机 -- -v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机 -- -v /mydata/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机 -- -e MYSQL_ROOT_PASSWORD=root:初始化root用户的密码 -### 通过容器的mysql命令行工具连接 -docker exec -it mysql mysql -uroot -proot -### 设置远程访问 -grant all privileges on *.* to 'root' @'%' identified by 'root'; -flush privileges; -### 进入容器文件系统 -docker exec -it mysql /bin/bash - -## redis安装 -### 下载镜像文件 -docker pull redis:3.2 -### 创建实例并启动 -docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data -d redis:3.2 redis-server --appendonly yes -### 使用redis镜像执行redis-cli命令连接 -docker exec -it redis redis-cli - -## nginx安装 -### 下载镜像文件 -docker pull nginx:1.10 -### 创建实例并启动 -docker run -p 80:80 --name nginx \ --v /mydata/nginx/html:/usr/share/nginx/html \ --v /mydata/nginx/logs:/var/log/nginx \ --d nginx:1.10 -### 修改nginx配置 -1. 将容器内的配置文件拷贝到当前目录:docker container cp nginx:/etc/nginx . -2. 修改文件名称:mv nginx conf -3. 终止容器:docker stop nginx -4. 执行命令删除原容器:docker rm $ContainerId -5. 执行以下命令: -docker run -p 80:80 --name nginx \ --v /mydata/nginx/html:/usr/share/nginx/html \ --v /mydata/nginx/logs:/var/log/nginx \ --v /mydata/nginx/conf:/etc/nginx \ --d nginx:1.10 - -## rabbitmq安装 -### 下载镜像文件 -docker pull rabbitmq:management -### 创建实例并启动 -docker run -d --name rabbitmq --publish 5671:5671 \ - --publish 5672:5672 --publish 4369:4369 --publish 25672:25672 --publish 15671:15671 --publish 15672:15672 \ -rabbitmq:management - -## elasticsearch安装 -### 下载镜像文件 -docker pull elasticsearch:6.4.0 -### 创建实例并运行 -docker run -p 9200:9200 -p 9300:9300 --name elasticsearch \ --v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \ --v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \ --d elasticsearch:6.4.0 -### 测试 -访问会返回版本信息:http://192.168.1.66:9200/ -### 安装目录位置 -/usr/share/elasticsearch -### 安装head插件(可以不安装,仅用于测试) -1. 进入docker内部bash:docker exec -it elasticsearch /bin/bash -2. 安装插件,具体参考:https://github.com/mobz/elasticsearch-head -3. 测试:http://192.168.1.66:9200/_plugin/head/ -### 安装中文分词器IKAnalyzer -1. 进入docker内部bash:docker exec -it elasticsearch /bin/bash -2. 安装中文分词插件,执行以下命令:elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.2.2/elasticsearch-analysis-ik-6.2.2.zip -3. 测试: - - 访问header插件:打开地址http://192.168.1.66:9200/_plugin/head/ - - 选择复合查询,输入地址:POST:http://192.168.1.66:9200/_analyze - - 输入参数:JSON:{"analyzer":"ik","text":"我们是大数据开发人员"} - -## mongodb安装 -### 下载镜像文件 -docker pull mongo:3.2 -### 创建实例并运行 -docker run -p 27017:27017 --name mongo -v /mydata/mongo/db:/data/db -d mongo:3.2 -### 使用mongo命令进入容器 -docker exec -it mongo mongo - -## SpringBoot应用命令部署 -**docker容器间进行连接才能互相访问** -### 部署mall-admin -docker run -p 8080:8080 --name mall-admin \ ---link mysql:db \ --v /etc/timezone:/etc/timezone \ --v /etc/localtime:/etc/localtime \ --v /mydata/app/admin/logs:/var/logs \ --d mall/mall-admin:1.0-SNAPSHOT -### 部署mall-search -docker run -p 8081:8081 --name mall-search \ ---link elasticsearch:es \ ---link mysql:db \ --v /etc/timezone:/etc/timezone \ --v /etc/localtime:/etc/localtime \ --v /mydata/app/search/logs:/var/logs \ --d mall/mall-search:1.0-SNAPSHOT -### 部署mall-port -docker run -p 8085:8085 --name mall-portal \ ---link mysql:db \ ---link redis:redis \ ---link mongo:mongo \ --v /etc/timezone:/etc/timezone \ --v /etc/localtime:/etc/localtime \ --v /mydata/app/portal/logs:/var/logs \ --d mall/mall-portal:1.0-SNAPSHOT - -## SpringBoot应用自动化部署 -### 部署文件 -document/docker/docker-compose.yml -### 部署命令 -docker-compose up -d \ No newline at end of file diff --git a/document/elk/logback-spring.xml b/document/elk/logback-spring.xml deleted file mode 100644 index 4b7b6da..0000000 --- a/document/elk/logback-spring.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - localhost:4560 - - - - - - - - diff --git a/document/elk/logstash-springboot.conf b/document/elk/logstash-springboot.conf deleted file mode 100644 index a71e919..0000000 --- a/document/elk/logstash-springboot.conf +++ /dev/null @@ -1,14 +0,0 @@ -input { - tcp { - mode => "server" - host => "0.0.0.0" - port => 4560 - codec => json_lines - } -} -output { - elasticsearch { - hosts => "es:9200" - index => "springboot-logstash-%{+YYYY.MM.dd}" - } -} \ No newline at end of file diff --git a/document/elk/logstash.conf b/document/elk/logstash.conf new file mode 100644 index 0000000..e1b23f4 --- /dev/null +++ b/document/elk/logstash.conf @@ -0,0 +1,49 @@ +input { + tcp { + mode => "server" + host => "0.0.0.0" + port => 4560 + codec => json_lines + type => "debug" + } + tcp { + mode => "server" + host => "0.0.0.0" + port => 4561 + codec => json_lines + type => "error" + } + tcp { + mode => "server" + host => "0.0.0.0" + port => 4562 + codec => json_lines + type => "business" + } + tcp { + mode => "server" + host => "0.0.0.0" + port => 4563 + codec => json_lines + type => "record" + } +} +filter{ + if [type] == "record" { + mutate { + remove_field => "port" + remove_field => "host" + remove_field => "@version" + } + json { + source => "message" + remove_field => ["message"] + } + } +} +output { + elasticsearch { + hosts => "localhost:9200" + index => "mall-%{type}-%{+YYYY.MM.dd}" + } +} \ No newline at end of file diff --git a/document/pdm/mall.pdb b/document/pdm/mall.pdb index 49f4951..74921ec 100644 --- a/document/pdm/mall.pdb +++ b/document/pdm/mall.pdb @@ -1,5 +1,5 @@ - + @@ -15379,7 +15379,7 @@ LABL 0 新宋体,8,N oms_order_item 1522660695 zhenghong -1540542634 +1582621151 zhenghong 订单中所包含的商品 @@ -15532,40 +15532,6 @@ LABL 0 新宋体,8,N bigint -51302EF8-1CD4-43F5-9C02-7920ED857D35 -sp1 -sp1 -1522724687 -zhenghong -1522724745 -zhenghong -商品的销售属性 -varchar(100) -100 - - -AA056090-3D72-4BAC-A931-CD49C31B9D7E -sp2 -sp2 -1522724687 -zhenghong -1522724738 -zhenghong -varchar(100) -100 - - -C0CCCE2C-B2C8-44A1-9F6B-771BFE62D760 -sp3 -sp3 -1522724687 -zhenghong -1522724738 -zhenghong -varchar(100) -100 - - 00A626D1-90DA-4262-8FFB-874691D67C3E promotion_name promotion_name @@ -15577,7 +15543,7 @@ LABL 0 新宋体,8,N varchar(200) 200 - + FCD8E9C9-7C56-47F0-8FBB-5534EB9B8FDE promotion_amount promotion_amount @@ -15590,7 +15556,7 @@ LABL 0 新宋体,8,N 10 2 - + 073E4D15-F6EB-405D-9429-3A2FD362E949 coupon_amount coupon_amount @@ -15603,7 +15569,7 @@ LABL 0 新宋体,8,N 10 2 - + B4781397-191A-42B9-AAF7-D96E7BC3449D integration_amount integration_amount @@ -15616,7 +15582,7 @@ LABL 0 新宋体,8,N 10 2 - + AD7CAE73-04BF-4BB8-BEFA-E0A7B94BF373 real_amount real_amount @@ -15629,7 +15595,7 @@ LABL 0 新宋体,8,N 10 2 - + 3FBC2AE3-3000-41C7-B78C-DB7AC7ABDC16 gift_integration gift_integration @@ -15642,7 +15608,7 @@ LABL 0 新宋体,8,N int 1 - + C7705A4E-64E8-44A3-B3BE-7A8762E73CFD gift_growth gift_growth @@ -15655,7 +15621,7 @@ LABL 0 新宋体,8,N int 1 - + 07F49796-6B7C-4A44-BF17-6EF191BE819A product_attr product_attr @@ -15669,7 +15635,7 @@ LABL 0 新宋体,8,N - + 8B728C73-2ED3-4C44-8C64-95692A16EA10 Key_1 Key_1 @@ -15683,7 +15649,7 @@ LABL 0 新宋体,8,N - + @@ -15697,7 +15663,7 @@ LABL 0 新宋体,8,N 订单操作历史记录 - + 46247D13-9B17-44EB-9300-7BA49AC214FB id id @@ -15709,7 +15675,7 @@ LABL 0 新宋体,8,N 1 1 - + CBAA2797-F782-492E-89D8-B87830B4FD86 order_id order_id @@ -15720,7 +15686,7 @@ LABL 0 新宋体,8,N 订单id bigint - + B26D3031-3438-4CAB-BC93-2277F41D2F64 operate_man operate_man @@ -15732,7 +15698,7 @@ LABL 0 新宋体,8,N varchar(100) 100 - + 14B87125-FC24-4D09-982E-F43F618B6C3A create_time create_time @@ -15743,7 +15709,7 @@ LABL 0 新宋体,8,N 操作时间 datetime - + 296A8CF6-1BC8-46E1-846F-25114FF35EEB order_status order_status @@ -15755,7 +15721,7 @@ LABL 0 新宋体,8,N int(1) 1 - + 9F651D4E-088F-4735-ACAD-12ED16C49FDE note note @@ -15769,7 +15735,7 @@ LABL 0 新宋体,8,N - + 50772925-29B2-4E77-A02B-5AB8C229953C Key_1 Key_1 @@ -15778,12 +15744,12 @@ LABL 0 新宋体,8,N 1522725011 zhenghong - + - + @@ -15797,7 +15763,7 @@ LABL 0 新宋体,8,N 订单设置表 - + 03B16432-ECCE-4698-B24A-05554E64C35C id id @@ -15809,7 +15775,7 @@ LABL 0 新宋体,8,N 1 1 - + AC98E6B7-ADDF-43AD-B2F0-6CFE7715E9F1 flash_order_overtime flash_order_overtime @@ -15820,7 +15786,7 @@ LABL 0 新宋体,8,N 秒杀订单超时关闭时间(分) int - + C4E474C5-194A-4B54-8DF1-F37B681DE42B normal_order_overtime normal_order_overtime @@ -15831,7 +15797,7 @@ LABL 0 新宋体,8,N 正常订单超时时间(分) int - + 773FEFCD-F4A3-4D9E-B061-10C12CA1B397 confirm_overtime confirm_overtime @@ -15842,7 +15808,7 @@ LABL 0 新宋体,8,N 发货后自动确认收货时间(天) int - + DD5B89B8-5DC6-4EB1-B916-D76BD75CB0F5 finish_overtime finish_overtime @@ -15853,7 +15819,7 @@ LABL 0 新宋体,8,N 自动完成交易时间,不能申请售后(天) int - + D090D0ED-6A45-445C-ADE3-F1E18734F159 comment_overtime comment_overtime @@ -15866,7 +15832,7 @@ LABL 0 新宋体,8,N - + 7C2ADDA9-1584-4310-A3FE-7F1E18447823 Key_1 Key_1 @@ -15875,12 +15841,12 @@ LABL 0 新宋体,8,N 1522726101 zhenghong - + - + @@ -15894,7 +15860,7 @@ LABL 0 新宋体,8,N 订单退货申请 - + CF99B61C-D0E5-4EB4-BFC6-111A9F3D44E8 id id @@ -15906,7 +15872,7 @@ LABL 0 新宋体,8,N 1 1 - + A6E68B83-006A-468C-A461-C647705E038C order_id order_id @@ -15917,7 +15883,7 @@ LABL 0 新宋体,8,N 订单id bigint - + 8D1F23F9-09FD-416B-8E38-CFDE67721417 company_address_id company_address_id @@ -15928,7 +15894,7 @@ LABL 0 新宋体,8,N 收货地址表id bigint - + A6898418-67C2-4E9F-9093-6FF8782BD12F product_id product_id @@ -15939,7 +15905,7 @@ LABL 0 新宋体,8,N 退货商品id bigint - + 56ACAE3C-5533-44A1-BA57-602058B6CEF2 order_sn order_sn @@ -15951,7 +15917,7 @@ LABL 0 新宋体,8,N varchar(64) 64 - + F2C78E24-CDB0-4AA7-B6CD-21E55B380E95 create_time create_time @@ -15962,7 +15928,7 @@ LABL 0 新宋体,8,N 申请时间 datetime - + 70FBE2CF-BE0D-44DD-8679-39DAA782E1A3 member_username member_username @@ -15974,7 +15940,7 @@ LABL 0 新宋体,8,N varchar(64) 64 - + 7B8A70B3-9FC9-4136-BEC9-D2DF393DB988 return_amount return_amount @@ -15987,7 +15953,7 @@ LABL 0 新宋体,8,N 10 2 - + 4FB9898E-63E4-4B21-B577-504320D3D4F9 return_name return_name @@ -15999,7 +15965,7 @@ LABL 0 新宋体,8,N varchar(100) 100 - + 8ADCC57B-6CA5-4A89-8B5A-6283FE7B3DDF return_phone return_phone @@ -16011,7 +15977,7 @@ LABL 0 新宋体,8,N varchar(100) 100 - + F01CC8D2-508C-424D-BF17-AE42ABE28223 status status @@ -16023,7 +15989,7 @@ LABL 0 新宋体,8,N int(1) 1 - + 65402A2F-A01C-4B4D-9F19-9ACD48637159 handle_time handle_time @@ -16034,7 +16000,7 @@ LABL 0 新宋体,8,N 处理时间 datetime - + AADBD0C8-E8CD-45D6-BDF4-13840EEFA26C product_pic product_pic @@ -16046,7 +16012,7 @@ LABL 0 新宋体,8,N varchar(500) 500 - + B4BB6015-3948-411C-9558-6CAF55CEF04C product_name product_name @@ -16058,7 +16024,7 @@ LABL 0 新宋体,8,N varchar(200) 200 - + D30E609F-3F5C-401C-8690-EEA47B0E6694 product_brand product_brand @@ -16070,7 +16036,7 @@ LABL 0 新宋体,8,N varchar(200) 200 - + 86B4B2F7-9A36-47AC-A3DA-7F45FFF21639 product_attr product_attr @@ -16082,7 +16048,7 @@ LABL 0 新宋体,8,N varchar(500) 500 - + DE661909-8CDC-4C09-A0C1-5587F969523A product_count product_count @@ -16093,7 +16059,7 @@ LABL 0 新宋体,8,N 退货数量 int - + B16F9E1E-749A-477B-B8E1-70B635CC8F00 product_price product_price @@ -16106,7 +16072,7 @@ LABL 0 新宋体,8,N 10 2 - + 442BB5FC-951A-43B5-94AD-B3C2E1C8F28F product_real_price product_real_price @@ -16119,7 +16085,7 @@ LABL 0 新宋体,8,N 10 2 - + B4DB3A15-7B0F-4C6D-B961-AF2C4CF14D50 reason reason @@ -16131,7 +16097,7 @@ LABL 0 新宋体,8,N varchar(200) 200 - + ECE8A578-4D6B-47EB-BB72-207D9BC93324 description description @@ -16143,7 +16109,7 @@ LABL 0 新宋体,8,N varchar(500) 500 - + E3C2C9CF-D72D-44AA-B1A3-5B5AC1950B63 proof_pics proof_pics @@ -16155,7 +16121,7 @@ LABL 0 新宋体,8,N varchar(1000) 1000 - + B16F27C1-DFFA-40F1-83B5-F9DA3BB86FE6 handle_note handle_note @@ -16167,7 +16133,7 @@ LABL 0 新宋体,8,N varchar(500) 500 - + B8982C29-EB0D-4F63-A047-DDEDC91A78C3 handle_man handle_man @@ -16179,7 +16145,7 @@ LABL 0 新宋体,8,N varchar(100) 100 - + 49E217E2-31BF-4F23-8125-62D5920E0B60 receive_man receive_man @@ -16191,7 +16157,7 @@ LABL 0 新宋体,8,N varchar(100) 100 - + 8111E4F5-B8EA-4DCB-B899-A2E4921E6BC2 receive_time receive_time @@ -16202,7 +16168,7 @@ LABL 0 新宋体,8,N 收货时间 datetime - + 4C802C73-FB19-4C09-84C3-37E152CA8299 receive_note receive_note @@ -16216,7 +16182,7 @@ LABL 0 新宋体,8,N - + D06B934B-B63D-4DCC-B1C1-62F79744A8AC Key_1 Key_1 @@ -16225,12 +16191,12 @@ LABL 0 新宋体,8,N 1522732939 zhenghong - + - + @@ -16244,7 +16210,7 @@ LABL 0 新宋体,8,N 公司收发货地址表 - + F5A62BE4-F0B9-46C3-8591-5864BB83220D id id @@ -16256,7 +16222,7 @@ LABL 0 新宋体,8,N 1 1 - + 359C7F83-8810-4F75-935C-8099B75676C6 address_name address_name @@ -16268,7 +16234,7 @@ LABL 0 新宋体,8,N varchar(200) 200 - + 5AA8AC8B-9617-4A6F-B898-4206F7CE8169 send_status send_status @@ -16280,7 +16246,7 @@ LABL 0 新宋体,8,N int(1) 1 - + CDF1655B-32CC-4E54-BBE7-5F00549B7722 receive_status receive_status @@ -16292,7 +16258,7 @@ LABL 0 新宋体,8,N int(1) 1 - + F5195500-8663-482B-B587-27789546188C name name @@ -16304,7 +16270,7 @@ LABL 0 新宋体,8,N varchar(64) 64 - + D51012F2-BECB-4E6B-A7E9-5B6AC06D9087 phone phone @@ -16316,7 +16282,7 @@ LABL 0 新宋体,8,N varchar(64) 64 - + 3D2DC8D4-9D56-4E95-8266-052132761CDE province province @@ -16328,7 +16294,7 @@ LABL 0 新宋体,8,N varchar(64) 64 - + 57267BF2-434D-4AEC-8E6B-DDCAA85233F7 city city @@ -16340,7 +16306,7 @@ LABL 0 新宋体,8,N varchar(64) 64 - + F1F15023-139B-4048-8D0C-C9C46884C6E9 region region @@ -16352,7 +16318,7 @@ LABL 0 新宋体,8,N varchar(64) 64 - + D3EA532D-AD33-45AF-BA17-1FE7D821EE64 detail_address detail_address @@ -16366,7 +16332,7 @@ LABL 0 新宋体,8,N - + 9B8E57D5-D022-48D7-BA87-3214D2DAB1BD Key_1 Key_1 @@ -16375,12 +16341,12 @@ LABL 0 新宋体,8,N 1522745192 zhenghong - + - + @@ -16394,7 +16360,7 @@ LABL 0 新宋体,8,N 退货原因表 - + 8398CF1C-2327-4762-B370-7F7BB681FBE8 id id @@ -16406,7 +16372,7 @@ LABL 0 新宋体,8,N 1 1 - + 7C7CCC5E-FBE6-49A6-A428-95A8A078B4EA name name @@ -16418,7 +16384,7 @@ LABL 0 新宋体,8,N varchar(100) 100 - + 0C284FC4-E892-4BFF-B0AC-AD9BCB8E39D2 sort sort @@ -16428,7 +16394,7 @@ LABL 0 新宋体,8,N zhenghong int - + D0151FA2-84E3-4252-9565-766B748B7AD3 status status @@ -16440,7 +16406,7 @@ LABL 0 新宋体,8,N int(1) 1 - + A3F8C1D7-A495-4E99-885D-FC8FB1E5747C create_time create_time @@ -16453,7 +16419,7 @@ LABL 0 新宋体,8,N - + F0009D1F-CC14-45AA-BDB7-F25CFBBFE380 Key_1 Key_1 @@ -16462,12 +16428,12 @@ LABL 0 新宋体,8,N 1533115911 zhenghong - + - + @@ -16481,7 +16447,7 @@ LABL 0 新宋体,8,N 购物车表 - + 0496CCD8-F7CC-4DD4-AEE7-919D8EFCD676 id id @@ -16493,7 +16459,7 @@ LABL 0 新宋体,8,N 1 1 - + BC6AB2CA-354D-447A-A466-54980B87F57F product_id product_id @@ -16503,7 +16469,7 @@ LABL 0 新宋体,8,N zhenghong bigint - + 48241AB2-A6B4-48E5-A792-FAB72D97FD42 product_sku_id product_sku_id @@ -16513,7 +16479,7 @@ LABL 0 新宋体,8,N zhenghong bigint - + 70CEB9F6-7F7D-4AB1-BB9D-3667BA109C72 member_id member_id @@ -16523,7 +16489,7 @@ LABL 0 新宋体,8,N zhenghong bigint - + 8B8B68C0-7987-4E2B-9BAD-FF4F3428E03A quantity quantity @@ -16534,7 +16500,7 @@ LABL 0 新宋体,8,N 购买数量 int - + E2A71768-48C5-46B2-82B8-635169BFE66D price price @@ -16547,7 +16513,7 @@ LABL 0 新宋体,8,N 10 2 - + B5A53CF7-C87D-411B-89DF-41888E2722C7 product_pic product_pic @@ -16559,7 +16525,7 @@ LABL 0 新宋体,8,N varchar(1000) 1000 - + E1A4F06D-34AE-4B0C-BCC6-F82BA9D1A76F product_name product_name @@ -16571,7 +16537,7 @@ LABL 0 新宋体,8,N varchar(500) 500 - + 7BBD4FA7-9C75-4ECA-9E08-BBEAC572BCB1 product_brand product_brand @@ -16582,7 +16548,7 @@ LABL 0 新宋体,8,N varchar(200) 200 - + 11170A56-1C61-4372-9E46-A3C9C587340E product_sn product_sn @@ -16593,7 +16559,7 @@ LABL 0 新宋体,8,N varchar(200) 200 - + 2D4BFCEF-83F1-4697-8EF7-DCC5D2A9491D product_sub_title product_sub_title @@ -16605,7 +16571,7 @@ LABL 0 新宋体,8,N varchar(500) 500 - + 8A7E5878-BB5E-49F3-BE20-E6986E172BB3 product_sku_code product_sku_code @@ -16617,7 +16583,7 @@ LABL 0 新宋体,8,N varchar(200) 200 - + 23C68713-D38A-4915-96E3-A9762199D386 member_nickname member_nickname @@ -16629,7 +16595,7 @@ LABL 0 新宋体,8,N varchar(500) 500 - + 5675315C-7265-4AC3-88D4-BC1525AC73B7 create_date create_date @@ -16640,7 +16606,7 @@ LABL 0 新宋体,8,N 创建时间 datetime - + 1D877A06-39CD-4A3C-B4A8-059588D13838 modify_date modify_date @@ -16651,7 +16617,7 @@ LABL 0 新宋体,8,N 修改时间 datetime - + 20EF4C13-435F-4C03-B8A9-7E31F1432E21 delete_status delete_status @@ -16664,7 +16630,7 @@ LABL 0 新宋体,8,N int(1) 1 - + 9C9C2AC9-F58B-4D31-BEF4-1D1892931E51 product_category_id product_category_id @@ -16675,7 +16641,7 @@ LABL 0 新宋体,8,N 商品的分类 bigint - + B7274386-A224-491A-88E0-8FAADCA00C90 product_attr product_attr @@ -16689,7 +16655,7 @@ LABL 0 新宋体,8,N - + 29D735B7-E618-4C13-AF03-3858C68E6BA4 Key_1 Key_1 @@ -16698,12 +16664,12 @@ LABL 0 新宋体,8,N 1533108680 zhenghong - + - + @@ -16717,7 +16683,7 @@ LABL 0 新宋体,8,N 后台用户角色表 - + 2E853DB4-DEFD-42D5-A6BE-6226A3194CE4 id id @@ -16729,7 +16695,7 @@ LABL 0 新宋体,8,N 1 1 - + A7C5F5AC-3D79-4BAB-A058-E801649746EB name name @@ -16741,7 +16707,7 @@ LABL 0 新宋体,8,N varchar(100) 100 - + 013099EA-F84F-4262-9125-15DA3687C8CE description description @@ -16753,7 +16719,7 @@ LABL 0 新宋体,8,N varchar(500) 500 - + F376357B-61CA-46D5-BED7-51C5322735A9 admin_count admin_count @@ -16764,7 +16730,7 @@ LABL 0 新宋体,8,N 后台用户数量 int - + EAC9E6A6-7E67-44F0-B085-B7A2380828E9 create_time create_time @@ -16775,7 +16741,7 @@ LABL 0 新宋体,8,N 创建时间 datetime - + 8B4E2D43-F39C-46CD-B498-1CD02CDE1F81 status status @@ -16788,7 +16754,7 @@ LABL 0 新宋体,8,N int(1) 1 - + CDB0B35E-6C3A-4FE5-9D47-E7682E71302E sort sort @@ -16801,7 +16767,7 @@ LABL 0 新宋体,8,N - + 14F5A838-542A-4B80-8627-B17FF80D3D0C Key_1 Key_1 @@ -16810,12 +16776,12 @@ LABL 0 新宋体,8,N 1538201117 zhenghong - + - + @@ -16829,7 +16795,7 @@ LABL 0 新宋体,8,N 后台用户权限表 - + E945AB0D-430D-4564-A942-AFAF3D3C6106 id id @@ -16845,7 +16811,7 @@ LABL 0 新宋体,8,N - + B073CBDF-527E-4961-BF55-9C5A1F643303 pid pid @@ -16856,7 +16822,7 @@ LABL 0 新宋体,8,N 父级权限id bigint - + E06DA657-9A51-42D9-A915-3D76B6D12AC7 name name @@ -16868,7 +16834,7 @@ LABL 0 新宋体,8,N varchar(100) 100 - + C2345EAD-45D6-41E7-8EAA-9DB2FD0F6C48 value value @@ -16880,7 +16846,7 @@ LABL 0 新宋体,8,N varchar(200) 200 - + 471034FB-C5B6-49C2-A117-AE9FEE311F8C icon icon @@ -16892,7 +16858,7 @@ LABL 0 新宋体,8,N varchar(500) 500 - + 64C52B4C-E7C5-4A7E-AE70-CF628EFC67A7 type type @@ -16904,7 +16870,7 @@ LABL 0 新宋体,8,N int(1) 1 - + 8E492BD0-8033-4FE5-8B5B-C13F6977D9A9 uri uri @@ -16916,7 +16882,7 @@ LABL 0 新宋体,8,N varchar(200) 200 - + 88B074E5-990C-4217-91F5-A88E56CC8142 status status @@ -16928,7 +16894,7 @@ LABL 0 新宋体,8,N int(1) 1 - + 6A46B30B-44EC-4D13-BEBF-77C4D26113CA create_time create_time @@ -16939,7 +16905,7 @@ LABL 0 新宋体,8,N 创建时间 datetime - + FE8DC496-D926-4C4C-94C0-59F19B98D411 sort sort @@ -16952,7 +16918,7 @@ LABL 0 新宋体,8,N - + 1A1D360B-3856-4FE0-ABC3-9C9DD7180247 Key_1 Key_1 @@ -16961,12 +16927,12 @@ LABL 0 新宋体,8,N 1538201932 zhenghong - + - + @@ -16980,7 +16946,7 @@ LABL 0 新宋体,8,N 后台用户和角色关系表 - + FD4417BB-10DA-489F-95B7-2538DA63FEB7 id id @@ -16992,7 +16958,7 @@ LABL 0 新宋体,8,N 1 1 - + 7E2D454E-E44B-490F-9E86-11CB1D02A55F admin_id admin_id @@ -17002,7 +16968,7 @@ LABL 0 新宋体,8,N zhenghong bigint - + 6408BE19-A7C6-4F9D-B9C0-921BD494570B role_id role_id @@ -17014,7 +16980,7 @@ LABL 0 新宋体,8,N - + 6D817E44-8C99-4CFE-A645-0E536256B9D2 Key_1 Key_1 @@ -17023,12 +16989,12 @@ LABL 0 新宋体,8,N 1538202458 zhenghong - + - + @@ -17042,7 +17008,7 @@ LABL 0 新宋体,8,N 后台用户角色和权限关系表 - + 1144AF4C-1426-47B7-8212-DA3B3E6C2A36 id id @@ -17054,7 +17020,7 @@ LABL 0 新宋体,8,N 1 1 - + FE5CF0B5-65AA-4B6D-AE3C-04E4A57077D0 role_id role_id @@ -17064,7 +17030,7 @@ LABL 0 新宋体,8,N zhenghong bigint - + 3E519CF4-C6F8-4D40-828A-F3AFFDA09699 permission_id permission_id @@ -17076,7 +17042,7 @@ LABL 0 新宋体,8,N - + 7169397A-EC6D-422E-9575-7D580D618896 Key_1 Key_1 @@ -17085,12 +17051,12 @@ LABL 0 新宋体,8,N 1538202576 zhenghong - + - + @@ -17104,7 +17070,7 @@ LABL 0 新宋体,8,N 后台用户和权限关系表(除角色中定义的权限以外的加减权限) - + BE753374-E9C7-4C53-AC9C-D71DCF50662D id id @@ -17116,7 +17082,7 @@ LABL 0 新宋体,8,N 1 1 - + 12FF5B6B-8647-49E1-927C-D43F14BBB174 admin_id admin_id @@ -17126,7 +17092,7 @@ LABL 0 新宋体,8,N zhenghong bigint - + 8BDB3D8B-FFEF-4031-8D7A-EF81BE9BE670 permission_id permission_id @@ -17136,7 +17102,7 @@ LABL 0 新宋体,8,N zhenghong bigint - + D5D4EBC8-9FCD-4A79-8171-4BC6027FA23E type type @@ -17149,7 +17115,7 @@ LABL 0 新宋体,8,N - + DF246E9E-48BE-43A9-A0A8-282F0AC6E482 Key_1 Key_1 @@ -17158,12 +17124,12 @@ LABL 0 新宋体,8,N 1538202916 zhenghong - + - + @@ -17177,7 +17143,7 @@ LABL 0 新宋体,8,N 限时购场次表 - + 10DEE53F-C0A5-4C47-B567-5B9318C189F5 id id @@ -17190,7 +17156,7 @@ LABL 0 新宋体,8,N 1 1 - + 70BA3EA1-6434-4AFF-A8B7-BCFD893EE7BF name name @@ -17202,7 +17168,7 @@ LABL 0 新宋体,8,N varchar(200) 200 - + E0270862-71AD-474C-96FE-3EEA4134152D start_time start_time @@ -17213,7 +17179,7 @@ LABL 0 新宋体,8,N 每日开始时间 time - + A180A2E0-0FA8-475C-8D71-729FD0617D20 end_time end_time @@ -17224,7 +17190,7 @@ LABL 0 新宋体,8,N 每日结束时间 time - + 49630CAC-6129-4521-AD71-0A3AFD07583A status status @@ -17236,7 +17202,7 @@ LABL 0 新宋体,8,N int(1) 1 - + 3E293EDE-0D9A-4933-8B3D-4293903D92D0 create_time create_time @@ -17249,7 +17215,7 @@ LABL 0 新宋体,8,N - + 6F8C4687-C113-41B9-B674-6D8DE3D1E8D5 Key_1 Key_1 @@ -17258,12 +17224,12 @@ LABL 0 新宋体,8,N 1542178344 zhenghong - + - + @@ -17277,7 +17243,7 @@ LABL 0 新宋体,8,N 商品限时购与商品关系表 - + CAE82E75-D12D-4AD6-9A17-68423BF7E4E0 id id @@ -17290,7 +17256,7 @@ LABL 0 新宋体,8,N 1 1 - + CEAF14F7-5D5C-4FF9-B86B-CF943BE9EAC9 flash_promotion_id flash_promotion_id @@ -17300,7 +17266,7 @@ LABL 0 新宋体,8,N zhenghong bigint - + 23D89E50-A620-478D-A305-369556A666D9 flash_promotion_session_id flash_promotion_session_id @@ -17311,7 +17277,7 @@ LABL 0 新宋体,8,N 编号 bigint - + 016A43A1-CCDE-4553-A432-5F9195B3E630 product_id product_id @@ -17321,7 +17287,7 @@ LABL 0 新宋体,8,N zhenghong bigint - + A82B7A85-9A20-438A-B428-5252675D21E5 flash_promotion_price flash_promotion_price @@ -17334,7 +17300,7 @@ LABL 0 新宋体,8,N 10 2 - + 608C7EEE-3CD9-452E-873C-AD3AFDF563A0 flash_promotion_count flash_promotion_count @@ -17345,7 +17311,7 @@ LABL 0 新宋体,8,N 限时购数量 int - + 8211380C-691E-47D2-B1D7-F37E83667A4C flash_promotion_limit flash_promotion_limit @@ -17356,7 +17322,7 @@ LABL 0 新宋体,8,N 每人限购数量 int - + 7DB32E90-BA97-46B7-B90B-655587BBE50E sort sort @@ -17369,7 +17335,7 @@ LABL 0 新宋体,8,N - + A2983D35-1038-45A0-954A-5BC756B9FBF6 Key_1 Key_1 @@ -17378,12 +17344,12 @@ LABL 0 新宋体,8,N 1542179137 zhenghong - + - + @@ -17397,7 +17363,7 @@ LABL 0 新宋体,8,N 后台菜单表 - + 6E8CAA92-2096-418D-A93D-E79F719BB927 id id @@ -17409,7 +17375,7 @@ LABL 0 新宋体,8,N 1 1 - + ED194F66-7660-463A-A991-C2A652AB7BDD parent_id parent_id @@ -17420,7 +17386,7 @@ LABL 0 新宋体,8,N 父级ID bigint - + 751DDAFB-E47E-4C1F-8861-98417ABE4003 create_time create_time @@ -17431,7 +17397,7 @@ LABL 0 新宋体,8,N 创建时间 datetime - + C19B0D2B-9E4E-4D92-B934-23A5A434367E title title @@ -17443,7 +17409,7 @@ LABL 0 新宋体,8,N varchar(100) 100 - + 3991C198-C8BC-442F-B9C3-8C3E822BDF58 level level @@ -17455,7 +17421,7 @@ LABL 0 新宋体,8,N int(4) 4 - + F021AF73-1074-429E-A756-7795EAC8D046 sort sort @@ -17467,7 +17433,7 @@ LABL 0 新宋体,8,N int(4) 4 - + 4B420CCD-31CE-4F99-864B-2130DB065195 name name @@ -17479,7 +17445,7 @@ LABL 0 新宋体,8,N varchar(100) 100 - + F77FA949-AD6E-4812-8523-B4B89D603A5E icon icon @@ -17491,7 +17457,7 @@ LABL 0 新宋体,8,N varchar(200) 200 - + BA0254CB-2942-4FA6-86A0-E90E43311099 hidden hidden @@ -17505,7 +17471,7 @@ LABL 0 新宋体,8,N - + 5B17DE1C-3EF2-41FE-8598-919EF33A2D85 Key_1 Key_1 @@ -17514,12 +17480,12 @@ LABL 0 新宋体,8,N 1580624739 zhenghong - + - + @@ -17533,7 +17499,7 @@ LABL 0 新宋体,8,N 后台资源表 - + F6CBDD55-60A9-4F16-8426-166F661106CF id id @@ -17545,7 +17511,7 @@ LABL 0 新宋体,8,N 1 1 - + 83039C2E-46A3-43E5-9F44-0C2793617519 category_id category_id @@ -17556,7 +17522,7 @@ LABL 0 新宋体,8,N 资源分类ID bigint - + A9E82014-27A7-49AF-9BF1-2F10A4ABC85D create_time create_time @@ -17567,7 +17533,7 @@ LABL 0 新宋体,8,N 创建时间 datetime - + 623196A3-33D6-4F77-909E-66A8F05CDD19 name name @@ -17579,7 +17545,7 @@ LABL 0 新宋体,8,N varchar(200) 200 - + 01AB5B01-DA3F-4F28-A338-A916E623F2A0 url url @@ -17591,7 +17557,7 @@ LABL 0 新宋体,8,N varchar(200) 200 - + B3CFE91C-D059-421F-8D9C-17321C7F38E7 description description @@ -17605,7 +17571,7 @@ LABL 0 新宋体,8,N - + 10E24F7A-0390-476B-BAAE-1882C0BBD062 Key_1 Key_1 @@ -17614,12 +17580,12 @@ LABL 0 新宋体,8,N 1580625197 zhenghong - + - + @@ -17633,7 +17599,7 @@ LABL 0 新宋体,8,N 后台角色菜单关系表 - + 0A34DDDB-B366-496A-AED8-416DE19149F5 id id @@ -17645,7 +17611,7 @@ LABL 0 新宋体,8,N 1 1 - + 2AE22924-4904-41FA-AFB7-B0CF7FCBFC56 role_id role_id @@ -17656,7 +17622,7 @@ LABL 0 新宋体,8,N 角色ID bigint - + 748FA33E-A269-4189-A357-21F5885427C4 menu_id menu_id @@ -17669,7 +17635,7 @@ LABL 0 新宋体,8,N - + 882EFB9B-0F11-4AE1-995B-C15CEDF564FA Key_1 Key_1 @@ -17678,12 +17644,12 @@ LABL 0 新宋体,8,N 1580625322 zhenghong - + - + @@ -17697,7 +17663,7 @@ LABL 0 新宋体,8,N 后台角色资源关系表 - + 6DF052C6-67CA-4BAA-A125-9F03DEDA9012 id id @@ -17709,7 +17675,7 @@ LABL 0 新宋体,8,N 1 1 - + 83982BFF-3E3D-4E6F-A458-FF3075464342 role_id role_id @@ -17720,7 +17686,7 @@ LABL 0 新宋体,8,N 角色ID bigint - + 09F02FAF-844E-44FE-93C8-7B4623939F50 resource_id resource_id @@ -17733,7 +17699,7 @@ LABL 0 新宋体,8,N - + AB798EFF-998F-4E0E-B0A4-A20719A6AF79 Key_1 Key_1 @@ -17742,12 +17708,12 @@ LABL 0 新宋体,8,N 1580625408 zhenghong - + - + @@ -17761,7 +17727,7 @@ LABL 0 新宋体,8,N 资源分类表 - + F885A10E-E590-447C-8D5D-BC2BCD3DB671 id id @@ -17773,7 +17739,7 @@ LABL 0 新宋体,8,N 1 1 - + D01B83FC-5268-4206-B92F-8F9BFE927112 create_time create_time @@ -17784,7 +17750,7 @@ LABL 0 新宋体,8,N 创建时间 datetime - + B986AFDF-AFBB-4E49-93AA-5CAD7907153A name name @@ -17796,7 +17762,7 @@ LABL 0 新宋体,8,N varchar(200) 200 - + 094290D5-34B8-4EE4-B629-670A4BAA7382 sort sort @@ -17810,7 +17776,7 @@ LABL 0 新宋体,8,N - + 70C39D60-14D7-4260-94E9-1F6025702EC5 Key_1 Key_1 @@ -17819,12 +17785,12 @@ LABL 0 新宋体,8,N 1580869095 zhenghong - + - + @@ -17850,7 +17816,7 @@ LABL 0 新宋体,8,N - + 5236F74C-2761-4AC4-834A-BECC5D040393 1521706257 zhenghong @@ -17886,7 +17852,7 @@ LABL 0 新宋体,8,N - + 6EE78803-E5F6-4090-B810-7BBF7814F60C 1521710488 zhenghong @@ -17922,7 +17888,7 @@ LABL 0 新宋体,8,N - + 84F722B4-DF57-4BC3-88FD-B249B70D21A7 1521770349 zhenghong @@ -17958,7 +17924,7 @@ LABL 0 新宋体,8,N - + 0309D83E-51C3-4973-A636-9FEB27F4A6B6 1521771362 zhenghong @@ -17994,7 +17960,7 @@ LABL 0 新宋体,8,N - + 7B820697-9FFD-4446-B6DF-F03F4F02FFE3 1521773101 zhenghong @@ -18030,7 +17996,7 @@ LABL 0 新宋体,8,N - + 13DDC5F6-372D-47FF-AAFA-8AEF349E7FA8 1521783613 zhenghong @@ -18066,7 +18032,7 @@ LABL 0 新宋体,8,N - + 31ADEBC6-F176-41A7-8EAA-9AC3B8A253AB 1521791466 zhenghong @@ -18102,7 +18068,7 @@ LABL 0 新宋体,8,N - + F2B169B3-7AC8-4FB1-822D-E1C91DFF6FFD 1521792428 zhenghong @@ -18138,7 +18104,7 @@ LABL 0 新宋体,8,N - + 00AD7B43-F4CA-45D7-86BB-5756B4ED55BD 1521792909 zhenghong @@ -18174,7 +18140,7 @@ LABL 0 新宋体,8,N - + 286E06C6-6FAD-4323-82D9-6FB781153C46 1522045168 zhenghong @@ -18210,7 +18176,7 @@ LABL 0 新宋体,8,N - + A2161167-D453-4661-9BF0-71D8908A6C42 1522046100 zhenghong @@ -18246,7 +18212,7 @@ LABL 0 新宋体,8,N - + E25FF0B6-41E2-4801-8FE9-337EF9B991F7 1522046451 zhenghong @@ -18282,7 +18248,7 @@ LABL 0 新宋体,8,N - + 1E64FE44-48BA-49B0-BDE1-66DA22B89EFF 1522046456 zhenghong @@ -18318,7 +18284,7 @@ LABL 0 新宋体,8,N - + DEE74089-6A6D-4D7E-BADD-76E4D08EFA2D 1522112691 zhenghong @@ -18354,7 +18320,7 @@ LABL 0 新宋体,8,N - + 5D44A212-AD69-4958-BAAF-9E16ED63FC67 1522112694 zhenghong @@ -18390,7 +18356,7 @@ LABL 0 新宋体,8,N - + ECA8F78C-7015-44EB-9CD2-F72634D7F4BD 1522114406 zhenghong @@ -18426,7 +18392,7 @@ LABL 0 新宋体,8,N - + 32BD37D4-4436-4069-9BD1-90CF0B1867E0 1522115961 zhenghong @@ -18462,7 +18428,7 @@ LABL 0 新宋体,8,N - + 1A23B754-71EE-4496-B70F-0A3268C6F651 1522115983 zhenghong @@ -18498,7 +18464,7 @@ LABL 0 新宋体,8,N - + 1C883E67-84F9-4CD0-A4F5-D7CA2BE15DC5 1522118676 zhenghong @@ -18534,7 +18500,7 @@ LABL 0 新宋体,8,N - + 1CE2FCCB-DF37-4C88-99DD-FA8C3EE7A09C 1522119056 zhenghong @@ -18570,7 +18536,7 @@ LABL 0 新宋体,8,N - + 7D8DC4F2-D0A4-4CE9-B03E-44AE166786C0 1522120295 zhenghong @@ -18606,7 +18572,7 @@ LABL 0 新宋体,8,N - + 7CB99F50-753B-4347-B896-1F18D8FE6691 1522138613 zhenghong @@ -18642,7 +18608,7 @@ LABL 0 新宋体,8,N - + EC89DA87-A575-4940-973B-665854268261 1522138618 zhenghong @@ -18678,7 +18644,7 @@ LABL 0 新宋体,8,N - + 8E1A22EC-2246-48C4-A499-3D8A4D264C09 1522138705 zhenghong @@ -18714,7 +18680,7 @@ LABL 0 新宋体,8,N - + 2EA7348D-C8E8-4FCC-8215-01FE3AD58DFB 1522141157 zhenghong @@ -18750,7 +18716,7 @@ LABL 0 新宋体,8,N - + 8B858AAC-D00A-42FE-BEDC-73536876C045 1522141232 zhenghong @@ -18786,7 +18752,7 @@ LABL 0 新宋体,8,N - + FC3A22FE-FD24-4DF0-BAC8-22659D3C8987 1522141317 zhenghong @@ -18822,7 +18788,7 @@ LABL 0 新宋体,8,N - + 14DB9C0C-F9F0-4D4A-B44E-592028F6E75A 1522142006 zhenghong @@ -18858,7 +18824,7 @@ LABL 0 新宋体,8,N - + 15304E84-71AA-40B1-84CB-904384B34B25 1522215975 zhenghong @@ -18894,7 +18860,7 @@ LABL 0 新宋体,8,N - + 457237AD-87EB-4A09-BA9F-36198B10D2FF 1522216015 zhenghong @@ -18930,7 +18896,7 @@ LABL 0 新宋体,8,N - + 3C2E5F27-A07C-4D88-9357-089D36122A25 1522216251 zhenghong @@ -18966,7 +18932,7 @@ LABL 0 新宋体,8,N - + A8FA4798-0F1E-4D96-A254-77F5D71F6BBD 1522216380 zhenghong @@ -19002,7 +18968,7 @@ LABL 0 新宋体,8,N - + 5026171A-4B51-4B83-A113-4051F1E4F415 1522220508 zhenghong @@ -19038,7 +19004,7 @@ LABL 0 新宋体,8,N - + 462222B9-A203-4D60-A353-A168356E3140 1522220546 zhenghong @@ -19074,7 +19040,7 @@ LABL 0 新宋体,8,N - + BD28F911-4F98-4C9D-9171-E99F60476E2A 1522224364 zhenghong @@ -19110,7 +19076,7 @@ LABL 0 新宋体,8,N - + 8D1675C9-7749-4831-A5E6-ACD971AACF57 1522225874 zhenghong @@ -19146,7 +19112,7 @@ LABL 0 新宋体,8,N - + B30347B3-4138-4EA8-A0F5-EF0D9A34E01F 1522226077 zhenghong @@ -19182,7 +19148,7 @@ LABL 0 新宋体,8,N - + 7D29D8DF-7EF1-4F43-928F-DDAC96A23858 1522226272 zhenghong @@ -19218,7 +19184,7 @@ LABL 0 新宋体,8,N - + 942BBD31-85B8-46EA-893C-CB327C86F5BA 1522303390 zhenghong @@ -19254,7 +19220,7 @@ LABL 0 新宋体,8,N - + 1E5174EE-C0B0-4144-98D5-679634DCCAEE 1522303410 zhenghong @@ -19290,7 +19256,7 @@ LABL 0 新宋体,8,N - + BD55704C-3F36-44CC-90E1-143F097FA894 1522304178 zhenghong @@ -19326,7 +19292,7 @@ LABL 0 新宋体,8,N - + 17EC5CAA-580C-493D-9C2D-2EA3E9732A78 1522386868 zhenghong @@ -19362,7 +19328,7 @@ LABL 0 新宋体,8,N - + F469B162-D88C-42A3-B64C-7B2751A4FCE1 1522387461 zhenghong @@ -19398,7 +19364,7 @@ LABL 0 新宋体,8,N - + 1D18BF30-4375-4618-A1C9-6DC998F248E4 1522387526 zhenghong @@ -19434,7 +19400,7 @@ LABL 0 新宋体,8,N - + 183F9969-663E-4842-ABC2-C938F02C05E4 1522389232 zhenghong @@ -19470,7 +19436,7 @@ LABL 0 新宋体,8,N - + AC355266-228D-4333-8E95-D13F2D176DB4 1522390434 zhenghong @@ -19506,7 +19472,7 @@ LABL 0 新宋体,8,N - + 3A358827-AE90-4AC6-80E6-CA340D69F7F2 1522390644 zhenghong @@ -19542,7 +19508,7 @@ LABL 0 新宋体,8,N - + B0F12E0B-F2E6-40A6-AD2B-9FE858AAA8BE 1522391366 zhenghong @@ -19578,7 +19544,7 @@ LABL 0 新宋体,8,N - + F46C48A9-78A1-4C9A-BD75-DE0ED230A76D 1522391379 zhenghong @@ -19614,7 +19580,7 @@ LABL 0 新宋体,8,N - + 711AD4D5-212E-4E3B-BB26-DB79C4BE4E52 1522396648 zhenghong @@ -19650,7 +19616,7 @@ LABL 0 新宋体,8,N - + 094B7BE5-D0AB-4987-8D74-508A27D3117F 1522396864 zhenghong @@ -19686,7 +19652,7 @@ LABL 0 新宋体,8,N - + 8C15D427-62A0-40E7-9B02-84063CC6EB94 1522659209 zhenghong @@ -19722,7 +19688,7 @@ LABL 0 新宋体,8,N - + 043B7E7F-6688-42FD-BECE-3A4CE5A560F2 1522660753 zhenghong @@ -19758,7 +19724,7 @@ LABL 0 新宋体,8,N - + 3592DAA0-2C95-48CF-9359-C157A0E27DC3 1522660820 zhenghong @@ -19794,7 +19760,7 @@ LABL 0 新宋体,8,N - + BEE8D279-8DBF-40B3-899D-5B07570D0AD9 1522721755 zhenghong @@ -19830,7 +19796,7 @@ LABL 0 新宋体,8,N - + F5D0566A-35C3-4451-9C7D-782BC776C53E 1522724329 zhenghong @@ -19866,7 +19832,7 @@ LABL 0 新宋体,8,N - + 3AA8813B-9363-406A-91DF-4AD16E9C3CCA 1522725331 zhenghong @@ -19876,7 +19842,7 @@ LABL 0 新宋体,8,N - + @@ -19902,7 +19868,7 @@ LABL 0 新宋体,8,N - + DD05624A-7E08-4273-9758-C5EDA1A03134 1522733188 zhenghong @@ -19912,7 +19878,7 @@ LABL 0 新宋体,8,N - + @@ -19935,20 +19901,20 @@ LABL 0 新宋体,8,N - + - + EBF8A4B9-24B3-4D18-82FD-D12F847328C6 1522745521 zhenghong 1522745521 zhenghong - + - + @@ -19974,7 +19940,7 @@ LABL 0 新宋体,8,N - + BA7665F0-D173-45C6-AFE8-3C93CF330D79 1533109970 zhenghong @@ -19984,7 +19950,7 @@ LABL 0 新宋体,8,N - + @@ -20010,7 +19976,7 @@ LABL 0 新宋体,8,N - + 521484A5-B9C4-477D-8D45-97F7B15D7854 1533115829 zhenghong @@ -20020,7 +19986,7 @@ LABL 0 新宋体,8,N - + @@ -20046,7 +20012,7 @@ LABL 0 新宋体,8,N - + FCADB7B3-0636-44C7-8AB4-067148971867 1533115896 zhenghong @@ -20056,7 +20022,7 @@ LABL 0 新宋体,8,N - + @@ -20079,20 +20045,20 @@ LABL 0 新宋体,8,N - + - + D2F8A3AD-54BE-4AE4-A988-128511B938A4 1538202362 zhenghong 1538202362 zhenghong - + - + @@ -20118,7 +20084,7 @@ LABL 0 新宋体,8,N - + 993B6DB6-8CE7-4A56-9273-AA66FB16F4A0 1538202471 zhenghong @@ -20128,7 +20094,7 @@ LABL 0 新宋体,8,N - + @@ -20151,20 +20117,20 @@ LABL 0 新宋体,8,N - + - + E47EA734-EA83-4289-8295-068CBD82C878 1538202492 zhenghong 1538202492 zhenghong - + - + @@ -20187,20 +20153,20 @@ LABL 0 新宋体,8,N - + - + C3D164FC-7971-4ECF-B2F0-6B384C75DB8A 1538202586 zhenghong 1538202586 zhenghong - + - + @@ -20223,20 +20189,20 @@ LABL 0 新宋体,8,N - + - + 5D69B943-755C-4D8A-90CC-525B02C3D50C 1538202588 zhenghong 1538202588 zhenghong - + - + @@ -20262,7 +20228,7 @@ LABL 0 新宋体,8,N - + C4F1E261-E196-4270-8809-851FB823B079 1538202927 zhenghong @@ -20272,7 +20238,7 @@ LABL 0 新宋体,8,N - + @@ -20295,20 +20261,20 @@ LABL 0 新宋体,8,N - + - + 9040B9D2-76A5-43F5-8889-3E21C379E806 1538202929 zhenghong 1538202929 zhenghong - + - + @@ -20334,7 +20300,7 @@ LABL 0 新宋体,8,N - + 6D41CF48-9B5F-47F1-8391-F0BC65998A26 1539746524 zhenghong @@ -20344,7 +20310,7 @@ LABL 0 新宋体,8,N - + @@ -20370,7 +20336,7 @@ LABL 0 新宋体,8,N - + 933A26A1-5D64-4E1E-A05E-F70A9A4571A1 1541490552 zhenghong @@ -20406,7 +20372,7 @@ LABL 0 新宋体,8,N - + CF2A4EB2-4046-4B11-A333-E288CA091AFF 1542179374 zhenghong @@ -20416,7 +20382,7 @@ LABL 0 新宋体,8,N - + @@ -20439,20 +20405,20 @@ LABL 0 新宋体,8,N - + - + F03E2D7F-4760-4BDE-AB11-2394F26DB466 1542179394 zhenghong 1542179394 zhenghong - + - + @@ -20478,7 +20444,7 @@ LABL 0 新宋体,8,N - + 389ADFA5-E125-4583-ADBE-95053D3F0C72 1542179440 zhenghong @@ -20488,7 +20454,7 @@ LABL 0 新宋体,8,N - + @@ -20511,20 +20477,20 @@ LABL 0 新宋体,8,N - + - + 9085DD5C-8F83-493E-9CFE-628DA54C8B96 1580625109 zhenghong 1580625129 zhenghong - + - + @@ -20547,20 +20513,20 @@ LABL 0 新宋体,8,N - + - + A48E310F-1E8C-4B06-AF1B-4D070613C9E4 1580625333 zhenghong 1580625333 zhenghong - + - + @@ -20583,20 +20549,20 @@ LABL 0 新宋体,8,N - + - + BF0FFD9A-62E7-47E9-84FB-9F2E08021926 1580625352 zhenghong 1580625352 zhenghong - + - + @@ -20619,20 +20585,20 @@ LABL 0 新宋体,8,N - + - + 6F492BCB-5604-4D5C-9DFE-B622A7D5FC91 1580625421 zhenghong 1580625421 zhenghong - + - + @@ -20655,20 +20621,20 @@ LABL 0 新宋体,8,N - + - + B77FA1D0-9DDC-4FD9-B5FA-24CF8FE39B40 1580625435 zhenghong 1580625435 zhenghong - + - + @@ -20691,27 +20657,27 @@ LABL 0 新宋体,8,N - + - + 6D8367E1-F1BA-4FAF-A735-B63D8A8D5D7A 1580869150 zhenghong 1580869150 zhenghong - + - + - + 48492A0F-63AD-4453-B46B-89915CC87545 PUBLIC PUBLIC @@ -20722,7 +20688,7 @@ LABL 0 新宋体,8,N - + 232AA7B8-E743-48F3-9530-102684B229BE MySQL 5.0 MYSQL50 diff --git a/document/pdm/mall.pdm b/document/pdm/mall.pdm index 74921ec..96503fc 100644 --- a/document/pdm/mall.pdm +++ b/document/pdm/mall.pdm @@ -1,5 +1,5 @@ - + @@ -12,7 +12,7 @@ mall 1521705583 zhenghong -1580869150 +1586932560 zhenghong [FolderOptions] @@ -238,7 +238,7 @@ Constraint declaration=No Physical Options=Yes [FolderOptions\Physical Objects\Database Generation\Table&&Column\Foreign key] -Create=No +Create=Yes Drop=Yes Comment=Yes @@ -13122,9 +13122,9 @@ LABL 0 新宋体,8,N member_id 1522303390 zhenghong -1522303400 +1586932707 zhenghong -int +bigint 0E5CDA77-D030-43C4-8F3F-62F1DDAF2321 diff --git a/document/resource/mall_micro_service_arch.jpg b/document/resource/mall_micro_service_arch.jpg index 2b6b884eceb573dc8f580c5e60d65b0e018702db..83c98a898f2b2df2c500e08f2650e8927b164626 100644 GIT binary patch literal 197026 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

RVc_xG7KT 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

nn}MUl`VFUlyEiqTt=%9*Z21LpU(0+Hunu#q= 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

N!V3Ox?%smei_g|w0O?uWR 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 diff --git a/document/sh/Dockerfile b/document/sh/Dockerfile new file mode 100644 index 0000000..4a2c69e --- /dev/null +++ b/document/sh/Dockerfile @@ -0,0 +1,10 @@ +# 该镜像需要依赖的基础镜像 +FROM java:8 +# 将当前目录下的jar包复制到docker容器的/目录下 +ADD mall-admin-1.0.1-SNAPSHOT.jar /mall-admin-1.0.1-SNAPSHOT.jar +# 声明服务运行在8088端口 +EXPOSE 8080 +# 指定docker容器启动时运行jar包 +ENTRYPOINT ["java", "-jar","/mall-admin-1.0.1-SNAPSHOT.jar"] +# 指定维护者的名字 +MAINTAINER macro \ No newline at end of file diff --git a/document/sh/run.sh b/document/sh/run.sh new file mode 100644 index 0000000..4b0ce02 --- /dev/null +++ b/document/sh/run.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash +# 定义应用组名 +group_name='mall' +# 定义应用名称 +app_name='mall-admin' +# 定义应用版本 +app_version='1.0.1-SNAPSHOT' +# 定义应用环境 +profile_active='prod' +echo '----copy jar----' +docker stop ${app_name} +echo '----stop container----' +docker rm ${app_name} +echo '----rm container----' +docker rmi ${group_name}/${app_name}:${app_version} +echo '----rm image----' +# 打包编译docker镜像 +docker build -t ${group_name}/${app_name}:${app_version} . +echo '----build image----' +docker run -p 8080:8080 --name ${app_name} \ +--link mysql:db \ +--link redis:redis \ +-e 'spring.profiles.active'=${profile_active} \ +-e TZ="Asia/Shanghai" \ +-v /etc/localtime:/etc/localtime \ +-v /mydata/app/${app_name}/logs:/var/logs \ +-d ${group_name}/${app_name}:${app_version} +echo '----start container----' \ No newline at end of file diff --git a/mall-admin/pom.xml b/mall-admin/pom.xml index 00066d5..c0a59e8 100644 --- a/mall-admin/pom.xml +++ b/mall-admin/pom.xml @@ -29,14 +29,14 @@ com.aliyun.oss aliyun-sdk-oss - - net.logstash.logback - logstash-logback-encoder - io.minio minio + + jakarta.validation + jakarta.validation-api + diff --git a/mall-admin/src/main/java/com/macro/mall/bo/WebLog.java b/mall-admin/src/main/java/com/macro/mall/bo/WebLog.java deleted file mode 100644 index 98c51dd..0000000 --- a/mall-admin/src/main/java/com/macro/mall/bo/WebLog.java +++ /dev/null @@ -1,144 +0,0 @@ -package com.macro.mall.bo; - -/** - * Controller层的日志封装类 - * Created by macro on 2018/4/26. - */ -public class WebLog { - /** - * 操作描述 - */ - private String description; - - /** - * 操作用户 - */ - private String username; - - /** - * 操作时间 - */ - private Long startTime; - - /** - * 消耗时间 - */ - private Integer spendTime; - - /** - * 根路径 - */ - private String basePath; - - /** - * URI - */ - private String uri; - - /** - * URL - */ - private String url; - - /** - * 请求类型 - */ - private String method; - - /** - * IP地址 - */ - private String ip; - - private Object parameter; - - private Object result; - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public Long getStartTime() { - return startTime; - } - - public void setStartTime(Long startTime) { - this.startTime = startTime; - } - - public Integer getSpendTime() { - return spendTime; - } - - public void setSpendTime(Integer spendTime) { - this.spendTime = spendTime; - } - - public String getBasePath() { - return basePath; - } - - public void setBasePath(String basePath) { - this.basePath = basePath; - } - - public String getUri() { - return uri; - } - - public void setUri(String uri) { - this.uri = uri; - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - public String getMethod() { - return method; - } - - public void setMethod(String method) { - this.method = method; - } - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public Object getParameter() { - return parameter; - } - - public void setParameter(Object parameter) { - this.parameter = parameter; - } - - public Object getResult() { - return result; - } - - public void setResult(Object result) { - this.result = result; - } -} diff --git a/mall-admin/src/main/java/com/macro/mall/config/Swagger2Config.java b/mall-admin/src/main/java/com/macro/mall/config/Swagger2Config.java deleted file mode 100644 index 15df3fa..0000000 --- a/mall-admin/src/main/java/com/macro/mall/config/Swagger2Config.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.macro.mall.config; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import springfox.documentation.builders.ApiInfoBuilder; -import springfox.documentation.builders.PathSelectors; -import springfox.documentation.builders.RequestHandlerSelectors; -import springfox.documentation.service.ApiInfo; -import springfox.documentation.service.ApiKey; -import springfox.documentation.service.AuthorizationScope; -import springfox.documentation.service.SecurityReference; -import springfox.documentation.spi.DocumentationType; -import springfox.documentation.spi.service.contexts.SecurityContext; -import springfox.documentation.spring.web.plugins.Docket; -import springfox.documentation.swagger2.annotations.EnableSwagger2; - -import java.util.ArrayList; -import java.util.List; - -/** - * Swagger API文档相关配置 - * Created by macro on 2018/4/26. - */ -@Configuration -@EnableSwagger2 -public class Swagger2Config { - @Bean - public Docket createRestApi(){ - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.controller")) - .paths(PathSelectors.any()) - .build() - .securitySchemes(securitySchemes()) - .securityContexts(securityContexts()); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("mall后台系统") - .description("mall后台模块") - .contact("macro") - .version("1.0") - .build(); - } - - private List securitySchemes() { - //设置请求头信息 - List result = new ArrayList<>(); - ApiKey apiKey = new ApiKey("Authorization", "Authorization", "header"); - result.add(apiKey); - return result; - } - - private List securityContexts() { - //设置需要登录认证的路径 - List result = new ArrayList<>(); - result.add(getContextByPath("/*/.*")); - return result; - } - - private SecurityContext getContextByPath(String pathRegex){ - return SecurityContext.builder() - .securityReferences(defaultAuth()) - .forPaths(PathSelectors.regex(pathRegex)) - .build(); - } - - private List defaultAuth() { - List result = new ArrayList<>(); - AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything"); - AuthorizationScope[] authorizationScopes = new AuthorizationScope[1]; - authorizationScopes[0] = authorizationScope; - result.add(new SecurityReference("Authorization", authorizationScopes)); - return result; - } -} diff --git a/mall-admin/src/main/java/com/macro/mall/config/SwaggerConfig.java b/mall-admin/src/main/java/com/macro/mall/config/SwaggerConfig.java new file mode 100644 index 0000000..5b5d324 --- /dev/null +++ b/mall-admin/src/main/java/com/macro/mall/config/SwaggerConfig.java @@ -0,0 +1,27 @@ +package com.macro.mall.config; + +import com.macro.mall.common.config.BaseSwaggerConfig; +import com.macro.mall.common.domain.SwaggerProperties; +import org.springframework.context.annotation.Configuration; +import springfox.documentation.swagger2.annotations.EnableSwagger2; + +/** + * Swagger API文档相关配置 + * Created by macro on 2018/4/26. + */ +@Configuration +@EnableSwagger2 +public class SwaggerConfig extends BaseSwaggerConfig { + + @Override + public SwaggerProperties swaggerProperties() { + return SwaggerProperties.builder() + .apiBasePackage("com.macro.mall.controller") + .title("mall后台系统") + .description("mall后台相关接口文档") + .contactName("macro") + .version("1.0") + .enableSecurity(true) + .build(); + } +} diff --git a/mall-admin/src/main/java/com/macro/mall/service/impl/UmsAdminCacheServiceImpl.java b/mall-admin/src/main/java/com/macro/mall/service/impl/UmsAdminCacheServiceImpl.java index d00fa45..a85878e 100644 --- a/mall-admin/src/main/java/com/macro/mall/service/impl/UmsAdminCacheServiceImpl.java +++ b/mall-admin/src/main/java/com/macro/mall/service/impl/UmsAdminCacheServiceImpl.java @@ -1,13 +1,13 @@ package com.macro.mall.service.impl; import cn.hutool.core.collection.CollUtil; +import com.macro.mall.common.service.RedisService; import com.macro.mall.dao.UmsAdminRoleRelationDao; import com.macro.mall.mapper.UmsAdminRoleRelationMapper; import com.macro.mall.model.UmsAdmin; import com.macro.mall.model.UmsAdminRoleRelation; import com.macro.mall.model.UmsAdminRoleRelationExample; import com.macro.mall.model.UmsResource; -import com.macro.mall.security.service.RedisService; import com.macro.mall.service.UmsAdminCacheService; import com.macro.mall.service.UmsAdminService; import org.springframework.beans.factory.annotation.Autowired; diff --git a/mall-admin/src/main/resources/application-dev.yml b/mall-admin/src/main/resources/application-dev.yml index efd29b2..b6d7a0b 100644 --- a/mall-admin/src/main/resources/application-dev.yml +++ b/mall-admin/src/main/resources/application-dev.yml @@ -17,4 +17,12 @@ spring: database: 0 # Redis数据库索引(默认为0) port: 6379 # Redis服务器连接端口 password: # Redis服务器连接密码(默认为空) - timeout: 300ms # 连接超时时间(毫秒) \ No newline at end of file + timeout: 300ms # 连接超时时间(毫秒) + +logging: + level: + root: info + com.macro.mall: debug + +logstash: + host: localhost \ No newline at end of file diff --git a/mall-admin/src/main/resources/application-prod.yml b/mall-admin/src/main/resources/application-prod.yml index dac7648..c8cfe5c 100644 --- a/mall-admin/src/main/resources/application-prod.yml +++ b/mall-admin/src/main/resources/application-prod.yml @@ -20,4 +20,11 @@ spring: timeout: 300ms # 连接超时时间(毫秒) logging: - path: /var/logs #配置日志生成路径 \ No newline at end of file + file: + path: /var/logs + level: + root: info + com.macro.mall: info + +logstash: + host: logstash \ No newline at end of file diff --git a/mall-admin/src/main/resources/application.yml b/mall-admin/src/main/resources/application.yml index 09a1fde..1499091 100644 --- a/mall-admin/src/main/resources/application.yml +++ b/mall-admin/src/main/resources/application.yml @@ -1,4 +1,6 @@ spring: + application: + name: mall-admin profiles: active: dev #默认为开发环境 servlet: @@ -15,7 +17,7 @@ jwt: tokenHeader: Authorization #JWT存储的请求头 secret: mall-admin-secret #JWT加解密使用的密钥 expiration: 604800 #JWT的超期限时间(60*60*24*7) - tokenHead: 'Bearer ' #JWT负载中拿到开头 + tokenHead: 'Bearer ' #JWT负载中拿到开头 redis: database: mall @@ -63,10 +65,3 @@ minio: bucketName: mall #存储桶名称 accessKey: minioadmin #访问的key secretKey: minioadmin #访问的秘钥 - -logging: - level: - root: info #日志配置DEBUG,INFO,WARN,ERROR - com.macro.mall: debug -# file: demo_log.log #配置日志生成路径 -# path: /var/logs #配置日志文件名称 diff --git a/mall-admin/src/main/resources/logback-spring.xml b/mall-admin/src/main/resources/logback-spring.xml deleted file mode 100644 index bda9284..0000000 --- a/mall-admin/src/main/resources/logback-spring.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - ${APP_NAME} - - - - ${LOG_FILE_PATH}/${APP_NAME}-%d{yyyy-MM-dd}.log - 30 - - - ${FILE_LOG_PATTERN} - - - - - localhost:4560 - - - - - - - - diff --git a/mall-common/pom.xml b/mall-common/pom.xml index 2a6f37a..9adf16d 100644 --- a/mall-common/pom.xml +++ b/mall-common/pom.xml @@ -19,6 +19,26 @@ + + com.github.pagehelper + pagehelper + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-data-redis + + + org.springframework.data + spring-data-commons + + + net.logstash.logback + logstash-logback-encoder + io.springfox springfox-swagger2 @@ -27,18 +47,6 @@ io.springfox springfox-swagger-ui - - org.springframework.data - spring-data-commons - - - cn.hutool - hutool-all - - - org.projectlombok - lombok - \ No newline at end of file diff --git a/mall-common/src/main/java/com/macro/mall/common/config/BaseRedisConfig.java b/mall-common/src/main/java/com/macro/mall/common/config/BaseRedisConfig.java new file mode 100644 index 0000000..dddc083 --- /dev/null +++ b/mall-common/src/main/java/com/macro/mall/common/config/BaseRedisConfig.java @@ -0,0 +1,68 @@ +package com.macro.mall.common.config; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.PropertyAccessor; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator; +import com.macro.mall.common.service.RedisService; +import com.macro.mall.common.service.impl.RedisServiceImpl; +import org.springframework.context.annotation.Bean; +import org.springframework.data.redis.cache.RedisCacheConfiguration; +import org.springframework.data.redis.cache.RedisCacheManager; +import org.springframework.data.redis.cache.RedisCacheWriter; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; +import org.springframework.data.redis.serializer.RedisSerializationContext; +import org.springframework.data.redis.serializer.RedisSerializer; +import org.springframework.data.redis.serializer.StringRedisSerializer; + +import java.time.Duration; + +/** + * Redis基础配置 + * Created by macro on 2020/6/19. + */ +public class BaseRedisConfig { + + @Bean + public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) { + RedisSerializer serializer = redisSerializer(); + RedisTemplate redisTemplate = new RedisTemplate<>(); + redisTemplate.setConnectionFactory(redisConnectionFactory); + redisTemplate.setKeySerializer(new StringRedisSerializer()); + redisTemplate.setValueSerializer(serializer); + redisTemplate.setHashKeySerializer(new StringRedisSerializer()); + redisTemplate.setHashValueSerializer(serializer); + redisTemplate.afterPropertiesSet(); + return redisTemplate; + } + + @Bean + public RedisSerializer redisSerializer() { + //创建JSON序列化器 + Jackson2JsonRedisSerializer serializer = new Jackson2JsonRedisSerializer<>(Object.class); + ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); + //必须设置,否则无法将JSON转化为对象,会转化成Map类型 + objectMapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance,ObjectMapper.DefaultTyping.NON_FINAL); + serializer.setObjectMapper(objectMapper); + return serializer; + } + + @Bean + public RedisCacheManager redisCacheManager(RedisConnectionFactory redisConnectionFactory) { + RedisCacheWriter redisCacheWriter = RedisCacheWriter.nonLockingRedisCacheWriter(redisConnectionFactory); + //设置Redis缓存有效期为1天 + RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig() + .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(redisSerializer())).entryTtl(Duration.ofDays(1)); + return new RedisCacheManager(redisCacheWriter, redisCacheConfiguration); + } + + + @Bean + public RedisService redisService(){ + return new RedisServiceImpl(); + } + +} diff --git a/mall-portal/src/main/java/com/macro/mall/portal/config/Swagger2Config.java b/mall-common/src/main/java/com/macro/mall/common/config/BaseSwaggerConfig.java similarity index 60% rename from mall-portal/src/main/java/com/macro/mall/portal/config/Swagger2Config.java rename to mall-common/src/main/java/com/macro/mall/common/config/BaseSwaggerConfig.java index ce4542a..011af3e 100644 --- a/mall-portal/src/main/java/com/macro/mall/portal/config/Swagger2Config.java +++ b/mall-common/src/main/java/com/macro/mall/common/config/BaseSwaggerConfig.java @@ -1,47 +1,45 @@ -package com.macro.mall.portal.config; +package com.macro.mall.common.config; +import com.macro.mall.common.domain.SwaggerProperties; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; -import springfox.documentation.service.ApiInfo; -import springfox.documentation.service.ApiKey; -import springfox.documentation.service.AuthorizationScope; -import springfox.documentation.service.SecurityReference; +import springfox.documentation.service.*; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spi.service.contexts.SecurityContext; import springfox.documentation.spring.web.plugins.Docket; -import springfox.documentation.swagger2.annotations.EnableSwagger2; import java.util.ArrayList; import java.util.List; /** - * Swagger API文档相关配置 - * Created by macro on 2018/4/26. + * Swagger基础配置 + * Created by macro on 2020/7/16. */ -@Configuration -@EnableSwagger2 -public class Swagger2Config { +public abstract class BaseSwaggerConfig { + @Bean public Docket createRestApi() { - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) + SwaggerProperties swaggerProperties = swaggerProperties(); + Docket docket = new Docket(DocumentationType.SWAGGER_2) + .apiInfo(apiInfo(swaggerProperties)) .select() - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.portal.controller")) + .apis(RequestHandlerSelectors.basePackage(swaggerProperties.getApiBasePackage())) .paths(PathSelectors.any()) - .build() - .securitySchemes(securitySchemes()) - .securityContexts(securityContexts()); + .build(); + if (swaggerProperties.isEnableSecurity()) { + docket.securitySchemes(securitySchemes()).securityContexts(securityContexts()); + } + return docket; } - private ApiInfo apiInfo() { + private ApiInfo apiInfo(SwaggerProperties swaggerProperties) { return new ApiInfoBuilder() - .title("mall前台系统") - .description("mall前台模块") - .contact("macro") - .version("1.0") + .title(swaggerProperties.getTitle()) + .description(swaggerProperties.getDescription()) + .contact(new Contact(swaggerProperties.getContactName(), swaggerProperties.getContactUrl(), swaggerProperties.getContactEmail())) + .version(swaggerProperties.getVersion()) .build(); } @@ -75,4 +73,9 @@ public class Swagger2Config { result.add(new SecurityReference("Authorization", authorizationScopes)); return result; } + + /** + * 自定义Swagger配置 + */ + public abstract SwaggerProperties swaggerProperties(); } diff --git a/mall-common/src/main/java/com/macro/mall/common/domain/SwaggerProperties.java b/mall-common/src/main/java/com/macro/mall/common/domain/SwaggerProperties.java new file mode 100644 index 0000000..4043805 --- /dev/null +++ b/mall-common/src/main/java/com/macro/mall/common/domain/SwaggerProperties.java @@ -0,0 +1,47 @@ +package com.macro.mall.common.domain; + +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * Swagger自定义配置 + * Created by macro on 2020/7/16. + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Builder +public class SwaggerProperties { + /** + * API文档生成基础路径 + */ + private String apiBasePackage; + /** + * 是否要启用登录认证 + */ + private boolean enableSecurity; + /** + * 文档标题 + */ + private String title; + /** + * 文档描述 + */ + private String description; + /** + * 文档版本 + */ + private String version; + /** + * 文档联系人姓名 + */ + private String contactName; + /** + * 文档联系人网址 + */ + private String contactUrl; + /** + * 文档联系人邮箱 + */ + private String contactEmail; +} diff --git a/mall-common/src/main/java/com/macro/mall/common/domain/WebLog.java b/mall-common/src/main/java/com/macro/mall/common/domain/WebLog.java new file mode 100644 index 0000000..e4faf97 --- /dev/null +++ b/mall-common/src/main/java/com/macro/mall/common/domain/WebLog.java @@ -0,0 +1,68 @@ +package com.macro.mall.common.domain; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * Controller层的日志封装类 + * Created by macro on 2018/4/26. + */ +@Data +@EqualsAndHashCode(callSuper = false) +public class WebLog { + /** + * 操作描述 + */ + private String description; + + /** + * 操作用户 + */ + private String username; + + /** + * 操作时间 + */ + private Long startTime; + + /** + * 消耗时间 + */ + private Integer spendTime; + + /** + * 根路径 + */ + private String basePath; + + /** + * URI + */ + private String uri; + + /** + * URL + */ + private String url; + + /** + * 请求类型 + */ + private String method; + + /** + * IP地址 + */ + private String ip; + + /** + * 请求参数 + */ + private Object parameter; + + /** + * 返回结果 + */ + private Object result; + +} diff --git a/mall-admin/src/main/java/com/macro/mall/component/WebLogAspect.java b/mall-common/src/main/java/com/macro/mall/common/log/WebLogAspect.java similarity index 97% rename from mall-admin/src/main/java/com/macro/mall/component/WebLogAspect.java rename to mall-common/src/main/java/com/macro/mall/common/log/WebLogAspect.java index 6e5bdf8..fb99c70 100644 --- a/mall-admin/src/main/java/com/macro/mall/component/WebLogAspect.java +++ b/mall-common/src/main/java/com/macro/mall/common/log/WebLogAspect.java @@ -1,10 +1,9 @@ -package com.macro.mall.component; +package com.macro.mall.common.log; import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.URLUtil; -import cn.hutool.json.JSON; import cn.hutool.json.JSONUtil; -import com.macro.mall.bo.WebLog; +import com.macro.mall.common.domain.WebLog; import io.swagger.annotations.ApiOperation; import net.logstash.logback.marker.Markers; import org.aspectj.lang.JoinPoint; @@ -40,7 +39,7 @@ import java.util.Map; public class WebLogAspect { private static final Logger LOGGER = LoggerFactory.getLogger(WebLogAspect.class); - @Pointcut("execution(public * com.macro.mall.controller.*.*(..))") + @Pointcut("execution(public * com.macro.mall.controller.*.*(..))||execution(public * com.macro.mall.*.controller.*.*(..))") public void webLog() { } diff --git a/mall-security/src/main/java/com/macro/mall/security/service/RedisService.java b/mall-common/src/main/java/com/macro/mall/common/service/RedisService.java similarity index 97% rename from mall-security/src/main/java/com/macro/mall/security/service/RedisService.java rename to mall-common/src/main/java/com/macro/mall/common/service/RedisService.java index a33943b..9f2de5e 100644 --- a/mall-security/src/main/java/com/macro/mall/security/service/RedisService.java +++ b/mall-common/src/main/java/com/macro/mall/common/service/RedisService.java @@ -1,4 +1,4 @@ -package com.macro.mall.security.service; +package com.macro.mall.common.service; import java.util.List; import java.util.Map; @@ -88,7 +88,7 @@ public interface RedisService { /** * 直接设置整个Hash结构 */ - void hSetAll(String key, Map map); + void hSetAll(String key, Map map); /** * 删除Hash结构中的属性 diff --git a/mall-security/src/main/java/com/macro/mall/security/service/impl/RedisServiceImpl.java b/mall-common/src/main/java/com/macro/mall/common/service/impl/RedisServiceImpl.java similarity index 95% rename from mall-security/src/main/java/com/macro/mall/security/service/impl/RedisServiceImpl.java rename to mall-common/src/main/java/com/macro/mall/common/service/impl/RedisServiceImpl.java index 0347ea3..342b8a1 100644 --- a/mall-security/src/main/java/com/macro/mall/security/service/impl/RedisServiceImpl.java +++ b/mall-common/src/main/java/com/macro/mall/common/service/impl/RedisServiceImpl.java @@ -1,9 +1,8 @@ -package com.macro.mall.security.service.impl; +package com.macro.mall.common.service.impl; -import com.macro.mall.security.service.RedisService; +import com.macro.mall.common.service.RedisService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.stereotype.Service; import java.util.List; import java.util.Map; @@ -14,7 +13,6 @@ import java.util.concurrent.TimeUnit; * redis操作实现类 * Created by macro on 2020/3/3. */ -@Service public class RedisServiceImpl implements RedisService { @Autowired private RedisTemplate redisTemplate; @@ -97,7 +95,7 @@ public class RedisServiceImpl implements RedisService { } @Override - public void hSetAll(String key, Map map) { + public void hSetAll(String key, Map map) { redisTemplate.opsForHash().putAll(key, map); } diff --git a/mall-common/src/main/resources/logback-spring.xml b/mall-common/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..eeac305 --- /dev/null +++ b/mall-common/src/main/resources/logback-spring.xml @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + + + + + + DEBUG + + + + ${FILE_LOG_PATTERN} + UTF-8 + + + + ${LOG_FILE_PATH}/debug/${APP_NAME}-%d{yyyy-MM-dd}-%i.log + + ${LOG_FILE_MAX_SIZE:-10MB} + + ${LOG_FILE_MAX_HISTORY:-30} + + + + + + + + ERROR + ACCEPT + DENY + + + + ${FILE_LOG_PATTERN} + UTF-8 + + + + ${LOG_FILE_PATH}/error/${APP_NAME}-%d{yyyy-MM-dd}-%i.log + + ${LOG_FILE_MAX_SIZE:-10MB} + + ${LOG_FILE_MAX_HISTORY:-30} + + + + + + + DEBUG + + ${LOG_STASH_HOST}:4560 + + + + Asia/Shanghai + + + + + { + "project": "mall", + "level": "%level", + "service": "${APP_NAME:-}", + "pid": "${PID:-}", + "thread": "%thread", + "class": "%logger", + "message": "%message", + "stack_trace": "%exception{20}" + } + + + + + + + + + + ERROR + ACCEPT + DENY + + ${LOG_STASH_HOST}:4561 + + + + Asia/Shanghai + + + + + { + "project": "mall", + "level": "%level", + "service": "${APP_NAME:-}", + "pid": "${PID:-}", + "thread": "%thread", + "class": "%logger", + "message": "%message", + "stack_trace": "%exception{20}" + } + + + + + + + + + ${LOG_STASH_HOST}:4562 + + + + Asia/Shanghai + + + + + { + "project": "mall", + "level": "%level", + "service": "${APP_NAME:-}", + "pid": "${PID:-}", + "thread": "%thread", + "class": "%logger", + "message": "%message", + "stack_trace": "%exception{20}" + } + + + + + + + + + ${LOG_STASH_HOST}:4563 + + + + Asia/Shanghai + + + + + { + "project": "mall", + "level": "%level", + "service": "${APP_NAME:-}", + "class": "%logger", + "message": "%message" + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mall-demo/pom.xml b/mall-demo/pom.xml index 2fc739b..61247f0 100644 --- a/mall-demo/pom.xml +++ b/mall-demo/pom.xml @@ -33,6 +33,10 @@ net.logstash.logback logstash-logback-encoder + + jakarta.validation + jakarta.validation-api + diff --git a/mall-demo/src/main/java/com/macro/mall/demo/config/Swagger2Config.java b/mall-demo/src/main/java/com/macro/mall/demo/config/Swagger2Config.java deleted file mode 100644 index 133bc71..0000000 --- a/mall-demo/src/main/java/com/macro/mall/demo/config/Swagger2Config.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.macro.mall.demo.config; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import springfox.documentation.builders.ApiInfoBuilder; -import springfox.documentation.builders.PathSelectors; -import springfox.documentation.builders.RequestHandlerSelectors; -import springfox.documentation.service.ApiInfo; -import springfox.documentation.spi.DocumentationType; -import springfox.documentation.spring.web.plugins.Docket; -import springfox.documentation.swagger2.annotations.EnableSwagger2; - -/** - * Swagger API文档相关配置 - */ -@Configuration -@EnableSwagger2 -public class Swagger2Config { - @Bean - public Docket createRestApi(){ - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.demo")) - .paths(PathSelectors.any()) - .build(); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("Demo模块") - .contact("macro") - .version("1.0") - .build(); - } -} diff --git a/mall-demo/src/main/java/com/macro/mall/demo/config/SwaggerConfig.java b/mall-demo/src/main/java/com/macro/mall/demo/config/SwaggerConfig.java new file mode 100644 index 0000000..4e4dd3e --- /dev/null +++ b/mall-demo/src/main/java/com/macro/mall/demo/config/SwaggerConfig.java @@ -0,0 +1,28 @@ +package com.macro.mall.demo.config; + +import com.macro.mall.common.config.BaseSwaggerConfig; +import com.macro.mall.common.domain.SwaggerProperties; +import org.springframework.context.annotation.Configuration; +import springfox.documentation.swagger2.annotations.EnableSwagger2; + +/** + * Swagger相关配置 + * Created by macro on 2019/4/8. + */ +@Configuration +@EnableSwagger2 +public class SwaggerConfig extends BaseSwaggerConfig { + + @Override + public SwaggerProperties swaggerProperties() { + return SwaggerProperties.builder() + .apiBasePackage("com.macro.mall.demo.controller") + .title("mall-demo系统") + .description("SpringBoot版本中的一些示例") + .contactName("macro") + .version("1.0") + .enableSecurity(true) + .build(); + } + +} diff --git a/mall-demo/src/main/resources/application.yml b/mall-demo/src/main/resources/application.yml index 319bfad..392785a 100644 --- a/mall-demo/src/main/resources/application.yml +++ b/mall-demo/src/main/resources/application.yml @@ -2,6 +2,8 @@ server: port: 8082 spring: + application: + name: mall-demo datasource: url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai username: root @@ -12,7 +14,6 @@ spring: servlet: content-type: text/html cache: false #开发时关闭缓存,不然没法看到实时页面 - mybatis: mapper-locations: - classpath:mapper/*.xml @@ -20,10 +21,8 @@ mybatis: logging: level: - root: info #日志配置DEBUG,INFO,WARN,ERROR + root: info com.macro.mall: debug -# file: demo_log.log #配置日志生成路径 -# path: /var/logs #配置日志文件名称 host: mall: diff --git a/mall-mbg/pom.xml b/mall-mbg/pom.xml index caac930..2a4d17a 100644 --- a/mall-mbg/pom.xml +++ b/mall-mbg/pom.xml @@ -23,6 +23,14 @@ com.macro.mall mall-common + + com.github.pagehelper + pagehelper-spring-boot-starter + + + com.alibaba + druid-spring-boot-starter + org.mybatis.generator mybatis-generator-core diff --git a/mall-portal/src/main/java/com/macro/mall/portal/config/SwaggerConfig.java b/mall-portal/src/main/java/com/macro/mall/portal/config/SwaggerConfig.java new file mode 100644 index 0000000..c79522c --- /dev/null +++ b/mall-portal/src/main/java/com/macro/mall/portal/config/SwaggerConfig.java @@ -0,0 +1,27 @@ +package com.macro.mall.portal.config; + +import com.macro.mall.common.config.BaseSwaggerConfig; +import com.macro.mall.common.domain.SwaggerProperties; +import org.springframework.context.annotation.Configuration; +import springfox.documentation.swagger2.annotations.EnableSwagger2; + +/** + * Swagger2API文档的配置 + * Created by macro on 2018/4/26. + */ +@Configuration +@EnableSwagger2 +public class SwaggerConfig extends BaseSwaggerConfig { + + @Override + public SwaggerProperties swaggerProperties() { + return SwaggerProperties.builder() + .apiBasePackage("com.macro.mall.portal.controller") + .title("mall前台系统") + .description("mall前台相关接口文档") + .contactName("macro") + .version("1.0") + .enableSecurity(true) + .build(); + } +} diff --git a/mall-portal/src/main/java/com/macro/mall/portal/service/impl/OmsPortalOrderServiceImpl.java b/mall-portal/src/main/java/com/macro/mall/portal/service/impl/OmsPortalOrderServiceImpl.java index 8f32e78..bc021e6 100644 --- a/mall-portal/src/main/java/com/macro/mall/portal/service/impl/OmsPortalOrderServiceImpl.java +++ b/mall-portal/src/main/java/com/macro/mall/portal/service/impl/OmsPortalOrderServiceImpl.java @@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollUtil; import com.github.pagehelper.PageHelper; import com.macro.mall.common.api.CommonPage; import com.macro.mall.common.exception.Asserts; +import com.macro.mall.common.service.RedisService; import com.macro.mall.mapper.*; import com.macro.mall.model.*; import com.macro.mall.portal.component.CancelOrderSender; @@ -13,7 +14,6 @@ import com.macro.mall.portal.dao.PortalOrderItemDao; import com.macro.mall.portal.dao.SmsCouponHistoryDao; import com.macro.mall.portal.domain.*; import com.macro.mall.portal.service.*; -import com.macro.mall.security.service.RedisService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; diff --git a/mall-portal/src/main/java/com/macro/mall/portal/service/impl/UmsMemberCacheServiceImpl.java b/mall-portal/src/main/java/com/macro/mall/portal/service/impl/UmsMemberCacheServiceImpl.java index a969d56..a75962e 100644 --- a/mall-portal/src/main/java/com/macro/mall/portal/service/impl/UmsMemberCacheServiceImpl.java +++ b/mall-portal/src/main/java/com/macro/mall/portal/service/impl/UmsMemberCacheServiceImpl.java @@ -1,11 +1,10 @@ package com.macro.mall.portal.service.impl; +import com.macro.mall.common.service.RedisService; import com.macro.mall.mapper.UmsMemberMapper; import com.macro.mall.model.UmsMember; import com.macro.mall.portal.service.UmsMemberCacheService; import com.macro.mall.security.annotation.CacheException; -import com.macro.mall.security.config.RedisConfig; -import com.macro.mall.security.service.RedisService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; diff --git a/mall-portal/src/main/resources/application-dev.yml b/mall-portal/src/main/resources/application-dev.yml index 82d70de..c0af59e 100644 --- a/mall-portal/src/main/resources/application-dev.yml +++ b/mall-portal/src/main/resources/application-dev.yml @@ -15,32 +15,29 @@ spring: stat-view-servlet: #访问监控网页的登录用户名和密码 login-username: druid login-password: druid - data: mongodb: host: localhost port: 27017 database: mall-port - redis: host: localhost # Redis服务器地址 database: 0 # Redis数据库索引(默认为0) port: 6379 # Redis服务器连接端口 password: # Redis服务器连接密码(默认为空) timeout: 300ms # 连接超时时间(毫秒) - rabbitmq: host: localhost port: 5672 virtual-host: /mall username: mall password: mall - publisher-confirms: true #如果对异步消息需要回调必须设置为true -# 日志配置 logging: level: - org.springframework.data.mongodb.core: debug - com.macro.mall.mapper: debug - com.macro.mall.portal.dao: debug + root: info + com.macro.mall: debug + +logstash: + host: localhost diff --git a/mall-portal/src/main/resources/application-prod.yml b/mall-portal/src/main/resources/application-prod.yml index b47707a..c272a4f 100644 --- a/mall-portal/src/main/resources/application-prod.yml +++ b/mall-portal/src/main/resources/application-prod.yml @@ -35,8 +35,14 @@ spring: virtual-host: /mall username: mall password: mall - publisher-confirms: true #如果对异步消息需要回调必须设置为true -# 日志配置 -logging: - path: /var/logs + +logging: + file: + path: /var/logs + level: + root: info + com.macro.mall: info + +logstash: + host: logstash diff --git a/mall-portal/src/main/resources/application.yml b/mall-portal/src/main/resources/application.yml index a352bc3..d2101ed 100644 --- a/mall-portal/src/main/resources/application.yml +++ b/mall-portal/src/main/resources/application.yml @@ -1,4 +1,6 @@ spring: + application: + name: mall-portal profiles: active: dev #默认为开发环境 diff --git a/mall-search/src/main/java/com/macro/mall/search/MallSearchApplication.java b/mall-search/src/main/java/com/macro/mall/search/MallSearchApplication.java index 3f820d8..029b1a2 100644 --- a/mall-search/src/main/java/com/macro/mall/search/MallSearchApplication.java +++ b/mall-search/src/main/java/com/macro/mall/search/MallSearchApplication.java @@ -3,7 +3,7 @@ package com.macro.mall.search; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -@SpringBootApplication +@SpringBootApplication(scanBasePackages = "com.macro.mall") public class MallSearchApplication { public static void main(String[] args) { diff --git a/mall-search/src/main/java/com/macro/mall/search/config/Swagger2Config.java b/mall-search/src/main/java/com/macro/mall/search/config/Swagger2Config.java deleted file mode 100644 index fd8b782..0000000 --- a/mall-search/src/main/java/com/macro/mall/search/config/Swagger2Config.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.search.config; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import springfox.documentation.builders.ApiInfoBuilder; -import springfox.documentation.builders.PathSelectors; -import springfox.documentation.builders.RequestHandlerSelectors; -import springfox.documentation.service.ApiInfo; -import springfox.documentation.spi.DocumentationType; -import springfox.documentation.spring.web.plugins.Docket; -import springfox.documentation.swagger2.annotations.EnableSwagger2; - -/** - * Swagger API文档相关配置 - * Created by macro on 2018/4/26. - */ -@Configuration -@EnableSwagger2 -public class Swagger2Config { - @Bean - public Docket createRestApi(){ - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.search.controller")) - .paths(PathSelectors.any()) - .build(); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("mall搜索系统") - .description("mall搜索模块") - .contact("macro") - .version("1.0") - .build(); - } -} diff --git a/mall-search/src/main/java/com/macro/mall/search/config/SwaggerConfig.java b/mall-search/src/main/java/com/macro/mall/search/config/SwaggerConfig.java new file mode 100644 index 0000000..adf1f21 --- /dev/null +++ b/mall-search/src/main/java/com/macro/mall/search/config/SwaggerConfig.java @@ -0,0 +1,27 @@ +package com.macro.mall.search.config; + +import com.macro.mall.common.config.BaseSwaggerConfig; +import com.macro.mall.common.domain.SwaggerProperties; +import org.springframework.context.annotation.Configuration; +import springfox.documentation.swagger2.annotations.EnableSwagger2; + +/** + * Swagger2API文档的配置 + * Created by macro on 2018/4/26. + */ +@Configuration +@EnableSwagger2 +public class SwaggerConfig extends BaseSwaggerConfig { + + @Override + public SwaggerProperties swaggerProperties() { + return SwaggerProperties.builder() + .apiBasePackage("com.macro.mall.search.controller") + .title("mall搜索系统") + .description("mall搜索相关接口文档") + .contactName("macro") + .version("1.0") + .enableSecurity(false) + .build(); + } +} diff --git a/mall-search/src/main/java/com/macro/mall/search/service/impl/EsProductServiceImpl.java b/mall-search/src/main/java/com/macro/mall/search/service/impl/EsProductServiceImpl.java index 761df10..a2021e6 100644 --- a/mall-search/src/main/java/com/macro/mall/search/service/impl/EsProductServiceImpl.java +++ b/mall-search/src/main/java/com/macro/mall/search/service/impl/EsProductServiceImpl.java @@ -5,7 +5,6 @@ import com.macro.mall.search.domain.EsProduct; import com.macro.mall.search.domain.EsProductRelatedInfo; import com.macro.mall.search.repository.EsProductRepository; import com.macro.mall.search.service.EsProductService; -import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.common.lucene.search.function.FunctionScoreQuery; import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.QueryBuilders; @@ -14,10 +13,10 @@ import org.elasticsearch.index.query.functionscore.ScoreFunctionBuilders; import org.elasticsearch.search.aggregations.AbstractAggregationBuilder; import org.elasticsearch.search.aggregations.Aggregation; import org.elasticsearch.search.aggregations.AggregationBuilders; -import org.elasticsearch.search.aggregations.bucket.filter.InternalFilter; -import org.elasticsearch.search.aggregations.bucket.nested.InternalNested; -import org.elasticsearch.search.aggregations.bucket.terms.LongTerms; -import org.elasticsearch.search.aggregations.bucket.terms.StringTerms; +import org.elasticsearch.search.aggregations.bucket.filter.ParsedFilter; +import org.elasticsearch.search.aggregations.bucket.nested.ParsedNested; +import org.elasticsearch.search.aggregations.bucket.terms.ParsedLongTerms; +import org.elasticsearch.search.aggregations.bucket.terms.ParsedStringTerms; import org.elasticsearch.search.aggregations.bucket.terms.Terms; import org.elasticsearch.search.sort.SortBuilders; import org.elasticsearch.search.sort.SortOrder; @@ -28,7 +27,10 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; -import org.springframework.data.elasticsearch.core.ElasticsearchTemplate; +import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate; +import org.springframework.data.elasticsearch.core.SearchHit; +import org.springframework.data.elasticsearch.core.SearchHits; +import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates; import org.springframework.data.elasticsearch.core.query.NativeSearchQuery; import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder; import org.springframework.stereotype.Service; @@ -39,6 +41,7 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** @@ -53,7 +56,7 @@ public class EsProductServiceImpl implements EsProductService { @Autowired private EsProductRepository productRepository; @Autowired - private ElasticsearchTemplate elasticsearchTemplate; + private ElasticsearchRestTemplate elasticsearchRestTemplate; @Override public int importAll() { List esProductList = productDao.getAllEsProductList(null); @@ -157,7 +160,12 @@ public class EsProductServiceImpl implements EsProductService { nativeSearchQueryBuilder.withSort(SortBuilders.scoreSort().order(SortOrder.DESC)); NativeSearchQuery searchQuery = nativeSearchQueryBuilder.build(); LOGGER.info("DSL:{}", searchQuery.getQuery().toString()); - return productRepository.search(searchQuery); + SearchHits searchHits = elasticsearchRestTemplate.search(searchQuery, EsProduct.class); + if(searchHits.getTotalHits()<=0){ + return new PageImpl<>(null,pageable,0); + } + List searchProductList = searchHits.stream().map(SearchHit::getContent).collect(Collectors.toList()); + return new PageImpl<>(searchProductList,pageable,searchHits.getTotalHits()); } @Override @@ -196,7 +204,12 @@ public class EsProductServiceImpl implements EsProductService { builder.withPageable(pageable); NativeSearchQuery searchQuery = builder.build(); LOGGER.info("DSL:{}", searchQuery.getQuery().toString()); - return productRepository.search(searchQuery); + SearchHits searchHits = elasticsearchRestTemplate.search(searchQuery, EsProduct.class); + if(searchHits.getTotalHits()<=0){ + return new PageImpl<>(null,pageable,0); + } + List searchProductList = searchHits.stream().map(SearchHit::getContent).collect(Collectors.toList()); + return new PageImpl<>(searchProductList,pageable,searchHits.getTotalHits()); } return new PageImpl<>(null); } @@ -225,16 +238,14 @@ public class EsProductServiceImpl implements EsProductService { .field("attrValueList.name")))); builder.addAggregation(aggregationBuilder); NativeSearchQuery searchQuery = builder.build(); - return elasticsearchTemplate.query(searchQuery, response -> { - LOGGER.info("DSL:{}",searchQuery.getQuery().toString()); - return convertProductRelatedInfo(response); - }); + SearchHits searchHits = elasticsearchRestTemplate.search(searchQuery, EsProduct.class); + return convertProductRelatedInfo(searchHits); } /** * 将返回结果转换为对象 */ - private EsProductRelatedInfo convertProductRelatedInfo(SearchResponse response) { + private EsProductRelatedInfo convertProductRelatedInfo(SearchHits response) { EsProductRelatedInfo productRelatedInfo = new EsProductRelatedInfo(); Map aggregationMap = response.getAggregations().getAsMap(); //设置品牌 @@ -253,14 +264,14 @@ public class EsProductServiceImpl implements EsProductService { productRelatedInfo.setProductCategoryNames(productCategoryNameList); //设置参数 Aggregation productAttrs = aggregationMap.get("allAttrValues"); - List attrIds = ((LongTerms) ((InternalFilter) ((InternalNested) productAttrs).getProperty("productAttrs")).getProperty("attrIds")).getBuckets(); + List attrIds = ((ParsedLongTerms) ((ParsedFilter) ((ParsedNested) productAttrs).getAggregations().get("productAttrs")).getAggregations().get("attrIds")).getBuckets(); List attrList = new ArrayList<>(); for (Terms.Bucket attrId : attrIds) { EsProductRelatedInfo.ProductAttr attr = new EsProductRelatedInfo.ProductAttr(); attr.setAttrId((Long) attrId.getKey()); List attrValueList = new ArrayList<>(); - List attrValues = ((StringTerms) attrId.getAggregations().get("attrValues")).getBuckets(); - List attrNames = ((StringTerms) attrId.getAggregations().get("attrNames")).getBuckets(); + List attrValues = ((ParsedStringTerms) attrId.getAggregations().get("attrValues")).getBuckets(); + List attrNames = ((ParsedStringTerms) attrId.getAggregations().get("attrNames")).getBuckets(); for (Terms.Bucket attrValue : attrValues) { attrValueList.add(attrValue.getKeyAsString()); } diff --git a/mall-search/src/main/resources/application-dev.yml b/mall-search/src/main/resources/application-dev.yml index f1a2b81..9804340 100644 --- a/mall-search/src/main/resources/application-dev.yml +++ b/mall-search/src/main/resources/application-dev.yml @@ -16,4 +16,14 @@ spring: elasticsearch: repositories: enabled: true - cluster-nodes: 127.0.0.1:9300 \ No newline at end of file + elasticsearch: + rest: + uris: localhost:9200 + +logging: + level: + root: info + com.macro.mall: debug + +logstash: + host: localhost \ No newline at end of file diff --git a/mall-search/src/main/resources/application-prod.yml b/mall-search/src/main/resources/application-prod.yml index 7d40256..2fd0771 100644 --- a/mall-search/src/main/resources/application-prod.yml +++ b/mall-search/src/main/resources/application-prod.yml @@ -12,12 +12,20 @@ spring: stat-view-servlet: #访问监控网页的登录用户名和密码 login-username: druid login-password: druid - data: elasticsearch: repositories: enabled: true - cluster-nodes: es:9300 + elasticsearch: + rest: + uris: es:9200 logging: - path: /var/logs #配置日志生成路径 + file: + path: /var/logs + level: + root: info + com.macro.mall: info + +logstash: + host: logstash \ No newline at end of file diff --git a/mall-search/src/main/resources/application.yml b/mall-search/src/main/resources/application.yml index 7fad5de..3e55585 100644 --- a/mall-search/src/main/resources/application.yml +++ b/mall-search/src/main/resources/application.yml @@ -1,4 +1,6 @@ spring: + application: + name: mall-search profiles: active: dev #默认为开发环境 @@ -10,10 +12,5 @@ mybatis: - classpath:dao/*.xml - classpath*:com/**/mapper/*.xml -logging: - level: - root: info - com.macro.mall: debug - diff --git a/mall-search/src/test/java/com/macro/mall/search/MallSearchApplicationTests.java b/mall-search/src/test/java/com/macro/mall/search/MallSearchApplicationTests.java index ab1f90e..cf4661a 100644 --- a/mall-search/src/test/java/com/macro/mall/search/MallSearchApplicationTests.java +++ b/mall-search/src/test/java/com/macro/mall/search/MallSearchApplicationTests.java @@ -2,14 +2,12 @@ package com.macro.mall.search; import com.macro.mall.search.dao.EsProductDao; import com.macro.mall.search.domain.EsProduct; -import com.macro.mall.search.repository.EsProductRepository; -import org.elasticsearch.action.search.SearchResponse; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.data.elasticsearch.core.ElasticsearchTemplate; -import org.springframework.data.elasticsearch.core.ResultsExtractor; +import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate; +import org.springframework.data.elasticsearch.core.IndexOperations; import org.springframework.test.context.junit4.SpringRunner; import java.util.List; @@ -21,7 +19,7 @@ public class MallSearchApplicationTests { @Autowired private EsProductDao productDao; @Autowired - private ElasticsearchTemplate elasticsearchTemplate; + private ElasticsearchRestTemplate elasticsearchTemplate; @Test public void contextLoads() { } @@ -32,8 +30,9 @@ public class MallSearchApplicationTests { } @Test public void testEsProductMapping(){ - elasticsearchTemplate.putMapping(EsProduct.class); - Map mapping = elasticsearchTemplate.getMapping(EsProduct.class); + IndexOperations indexOperations = elasticsearchTemplate.indexOps(EsProduct.class); + indexOperations.putMapping(indexOperations.createMapping(EsProduct.class)); + Map mapping = indexOperations.getMapping(); System.out.println(mapping); } diff --git a/mall-security/src/main/java/com/macro/mall/security/config/RedisConfig.java b/mall-security/src/main/java/com/macro/mall/security/config/RedisConfig.java index 7fbb664..52bb3f8 100644 --- a/mall-security/src/main/java/com/macro/mall/security/config/RedisConfig.java +++ b/mall-security/src/main/java/com/macro/mall/security/config/RedisConfig.java @@ -1,63 +1,15 @@ package com.macro.mall.security.config; -import com.fasterxml.jackson.annotation.JsonAutoDetect; -import com.fasterxml.jackson.annotation.PropertyAccessor; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.springframework.cache.annotation.CachingConfigurerSupport; +import com.macro.mall.common.config.BaseRedisConfig; import org.springframework.cache.annotation.EnableCaching; -import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.data.redis.cache.RedisCacheConfiguration; -import org.springframework.data.redis.cache.RedisCacheManager; -import org.springframework.data.redis.cache.RedisCacheWriter; -import org.springframework.data.redis.connection.RedisConnectionFactory; -import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; -import org.springframework.data.redis.serializer.RedisSerializationContext; -import org.springframework.data.redis.serializer.RedisSerializer; -import org.springframework.data.redis.serializer.StringRedisSerializer; - -import java.time.Duration; /** - * Redis相关配置 + * Redis配置类 * Created by macro on 2020/3/2. */ @EnableCaching @Configuration -public class RedisConfig extends CachingConfigurerSupport { - - @Bean - public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) { - RedisSerializer serializer = redisSerializer(); - RedisTemplate redisTemplate = new RedisTemplate<>(); - redisTemplate.setConnectionFactory(redisConnectionFactory); - redisTemplate.setKeySerializer(new StringRedisSerializer()); - redisTemplate.setValueSerializer(serializer); - redisTemplate.setHashKeySerializer(new StringRedisSerializer()); - redisTemplate.setHashValueSerializer(serializer); - redisTemplate.afterPropertiesSet(); - return redisTemplate; - } - - @Bean - public RedisSerializer redisSerializer() { - //创建JSON序列化器 - Jackson2JsonRedisSerializer serializer = new Jackson2JsonRedisSerializer<>(Object.class); - ObjectMapper objectMapper = new ObjectMapper(); - objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); - objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); - serializer.setObjectMapper(objectMapper); - return serializer; - } - - @Bean - public RedisCacheManager redisCacheManager(RedisConnectionFactory redisConnectionFactory) { - RedisCacheWriter redisCacheWriter = RedisCacheWriter.nonLockingRedisCacheWriter(redisConnectionFactory); - //设置Redis缓存有效期为1天 - RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig() - .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(redisSerializer())).entryTtl(Duration.ofDays(1)); - return new RedisCacheManager(redisCacheWriter, redisCacheConfiguration); - } +public class RedisConfig extends BaseRedisConfig { } diff --git a/pom.xml b/pom.xml index 76a551b..f5fb922 100644 --- a/pom.xml +++ b/pom.xml @@ -22,7 +22,7 @@ org.springframework.boot spring-boot-starter-parent - 2.1.7.RELEASE + 2.3.0.RELEASE @@ -42,11 +42,11 @@ 1.6.0 1.3.7 3.4.6 - 8.0.16 - 2.1.5.RELEASE + 8.0.15 + 2.3.0.RELEASE 0.9.0 2.5.0 - 4.8 + 5.3 3.0.10 20.0 1.0-SNAPSHOT @@ -55,10 +55,6 @@ - - org.springframework.boot - spring-boot-starter-web - org.springframework.boot spring-boot-starter-actuator @@ -73,12 +69,17 @@ test - com.github.pagehelper - pagehelper-spring-boot-starter + cn.hutool + hutool-all - com.alibaba - druid-spring-boot-starter + org.projectlombok + lombok + + + org.springframework.boot + spring-boot-configuration-processor + true